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

        Make the dumped display list representation a bit more compact
        https://bugs.webkit.org/show_bug.cgi?id=153409

        Reviewed by Zalan Bujtas.
        
        Updated results.

        * displaylists/extent-includes-shadow-expected.txt:
        * displaylists/extent-includes-transforms-expected.txt:
        * displaylists/layer-dispay-list-expected.txt:
        * displaylists/replay-skip-clipped-rect-expected.txt:

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

        Add testing for display list replay, and skip clipped-out items on replay
        https://bugs.webkit.org/show_bug.cgi?id=153408

        Reviewed by Zalan Bujtas.

        Test that a clipped-out rectangle is not painted.

        In order to get the rect into the display list, we need to make the target
        compositing layer be tiled, and to be clipped by an ancestor so that only the
        second tile renders. (This complexity is required because in simpler scenarios,
        the rect is clipped out at recording time.)

        * displaylists/replay-skip-clipped-rect-expected.txt: Added.
        * displaylists/replay-skip-clipped-rect.html: Added.
        * displaylists/resources/dump-target-replay-list.js: Added.
        (doTest):

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

        Layout Test displaylists/extent-includes-transforms.html is flaky on mac-wk1
        https://bugs.webkit.org/show_bug.cgi?id=153308

        Reviewed by Dan Bernstein.

        Rather than assuming that a zero-delay timer will fire after the next layer flush,
        force a flush with testRunner.display(), which fixes flakiness.

        * displaylists/resources/dump-target-display-list.js:
        (doTest):

2016-01-23  Wonchul Lee  <wonchul.lee@collabora.co.uk>

        [GTK] Fix media controls displaying without controls attribute
        https://bugs.webkit.org/show_bug.cgi?id=152500

        Media controls is not displayed without controls attribute by default
        when the video element has text track. It'll be displayed on fullscreen
        regardless of controls attribute.

        Reviewed by Michael Catanzaro.

        * media/video-controls-no-display-with-text-track-expected.txt: Added.
        * media/video-controls-no-display-with-text-track.html: Added.

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

        Modern IDB: Implement clearing object stores and opening cursors in the SQLite backend.
        https://bugs.webkit.org/show_bug.cgi?id=153396

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

2016-01-22  Commit Queue  <commit-queue@webkit.org>

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

        Broke authenticaiton tests (leaks credentials) (Requested by
        ap on #webkit).

        Reverted changeset:

        "LayoutTest http/tests/security/xssAuditor/embed-tag-in-path-
        unterminated.html crashing"
        https://bugs.webkit.org/show_bug.cgi?id=153250
        http://trac.webkit.org/changeset/195493

2016-01-20  Ryosuke Niwa  <rniwa@webkit.org>

        HTMLElement::nodeName should not upper case non-ASCII characters
        https://bugs.webkit.org/show_bug.cgi?id=153231

        Reviewed by Darin Adler.

        Added a regression test since the rebaselined W3C test case is very simple and doesn't all permutations.

        * fast/dom/Element/tagName-must-be-ASCII-uppercase-in-HTML-document-expected.txt: Added.
        * fast/dom/Element/tagName-must-be-ASCII-uppercase-in-HTML-document.html: Added.

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

        Modern IDB: Disable simultaneous transactions in the SQLite backend for now.
        https://bugs.webkit.org/show_bug.cgi?id=153381

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

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

        document.charset should be an alias for document.characterSet
        https://bugs.webkit.org/show_bug.cgi?id=153367

        Reviewed by Ryosuke Niwa.

        Drop outdated tests.

        * fast/dom/Document/document-charset-expected.txt:
        * fast/dom/document-attribute-js-null-expected.txt:
        * fast/dom/document-attribute-js-null.html:
        * fast/encoding/css-charset-default-expected.txt:
        * fast/encoding/css-charset-default.xhtml:
        * fast/encoding/external-script-charset.js: Removed.
        * fast/encoding/external-script-charset.xhtml: Removed.

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

        Document.open / Document.write should be prevented while the document is being unloaded
        https://bugs.webkit.org/show_bug.cgi?id=153255
        <rdar://problem/22741293>

        Reviewed by Ryosuke Niwa.

        Add layout tests that cover calling Document.open / Document.write from
        unload and pagehide handlers.

        * fast/frames/page-hide-document-open-expected.txt: Added.
        * fast/frames/page-hide-document-open.html: Added.
        * fast/frames/page-unload-document-open-expected.txt: Added.
        * fast/frames/page-unload-document-open.html: Added.
        * fast/frames/resources/finish-test.html: Added.
        * fast/frames/resources/page-hide-document-open-frame.html: Added.
        * fast/frames/resources/page-hide-document-open-win.html: Added.
        * fast/frames/resources/page-unload-document-open-frame.html: Added.
        * fast/frames/resources/page-unload-document-open-win.html: Added.

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

        Modern IDB: Implement put, get, and delete records for the SQLite backend.
        https://bugs.webkit.org/show_bug.cgi?id=153375

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

2016-01-22  Daniel Bates  <dabates@apple.com>

        LayoutTest http/tests/security/xssAuditor/embed-tag-in-path-unterminated.html crashing
        https://bugs.webkit.org/show_bug.cgi?id=153250
        <rdar://problem/12172843>
        And
        <rdar://problem/24248040>

        Reviewed by Alexey Proskuryakov.

        The test case http/tests/xmlhttprequest/basic-auth-load-URL-with-consecutive-slashes.html was derived
        from a test case written by Yongjun Zhang in <https://bugs.webkit.org/attachment.cgi?id=65189> (bug #44461).

        * http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt: Added.
        * http/tests/loading/basic-auth-load-URL-with-consecutive-slashes.html: Added.
        * http/tests/xmlhttprequest/basic-auth-load-URL-with-consecutive-slashes-expected.txt: Added.
        * http/tests/xmlhttprequest/basic-auth-load-URL-with-consecutive-slashes.html: Added.
        * platform/wk2/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt: Added.

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

        Rebaselining http/tests/security/originHeader/origin-header-for-https.html after r195477

        Unreviewed test gardening.

        * http/tests/security/originHeader/origin-header-for-https-expected.txt:

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

        Document.URL / Document.documentURI should return "about:blank" instead of empty string / null
        https://bugs.webkit.org/show_bug.cgi?id=153363
        <rdar://problem/22549736>

        Reviewed by Ryosuke Niwa.

        Drop outdated tests.

        * dom/xhtml/level3/core/documentgetdocumenturi02-expected.txt: Removed.
        * dom/xhtml/level3/core/documentgetdocumenturi02.js: Removed.
        * dom/xhtml/level3/core/documentgetdocumenturi02.xhtml: Removed.
        * dom/xhtml/level3/core/documentgetdocumenturi03-expected.txt: Removed.
        * dom/xhtml/level3/core/documentgetdocumenturi03.js: Removed.
        * dom/xhtml/level3/core/documentgetdocumenturi03.xhtml: Removed.
        * dom/xhtml/level3/core/documentsetdocumenturi03-expected.txt: Removed.
        * dom/xhtml/level3/core/documentsetdocumenturi03.js: Removed.
        * dom/xhtml/level3/core/documentsetdocumenturi03.xhtml: Removed.
        * fast/dom/document-attribute-js-null-expected.txt:
        * fast/dom/document-attribute-js-null.html:

2016-01-22  Tim Horton  <timothy_horton@apple.com>

        Add a test for iOS arrow-key repeat
        https://bugs.webkit.org/show_bug.cgi?id=152857
        <rdar://problem/24017380>

        Reviewed by Darin Adler.

        * fast/events/ios/keyboard-scrolling-repeat-expected.txt: Added.
        * fast/events/ios/keyboard-scrolling-repeat.html: Added.
        Add the aforementioned test. It waits for the held-down arrow key to scroll twice, then sends the up.

2016-01-21  Sam Weinig  <sam@webkit.org>

        Treat non-https actions on secure pages as mixed content
        <rdar://problem/23144492>
        https://bugs.webkit.org/show_bug.cgi?id=153322
        
        Reviewed by Alexey Proskuryakov.

        * http/tests/security/mixedContent/insecure-form-in-iframe-expected.txt: Added.
        * http/tests/security/mixedContent/insecure-form-in-iframe.html: Added.
        * http/tests/security/mixedContent/insecure-form-in-main-frame-expected.txt: Added.
        * http/tests/security/mixedContent/insecure-form-in-main-frame.html: Added.
        * http/tests/security/mixedContent/javascript-url-form-in-main-frame-expected.txt: Added.
        * http/tests/security/mixedContent/javascript-url-form-in-main-frame.html: Added.
        * http/tests/security/mixedContent/resources/frame-with-insecure-form.html: Added.
        * http/tests/security/mixedContent/resources/frame-with-javascript-url-form.html: Added.

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

        Marking imported/w3c/web-platform-tests/XMLHttpRequest/getresponseheader-chunked-trailer.htm as flaky on ios-simulator
        https://bugs.webkit.org/show_bug.cgi?id=153371

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

2016-01-22  Nan Wang  <n_wang@apple.com>

        AX: Crash in setTextMarkerDataWithCharacterOffset
        https://bugs.webkit.org/show_bug.cgi?id=153365
        <rdar://problem/24287924>

        Reviewed by Chris Fleizach.

        * accessibility/text-marker/text-marker-range-with-removed-node-crash-expected.txt: Added.
        * accessibility/text-marker/text-marker-range-with-removed-node-crash.html: Added.

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

        Modern IDB: Add transactions and create/delete object store to SQLite backend
        https://bugs.webkit.org/show_bug.cgi?id=153359

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

2016-01-22  Chris Fleizach  <cfleizach@apple.com>

        AX: <code> group and friends should have a custom subrole
        https://bugs.webkit.org/show_bug.cgi?id=153282

        Reviewed by Mario Sanchez Prada.

        * accessibility/duplicate-child-nodes-expected.txt:
        * accessibility/mac/subroles-for-formatted-groups-expected.txt: Added.
        * accessibility/mac/subroles-for-formatted-groups.html: Added.
        * accessibility/roles-computedRoleString-expected.txt:
        * accessibility/roles-computedRoleString.html:

2016-01-22  Skachkov Oleksandr  <gskachkov@gmail.com>

        [ES6] Arrow function. Default arguments in arrow functions
        https://bugs.webkit.org/show_bug.cgi?id=152537

        Reviewed by Saam Barati.

        Default arguments in arrow function parameters have been already 
        implemented by patch from issue https://bugs.webkit.org/show_bug.cgi?id=146934. 
        Current patch adds only tests for this feature  

        * js/arrowfunction-syntax-expected.txt:
        * js/script-tests/arrowfunction-syntax.js:

2016-01-22  Keith Miller  <keith_miller@apple.com>

        [ES6] Add Symbol.species properties to the relevant constructors
        https://bugs.webkit.org/show_bug.cgi?id=153339

        Reviewed by Michael Saboff.

        Add species to the list of property names on the Symbol object.

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

2016-01-22  Chris Fleizach  <cfleizach@apple.com>

        AX: ARIA combo boxes are not returning the right value for selected text range
        https://bugs.webkit.org/show_bug.cgi?id=153260

        Reviewed by Darin Adler.

        * accessibility/selected-text-range-aria-elements-expected.txt: Added.
        * accessibility/selected-text-range-aria-elements.html: Added.

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

        Elements with overflow and border-radius don't show in multicolumn properly.
        https://bugs.webkit.org/show_bug.cgi?id=152920

        Reviewed by Simon Fraser.

        * fast/multicol/border-radius-overflow-columns-expected.html: Added.
        * fast/multicol/border-radius-overflow-columns.html: Added.

2016-01-22  ChangSeok Oh  <changseok.oh@collabora.com>

        [GTK] Remove a focus ring on anchor node when focused by mouse.
        https://bugs.webkit.org/show_bug.cgi?id=136121

        Reviewed by Michael Catanzaro.

        Removed gtk and efl specific results for the test.

        * platform/efl/fast/events/click-focus-anchor-expected.txt: Removed.
        * platform/gtk/fast/events/click-focus-anchor-expected.txt: Removed.

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

        REGRESSION (r168244): Content in horizontal-bt page is offset such that only the end is viewable and there is a white gap at the top
        https://bugs.webkit.org/show_bug.cgi?id=136019

        Reviewed by Dan Bernstein.

        Test that scrolls a horizontal-bt document.

        * fast/scrolling/programmatic-horizontal-bt-document-scroll-expected.html: Added.
        * fast/scrolling/programmatic-horizontal-bt-document-scroll.html: Added.

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

        Modern IDB: Support populating/extracting database metadata with SQLite backend.
        https://bugs.webkit.org/show_bug.cgi?id=153318

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations: Skip all of the tests that run against the
          SQLite backend and currently fail (which is most of them!)

2016-01-21  Nikita Vasilyev  <nvasilyev@apple.com>

        REGRESSION (r195305): Web Inspector: WebInspector.Object can dispatch constructor-level events multiple times
        https://bugs.webkit.org/show_bug.cgi?id=153269
        <rdar://problem/24253106>

        Reviewed by Timothy Hatcher.

        * inspector/unit-tests/object-expected.txt: Added.
        * inspector/unit-tests/object.html: Added.

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

        [ES6] Catch parameter should accept BindingPattern
        https://bugs.webkit.org/show_bug.cgi?id=152385

        Reviewed by Saam Barati.

        * js/dom/reserved-words-as-property-expected.txt:
        * js/let-syntax-expected.txt:
        * js/mozilla/strict/12.14.1-expected.txt:
        * js/mozilla/strict/script-tests/12.14.1.js:
        * sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T10-expected.txt:
        * sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T13-expected.txt:
        * sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T5-expected.txt:
        * sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T7-expected.txt:
        * sputnik/Conformance/12_Statement/12.14_The_try_Statement/S12.14_A16_T8-expected.txt:

2016-01-21  Andy VanWagoner  <andy@instructure.com>

        [INTL] Implement Array.prototype.toLocaleString in ECMA-402
        https://bugs.webkit.org/show_bug.cgi?id=147614

        Reviewed by Benjamin Poulain.

        * js/array-toLocaleString-expected.txt: Added.
        * js/array-toLocaleString.html: Added.
        * js/script-tests/array-toLocaleString.js: Added.

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

        Rebaseline fast/block/float/overhanging-tall-block.html for ios-simulator-wk2
        https://bugs.webkit.org/show_bug.cgi?id=152440

        Reviewed by Zalan Bujtas.

        * platform/ios-simulator-wk2/fast/block/float/overhanging-tall-block-expected.txt:

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

        Modern IDB: Make -private copies of each w3c IDB test.
        https://bugs.webkit.org/show_bug.cgi?id=153319

        Reviewed by Alex Christensen.

        * platform/wk2/TestExpectations:

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

        Remove a ios-simulator-wk2 specific expectation file since the results are identical on wk1 and wk2
        https://bugs.webkit.org/show_bug.cgi?id=152139

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt: Removed.

2016-01-21  Said Abou-Hallawa  <sabouhallawa@apple.com>

        A crash reproducible in Path::isEmpty() under RenderSVGShape::paint()
        https://bugs.webkit.org/show_bug.cgi?id=149613

        Reviewed by Darin Adler.
        
        When running the layout of an SVG root and it has resources which are
        referenced by clients in other SVG roots, make sure we run the layout
        for these resources before running the layout for their clients.

        * svg/custom/filter-update-different-root-expected.html: Added.
        * svg/custom/filter-update-different-root.html: Added.
        Without this patch this test crashes because we paint a dirty RenderSVGShape.
        
        * svg/custom/pattern-update-different-root-expected.html: Added.
        * svg/custom/pattern-update-different-root.html: Added.
        Without this patch this test works fine but it is good to have it to catch
        cases where the SVG root needs to run re-layout for its children resources
        and hence their clients if its size has changed.

        * svg/custom/unicode-in-tspan-multi-svg-crash-expected.txt:
        * svg/custom/unicode-in-tspan-multi-svg-crash.html:
        This test was ported from Blink in http://trac.webkit.org/changeset/166420.
        The expectation of this test was changed in Blink:
        https://src.chromium.org/viewvc/blink?revision=158480&view=revision.
        

2016-01-21  Nan Wang  <n_wang@apple.com>

        AX: [IOS] Implement next/previous text marker functions using TextIterator
        https://bugs.webkit.org/show_bug.cgi?id=153292
        <rdar://problem/24268243>

        Reviewed by Chris Fleizach.

        * accessibility/mac/previous-next-text-marker-expected.txt: Removed.
        * accessibility/mac/previous-next-text-marker.html: Removed.
        * accessibility/mac/text-marker-with-user-select-none-expected.txt: Removed.
        * accessibility/mac/text-marker-with-user-select-none.html: Removed.
        * accessibility/text-marker: Added.
        * accessibility/text-marker/text-marker-previous-next-expected.txt: Added.
        * accessibility/text-marker/text-marker-previous-next.html: Added.
        * accessibility/text-marker/text-marker-with-user-select-none-expected.txt: Added.
        * accessibility/text-marker/text-marker-with-user-select-none.html: Added.
        * platform/efl/TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/ios-simulator/TestExpectations:
        * platform/win/TestExpectations:

2016-01-20  Zalan Bujtas  <zalan@apple.com>

        http://victordarras.fr/cssgame/ doesn't work in Safari.
        https://bugs.webkit.org/show_bug.cgi?id=153285
        <rdar://problem/24212369>

        Reviewed by Tim Horton.

        This patch adds support for hittesting ClipPathOperation::Reference.

        * svg/clip-path/hittest-clip-path-reference-miss-expected.html: Added.
        * svg/clip-path/hittest-clip-path-reference-miss.html: Added.

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

        Modern IDB: Add -private.html variants of every storage/indexeddb test that doesn't already have them.
        https://bugs.webkit.org/show_bug.cgi?id=153272

        Reviewed by Alex Christensen.

        This includes some cleanups to the shared js files to make each test more resilient to being run twice.
        
        * TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/wk2/TestExpectations:

        * storage/indexeddb/clone-exception-private-expected.txt: Added.
        * storage/indexeddb/clone-exception-private.html: Added.
        * storage/indexeddb/closed-cursor-private-expected.txt: Added.
        * storage/indexeddb/closed-cursor-private.html: Added.
        * storage/indexeddb/connection-leak-private-expected.txt: Added.
        * storage/indexeddb/connection-leak-private.html: Added.
        * storage/indexeddb/cursor-cast-private-expected.txt: Added.
        * storage/indexeddb/cursor-cast-private.html: Added.
        * storage/indexeddb/cursor-leak-private-expected.txt: Added.
        * storage/indexeddb/cursor-leak-private.html: Added.
        * storage/indexeddb/cursor-overloads-private-expected.txt: Added.
        * storage/indexeddb/cursor-overloads-private.html: Added.
        * storage/indexeddb/cursor-request-cycle-private-expected.txt: Added.
        * storage/indexeddb/cursor-request-cycle-private.html: Added.
        * storage/indexeddb/deleteIndex-bug110792-private-expected.txt: Added.
        * storage/indexeddb/deleteIndex-bug110792-private.html: Added.
        * storage/indexeddb/deletedatabase-delayed-by-versionchange-private-expected.txt: Removed.
        * storage/indexeddb/deletedatabase-transaction-private-expected.txt: Added.
        * storage/indexeddb/deletedatabase-transaction-private.html: Added.
        * storage/indexeddb/dont-commit-on-blocked-private-expected.txt: Added.
        * storage/indexeddb/dont-commit-on-blocked-private.html: Added.
        * storage/indexeddb/lazy-index-population-private-expected.txt: Added.
        * storage/indexeddb/lazy-index-population-private.html: Added.
        * storage/indexeddb/metadata-race-private-expected.txt: Added.
        * storage/indexeddb/metadata-race-private.html: Added.
        * storage/indexeddb/modern/abort-objectstore-info-private-expected.txt: Added.
        * storage/indexeddb/modern/abort-objectstore-info-private.html: Added.
        * storage/indexeddb/modern/abort-requests-cancelled-private-expected.txt: Added.
        * storage/indexeddb/modern/abort-requests-cancelled-private.html: Added.
        * storage/indexeddb/modern/aborted-put-private-expected.txt: Added.
        * storage/indexeddb/modern/aborted-put-private.html: Added.
        * storage/indexeddb/modern/autoincrement-abort-private-expected.txt: Added.
        * storage/indexeddb/modern/autoincrement-abort-private.html: Added.
        * storage/indexeddb/modern/basic-add-private-expected.txt: Added.
        * storage/indexeddb/modern/basic-add-private.html: Added.
        * storage/indexeddb/modern/basic-put-private-expected.txt: Added.
        * storage/indexeddb/modern/basic-put-private.html: Added.
        * storage/indexeddb/modern/blocked-open-db-requests-private-expected.txt: Added.
        * storage/indexeddb/modern/blocked-open-db-requests-private.html: Added.
        * storage/indexeddb/modern/create-index-failures-private-expected.txt: Added.
        * storage/indexeddb/modern/create-index-failures-private.html: Added.
        * storage/indexeddb/modern/createobjectstore-basic-private-expected.txt: Added.
        * storage/indexeddb/modern/createobjectstore-basic-private.html: Added.
        * storage/indexeddb/modern/createobjectstore-failures-private-expected.txt: Added.
        * storage/indexeddb/modern/createobjectstore-failures-private.html: Added.
        * storage/indexeddb/modern/cursor-1-private-expected.txt: Added.
        * storage/indexeddb/modern/cursor-1-private.html: Added.
        * storage/indexeddb/modern/cursor-2-private-expected.txt: Added.
        * storage/indexeddb/modern/cursor-2-private.html: Added.
        * storage/indexeddb/modern/cursor-3-private-expected.txt: Added.
        * storage/indexeddb/modern/cursor-3-private.html: Added.
        * storage/indexeddb/modern/cursor-4-private-expected.txt: Added.
        * storage/indexeddb/modern/cursor-4-private.html: Added.
        * storage/indexeddb/modern/cursor-5-private-expected.txt: Added.
        * storage/indexeddb/modern/cursor-5-private.html: Added.
        * storage/indexeddb/modern/cursor-6-private-expected.txt: Added.
        * storage/indexeddb/modern/cursor-6-private.html: Added.
        * storage/indexeddb/modern/cursor-7-private-expected.txt: Added.
        * storage/indexeddb/modern/cursor-7-private.html: Added.
        * storage/indexeddb/modern/cursor-8-private-expected.txt: Added.
        * storage/indexeddb/modern/cursor-8-private.html: Added.
        * storage/indexeddb/modern/date-basic-private-expected.txt: Added.
        * storage/indexeddb/modern/date-basic-private.html: Added.
        * storage/indexeddb/modern/deletedatabase-1-private-expected.txt: Added.
        * storage/indexeddb/modern/deletedatabase-1-private.html: Added.
        * storage/indexeddb/modern/deletedatabase-2-private-expected.txt: Added.
        * storage/indexeddb/modern/deletedatabase-2-private.html: Added.
        * storage/indexeddb/modern/deletedatabase-null-name-exception-private-expected.txt: Added.
        * storage/indexeddb/modern/deletedatabase-null-name-exception-private.html: Added.
        * storage/indexeddb/modern/deletedatabase-request-event-private-expected.txt: Added.
        * storage/indexeddb/modern/deletedatabase-request-event-private.html: Added.
        * storage/indexeddb/modern/deletedatabase-request-private-expected.txt: Added.
        * storage/indexeddb/modern/deletedatabase-request-private.html: Added.
        * storage/indexeddb/modern/deleteindex-1-private-expected.txt: Added.
        * storage/indexeddb/modern/deleteindex-1-private.html: Added.
        * storage/indexeddb/modern/deleteindex-2-private-expected.txt: Added.
        * storage/indexeddb/modern/deleteindex-2-private.html: Added.
        * storage/indexeddb/modern/deleteobjectstore-1-private-expected.txt: Added.
        * storage/indexeddb/modern/deleteobjectstore-1-private.html: Added.
        * storage/indexeddb/modern/double-abort-private-expected.txt: Added.
        * storage/indexeddb/modern/double-abort-private.html: Added.
        * storage/indexeddb/modern/double-open-private-expected.txt: Added.
        * storage/indexeddb/modern/double-open-private.html: Added.
        * storage/indexeddb/modern/get-index-failures-private-expected.txt: Added.
        * storage/indexeddb/modern/get-index-failures-private.html: Added.
        * storage/indexeddb/modern/get-keyrange-private-expected.txt: Added.
        * storage/indexeddb/modern/get-keyrange-private.html: Added.
        * storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures-private-expected.txt: Added.
        * storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures-private.html: Added.
        * storage/indexeddb/modern/idbdatabase-transaction-failures-private-expected.txt: Added.
        * storage/indexeddb/modern/idbdatabase-transaction-failures-private.html: Added.
        * storage/indexeddb/modern/idbindex-properties-basic-private-expected.txt: Added.
        * storage/indexeddb/modern/idbindex-properties-basic-private.html: Added.
        * storage/indexeddb/modern/idbobjectstore-clear-1-private-expected.txt: Added.
        * storage/indexeddb/modern/idbobjectstore-clear-1-private.html: Added.
        * storage/indexeddb/modern/idbobjectstore-clear-2-private-expected.txt: Added.
        * storage/indexeddb/modern/idbobjectstore-clear-2-private.html: Added.
        * storage/indexeddb/modern/idbobjectstore-count-1-private-expected.txt: Added.
        * storage/indexeddb/modern/idbobjectstore-count-1-private.html: Added.
        * storage/indexeddb/modern/idbobjectstore-count-failures-private-expected.txt: Added.
        * storage/indexeddb/modern/idbobjectstore-count-failures-private.html: Added.
        * storage/indexeddb/modern/idbobjectstore-delete-1-private-expected.txt: Added.
        * storage/indexeddb/modern/idbobjectstore-delete-1-private.html: Added.
        * storage/indexeddb/modern/idbobjectstore-delete-2-private-expected.txt: Added.
        * storage/indexeddb/modern/idbobjectstore-delete-2-private.html: Added.
        * storage/indexeddb/modern/idbobjectstore-delete-failures-private-expected.txt: Added.
        * storage/indexeddb/modern/idbobjectstore-delete-failures-private.html: Added.
        * storage/indexeddb/modern/idbobjectstore-get-failures-private-expected.txt: Added.
        * storage/indexeddb/modern/idbobjectstore-get-failures-private.html: Added.
        * storage/indexeddb/modern/idbobjectstore-put-and-clear-failures-private-expected.txt: Added.
        * storage/indexeddb/modern/idbobjectstore-put-and-clear-failures-private.html: Added.
        * storage/indexeddb/modern/idbtransaction-objectstore-failures-private-expected.txt: Added.
        * storage/indexeddb/modern/idbtransaction-objectstore-failures-private.html: Added.
        * storage/indexeddb/modern/index-1-private-expected.txt: Added.
        * storage/indexeddb/modern/index-1-private.html: Added.
        * storage/indexeddb/modern/index-2-private-expected.txt: Added.
        * storage/indexeddb/modern/index-2-private.html: Added.
        * storage/indexeddb/modern/index-3-private-expected.txt: Added.
        * storage/indexeddb/modern/index-3-private.html: Added.
        * storage/indexeddb/modern/index-4-private-expected.txt: Added.
        * storage/indexeddb/modern/index-4-private.html: Added.
        * storage/indexeddb/modern/index-5-private-expected.txt: Added.
        * storage/indexeddb/modern/index-5-private.html: Added.
        * storage/indexeddb/modern/index-cursor-1-private-expected.txt: Added.
        * storage/indexeddb/modern/index-cursor-1-private.html: Added.
        * storage/indexeddb/modern/index-cursor-2-private-expected.txt: Added.
        * storage/indexeddb/modern/index-cursor-2-private.html: Added.
        * storage/indexeddb/modern/index-cursor-3-private-expected.txt: Added.
        * storage/indexeddb/modern/index-cursor-3-private.html: Added.
        * storage/indexeddb/modern/index-get-count-basic-private-expected.txt: Added.
        * storage/indexeddb/modern/index-get-count-basic-private.html: Added.
        * storage/indexeddb/modern/index-get-count-failures-private-expected.txt: Added.
        * storage/indexeddb/modern/index-get-count-failures-private.html: Added.
        * storage/indexeddb/modern/keypath-basic-private-expected.txt: Added.
        * storage/indexeddb/modern/keypath-basic-private.html: Added.
        * storage/indexeddb/modern/memory-index-not-deleted-with-objectstore-private-expected.txt: Added.
        * storage/indexeddb/modern/memory-index-not-deleted-with-objectstore-private.html: Added.
        * storage/indexeddb/modern/objectstore-attributes-private-expected.txt: Added.
        * storage/indexeddb/modern/objectstore-attributes-private.html: Added.
        * storage/indexeddb/modern/objectstore-cursor-advance-failures-private-expected.txt: Added.
        * storage/indexeddb/modern/objectstore-cursor-advance-failures-private.html: Added.
        * storage/indexeddb/modern/objectstore-cursor-continue-failures-private-expected.txt: Added.
        * storage/indexeddb/modern/objectstore-cursor-continue-failures-private.html: Added.
        * storage/indexeddb/modern/opencursor-failures-private-expected.txt: Added.
        * storage/indexeddb/modern/opencursor-failures-private.html: Added.
        * storage/indexeddb/modern/opendatabase-request-event-private-expected.txt: Added.
        * storage/indexeddb/modern/opendatabase-request-event-private.html: Added.
        * storage/indexeddb/modern/opendatabase-request-private-expected.txt: Added.
        * storage/indexeddb/modern/opendatabase-request-private.html: Added.
        * storage/indexeddb/modern/opendatabase-success-after-versionchange-private-expected.txt: Added.
        * storage/indexeddb/modern/opendatabase-success-after-versionchange-private.html: Added.
        * storage/indexeddb/modern/opendatabase-versions-private-expected.txt: Added.
        * storage/indexeddb/modern/opendatabase-versions-private.html: Added.
        * storage/indexeddb/modern/request-readystate-private-expected.txt: Added.
        * storage/indexeddb/modern/request-readystate-private.html: Added.
        * storage/indexeddb/modern/resources/opendatabase-request-event.js:
        * storage/indexeddb/modern/resources/opendatabase-versions.js:
        * storage/indexeddb/modern/resources/request-readystate.js:
        * storage/indexeddb/modern/resources/versionchange-abort-then-reopen.js:
        * storage/indexeddb/modern/transaction-scheduler-1-private-expected.txt: Added.
        * storage/indexeddb/modern/transaction-scheduler-1-private.html: Added.
        * storage/indexeddb/modern/transaction-scheduler-2-private-expected.txt: Added.
        * storage/indexeddb/modern/transaction-scheduler-2-private.html: Added.
        * storage/indexeddb/modern/transaction-scheduler-3-private-expected.txt: Added.
        * storage/indexeddb/modern/transaction-scheduler-3-private.html: Added.
        * storage/indexeddb/modern/transaction-scheduler-4-private-expected.txt: Added.
        * storage/indexeddb/modern/transaction-scheduler-4-private.html: Added.
        * storage/indexeddb/modern/transaction-scheduler-5-private-expected.txt: Added.
        * storage/indexeddb/modern/transaction-scheduler-5-private.html: Added.
        * storage/indexeddb/modern/transaction-scheduler-6-private-expected.txt: Added.
        * storage/indexeddb/modern/transaction-scheduler-6-private.html: Added.
        * storage/indexeddb/modern/transactions-stop-on-navigation-private-expected.txt: Added.
        * storage/indexeddb/modern/transactions-stop-on-navigation-private.html: Added.
        * storage/indexeddb/modern/versionchange-abort-then-reopen-private-expected.txt: Added.
        * storage/indexeddb/modern/versionchange-abort-then-reopen-private.html: Added.
        * storage/indexeddb/modern/versionchange-event-private-expected.txt: Added.
        * storage/indexeddb/modern/versionchange-event-private.html: Added.
        * storage/indexeddb/mozilla/add-twice-failure-private-expected.txt: Added.
        * storage/indexeddb/mozilla/add-twice-failure-private.html: Added.
        * storage/indexeddb/mozilla/autoincrement-indexes-private-expected.txt: Added.
        * storage/indexeddb/mozilla/autoincrement-indexes-private.html: Added.
        * storage/indexeddb/mozilla/bad-keypath-private-expected.txt: Added.
        * storage/indexeddb/mozilla/bad-keypath-private.html: Added.
        * storage/indexeddb/mozilla/clear-private-expected.txt: Added.
        * storage/indexeddb/mozilla/clear-private.html: Added.
        * storage/indexeddb/mozilla/create-index-unique-private-expected.txt: Added.
        * storage/indexeddb/mozilla/create-index-unique-private.html: Added.
        * storage/indexeddb/mozilla/create-index-with-integer-keys-private-expected.txt: Added.
        * storage/indexeddb/mozilla/create-index-with-integer-keys-private.html: Added.
        * storage/indexeddb/mozilla/create-objectstore-basics-private-expected.txt: Added.
        * storage/indexeddb/mozilla/create-objectstore-basics-private.html: Added.
        * storage/indexeddb/mozilla/create-objectstore-null-name-private-expected.txt: Added.
        * storage/indexeddb/mozilla/create-objectstore-null-name-private.html: Added.
        * storage/indexeddb/mozilla/cursor-mutation-objectstore-only-private-expected.txt: Added.
        * storage/indexeddb/mozilla/cursor-mutation-objectstore-only-private.html: Added.
        * storage/indexeddb/mozilla/cursor-mutation-private-expected.txt: Added.
        * storage/indexeddb/mozilla/cursor-mutation-private.html: Added.
        * storage/indexeddb/mozilla/cursor-update-updates-indexes-private-expected.txt: Added.
        * storage/indexeddb/mozilla/cursor-update-updates-indexes-private.html: Added.
        * storage/indexeddb/mozilla/cursors-private-expected.txt: Added.
        * storage/indexeddb/mozilla/cursors-private.html: Added.
        * storage/indexeddb/mozilla/delete-result-private-expected.txt: Added.
        * storage/indexeddb/mozilla/delete-result-private.html: Added.
        * storage/indexeddb/mozilla/event-source-private-expected.txt: Added.
        * storage/indexeddb/mozilla/event-source-private.html: Added.
        * storage/indexeddb/mozilla/global-data-private-expected.txt: Added.
        * storage/indexeddb/mozilla/global-data-private.html: Added.
        * storage/indexeddb/mozilla/index-prev-no-duplicate-private-expected.txt: Added.
        * storage/indexeddb/mozilla/index-prev-no-duplicate-private.html: Added.
        * storage/indexeddb/mozilla/indexes-private-expected.txt: Added.
        * storage/indexeddb/mozilla/indexes-private.html: Added.
        * storage/indexeddb/mozilla/key-requirements-delete-null-key-private-expected.txt: Added.
        * storage/indexeddb/mozilla/key-requirements-delete-null-key-private.html: Added.
        * storage/indexeddb/mozilla/key-requirements-inline-and-passed-private-expected.txt: Added.
        * storage/indexeddb/mozilla/key-requirements-inline-and-passed-private.html: Added.
        * storage/indexeddb/mozilla/key-requirements-private-expected.txt: Added.
        * storage/indexeddb/mozilla/key-requirements-private.html: Added.
        * storage/indexeddb/mozilla/key-requirements-put-no-key-private-expected.txt: Added.
        * storage/indexeddb/mozilla/key-requirements-put-no-key-private.html: Added.
        * storage/indexeddb/mozilla/key-requirements-put-null-key-private-expected.txt: Added.
        * storage/indexeddb/mozilla/key-requirements-put-null-key-private.html: Added.
        * storage/indexeddb/mozilla/object-cursors-private-expected.txt: Added.
        * storage/indexeddb/mozilla/object-cursors-private.html: Added.
        * storage/indexeddb/mozilla/object-identity-private-expected.txt: Added.
        * storage/indexeddb/mozilla/object-identity-private.html: Added.
        * storage/indexeddb/mozilla/object-store-inline-autoincrement-key-added-on-put-private-expected.txt: Added.
        * storage/indexeddb/mozilla/object-store-inline-autoincrement-key-added-on-put-private.html: Added.
        * storage/indexeddb/mozilla/object-store-remove-values-private-expected.txt: Added.
        * storage/indexeddb/mozilla/object-store-remove-values-private.html: Added.
        * storage/indexeddb/mozilla/objectstorenames-private-expected.txt: Added.
        * storage/indexeddb/mozilla/objectstorenames-private.html: Added.
        * storage/indexeddb/mozilla/odd-result-order-private-expected.txt: Added.
        * storage/indexeddb/mozilla/odd-result-order-private.html: Added.
        * storage/indexeddb/mozilla/open-database-null-name-private-expected.txt: Added.
        * storage/indexeddb/mozilla/open-database-null-name-private.html: Added.
        * storage/indexeddb/mozilla/put-get-values-private-expected.txt: Added.
        * storage/indexeddb/mozilla/put-get-values-private.html: Added.
        * storage/indexeddb/mozilla/readonly-transactions-private-expected.txt: Added.
        * storage/indexeddb/mozilla/readonly-transactions-private.html: Added.
        * storage/indexeddb/mozilla/readwrite-transactions-private-expected.txt: Added.
        * storage/indexeddb/mozilla/readwrite-transactions-private.html: Added.
        * storage/indexeddb/mozilla/readyState-private-expected.txt: Added.
        * storage/indexeddb/mozilla/readyState-private.html: Added.
        * storage/indexeddb/mozilla/remove-index-private-expected.txt: Added.
        * storage/indexeddb/mozilla/remove-index-private.html: Added.
        * storage/indexeddb/mozilla/remove-objectstore-private-expected.txt: Added.
        * storage/indexeddb/mozilla/remove-objectstore-private.html: Added.
        * storage/indexeddb/mozilla/versionchange-abort-private-expected.txt: Added.
        * storage/indexeddb/mozilla/versionchange-abort-private.html: Added.
        * storage/indexeddb/noblobs-private-expected.txt: Added.
        * storage/indexeddb/noblobs-private.html: Added.
        * storage/indexeddb/object-lookups-in-versionchange-private-expected.txt: Added.
        * storage/indexeddb/object-lookups-in-versionchange-private.html: Added.
        * storage/indexeddb/open-bad-versions-private-expected.txt: Added.
        * storage/indexeddb/open-bad-versions-private.html: Added.
        * storage/indexeddb/optional-arguments-private-expected.txt: Added.
        * storage/indexeddb/optional-arguments-private.html: Added.
        * storage/indexeddb/pending-version-change-stuck-works-with-terminate-private-expected.txt: Added.
        * storage/indexeddb/pending-version-change-stuck-works-with-terminate-private.html: Added.
        * storage/indexeddb/prefetch-invalidation-private-expected.txt: Added.
        * storage/indexeddb/prefetch-invalidation-private.html: Added.
        * storage/indexeddb/prefetch-race-private-expected.txt: Added.
        * storage/indexeddb/prefetch-race-private.html: Added.
        * storage/indexeddb/primary-key-unique-to-objectstore-private-expected.txt: Added.
        * storage/indexeddb/primary-key-unique-to-objectstore-private.html: Added.
        * storage/indexeddb/request-leak-private-expected.txt: Added.
        * storage/indexeddb/request-leak-private.html: Added.
        * storage/indexeddb/request-result-cache-private-expected.txt: Added.
        * storage/indexeddb/request-result-cache-private.html: Added.
        * storage/indexeddb/resources/primary-key-unique-to-objectstore.js:
        * storage/indexeddb/resources/shared.js:
        * storage/indexeddb/resources/version-change-event-basic.js:
        * storage/indexeddb/structured-clone-private-expected.txt: Added.
        * storage/indexeddb/structured-clone-private.html: Added.
        * storage/indexeddb/transaction-complete-with-js-recursion-cross-frame-private-expected.txt: Added.
        * storage/indexeddb/transaction-complete-with-js-recursion-cross-frame-private.html: Added.
        * storage/indexeddb/transaction-complete-with-js-recursion-private-expected.txt: Added.
        * storage/indexeddb/transaction-complete-with-js-recursion-private.html: Added.
        * storage/indexeddb/transaction-crash-in-tasks-private-expected.txt: Added.
        * storage/indexeddb/transaction-crash-in-tasks-private.html: Added.
        * storage/indexeddb/transaction-ordering-private-expected.txt: Added.
        * storage/indexeddb/transaction-ordering-private.html: Added.
        * storage/indexeddb/transaction-overlapping-private-expected.txt: Added.
        * storage/indexeddb/transaction-overlapping-private.html: Added.
        * storage/indexeddb/transaction-starvation-private-expected.txt: Removed.
        * storage/indexeddb/version-change-event-basic-private-expected.txt: Added.
        * storage/indexeddb/version-change-event-basic-private.html: Added.
        * storage/indexeddb/version-change-event-private-expected.txt: Added.
        * storage/indexeddb/version-change-event-private.html: Added.

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

        Update ios-simulator specific -expected.txt files after most recent WPT revision in r194580
        https://bugs.webkit.org/show_bug.cgi?id=152139

        Unreviewed test gardening.

        * platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-checkValidity-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-textselection-01-expected.txt:
        * platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/forms/the-label-element/labelable-elements-expected.txt:

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

        Follow up to r195361. Removing ios-simulator-wk2 fast/viewport/ios directory pass expectation, explicitly re-enabling passing tests
        https://bugs.webkit.org/show_bug.cgi?id=153110

        Unreviewed test gardening.

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

2016-01-20  Andy VanWagoner  <thetalecrafter@gmail.com>

        [INTL] Implement Date.prototype.toLocaleTimeString in ECMA-402
        https://bugs.webkit.org/show_bug.cgi?id=147613

        Reviewed by Darin Adler.

        Added tests for toLocaleTimeString.

        * js/date-toLocaleString-expected.txt:
        * js/script-tests/date-toLocaleString.js:

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

        Modern IDB: Make storage/indexeddb/modern tests more modern.
        https://bugs.webkit.org/show_bug.cgi?id=153284

        Reviewed by Alex Christensen.

        * storage/indexeddb/modern/abort-requests-cancelled-expected.txt:
        * storage/indexeddb/modern/aborted-put-expected.txt:
        * storage/indexeddb/modern/autoincrement-abort-expected.txt:
        * storage/indexeddb/modern/basic-add-expected.txt:
        * storage/indexeddb/modern/basic-put-expected.txt:
        * storage/indexeddb/modern/create-index-failures-expected.txt:
        * storage/indexeddb/modern/createobjectstore-basic-expected.txt:
        * storage/indexeddb/modern/createobjectstore-failures-expected.txt:
        * storage/indexeddb/modern/cursor-1-expected.txt:
        * storage/indexeddb/modern/cursor-2-expected.txt:
        * storage/indexeddb/modern/cursor-3-expected.txt:
        * storage/indexeddb/modern/cursor-4-expected.txt:
        * storage/indexeddb/modern/cursor-5-expected.txt:
        * storage/indexeddb/modern/cursor-6-expected.txt:
        * storage/indexeddb/modern/cursor-7-expected.txt:
        * storage/indexeddb/modern/cursor-8-expected.txt:
        * storage/indexeddb/modern/date-basic-expected.txt:
        * storage/indexeddb/modern/deletedatabase-1-expected.txt:
        * storage/indexeddb/modern/deletedatabase-2-expected.txt:
        * storage/indexeddb/modern/deleteindex-1-expected.txt:
        * storage/indexeddb/modern/deleteindex-2-expected.txt:
        * storage/indexeddb/modern/deleteobjectstore-1-expected.txt:
        * storage/indexeddb/modern/double-abort-expected.txt:
        * storage/indexeddb/modern/get-index-failures-expected.txt:
        * storage/indexeddb/modern/get-keyrange-expected.txt:
        * storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures-expected.txt:
        * storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt:
        * storage/indexeddb/modern/idbindex-properties-basic-expected.txt:
        * storage/indexeddb/modern/idbobjectstore-clear-1-expected.txt:
        * storage/indexeddb/modern/idbobjectstore-clear-2-expected.txt:
        * storage/indexeddb/modern/idbobjectstore-count-1-expected.txt:
        * storage/indexeddb/modern/idbobjectstore-count-failures-expected.txt:
        * storage/indexeddb/modern/idbobjectstore-delete-1-expected.txt:
        * storage/indexeddb/modern/idbobjectstore-delete-2-expected.txt:
        * storage/indexeddb/modern/idbobjectstore-delete-failures-expected.txt:
        * storage/indexeddb/modern/idbobjectstore-get-failures-expected.txt:
        * storage/indexeddb/modern/idbobjectstore-put-and-clear-failures-expected.txt:
        * storage/indexeddb/modern/idbtransaction-objectstore-failures-expected.txt:
        * storage/indexeddb/modern/index-1-expected.txt:
        * storage/indexeddb/modern/index-2-expected.txt:
        * storage/indexeddb/modern/index-3-expected.txt:
        * storage/indexeddb/modern/index-4-expected.txt:
        * storage/indexeddb/modern/index-5-expected.txt:
        * storage/indexeddb/modern/index-cursor-1-expected.txt:
        * storage/indexeddb/modern/index-cursor-2-expected.txt:
        * storage/indexeddb/modern/index-cursor-3-expected.txt:
        * storage/indexeddb/modern/index-get-count-basic-expected.txt:
        * storage/indexeddb/modern/index-get-count-failures-expected.txt:
        * storage/indexeddb/modern/keypath-basic-expected.txt:
        * storage/indexeddb/modern/objectstore-attributes-expected.txt:
        * storage/indexeddb/modern/objectstore-cursor-advance-failures-expected.txt:
        * storage/indexeddb/modern/objectstore-cursor-continue-failures-expected.txt:
        * storage/indexeddb/modern/opencursor-failures-expected.txt:
        * storage/indexeddb/modern/opendatabase-success-after-versionchange-expected.txt:
        * storage/indexeddb/modern/opendatabase-versions-expected.txt:
        * storage/indexeddb/modern/resources/abort-requests-cancelled.js:
        * storage/indexeddb/modern/resources/aborted-put.js:
        * storage/indexeddb/modern/resources/autoincrement-abort.js:
        * storage/indexeddb/modern/resources/basic-add.js:
        * storage/indexeddb/modern/resources/basic-put.js:
        * storage/indexeddb/modern/resources/create-index-failures.js:
        * storage/indexeddb/modern/resources/createobjectstore-basic.js:
        * storage/indexeddb/modern/resources/createobjectstore-failures.js:
        * storage/indexeddb/modern/resources/cursor-1.js:
        * storage/indexeddb/modern/resources/cursor-2.js:
        * storage/indexeddb/modern/resources/cursor-3.js:
        * storage/indexeddb/modern/resources/cursor-4.js:
        * storage/indexeddb/modern/resources/cursor-5.js:
        * storage/indexeddb/modern/resources/cursor-6.js:
        * storage/indexeddb/modern/resources/cursor-7.js:
        * storage/indexeddb/modern/resources/cursor-8.js:
        * storage/indexeddb/modern/resources/date-basic.js:
        * storage/indexeddb/modern/resources/deletedatabase-1.js:
        * storage/indexeddb/modern/resources/deletedatabase-2.js:
        * storage/indexeddb/modern/resources/deletedatabase-null-name-exception.js:
        * storage/indexeddb/modern/resources/deletedatabase-request-event.js:
        * storage/indexeddb/modern/resources/deletedatabase-request.js:
        * storage/indexeddb/modern/resources/deleteindex-1.js:
        * storage/indexeddb/modern/resources/deleteindex-2.js:
        * storage/indexeddb/modern/resources/deleteobjectstore-1.js:
        * storage/indexeddb/modern/resources/double-abort.js:
        * storage/indexeddb/modern/resources/double-open.js:
        * storage/indexeddb/modern/resources/get-index-failures.js:
        * storage/indexeddb/modern/resources/get-keyrange.js:
        * storage/indexeddb/modern/resources/idbdatabase-deleteobjectstore-failures.js:
        * storage/indexeddb/modern/resources/idbdatabase-transaction-failures.js:
        * storage/indexeddb/modern/resources/idbindex-properties-basic.js:
        * storage/indexeddb/modern/resources/idbobjectstore-clear-1.js:
        * storage/indexeddb/modern/resources/idbobjectstore-clear-2.js:
        * storage/indexeddb/modern/resources/idbobjectstore-count-1.js:
        * storage/indexeddb/modern/resources/idbobjectstore-count-failures.js:
        * storage/indexeddb/modern/resources/idbobjectstore-delete-1.js:
        * storage/indexeddb/modern/resources/idbobjectstore-delete-2.js:
        * storage/indexeddb/modern/resources/idbobjectstore-delete-failures.js:
        * storage/indexeddb/modern/resources/idbobjectstore-get-failures.js:
        * storage/indexeddb/modern/resources/idbobjectstore-put-and-clear-failures.js:
        * storage/indexeddb/modern/resources/idbtransaction-objectstore-failures.js:
        * storage/indexeddb/modern/resources/index-1.js:
        * storage/indexeddb/modern/resources/index-2.js:
        * storage/indexeddb/modern/resources/index-3.js:
        * storage/indexeddb/modern/resources/index-4.js:
        * storage/indexeddb/modern/resources/index-5.js:
        * storage/indexeddb/modern/resources/index-cursor-1.js:
        * storage/indexeddb/modern/resources/index-cursor-2.js:
        * storage/indexeddb/modern/resources/index-cursor-3.js:
        * storage/indexeddb/modern/resources/index-get-count-basic.js:
        * storage/indexeddb/modern/resources/index-get-count-failures.js:
        * storage/indexeddb/modern/resources/keypath-basic.js:
        * storage/indexeddb/modern/resources/objectstore-attributes.js:
        * storage/indexeddb/modern/resources/objectstore-cursor-advance-failures.js:
        * storage/indexeddb/modern/resources/objectstore-cursor-continue-failures.js:
        * storage/indexeddb/modern/resources/opencursor-failures.js:
        * storage/indexeddb/modern/resources/opendatabase-request-event.js:
        * storage/indexeddb/modern/resources/opendatabase-request.js:
        * storage/indexeddb/modern/resources/opendatabase-success-after-versionchange.js:
        * storage/indexeddb/modern/resources/opendatabase-versions.js:
        * storage/indexeddb/modern/resources/request-readystate.js:
        * storage/indexeddb/modern/resources/transaction-scheduler-1.js:
        * storage/indexeddb/modern/resources/transaction-scheduler-2.js:
        * storage/indexeddb/modern/resources/transaction-scheduler-3.js:
        * storage/indexeddb/modern/resources/transaction-scheduler-5.js:
        * storage/indexeddb/modern/resources/transaction-scheduler-6.js:
        * storage/indexeddb/modern/resources/versionchange-abort-then-reopen.js:
        * storage/indexeddb/modern/resources/versionchange-event.js:
        * storage/indexeddb/modern/transaction-scheduler-1-expected.txt:
        * storage/indexeddb/modern/transaction-scheduler-2-expected.txt:
        * storage/indexeddb/modern/transaction-scheduler-3-expected.txt:
        * storage/indexeddb/modern/transaction-scheduler-5-expected.txt:
        * storage/indexeddb/modern/transaction-scheduler-6-expected.txt:
        * storage/indexeddb/modern/versionchange-abort-then-reopen-expected.txt:
        * storage/indexeddb/modern/versionchange-event-expected.txt:

2016-01-20  Saam barati  <sbarati@apple.com>

        Web Inspector: Hook the sampling profiler into the Timelines UI
        https://bugs.webkit.org/show_bug.cgi?id=152766
        <rdar://problem/24066360>

        Reviewed by Joseph Pecoraro.

        * inspector/sampling-profiler: Added.
        * inspector/sampling-profiler/basic-expected.txt: Added.
        * inspector/sampling-profiler/basic.html: Added.
        * inspector/sampling-profiler/call-frame-with-dom-functions-expected.txt: Added.
        * inspector/sampling-profiler/call-frame-with-dom-functions.html: Added.
        * inspector/sampling-profiler/eval-source-url-expected.txt: Added.
        * inspector/sampling-profiler/eval-source-url.html: Added.
        * inspector/sampling-profiler/many-call-frames-expected.txt: Added.
        * inspector/sampling-profiler/many-call-frames.html: Added.
        * inspector/sampling-profiler/named-function-expression-expected.txt: Added.
        * inspector/sampling-profiler/named-function-expression.html: Added.
        * inspector/script-profiler/event-type-API-expected.txt:
        * inspector/script-profiler/event-type-API.html:
        * inspector/script-profiler/event-type-Microtask-expected.txt:
        * inspector/script-profiler/event-type-Microtask.html:
        * inspector/script-profiler/event-type-Other-expected.txt:
        * inspector/script-profiler/event-type-Other.html:
        * inspector/script-profiler/tracking-expected.txt:
        * inspector/script-profiler/tracking.html:

2016-01-20  Daniel Bates  <dabates@apple.com>

        CSP: Add tests to ensure that alternative text of an image is rendered when CSP blocks its load
        https://bugs.webkit.org/show_bug.cgi?id=153280

        Reviewed by Alexey Proskuryakov.

        These tests were inspired by the Blink test
        <https://src.chromium.org/viewvc/blink/trunk/LayoutTests/http/tests/security/contentSecurityPolicy/image-blocked-alt-content.html?revision=186800>.

        * http/tests/security/contentSecurityPolicy/image-blocked-alt-text-expected.html: Added.
        * http/tests/security/contentSecurityPolicy/image-blocked-alt-text.html: Added.
        * http/tests/security/contentSecurityPolicy/image-data-URL-blocked-alt-text-expected.html: Added.
        * http/tests/security/contentSecurityPolicy/image-data-URL-blocked-alt-text.html: Added.

2016-01-20  Daniel Bates  <dabates@apple.com>

        CSP: Merge from Blink many new tests and changes to existing tests
        https://bugs.webkit.org/show_bug.cgi?id=153277
        <rdar://problem/24260782>

        Reviewed by Brent Fulgham.

        Merge new Content Security Policy tests from Blink as well as changes made to existing tests
        as of Blink r202656: <https://src.chromium.org/viewvc/blink/trunk/LayoutTests/http/tests/security/contentSecurityPolicy/?pathrev=202656>.
        Many of these new tests fail and have been marked accordingly with associated WebKit bugs in
        TestExpectations. We also do not run CSP 1.1 tests as we do not compile with ENABLE(CSP_NEXT)
        enabled (see <https://bugs.webkit.org/show_bug.cgi?id=85558>). We will look to enable CSP 1.1
        and make all these merged tests pass in subsequent commits.

        One non-mechanical change I made is that I removed the sub-test for shared workers when
        merging http/tests/security/contentSecurityPolicy/worker-without-own-csp.html as WebKit does
        not support shared workers. I also swapped the argument order in the call to assert_equals()
        in the remaining sub-test so that the expected result, "xhr allowed", is the second argument (as
        expected by assert_equals()) and hence the failure message would read well.

        The tests http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-overrides-xfo.html,
        http/tests/security/contentSecurityPolicy/1.1/{script, style}hash-default-src.html do not have
        expected results and are skipped for now. These tests do not have expected results because no
        expected results were committed to Blink and it is not straightforward to generate the expected
        result without reasoning about the test or compiling Blink. When it comes time to enable CSP 1.1
        support we can generate the expected results and verify correctness.

        * TestExpectations:
        * http/tests/security/contentSecurityPolicy/1.1/child-src/frame-about-blank-allowed-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/child-src/frame-about-blank-allowed.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/child-src/frame-allowed-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/child-src/frame-allowed.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/child-src/frame-blocked-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/child-src/frame-blocked.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/child-src/frame-redirect-blocked-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/child-src/frame-redirect-blocked.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/child-src/worker-allowed-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/child-src/worker-allowed.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/child-src/worker-blocked-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/child-src/worker-blocked.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/child-src/worker-shared-allowed-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/child-src/worker-shared-allowed.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/child-src/worker-shared-blocked-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/child-src/worker-shared-blocked.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-cross-none-block-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-cross-none-block.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-cross-self-block-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-cross-self-block.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-cross-star-allow-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-cross-star-allow.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-cross-url-allow-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-cross-url-allow.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-cross-url-block-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-cross-url-block.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-same-none-block-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-same-none-block.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-same-self-block-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-same-self-block.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-same-star-allow-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-same-star-allow.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-same-url-allow-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-same-url-allow.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-same-url-block-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-cross-in-same-url-block.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-cross-none-block-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-cross-none-block.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-cross-self-block-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-cross-self-block.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-cross-star-allow-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-cross-star-allow.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-cross-url-allow-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-cross-url-allow.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-cross-url-block-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-cross-url-block.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-same-none-block-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-same-none-block.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-same-self-allow-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-same-self-allow.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-same-star-allow-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-same-star-allow.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-same-url-allow-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-same-url-allow.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-same-url-block-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-nested-same-in-same-url-block.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-none-block-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-none-block.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-overrides-xfo.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-protocolless-allow-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-protocolless-allow.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-self-allow-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-self-allow.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-self-block-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-self-block.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-star-allow-crossorigin-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-star-allow-crossorigin.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-star-allow-sameorigin-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-star-allow-sameorigin.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-url-allow-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-url-allow.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-url-block-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-url-block.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/meta-outside-head-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/meta-outside-head.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/plugintypes-affects-child-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/plugintypes-affects-child.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/plugintypes-invalid.html:
        * http/tests/security/contentSecurityPolicy/1.1/referrer-always-http-http-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-always-http-http.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-always-http-https-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-always-http-https.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-always-https-http-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-always-https-http.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-always-https-https-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-always-https-https.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-default-http-http-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-default-http-http.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-default-http-https-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-default-http-https.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-default-https-http-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-default-https-http.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-default-https-https-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-default-https-https.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-empty-http-http-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-empty-http-http.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-empty-http-https-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-empty-http-https.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-empty-https-http-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-empty-https-http.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-empty-https-https-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-empty-https-https.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-invalid-http-http-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-invalid-http-http.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-invalid-http-https-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-invalid-http-https.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-invalid-https-http-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-invalid-https-http.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-invalid-https-https-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-invalid-https-https.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-never-http-http-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-never-http-http.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-never-http-https-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-never-http-https.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-never-https-http-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-never-https-http.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-never-https-https-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-never-https-https.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-origin-http-http-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-origin-http-http.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-origin-http-https-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-origin-http-https.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-origin-https-http-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-origin-https-http.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-origin-https-https-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/referrer-origin-https-https.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/report-uri-effective-directive-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/reportonly-in-meta-ignored-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/reportonly-in-meta-ignored.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-basic-blocked-error-event-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-basic-blocked-error-event.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-basic-blocked-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-basic-blocked.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-default-src.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-ignore-unsafeinline-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-ignore-unsafeinline.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-malformed-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-malformed.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-unicode-normalization-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/scripthash-unicode-normalization.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-and-scripthash-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-and-scripthash.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-basic-blocked-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-basic-blocked.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/source-list-parsing-03-expected.txt.
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-ignore-unsafeinline-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-ignore-unsafeinline.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-invalidnonce-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/source-list-parsing-07-expected.txt.
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-invalidnonce.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-redirect-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/scriptnonce-redirect.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-basics-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-basics.html:
        * http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-cross-origin-image-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-cross-origin-image-from-script-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-cross-origin-image-from-script.html:
        * http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-cross-origin-image.html:
        * http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-image-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-image-from-script-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-image-from-script.html:
        * http/tests/security/contentSecurityPolicy/1.1/securitypolicyviolation-block-image.html:
        * http/tests/security/contentSecurityPolicy/1.1/stylehash-allowed-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/stylehash-allowed.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/stylehash-basic-blocked-error-event-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/stylehash-basic-blocked-error-event.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/stylehash-basic-blocked-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/stylehash-basic-blocked.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/stylehash-default-src.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/stylehash-svg-style-basic-blocked-error-event-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/stylehash-svg-style-basic-blocked-error-event.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/stylenonce-allowed-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/stylenonce-allowed.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/stylenonce-basic-blocked-error-event-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/stylenonce-basic-blocked-error-event.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/stylenonce-blocked-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/stylenonce-blocked.html: Added.
        * http/tests/security/contentSecurityPolicy/1.1/stylenonce-svg-style-basic-blocked-error-event-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/1.1/stylenonce-svg-style-basic-blocked-error-event.html: Added.
        * http/tests/security/contentSecurityPolicy/blob-urls-match-self.html:
        * http/tests/security/contentSecurityPolicy/connect-src-eventsource-redirect-to-blocked-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/connect-src-eventsource-redirect-to-blocked.html: Added.
        * http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-redirect-to-blocked-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-redirect-to-blocked.html: Added.
        * http/tests/security/contentSecurityPolicy/csp-header-is-sent-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/csp-header-is-sent.html: Added.
        * http/tests/security/contentSecurityPolicy/eval-allowed-in-report-only-mode-and-sends-report-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/eval-allowed-in-report-only-mode-and-sends-report.html: Added.
        * http/tests/security/contentSecurityPolicy/eval-blocked-and-sends-report-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/eval-blocked-and-sends-report.html: Added.
        * http/tests/security/contentSecurityPolicy/frame-src-cross-origin-load-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/frame-src-cross-origin-load.html: Added.
        * http/tests/security/contentSecurityPolicy/icon-allowed-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/icon-allowed.html: Added.
        * http/tests/security/contentSecurityPolicy/icon-blocked-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/icon-blocked.html: Added.
        * http/tests/security/contentSecurityPolicy/image-document-default-src-none-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/image-document-default-src-none.html: Added.
        * http/tests/security/contentSecurityPolicy/inline-event-handler-blocked-after-injecting-meta-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/inline-event-handler-blocked-after-injecting-meta.html: Added.
        * http/tests/security/contentSecurityPolicy/manifest-src-allowed-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/manifest-src-allowed.html: Added.
        * http/tests/security/contentSecurityPolicy/manifest-src-blocked-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/manifest-src-blocked.html: Added.
        * http/tests/security/contentSecurityPolicy/manifest.test/manifest.json: Added.
        * http/tests/security/contentSecurityPolicy/object-in-svg-foreignobject-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/object-in-svg-foreignobject.html: Added.
        * http/tests/security/contentSecurityPolicy/object-src-applet-archive-codebase-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/object-src-applet-archive-codebase.html: Added.
        * http/tests/security/contentSecurityPolicy/object-src-applet-archive-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/object-src-applet-archive.html: Added.
        * http/tests/security/contentSecurityPolicy/object-src-applet-code-codebase-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/object-src-applet-code-codebase.html: Added.
        * http/tests/security/contentSecurityPolicy/object-src-applet-code-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/object-src-applet-code.html: Added.
        * http/tests/security/contentSecurityPolicy/object-src-does-not-affect-child-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/object-src-does-not-affect-child.html: Added.
        * http/tests/security/contentSecurityPolicy/object-src-param-code-blocked-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/object-src-param-code-blocked.html: Added.
        * http/tests/security/contentSecurityPolicy/object-src-param-movie-blocked-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/object-src-param-movie-blocked.html: Added.
        * http/tests/security/contentSecurityPolicy/object-src-param-src-blocked-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/object-src-param-src-blocked.html: Added.
        * http/tests/security/contentSecurityPolicy/object-src-param-url-blocked-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/object-src-param-url-blocked.html: Added.
        * http/tests/security/contentSecurityPolicy/plugin-in-iframe-with-csp-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/plugin-in-iframe-with-csp.html: Added.
        * http/tests/security/contentSecurityPolicy/redirect-does-not-match-paths-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/redirect-does-not-match-paths.html: Added.
        * http/tests/security/contentSecurityPolicy/register-bypassing-scheme-partial-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/register-bypassing-scheme-partial.html: Added.
        * http/tests/security/contentSecurityPolicy/report-and-enforce-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-and-enforce.html:
        * 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-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-multiple-violations-01-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/report-multiple-violations-01.html: Added.
        * http/tests/security/contentSecurityPolicy/report-multiple-violations-02-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/report-multiple-violations-02.html: Added.
        * http/tests/security/contentSecurityPolicy/report-only-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-only-from-header-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies-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: Added.
        * http/tests/security/contentSecurityPolicy/report-uri-scheme-relative.html: Added.
        * http/tests/security/contentSecurityPolicy/resources/alert-pass.js: Added.
        * http/tests/security/contentSecurityPolicy/resources/child-src-test.js: Added.
        (window.onload):
        (injectFrame):
        (iframeLoaded):
        (injectFrameRedirectingTo):
        (injectWorker):
        (injectSharedWorker):
        * http/tests/security/contentSecurityPolicy/resources/csp-header-is-sent.js: Added.
        (async_test.xhr.onload):
        (async_test):
        (test):
        * http/tests/security/contentSecurityPolicy/resources/fail-to-inject-script.js: Added.
        (s.onerror):
        (s.onload):
        * http/tests/security/contentSecurityPolicy/resources/frame-ancestors-and-x-frame-options.pl: Added.
        * http/tests/security/contentSecurityPolicy/resources/frame-ancestors-test.js: Added.
        (injectNestedIframe):
        (injectIFrame):
        (iframeLoaded):
        (crossOriginFrameShouldBeBlocked.window.onload):
        (crossOriginFrameShouldBeBlocked):
        (crossOriginFrameShouldBeAllowed.window.onload):
        (crossOriginFrameShouldBeAllowed):
        (sameOriginFrameShouldBeBlocked.window.onload):
        (sameOriginFrameShouldBeBlocked):
        (sameOriginFrameShouldBeAllowed.window.onload):
        (sameOriginFrameShouldBeAllowed):
        (window.onload):
        (testNestedIFrame):
        * http/tests/security/contentSecurityPolicy/resources/frame-ancestors.pl: Added.
        * http/tests/security/contentSecurityPolicy/resources/frame-in-frame.pl: Added.
        * http/tests/security/contentSecurityPolicy/resources/generate-csp-report.html: Added.
        * http/tests/security/contentSecurityPolicy/resources/iframe-redirect-not-allowed.html: Added.
        * http/tests/security/contentSecurityPolicy/resources/image-document-default-src-none-iframe.php: Added.
        * http/tests/security/contentSecurityPolicy/resources/multiple-iframe-test.js:
        * http/tests/security/contentSecurityPolicy/resources/nph-cached-csp.pl:
        * http/tests/security/contentSecurityPolicy/resources/object-src-param.js: Added.
        (appendObjectElement.window.onload):
        (appendObjectElement):
        * http/tests/security/contentSecurityPolicy/resources/post-message.js: Added.
        * http/tests/security/contentSecurityPolicy/resources/redir.php: Added.
        * http/tests/security/contentSecurityPolicy/resources/redirect-does-not-match-paths.js: Added.
        (test):
        (async_test.img.onload):
        (async_test):
        (async_test.xhr.onload):
        * http/tests/security/contentSecurityPolicy/resources/redirect.pl: Added.
        * http/tests/security/contentSecurityPolicy/resources/referrer-test-endpoint.php: Added.
        * http/tests/security/contentSecurityPolicy/resources/referrer-test.js: Added.
        (ReferrerTest.bindHandler):
        (ReferrerTest.base):
        (ReferrerTest.generateFrameURL):
        (ReferrerTest.injectFrame):
        (expectFullReferrer):
        (expectNoReferrer):
        (expectOriginReferrer):
        * http/tests/security/contentSecurityPolicy/resources/referrer-test.php: Added.
        * http/tests/security/contentSecurityPolicy/resources/sandbox.php:
        * http/tests/security/contentSecurityPolicy/resources/script-redirect-not-allowed.js: Added.
        * http/tests/security/contentSecurityPolicy/resources/script-set-value.js: Added.
        * http/tests/security/contentSecurityPolicy/resources/style-set-red.css: Added.
        (p):
        * http/tests/security/contentSecurityPolicy/resources/stylesheet-redirect-not-allowed.css: Added.
        (body):
        * http/tests/security/contentSecurityPolicy/resources/test-csp-header.pl: Added.
        * http/tests/security/contentSecurityPolicy/resources/worker.php: Added.
        * http/tests/security/contentSecurityPolicy/resources/xhr-redirect-not-allowed.pl: Added.
        * http/tests/security/contentSecurityPolicy/sandbox-report-only-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/sandbox-report-only.html: Added.
        * http/tests/security/contentSecurityPolicy/script-src-appended-script-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/script-src-appended-script.html: Added.
        * http/tests/security/contentSecurityPolicy/script-src-blocked-error-event-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/script-src-blocked-error-event.html: Added.
        * http/tests/security/contentSecurityPolicy/script-src-redirect-expected.txt:
        * http/tests/security/contentSecurityPolicy/script-src-redirect.html:
        * http/tests/security/contentSecurityPolicy/source-list-parsing-03-expected.txt:
        * http/tests/security/contentSecurityPolicy/source-list-parsing-03.html:
        * http/tests/security/contentSecurityPolicy/source-list-parsing-07-expected.txt:
        * http/tests/security/contentSecurityPolicy/source-list-parsing-07.html:
        * http/tests/security/contentSecurityPolicy/source-list-parsing-paths-03-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/source-list-parsing-paths-03.html: Added.
        * http/tests/security/contentSecurityPolicy/style-src-blocked-error-event-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/style-src-blocked-error-event.html: Added.
        * http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp.html: Added.
        * http/tests/security/contentSecurityPolicy/worker-connect-src-allowed.html:
        * http/tests/security/contentSecurityPolicy/worker-connect-src-blocked.html:
        * http/tests/security/contentSecurityPolicy/worker-eval-blocked.html:
        * http/tests/security/contentSecurityPolicy/worker-function-function-blocked.html:
        * http/tests/security/contentSecurityPolicy/worker-importscripts-blocked-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/worker-importscripts-blocked.html: Added.
        * http/tests/security/contentSecurityPolicy/worker-multiple-csp-headers-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/worker-multiple-csp-headers.html: Added.
        * http/tests/security/contentSecurityPolicy/worker-script-src-expected.txt:
        * http/tests/security/contentSecurityPolicy/worker-script-src.html:
        * http/tests/security/contentSecurityPolicy/worker-set-timeout-blocked.html:
        * http/tests/security/contentSecurityPolicy/worker-without-own-csp-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/worker-without-own-csp.html: Added.
        * platform/wk2/TestExpectations:

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

        Marking three fast/viewport/ios/width-is-device-width-overflowing* tests as flaky on ios-simulator.
        https://bugs.webkit.org/show_bug.cgi?id=153110

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

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

        Drop support for obsolete Node.isSupported()
        https://bugs.webkit.org/show_bug.cgi?id=153164

        Reviewed by Darin Adler.

        Drop obsolete DOM tests.

        * dom/html/level2/html/HTMLBodyElement07-expected.txt: Removed.
        * dom/html/level2/html/HTMLBodyElement07.html: Removed.
        * dom/html/level2/html/HTMLBodyElement07.js: Removed.
        * dom/html/level2/html/HTMLBodyElement08-expected.txt: Removed.
        * dom/html/level2/html/HTMLBodyElement08.html: Removed.
        * dom/html/level2/html/HTMLBodyElement08.js: Removed.
        * dom/html/level2/html/HTMLBodyElement09-expected.txt: Removed.
        * dom/html/level2/html/HTMLBodyElement09.html: Removed.
        * dom/html/level2/html/HTMLBodyElement09.js: Removed.
        * dom/html/level2/html/HTMLBodyElement10-expected.txt: Removed.
        * dom/html/level2/html/HTMLBodyElement10.html: Removed.
        * dom/html/level2/html/HTMLBodyElement10.js: Removed.
        * dom/html/level2/html/HTMLBodyElement11-expected.txt: Removed.
        * dom/html/level2/html/HTMLBodyElement11.html: Removed.
        * dom/html/level2/html/HTMLBodyElement11.js: Removed.
        * dom/html/level2/html/HTMLBodyElement12-expected.txt: Removed.
        * dom/html/level2/html/HTMLBodyElement12.html: Removed.
        * dom/html/level2/html/HTMLBodyElement12.js: Removed.
        * dom/html/level2/html/HTMLDocument22-expected.txt: Removed.
        * dom/html/level2/html/HTMLDocument22.html: Removed.
        * dom/html/level2/html/HTMLDocument22.js: Removed.
        * dom/html/level2/html/HTMLDocument23-expected.txt: Removed.
        * dom/html/level2/html/HTMLDocument23.html: Removed.
        * dom/html/level2/html/HTMLDocument23.js: Removed.
        * dom/html/level2/html/HTMLDocument24-expected.txt: Removed.
        * dom/html/level2/html/HTMLDocument24.html: Removed.
        * dom/html/level2/html/HTMLDocument24.js: Removed.
        * dom/html/level2/html/HTMLDocument25-expected.txt: Removed.
        * dom/html/level2/html/HTMLDocument25.html: Removed.
        * dom/html/level2/html/HTMLDocument25.js: Removed.
        * dom/html/level2/html/HTMLDocument26-expected.txt: Removed.
        * dom/html/level2/html/HTMLDocument26.html: Removed.
        * dom/html/level2/html/HTMLDocument26.js: Removed.
        * dom/html/level2/html/HTMLDocument27-expected.txt: Removed.
        * dom/html/level2/html/HTMLDocument27.html: Removed.
        * dom/html/level2/html/HTMLDocument27.js: Removed.
        * dom/svg/level3/xpath/Conformance_isSupported_3-expected.txt: Removed.
        * dom/svg/level3/xpath/Conformance_isSupported_3.js: Removed.
        * dom/svg/level3/xpath/Conformance_isSupported_3.svg: Removed.
        * dom/svg/level3/xpath/Conformance_isSupported_empty-expected.txt: Removed.
        * dom/svg/level3/xpath/Conformance_isSupported_empty.js: Removed.
        * dom/svg/level3/xpath/Conformance_isSupported_empty.svg: Removed.
        * dom/svg/level3/xpath/Conformance_isSupported_null-expected.txt: Removed.
        * dom/svg/level3/xpath/Conformance_isSupported_null.js: Removed.
        * dom/svg/level3/xpath/Conformance_isSupported_null.svg: Removed.
        * dom/xhtml/level2/html/HTMLBodyElement07-expected.txt: Removed.
        * dom/xhtml/level2/html/HTMLBodyElement07.js: Removed.
        * dom/xhtml/level2/html/HTMLBodyElement07.xhtml: Removed.
        * dom/xhtml/level2/html/HTMLBodyElement08-expected.txt: Removed.
        * dom/xhtml/level2/html/HTMLBodyElement08.js: Removed.
        * dom/xhtml/level2/html/HTMLBodyElement08.xhtml: Removed.
        * dom/xhtml/level2/html/HTMLBodyElement09-expected.txt: Removed.
        * dom/xhtml/level2/html/HTMLBodyElement09.js: Removed.
        * dom/xhtml/level2/html/HTMLBodyElement09.xhtml: Removed.
        * dom/xhtml/level2/html/HTMLBodyElement10-expected.txt: Removed.
        * dom/xhtml/level2/html/HTMLBodyElement10.js: Removed.
        * dom/xhtml/level2/html/HTMLBodyElement10.xhtml: Removed.
        * dom/xhtml/level2/html/HTMLBodyElement11-expected.txt: Removed.
        * dom/xhtml/level2/html/HTMLBodyElement11.js: Removed.
        * dom/xhtml/level2/html/HTMLBodyElement11.xhtml: Removed.
        * dom/xhtml/level2/html/HTMLBodyElement12-expected.txt: Removed.
        * dom/xhtml/level2/html/HTMLBodyElement12.js: Removed.
        * dom/xhtml/level2/html/HTMLBodyElement12.xhtml: Removed.
        * dom/xhtml/level2/html/HTMLDocument22-expected.txt: Removed.
        * dom/xhtml/level2/html/HTMLDocument22.js: Removed.
        * dom/xhtml/level2/html/HTMLDocument22.xhtml: Removed.
        * dom/xhtml/level2/html/HTMLDocument23-expected.txt: Removed.
        * dom/xhtml/level2/html/HTMLDocument23.js: Removed.
        * dom/xhtml/level2/html/HTMLDocument23.xhtml: Removed.
        * dom/xhtml/level2/html/HTMLDocument24-expected.txt: Removed.
        * dom/xhtml/level2/html/HTMLDocument24.js: Removed.
        * dom/xhtml/level2/html/HTMLDocument24.xhtml: Removed.
        * dom/xhtml/level2/html/HTMLDocument25-expected.txt: Removed.
        * dom/xhtml/level2/html/HTMLDocument25.js: Removed.
        * dom/xhtml/level2/html/HTMLDocument25.xhtml: Removed.
        * dom/xhtml/level2/html/HTMLDocument26-expected.txt: Removed.
        * dom/xhtml/level2/html/HTMLDocument26.js: Removed.
        * dom/xhtml/level2/html/HTMLDocument26.xhtml: Removed.
        * dom/xhtml/level2/html/HTMLDocument27-expected.txt: Removed.
        * dom/xhtml/level2/html/HTMLDocument27.js: Removed.
        * dom/xhtml/level2/html/HTMLDocument27.xhtml: Removed.
        * fast/dom/features-expected.txt:
        * fast/dom/features.html:

2016-01-19  Nikita Vasilyev  <nvasilyev@apple.com>

        Web Inspector: Fix inspector/model/remote-object.html test
        https://bugs.webkit.org/show_bug.cgi?id=153261
        <rdar://problem/24249553>

        Reviewed by Timothy Hatcher.

        Rebaseline the test for Mac platform that broke in r195305.

        * platform/mac/inspector/model/remote-object-expected.txt:

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

        DocumentType.publicId / systemId should never return null
        https://bugs.webkit.org/show_bug.cgi?id=153264

        Reviewed by Ryosuke Niwa.

        Drop outdated DOM test.

        * dom/xhtml/level3/core/documentgetdoctype01-expected.txt: Removed.
        * dom/xhtml/level3/core/documentgetdoctype01.js: Removed.
        * dom/xhtml/level3/core/documentgetdoctype01.xhtml: Removed.

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

        Modern IDB: Remove unneeded "Alert: " string from storage/indexeddb/modern tests.
        https://bugs.webkit.org/show_bug.cgi?id=153257

        Reviewed by Sam Weinig.
        
        These were put in to minimize the diff for https://trac.webkit.org/changeset/195321 and
        make it easier to review.
        
        Now they can be removed.

        * storage/indexeddb/modern/aborted-put-expected.txt:
        * storage/indexeddb/modern/autoincrement-abort-expected.txt:
        * storage/indexeddb/modern/basic-add-expected.txt:
        * storage/indexeddb/modern/basic-put-expected.txt:
        * storage/indexeddb/modern/createobjectstore-basic-expected.txt:
        * storage/indexeddb/modern/createobjectstore-failures-expected.txt:
        * storage/indexeddb/modern/date-basic-expected.txt:
        * storage/indexeddb/modern/deletedatabase-null-name-exception-expected.txt:
        * storage/indexeddb/modern/deletedatabase-request-event-expected.txt:
        * storage/indexeddb/modern/deletedatabase-request-expected.txt:
        * storage/indexeddb/modern/deleteobjectstore-1-expected.txt:
        * storage/indexeddb/modern/double-abort-expected.txt:
        * storage/indexeddb/modern/get-keyrange-expected.txt:
        * storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures-expected.txt:
        * storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt:
        * storage/indexeddb/modern/idbindex-properties-basic-expected.txt:
        * storage/indexeddb/modern/idbobjectstore-clear-1-expected.txt:
        * storage/indexeddb/modern/idbobjectstore-clear-2-expected.txt:
        * storage/indexeddb/modern/idbobjectstore-count-1-expected.txt:
        * storage/indexeddb/modern/idbobjectstore-count-failures-expected.txt:
        * storage/indexeddb/modern/idbobjectstore-get-failures-expected.txt:
        * storage/indexeddb/modern/idbobjectstore-put-and-clear-failures-expected.txt:
        * storage/indexeddb/modern/idbtransaction-objectstore-failures-expected.txt:
        * storage/indexeddb/modern/keypath-basic-expected.txt:
        * storage/indexeddb/modern/opendatabase-request-event-expected.txt:
        * storage/indexeddb/modern/opendatabase-request-expected.txt:
        * storage/indexeddb/modern/resources/aborted-put.js:
        * storage/indexeddb/modern/resources/autoincrement-abort.js:
        * storage/indexeddb/modern/resources/basic-add.js:
        * storage/indexeddb/modern/resources/basic-put.js:
        * storage/indexeddb/modern/resources/createobjectstore-basic.js:
        * storage/indexeddb/modern/resources/createobjectstore-failures.js:
        * storage/indexeddb/modern/resources/date-basic.js:
        * storage/indexeddb/modern/resources/deletedatabase-null-name-exception.js:
        * storage/indexeddb/modern/resources/deletedatabase-request-event.js:
        * storage/indexeddb/modern/resources/deletedatabase-request.js:
        * storage/indexeddb/modern/resources/deleteobjectstore-1.js:
        * storage/indexeddb/modern/resources/double-abort.js:
        * storage/indexeddb/modern/resources/get-keyrange.js:
        * storage/indexeddb/modern/resources/idbdatabase-deleteobjectstore-failures.js:
        * storage/indexeddb/modern/resources/idbdatabase-transaction-failures.js:
        * storage/indexeddb/modern/resources/idbindex-properties-basic.js:
        * storage/indexeddb/modern/resources/idbobjectstore-clear-1.js:
        * storage/indexeddb/modern/resources/idbobjectstore-clear-2.js:
        * storage/indexeddb/modern/resources/idbobjectstore-count-1.js:
        * storage/indexeddb/modern/resources/idbobjectstore-count-failures.js:
        * storage/indexeddb/modern/resources/idbobjectstore-get-failures.js:
        * storage/indexeddb/modern/resources/idbobjectstore-put-and-clear-failures.js:
        * storage/indexeddb/modern/resources/idbtransaction-objectstore-failures.js:
        * storage/indexeddb/modern/resources/keypath-basic.js:
        * storage/indexeddb/modern/resources/opendatabase-request-event.js:
        * storage/indexeddb/modern/resources/opendatabase-request.js:
        * storage/indexeddb/modern/resources/transaction-scheduler-1.js:
        * storage/indexeddb/modern/resources/transaction-scheduler-2.js:
        * storage/indexeddb/modern/resources/transaction-scheduler-3.js:
        * storage/indexeddb/modern/resources/transaction-scheduler-5.js:
        * storage/indexeddb/modern/resources/transaction-scheduler-6.js:
        * storage/indexeddb/modern/resources/versionchange-abort-then-reopen.js:
        * storage/indexeddb/modern/resources/versionchange-event.js:
        * storage/indexeddb/modern/transaction-scheduler-1-expected.txt:
        * storage/indexeddb/modern/transaction-scheduler-2-expected.txt:
        * storage/indexeddb/modern/transaction-scheduler-3-expected.txt:
        * storage/indexeddb/modern/transaction-scheduler-5-expected.txt:
        * storage/indexeddb/modern/transaction-scheduler-6-expected.txt:
        * storage/indexeddb/modern/versionchange-abort-then-reopen-expected.txt:
        * storage/indexeddb/modern/versionchange-event-expected.txt:

2016-01-19  Andy VanWagoner  <thetalecrafter@gmail.com>

        [INTL] Implement Date.prototype.toLocaleDateString in ECMA-402
        https://bugs.webkit.org/show_bug.cgi?id=147612

        Reviewed by Benjamin Poulain.

        Added tests for toLocaleDateString.

        * js/date-toLocaleString-expected.txt:
        * js/script-tests/date-toLocaleString.js:

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

        Modern IDB: Split all storage/indexeddb/modern tests into separate HTML + JS format.
        https://bugs.webkit.org/show_bug.cgi?id=153251

        Reviewed by Sam Weinig.

        * storage/indexeddb/modern/abort-requests-cancelled-expected.txt:
        * storage/indexeddb/modern/abort-requests-cancelled.html:
        * storage/indexeddb/modern/aborted-put-expected.txt:
        * storage/indexeddb/modern/aborted-put.html:
        * storage/indexeddb/modern/autoincrement-abort-expected.txt:
        * storage/indexeddb/modern/autoincrement-abort.html:
        * storage/indexeddb/modern/basic-add-expected.txt:
        * storage/indexeddb/modern/basic-add.html:
        * storage/indexeddb/modern/basic-put-expected.txt:
        * storage/indexeddb/modern/basic-put.html:
        * storage/indexeddb/modern/create-index-failures-expected.txt:
        * storage/indexeddb/modern/create-index-failures.html:
        * storage/indexeddb/modern/createobjectstore-basic-expected.txt:
        * storage/indexeddb/modern/createobjectstore-basic.html:
        * storage/indexeddb/modern/createobjectstore-failures-expected.txt:
        * storage/indexeddb/modern/createobjectstore-failures.html:
        * storage/indexeddb/modern/cursor-1-expected.txt:
        * storage/indexeddb/modern/cursor-1.html:
        * storage/indexeddb/modern/cursor-2-expected.txt:
        * storage/indexeddb/modern/cursor-2.html:
        * storage/indexeddb/modern/cursor-3-expected.txt:
        * storage/indexeddb/modern/cursor-3.html:
        * storage/indexeddb/modern/cursor-4-expected.txt:
        * storage/indexeddb/modern/cursor-4.html:
        * storage/indexeddb/modern/cursor-5-expected.txt:
        * storage/indexeddb/modern/cursor-5.html:
        * storage/indexeddb/modern/cursor-6-expected.txt:
        * storage/indexeddb/modern/cursor-6.html:
        * storage/indexeddb/modern/cursor-7-expected.txt:
        * storage/indexeddb/modern/cursor-7.html:
        * storage/indexeddb/modern/cursor-8-expected.txt:
        * storage/indexeddb/modern/cursor-8.html:
        * storage/indexeddb/modern/date-basic-expected.txt:
        * storage/indexeddb/modern/date-basic.html:
        * storage/indexeddb/modern/deletedatabase-1-expected.txt:
        * storage/indexeddb/modern/deletedatabase-1.html:
        * storage/indexeddb/modern/deletedatabase-2-expected.txt:
        * storage/indexeddb/modern/deletedatabase-2.html:
        * storage/indexeddb/modern/deletedatabase-null-name-exception-expected.txt:
        * storage/indexeddb/modern/deletedatabase-null-name-exception.html:
        * storage/indexeddb/modern/deletedatabase-request-event-expected.txt:
        * storage/indexeddb/modern/deletedatabase-request-event.html:
        * storage/indexeddb/modern/deletedatabase-request-expected.txt:
        * storage/indexeddb/modern/deletedatabase-request.html:
        * storage/indexeddb/modern/deleteindex-1-expected.txt:
        * storage/indexeddb/modern/deleteindex-1.html:
        * storage/indexeddb/modern/deleteindex-2-expected.txt:
        * storage/indexeddb/modern/deleteindex-2.html:
        * storage/indexeddb/modern/deleteobjectstore-1-expected.txt:
        * storage/indexeddb/modern/deleteobjectstore-1.html:
        * storage/indexeddb/modern/double-abort-expected.txt:
        * storage/indexeddb/modern/double-abort.html:
        * storage/indexeddb/modern/double-open-expected.txt:
        * storage/indexeddb/modern/double-open.html:
        * storage/indexeddb/modern/get-index-failures-expected.txt:
        * storage/indexeddb/modern/get-index-failures.html:
        * storage/indexeddb/modern/get-keyrange-expected.txt:
        * storage/indexeddb/modern/get-keyrange.html:
        * storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures-expected.txt:
        * storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures.html:
        * storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt:
        * storage/indexeddb/modern/idbdatabase-transaction-failures.html:
        * storage/indexeddb/modern/idbindex-properties-basic-expected.txt:
        * storage/indexeddb/modern/idbindex-properties-basic.html:
        * storage/indexeddb/modern/idbobjectstore-clear-1-expected.txt:
        * storage/indexeddb/modern/idbobjectstore-clear-1.html:
        * storage/indexeddb/modern/idbobjectstore-clear-2-expected.txt:
        * storage/indexeddb/modern/idbobjectstore-clear-2.html:
        * storage/indexeddb/modern/idbobjectstore-count-1-expected.txt:
        * storage/indexeddb/modern/idbobjectstore-count-1.html:
        * storage/indexeddb/modern/idbobjectstore-count-failures-expected.txt:
        * storage/indexeddb/modern/idbobjectstore-count-failures.html:
        * storage/indexeddb/modern/idbobjectstore-delete-1-expected.txt:
        * storage/indexeddb/modern/idbobjectstore-delete-1.html:
        * storage/indexeddb/modern/idbobjectstore-delete-2-expected.txt:
        * storage/indexeddb/modern/idbobjectstore-delete-2.html:
        * storage/indexeddb/modern/idbobjectstore-delete-failures-expected.txt:
        * storage/indexeddb/modern/idbobjectstore-delete-failures.html:
        * storage/indexeddb/modern/idbobjectstore-get-failures-expected.txt:
        * storage/indexeddb/modern/idbobjectstore-get-failures.html:
        * storage/indexeddb/modern/idbobjectstore-put-and-clear-failures-expected.txt:
        * storage/indexeddb/modern/idbobjectstore-put-and-clear-failures.html:
        * storage/indexeddb/modern/idbtransaction-objectstore-failures-expected.txt:
        * storage/indexeddb/modern/idbtransaction-objectstore-failures.html:
        * storage/indexeddb/modern/index-1-expected.txt:
        * storage/indexeddb/modern/index-1.html:
        * storage/indexeddb/modern/index-2-expected.txt:
        * storage/indexeddb/modern/index-2.html:
        * storage/indexeddb/modern/index-3-expected.txt:
        * storage/indexeddb/modern/index-3.html:
        * storage/indexeddb/modern/index-4-expected.txt:
        * storage/indexeddb/modern/index-4.html:
        * storage/indexeddb/modern/index-5-expected.txt:
        * storage/indexeddb/modern/index-5.html:
        * storage/indexeddb/modern/index-cursor-1-expected.txt:
        * storage/indexeddb/modern/index-cursor-1.html:
        * storage/indexeddb/modern/index-cursor-2-expected.txt:
        * storage/indexeddb/modern/index-cursor-2.html:
        * storage/indexeddb/modern/index-cursor-3-expected.txt:
        * storage/indexeddb/modern/index-cursor-3.html:
        * storage/indexeddb/modern/index-get-count-basic-expected.txt:
        * storage/indexeddb/modern/index-get-count-basic.html:
        * storage/indexeddb/modern/index-get-count-failures-expected.txt:
        * storage/indexeddb/modern/index-get-count-failures.html:
        * storage/indexeddb/modern/keypath-basic-expected.txt:
        * storage/indexeddb/modern/keypath-basic.html:
        * storage/indexeddb/modern/objectstore-attributes-expected.txt:
        * storage/indexeddb/modern/objectstore-attributes.html:
        * storage/indexeddb/modern/objectstore-cursor-advance-failures-expected.txt:
        * storage/indexeddb/modern/objectstore-cursor-advance-failures.html:
        * storage/indexeddb/modern/objectstore-cursor-continue-failures-expected.txt:
        * storage/indexeddb/modern/objectstore-cursor-continue-failures.html:
        * storage/indexeddb/modern/opencursor-failures-expected.txt:
        * storage/indexeddb/modern/opencursor-failures.html:
        * storage/indexeddb/modern/opendatabase-request-event-expected.txt:
        * storage/indexeddb/modern/opendatabase-request-event.html:
        * storage/indexeddb/modern/opendatabase-request-expected.txt:
        * storage/indexeddb/modern/opendatabase-request.html:
        * storage/indexeddb/modern/opendatabase-success-after-versionchange-expected.txt:
        * storage/indexeddb/modern/opendatabase-success-after-versionchange.html:
        * storage/indexeddb/modern/opendatabase-versions-expected.txt:
        * storage/indexeddb/modern/opendatabase-versions.html:
        * storage/indexeddb/modern/request-readystate-expected.txt:
        * storage/indexeddb/modern/request-readystate.html:
        * storage/indexeddb/modern/resources/abort-requests-cancelled.js: Copied from LayoutTests/storage/indexeddb/modern/abort-requests-cancelled.html.
        * storage/indexeddb/modern/resources/aborted-put.js: Copied from LayoutTests/storage/indexeddb/modern/aborted-put.html.
        * storage/indexeddb/modern/resources/autoincrement-abort.js: Copied from LayoutTests/storage/indexeddb/modern/autoincrement-abort.html.
        * storage/indexeddb/modern/resources/basic-add.js: Copied from LayoutTests/storage/indexeddb/modern/basic-add.html.
        * storage/indexeddb/modern/resources/basic-put.js: Copied from LayoutTests/storage/indexeddb/modern/basic-put.html.
        * storage/indexeddb/modern/resources/create-index-failures.js: Copied from LayoutTests/storage/indexeddb/modern/create-index-failures.html.
        * storage/indexeddb/modern/resources/createobjectstore-basic.js: Copied from LayoutTests/storage/indexeddb/modern/createobjectstore-basic.html.
        * storage/indexeddb/modern/resources/createobjectstore-failures.js: Copied from LayoutTests/storage/indexeddb/modern/createobjectstore-failures.html.
        * storage/indexeddb/modern/resources/cursor-1.js: Copied from LayoutTests/storage/indexeddb/modern/cursor-1.html.
        * storage/indexeddb/modern/resources/cursor-2.js: Copied from LayoutTests/storage/indexeddb/modern/cursor-2.html.
        * storage/indexeddb/modern/resources/cursor-3.js: Copied from LayoutTests/storage/indexeddb/modern/cursor-3.html.
        * storage/indexeddb/modern/resources/cursor-4.js: Copied from LayoutTests/storage/indexeddb/modern/cursor-4.html.
        * storage/indexeddb/modern/resources/cursor-5.js: Copied from LayoutTests/storage/indexeddb/modern/cursor-5.html.
        * storage/indexeddb/modern/resources/cursor-6.js: Copied from LayoutTests/storage/indexeddb/modern/cursor-6.html.
        * storage/indexeddb/modern/resources/cursor-7.js: Copied from LayoutTests/storage/indexeddb/modern/cursor-7.html.
        * storage/indexeddb/modern/resources/cursor-8.js: Copied from LayoutTests/storage/indexeddb/modern/cursor-8.html.
        * storage/indexeddb/modern/resources/date-basic.js: Copied from LayoutTests/storage/indexeddb/modern/date-basic.html.
        * storage/indexeddb/modern/resources/deletedatabase-1.js: Copied from LayoutTests/storage/indexeddb/modern/deletedatabase-1.html.
        * storage/indexeddb/modern/resources/deletedatabase-2.js: Copied from LayoutTests/storage/indexeddb/modern/deletedatabase-2.html.
        * storage/indexeddb/modern/resources/deletedatabase-null-name-exception.js: Added.
        * storage/indexeddb/modern/resources/deletedatabase-request-event.js: Copied from LayoutTests/storage/indexeddb/modern/deletedatabase-request-event.html.
        * storage/indexeddb/modern/resources/deletedatabase-request.js: Added.
        * storage/indexeddb/modern/resources/deleteindex-1.js: Copied from LayoutTests/storage/indexeddb/modern/deleteindex-1.html.
        * storage/indexeddb/modern/resources/deleteindex-2.js: Copied from LayoutTests/storage/indexeddb/modern/deleteindex-2.html.
        * storage/indexeddb/modern/resources/deleteobjectstore-1.js: Copied from LayoutTests/storage/indexeddb/modern/deleteobjectstore-1.html.
        * storage/indexeddb/modern/resources/double-abort.js: Copied from LayoutTests/storage/indexeddb/modern/double-abort.html.
        * storage/indexeddb/modern/resources/double-open.js: Added.
        * storage/indexeddb/modern/resources/get-index-failures.js: Copied from LayoutTests/storage/indexeddb/modern/get-index-failures.html.
        * storage/indexeddb/modern/resources/get-keyrange.js: Copied from LayoutTests/storage/indexeddb/modern/get-keyrange.html.
        * storage/indexeddb/modern/resources/idbdatabase-deleteobjectstore-failures.js: Copied from LayoutTests/storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures.html.
        * storage/indexeddb/modern/resources/idbdatabase-transaction-failures.js: Copied from LayoutTests/storage/indexeddb/modern/idbdatabase-transaction-failures.html.
        * storage/indexeddb/modern/resources/idbindex-properties-basic.js: Copied from LayoutTests/storage/indexeddb/modern/idbindex-properties-basic.html.
        * storage/indexeddb/modern/resources/idbobjectstore-clear-1.js: Copied from LayoutTests/storage/indexeddb/modern/idbobjectstore-clear-1.html.
        * storage/indexeddb/modern/resources/idbobjectstore-clear-2.js: Copied from LayoutTests/storage/indexeddb/modern/idbobjectstore-clear-2.html.
        * storage/indexeddb/modern/resources/idbobjectstore-count-1.js: Copied from LayoutTests/storage/indexeddb/modern/idbobjectstore-count-1.html.
        * storage/indexeddb/modern/resources/idbobjectstore-count-failures.js: Copied from LayoutTests/storage/indexeddb/modern/idbobjectstore-count-failures.html.
        * storage/indexeddb/modern/resources/idbobjectstore-delete-1.js: Copied from LayoutTests/storage/indexeddb/modern/idbobjectstore-delete-1.html.
        * storage/indexeddb/modern/resources/idbobjectstore-delete-2.js: Copied from LayoutTests/storage/indexeddb/modern/idbobjectstore-delete-2.html.
        * storage/indexeddb/modern/resources/idbobjectstore-delete-failures.js: Copied from LayoutTests/storage/indexeddb/modern/idbobjectstore-delete-failures.html.
        * storage/indexeddb/modern/resources/idbobjectstore-get-failures.js: Copied from LayoutTests/storage/indexeddb/modern/idbobjectstore-get-failures.html.
        * storage/indexeddb/modern/resources/idbobjectstore-put-and-clear-failures.js: Copied from LayoutTests/storage/indexeddb/modern/idbobjectstore-put-and-clear-failures.html.
        * storage/indexeddb/modern/resources/idbtransaction-objectstore-failures.js: Added.
        * storage/indexeddb/modern/resources/index-1.js: Copied from LayoutTests/storage/indexeddb/modern/index-1.html.
        * storage/indexeddb/modern/resources/index-2.js: Copied from LayoutTests/storage/indexeddb/modern/index-2.html.
        * storage/indexeddb/modern/resources/index-3.js: Copied from LayoutTests/storage/indexeddb/modern/index-3.html.
        * storage/indexeddb/modern/resources/index-4.js: Copied from LayoutTests/storage/indexeddb/modern/index-4.html.
        * storage/indexeddb/modern/resources/index-5.js: Copied from LayoutTests/storage/indexeddb/modern/index-5.html.
        * storage/indexeddb/modern/resources/index-cursor-1.js: Copied from LayoutTests/storage/indexeddb/modern/index-cursor-1.html.
        * storage/indexeddb/modern/resources/index-cursor-2.js: Copied from LayoutTests/storage/indexeddb/modern/index-cursor-2.html.
        * storage/indexeddb/modern/resources/index-cursor-3.js: Copied from LayoutTests/storage/indexeddb/modern/index-cursor-3.html.
        * storage/indexeddb/modern/resources/index-get-count-basic.js: Copied from LayoutTests/storage/indexeddb/modern/index-get-count-basic.html.
        * storage/indexeddb/modern/resources/index-get-count-failures.js: Copied from LayoutTests/storage/indexeddb/modern/index-get-count-failures.html.
        * storage/indexeddb/modern/resources/keypath-basic.js: Copied from LayoutTests/storage/indexeddb/modern/keypath-basic.html.
        * storage/indexeddb/modern/resources/objectstore-attributes.js: Copied from LayoutTests/storage/indexeddb/modern/objectstore-attributes.html.
        * storage/indexeddb/modern/resources/objectstore-cursor-advance-failures.js: Copied from LayoutTests/storage/indexeddb/modern/objectstore-cursor-advance-failures.html.
        * storage/indexeddb/modern/resources/objectstore-cursor-continue-failures.js: Copied from LayoutTests/storage/indexeddb/modern/objectstore-cursor-continue-failures.html.
        * storage/indexeddb/modern/resources/opencursor-failures.js: Copied from LayoutTests/storage/indexeddb/modern/opencursor-failures.html.
        * storage/indexeddb/modern/resources/opendatabase-request-event.js: Added.
        * storage/indexeddb/modern/resources/opendatabase-request.js: Copied from LayoutTests/storage/indexeddb/modern/opendatabase-request.html.
        * storage/indexeddb/modern/resources/opendatabase-success-after-versionchange.js: Copied from LayoutTests/storage/indexeddb/modern/opendatabase-success-after-versionchange.html.
        * storage/indexeddb/modern/resources/opendatabase-versions.js: Copied from LayoutTests/storage/indexeddb/modern/opendatabase-versions.html.
        * storage/indexeddb/modern/resources/request-readystate.js: Added.
        * storage/indexeddb/modern/resources/transaction-scheduler-1.js: Copied from LayoutTests/storage/indexeddb/modern/transaction-scheduler-1.html.
        * storage/indexeddb/modern/resources/transaction-scheduler-2.js: Copied from LayoutTests/storage/indexeddb/modern/transaction-scheduler-2.html.
        * storage/indexeddb/modern/resources/transaction-scheduler-3.js: Copied from LayoutTests/storage/indexeddb/modern/transaction-scheduler-3.html.
        * storage/indexeddb/modern/resources/transaction-scheduler-5.js: Copied from LayoutTests/storage/indexeddb/modern/transaction-scheduler-5.html.
        * storage/indexeddb/modern/resources/transaction-scheduler-6.js: Copied from LayoutTests/storage/indexeddb/modern/transaction-scheduler-6.html.
        * storage/indexeddb/modern/resources/transactions-stop-on-navigation-2.html:
        * storage/indexeddb/modern/resources/versionchange-abort-then-reopen.js: Copied from LayoutTests/storage/indexeddb/modern/versionchange-abort-then-reopen.html.
        * storage/indexeddb/modern/resources/versionchange-event.js: Copied from LayoutTests/storage/indexeddb/modern/versionchange-event.html.
        * storage/indexeddb/modern/transaction-scheduler-1-expected.txt:
        * storage/indexeddb/modern/transaction-scheduler-1.html:
        * storage/indexeddb/modern/transaction-scheduler-2-expected.txt:
        * storage/indexeddb/modern/transaction-scheduler-2.html:
        * storage/indexeddb/modern/transaction-scheduler-3-expected.txt:
        * storage/indexeddb/modern/transaction-scheduler-3.html:
        * storage/indexeddb/modern/transaction-scheduler-5-expected.txt:
        * storage/indexeddb/modern/transaction-scheduler-5.html:
        * storage/indexeddb/modern/transaction-scheduler-6-expected.txt:
        * storage/indexeddb/modern/transaction-scheduler-6.html:
        * storage/indexeddb/modern/transactions-stop-on-navigation-expected.txt:
        * storage/indexeddb/modern/versionchange-abort-then-reopen-expected.txt:
        * storage/indexeddb/modern/versionchange-abort-then-reopen.html:
        * storage/indexeddb/modern/versionchange-event-expected.txt:
        * storage/indexeddb/modern/versionchange-event.html:

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

        outline-offset does not work for inlines.
        https://bugs.webkit.org/show_bug.cgi?id=153238

        Reviewed by Simon Fraser.

        Adjust outline box width/height with outline-offset.

        Test: fast/inline/inlines-with-outline-offset.html

        * fast/inline/inlines-with-outline-offset-expected.html: Added.
        * fast/inline/inlines-with-outline-offset.html: Added.

2016-01-19  Nikita Vasilyev  <nvasilyev@apple.com>

        Web Inspector: WebInspector.Object.addEventListener is O(n), make it O(1)
        https://bugs.webkit.org/show_bug.cgi?id=152422
        <rdar://problem/24038047>

        Reviewed by Timothy Hatcher.

        * inspector/console/console-api-expected.txt:
        * inspector/console/console-table-expected.txt:
        * inspector/model/remote-object-expected.txt:
        Rebaseline tests, add "_listeners: null" to all WebInspector.Object instances.

        * inspector/unit-tests/linked-list-expected.txt: Added.
        * inspector/unit-tests/linked-list.html: Added.
        * inspector/unit-tests/list-multimap-expected.txt: Added.
        * inspector/unit-tests/list-multimap.html: Added.

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

        Modern IDB: Split all storage/indexeddb/mozilla tests into separate HTML + JS format.
        https://bugs.webkit.org/show_bug.cgi?id=153237

        Reviewed by Sam Weinig.

        * storage/indexeddb/mozilla/index-prev-no-duplicate.html:
        * storage/indexeddb/mozilla/resources/index-prev-no-duplicate.js: Copied from LayoutTests/storage/indexeddb/mozilla/index-prev-no-duplicate.html.

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

        Modern IDB: Split all storage/indexeddb tests into separate HTML + JS format.
        https://bugs.webkit.org/show_bug.cgi?id=153178

        Reviewed by Sam Weinig.

        * storage/indexeddb/clone-exception.html:
        * storage/indexeddb/closed-cursor.html:
        * storage/indexeddb/connection-leak.html:
        * storage/indexeddb/cursor-cast.html:
        * storage/indexeddb/cursor-leak.html:
        * storage/indexeddb/cursor-overloads.html:
        * storage/indexeddb/cursor-request-cycle.html:
        * storage/indexeddb/deleteIndex-bug110792.html:
        * storage/indexeddb/deletedatabase-transaction.html:
        * storage/indexeddb/metadata-race.html:
        * storage/indexeddb/noblobs.html:
        * storage/indexeddb/object-lookups-in-versionchange.html:
        * storage/indexeddb/open-bad-versions.html:
        * storage/indexeddb/optional-arguments.html:
        * storage/indexeddb/prefetch-invalidation.html:
        * storage/indexeddb/prefetch-race.html:
        * storage/indexeddb/primary-key-unique-to-objectstore.html:
        * storage/indexeddb/request-leak.html:
        * storage/indexeddb/request-result-cache.html:
        * storage/indexeddb/resources/clone-exception.js: Copied from LayoutTests/storage/indexeddb/clone-exception.html.
        * storage/indexeddb/resources/closed-cursor.js: Copied from LayoutTests/storage/indexeddb/closed-cursor.html.
        * storage/indexeddb/resources/connection-leak.js: Copied from LayoutTests/storage/indexeddb/connection-leak.html.
        * storage/indexeddb/resources/cursor-cast.js: Copied from LayoutTests/storage/indexeddb/cursor-cast.html.
        * storage/indexeddb/resources/cursor-leak.js: Copied from LayoutTests/storage/indexeddb/cursor-leak.html.
        * storage/indexeddb/resources/cursor-overloads.js: Copied from LayoutTests/storage/indexeddb/cursor-overloads.html.
        * storage/indexeddb/resources/cursor-request-cycle.js: Copied from LayoutTests/storage/indexeddb/cursor-request-cycle.html.
        * storage/indexeddb/resources/deleteIndex-bug110792.js: Copied from LayoutTests/storage/indexeddb/deleteIndex-bug110792.html.
        * storage/indexeddb/resources/deletedatabase-transaction.js: Copied from LayoutTests/storage/indexeddb/deletedatabase-transaction.html.
        * storage/indexeddb/resources/metadata-race.js: Copied from LayoutTests/storage/indexeddb/metadata-race.html.
        * storage/indexeddb/resources/noblobs.js: Copied from LayoutTests/storage/indexeddb/noblobs.html.
        * storage/indexeddb/resources/object-lookups-in-versionchange.js: Copied from LayoutTests/storage/indexeddb/object-lookups-in-versionchange.html.
        * storage/indexeddb/resources/open-bad-versions.js: Copied from LayoutTests/storage/indexeddb/open-bad-versions.html.
        * storage/indexeddb/resources/optional-arguments.js: Copied from LayoutTests/storage/indexeddb/optional-arguments.html.
        * storage/indexeddb/resources/prefetch-invalidation.js: Copied from LayoutTests/storage/indexeddb/prefetch-invalidation.html.
        * storage/indexeddb/resources/prefetch-race.js: Copied from LayoutTests/storage/indexeddb/prefetch-race.html.
        * storage/indexeddb/resources/primary-key-unique-to-objectstore.js: Copied from LayoutTests/storage/indexeddb/primary-key-unique-to-objectstore.html.
        * storage/indexeddb/resources/request-leak.js: Copied from LayoutTests/storage/indexeddb/request-leak.html.
        * storage/indexeddb/resources/request-result-cache.js: Copied from LayoutTests/storage/indexeddb/request-result-cache.html.
        * storage/indexeddb/resources/structured-clone.js: Copied from LayoutTests/storage/indexeddb/structured-clone.html.
        * storage/indexeddb/resources/transaction-complete-with-js-recursion-cross-frame.js: Copied from LayoutTests/storage/indexeddb/transaction-complete-with-js-recursion-cross-frame.html.
        * storage/indexeddb/resources/transaction-complete-with-js-recursion.js: Copied from LayoutTests/storage/indexeddb/transaction-complete-with-js-recursion.html.
        * storage/indexeddb/resources/transaction-crash-in-tasks.js: Copied from LayoutTests/storage/indexeddb/transaction-crash-in-tasks.html.
        * storage/indexeddb/resources/transaction-ordering.js: Copied from LayoutTests/storage/indexeddb/transaction-ordering.html.
        * storage/indexeddb/resources/transaction-overlapping.js: Copied from LayoutTests/storage/indexeddb/transaction-overlapping.html.
        * storage/indexeddb/resources/version-change-event-basic.js: Copied from LayoutTests/storage/indexeddb/version-change-event-basic.html.
        * storage/indexeddb/resources/version-change-event.js: Copied from LayoutTests/storage/indexeddb/version-change-event.html.
        * storage/indexeddb/structured-clone.html:
        * storage/indexeddb/transaction-complete-with-js-recursion-cross-frame.html:
        * storage/indexeddb/transaction-complete-with-js-recursion.html:
        * storage/indexeddb/transaction-crash-in-tasks.html:
        * storage/indexeddb/transaction-ordering.html:
        * storage/indexeddb/transaction-overlapping.html:
        * storage/indexeddb/transaction-starvation.html:
        * storage/indexeddb/version-change-event-basic.html:
        * storage/indexeddb/version-change-event.html:

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

        [css-grid][css-align] justify-self stretch is not applied for img elements
        https://bugs.webkit.org/show_bug.cgi?id=153206

        Reviewed by Darin Adler.

        Test to verify Replaced Elements, like images, are stretched in the inline
        axis, when fulfilling the Box Alignment restrictions on this regard.

        * fast/css-grid-layout/grid-align-stretching-replaced-items-expected.txt: Added.
        * fast/css-grid-layout/grid-align-stretching-replaced-items.html: Added.

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

        Text::splitText doesn't update Range end points anchored on parent nodes
        https://bugs.webkit.org/show_bug.cgi?id=153227

        Reviewed by Antti Koivisto.

        Added a regression test since the rebaselined W3C test is incomprehensible.

        * fast/dom/Range/update-range-in-split-text-expected.txt: Added.
        * fast/dom/Range/update-range-in-split-text.html: Added.

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

        innerHTML should always add a mutation record for removing all children
        https://bugs.webkit.org/show_bug.cgi?id=148782
        <rdar://problem/22571962>

        Reviewed by Antti Koivisto.

        Add a more comprehensive test for replacing a single text node with innerHTML's setter to ensure
        WebKit's optimization to avoid replacing the node should not be observable by scripts in any way.

        * fast/dom/innerHTML-single-text-node-expected.txt: Added.
        * fast/dom/innerHTML-single-text-node.html: Added.

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

        createAttribute should lowercase the attribute name in a HTML document
        https://bugs.webkit.org/show_bug.cgi?id=153112

        Reviewed by Darin Adler.

        Update tests, rebaseline tests, and add more test cases as needed.

        createAttribute lowercases localName and getAttributeNode finds attribute ignoring cases
        whereas createAttributeNS preserves localName's case and getAttributeNodeNS finds attribute preserving cases

        * fast/dom/Element/mozilla-dom-base-tests/test_bug1075702-expected.txt: Since the test is adding "aa" as well
        as "AA" as Attr nodes, we should be able to get both.
        * fast/dom/Element/mozilla-dom-base-tests/test_bug1075702.xhtml: Renamed from .html file since test cases here
        are more relevant for XHTML documents.

        * fast/dom/Element/getAttribute-check-case-sensitivity-expected.txt:
        * fast/dom/Element/script-tests/getAttribute-check-case-sensitivity.js:
        (testGetAttributeNodeMixedCase): Change the test case to retrieve the attribute name with lowercase name
        since createAttribute always lowercases the name in a HTML document.
        (testAttribNodeNamePreservesCase): Use getAttributeNode instead of getAttributeNodeNS since the former does
        case insensitive lookup as needed here.
        (testAttribNodeNamePreservesCaseGetNode): Ditto.
        (testAttribNodeNamePreservesCaseGetNode2): Ditto. Use createAttributeNS to create a case-preserving Attr node.

        * fast/dom/Element/setAttributeNode-case-insensitivity-expected.txt:
        * fast/dom/Element/setAttributeNode-case-insensitivity.html: Since getAttributeNode does a case-insensitive
        lookup, we should be getting the same Attr node for both 'style' and 'STYLE'.

        * fast/dom/Element/setAttributeNode-for-existing-attribute-expected.txt: Rebaselined. This is a progression
        since we're now getting "green" when querying style.backgroundColor as expected.

        * fast/dom/Element/setAttributeNode-overriding-lowercase-values-1-expected.txt:
        * fast/dom/Element/setAttributeNode-overriding-lowercase-values-1.html: Updated test cases for new behavior.

        * fast/dom/Element/setAttributeNode-overriding-lowercase-values-1-xml-expected.txt: Added.
        * fast/dom/Element/setAttributeNode-overriding-lowercase-values-1-xml.xhtml: Added. Test behaviors in a XML
        document.

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

        Modern IDB: Add private-browsing variant for many IDB tests, and enable private browsing in Modern IDB.
        https://bugs.webkit.org/show_bug.cgi?id=153179

        Reviewed by Darin Adler.

        Update many expectations files to skip some of the new tests on some platforms:
        * TestExpectations:
        * platform/mac-wk1/TestExpectations:
        * platform/wk2/TestExpectations:
        
        Add a special case for URLs that end with "-private.html" to enable private browsing:
        * resources/js-test.js:
        
        Add a whole bunch of -private.html wrappers along with new test expectations, along 
        with some minor test changes to remove unnecessary ambiguity due to .html filename:
        * storage/indexeddb/aborted-versionchange-closes-private-expected.txt: Added.
        * storage/indexeddb/aborted-versionchange-closes-private.html: Added.
        * storage/indexeddb/basics-private-expected.txt: Added.
        * storage/indexeddb/basics-private.html: Added.
        * storage/indexeddb/create-and-remove-object-store-private-expected.txt: Added.
        * storage/indexeddb/create-and-remove-object-store-private.html: Added.
        * storage/indexeddb/create-object-store-options-private-expected.txt: Added.
        * storage/indexeddb/create-object-store-options-private.html: Added.
        * storage/indexeddb/createIndex-after-failure-private-expected.txt: Added.
        * storage/indexeddb/createIndex-after-failure-private.html: Added.
        * storage/indexeddb/createObjectStore-name-argument-required-private-expected.txt: Added.
        * storage/indexeddb/createObjectStore-name-argument-required-private.html: Added.
        * storage/indexeddb/createObjectStore-null-name-private-expected.txt: Added.
        * storage/indexeddb/createObjectStore-null-name-private.html: Added.
        * storage/indexeddb/cursor-added-bug-private-expected.txt: Added.
        * storage/indexeddb/cursor-added-bug-private.html: Added.
        * storage/indexeddb/cursor-advance-private-expected.txt: Added.
        * storage/indexeddb/cursor-advance-private.html: Added.
        * storage/indexeddb/cursor-basics-private-expected.txt: Added.
        * storage/indexeddb/cursor-basics-private.html: Added.
        * storage/indexeddb/cursor-continue-dir-private-expected.txt: Added.
        * storage/indexeddb/cursor-continue-dir-private.html: Added.
        * storage/indexeddb/cursor-continue-private-expected.txt: Added.
        * storage/indexeddb/cursor-continue-private.html: Added.
        * storage/indexeddb/cursor-continue-validity-private-expected.txt: Added.
        * storage/indexeddb/cursor-continue-validity-private.html: Added.
        * storage/indexeddb/cursor-delete-private-expected.txt: Added.
        * storage/indexeddb/cursor-delete-private.html: Added.
        * storage/indexeddb/cursor-finished-private-expected.txt: Added.
        * storage/indexeddb/cursor-finished-private.html: Added.
        * storage/indexeddb/cursor-inconsistency-private-expected.txt: Added.
        * storage/indexeddb/cursor-inconsistency-private.html: Added.
        * storage/indexeddb/cursor-index-delete-private-expected.txt: Added.
        * storage/indexeddb/cursor-index-delete-private.html: Added.
        * storage/indexeddb/cursor-key-order-private-expected.txt: Added.
        * storage/indexeddb/cursor-key-order-private.html: Added.
        * storage/indexeddb/cursor-prev-no-duplicate-private-expected.txt: Added.
        * storage/indexeddb/cursor-prev-no-duplicate-private.html: Added.
        * storage/indexeddb/cursor-primary-key-order-private-expected.txt: Added.
        * storage/indexeddb/cursor-primary-key-order-private.html: Added.
        * storage/indexeddb/cursor-properties-private-expected.txt: Added.
        * storage/indexeddb/cursor-properties-private.html: Added.
        * storage/indexeddb/cursor-reverse-bug-private-expected.txt: Added.
        * storage/indexeddb/cursor-reverse-bug-private.html: Added.
        * storage/indexeddb/cursor-skip-deleted-private-expected.txt: Added.
        * storage/indexeddb/cursor-skip-deleted-private.html: Added.
        * storage/indexeddb/cursor-update-private-expected.txt: Added.
        * storage/indexeddb/cursor-update-private.html: Added.
        * storage/indexeddb/cursor-update-value-argument-required-private-expected.txt: Added.
        * storage/indexeddb/cursor-update-value-argument-required-private.html: Added.
        * storage/indexeddb/cursor-value-private-expected.txt: Added.
        * storage/indexeddb/cursor-value-private.html: Added.
        * storage/indexeddb/database-basics-private-expected.txt: Added.
        * storage/indexeddb/database-basics-private.html: Added.
        * storage/indexeddb/database-close-private-expected.txt: Added.
        * storage/indexeddb/database-close-private.html: Added.
        * storage/indexeddb/database-closepending-flag-private-expected.txt: Added.
        * storage/indexeddb/database-closepending-flag-private.html: Added.
        * storage/indexeddb/database-deletepending-flag-private-expected.txt: Added.
        * storage/indexeddb/database-deletepending-flag-private.html: Added.
        * storage/indexeddb/database-name-undefined-private-expected.txt: Added.
        * storage/indexeddb/database-name-undefined-private.html: Added.
        * storage/indexeddb/database-odd-names-private-expected.txt: Added.
        * storage/indexeddb/database-odd-names-private.html: Added.
        * storage/indexeddb/database-quota-private-expected.txt: Added.
        * storage/indexeddb/database-quota-private.html: Added.
        * storage/indexeddb/database-wrapper-private-expected.txt: Added.
        * storage/indexeddb/database-wrapper-private.html: Added.
        * storage/indexeddb/delete-closed-database-object-private-expected.txt: Added.
        * storage/indexeddb/delete-closed-database-object-private.html: Added.
        * storage/indexeddb/delete-in-upgradeneeded-close-in-open-success-private-expected.txt: Added.
        * storage/indexeddb/delete-in-upgradeneeded-close-in-open-success-private.html: Added.
        * storage/indexeddb/delete-in-upgradeneeded-close-in-versionchange-private-expected.txt: Added.
        * storage/indexeddb/delete-in-upgradeneeded-close-in-versionchange-private.html: Added.
        * storage/indexeddb/delete-range-private-expected.txt: Added.
        * storage/indexeddb/delete-range-private.html: Added.
        * storage/indexeddb/deleteIndex-private-expected.txt: Added.
        * storage/indexeddb/deleteIndex-private.html: Added.
        * storage/indexeddb/deleteObjectStore-name-argument-required-private-expected.txt: Added.
        * storage/indexeddb/deleteObjectStore-name-argument-required-private.html: Added.
        * storage/indexeddb/deleteObjectStore-null-name-private-expected.txt: Added.
        * storage/indexeddb/deleteObjectStore-null-name-private.html: Added.
        * storage/indexeddb/deleted-objects-private-expected.txt: Added.
        * storage/indexeddb/deleted-objects-private.html: Added.
        * storage/indexeddb/deletedatabase-blocked-private-expected.txt: Added.
        * storage/indexeddb/deletedatabase-blocked-private.html: Added.
        * storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange-private-expected.txt: Added.
        * storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange-private.html: Added.
        * storage/indexeddb/deletedatabase-delayed-by-versionchange-private-expected.txt: Added.
        * storage/indexeddb/deletedatabase-not-blocked-private-expected.txt: Added.
        * storage/indexeddb/deletedatabase-not-blocked-private.html: Added.
        * storage/indexeddb/dont-wedge-private-expected.txt: Added.
        * storage/indexeddb/dont-wedge-private.html: Added.
        * storage/indexeddb/duplicates-private-expected.txt: Added.
        * storage/indexeddb/duplicates-private.html: Added.
        * storage/indexeddb/error-causes-abort-by-default-private-expected.txt: Added.
        * storage/indexeddb/error-causes-abort-by-default-private.html: Added.
        * storage/indexeddb/events-private-expected.txt: Added.
        * storage/indexeddb/events-private.html: Added.
        * storage/indexeddb/exception-in-event-aborts-private-expected.txt: Added.
        * storage/indexeddb/exception-in-event-aborts-private.html: Added.
        * storage/indexeddb/exceptions-private-expected.txt: Added.
        * storage/indexeddb/exceptions-private.html: Added.
        * storage/indexeddb/factory-cmp-private-expected.txt: Added.
        * storage/indexeddb/factory-cmp-private.html: Added.
        * storage/indexeddb/factory-deletedatabase-private-expected.txt: Added.
        * storage/indexeddb/factory-deletedatabase-private.html: Added.
        * storage/indexeddb/get-keyrange-private-expected.txt: Added.
        * storage/indexeddb/get-keyrange-private.html: Added.
        * storage/indexeddb/index-basics-private-expected.txt: Added.
        * storage/indexeddb/index-basics-private.html: Added.
        * storage/indexeddb/index-count-private-expected.txt: Added.
        * storage/indexeddb/index-count-private.html: Added.
        * storage/indexeddb/index-cursor-private-expected.txt: Added.
        * storage/indexeddb/index-cursor-private.html: Added.
        * storage/indexeddb/index-duplicate-keypaths-private-expected.txt: Added.
        * storage/indexeddb/index-duplicate-keypaths-private.html: Added.
        * storage/indexeddb/index-get-key-argument-required-private-expected.txt: Added.
        * storage/indexeddb/index-get-key-argument-required-private.html: Added.
        * storage/indexeddb/index-multientry-private-expected.txt: Added.
        * storage/indexeddb/index-multientry-private.html: Added.
        * storage/indexeddb/index-population-private-expected.txt: Added.
        * storage/indexeddb/index-population-private.html: Added.
        * storage/indexeddb/index-unique-private-expected.txt: Added.
        * storage/indexeddb/index-unique-private.html: Added.
        * storage/indexeddb/interfaces-private-expected.txt: Added.
        * storage/indexeddb/interfaces-private.html: Added.
        * storage/indexeddb/intversion-abort-in-initial-upgradeneeded-private-expected.txt: Added.
        * storage/indexeddb/intversion-abort-in-initial-upgradeneeded-private.html: Added.
        * storage/indexeddb/intversion-bad-parameters-private-expected.txt: Added.
        * storage/indexeddb/intversion-bad-parameters-private.html: Added.
        * storage/indexeddb/intversion-blocked-private-expected.txt: Added.
        * storage/indexeddb/intversion-blocked-private.html: Added.
        * storage/indexeddb/intversion-close-between-events-private-expected.txt: Added.
        * storage/indexeddb/intversion-close-between-events-private.html: Added.
        * storage/indexeddb/intversion-close-in-oncomplete-private-expected.txt: Added.
        * storage/indexeddb/intversion-close-in-oncomplete-private.html: Added.
        * storage/indexeddb/intversion-close-in-upgradeneeded-private-expected.txt: Added.
        * storage/indexeddb/intversion-close-in-upgradeneeded-private.html: Added.
        * storage/indexeddb/intversion-encoding-private-expected.txt: Added.
        * storage/indexeddb/intversion-encoding-private.html: Added.
        * storage/indexeddb/intversion-gated-on-delete-private-expected.txt: Added.
        * storage/indexeddb/intversion-gated-on-delete-private.html: Added.
        * storage/indexeddb/intversion-long-queue-private-expected.txt: Added.
        * storage/indexeddb/intversion-long-queue-private.html: Added.
        * storage/indexeddb/intversion-omit-parameter-private-expected.txt: Added.
        * storage/indexeddb/intversion-omit-parameter-private.html: Added.
        * storage/indexeddb/intversion-open-in-upgradeneeded-private-expected.txt: Added.
        * storage/indexeddb/intversion-open-in-upgradeneeded-private.html: Added.
        * storage/indexeddb/intversion-open-with-version-private-expected.txt: Added.
        * storage/indexeddb/intversion-open-with-version-private.html: Added.
        * storage/indexeddb/intversion-pending-version-changes-ascending-private-expected.txt: Added.
        * storage/indexeddb/intversion-pending-version-changes-ascending-private.html: Added.
        * storage/indexeddb/intversion-pending-version-changes-descending-private-expected.txt: Added.
        * storage/indexeddb/intversion-pending-version-changes-descending-private.html: Added.
        * storage/indexeddb/intversion-pending-version-changes-same-private-expected.txt: Added.
        * storage/indexeddb/intversion-pending-version-changes-same-private.html: Added.
        * storage/indexeddb/intversion-persistence-private-expected.txt: Added.
        * storage/indexeddb/intversion-persistence-private.html: Added.
        * storage/indexeddb/intversion-revert-on-abort-private-expected.txt: Added.
        * storage/indexeddb/intversion-revert-on-abort-private.html: Added.
        * storage/indexeddb/intversion-two-opens-no-versions-private-expected.txt: Added.
        * storage/indexeddb/intversion-two-opens-no-versions-private.html: Added.
        * storage/indexeddb/intversion-upgrades-private-expected.txt: Added.
        * storage/indexeddb/intversion-upgrades-private.html: Added.
        * storage/indexeddb/invalid-keys-private-expected.txt: Added.
        * storage/indexeddb/invalid-keys-private.html: Added.
        * storage/indexeddb/key-generator-private-expected.txt: Added.
        * storage/indexeddb/key-generator-private.html: Added.
        * storage/indexeddb/key-sort-order-across-types-private-expected.txt: Added.
        * storage/indexeddb/key-sort-order-across-types-private.html: Added.
        * storage/indexeddb/key-sort-order-date-private-expected.txt: Added.
        * storage/indexeddb/key-sort-order-date-private.html: Added.
        * storage/indexeddb/key-type-array-private-expected.txt: Added.
        * storage/indexeddb/key-type-array-private.html: Added.
        * storage/indexeddb/key-type-binary-private-expected.txt: Added.
        * storage/indexeddb/key-type-binary-private.html: Added.
        * storage/indexeddb/key-type-infinity-private-expected.txt: Added.
        * storage/indexeddb/key-type-infinity-private.html: Added.
        * storage/indexeddb/keypath-arrays-private-expected.txt: Added.
        * storage/indexeddb/keypath-arrays-private.html: Added.
        * storage/indexeddb/keypath-basics-private-expected.txt: Added.
        * storage/indexeddb/keypath-basics-private.html: Added.
        * storage/indexeddb/keypath-edges-private-expected.txt: Added.
        * storage/indexeddb/keypath-edges-private.html: Added.
        * storage/indexeddb/keypath-fetch-key-private-expected.txt: Added.
        * storage/indexeddb/keypath-fetch-key-private.html: Added.
        * storage/indexeddb/keypath-intrinsic-properties-private-expected.txt: Added.
        * storage/indexeddb/keypath-intrinsic-properties-private.html: Added.
        * storage/indexeddb/keyrange-private-expected.txt: Added.
        * storage/indexeddb/keyrange-private.html: Added.
        * storage/indexeddb/keyrange-required-arguments-private-expected.txt: Added.
        * storage/indexeddb/keyrange-required-arguments-private.html: Added.
        * storage/indexeddb/lazy-index-types-private-expected.txt: Added.
        * storage/indexeddb/lazy-index-types-private.html: Added.
        * storage/indexeddb/legacy-constants-private-expected.txt: Added.
        * storage/indexeddb/legacy-constants-private.html: Added.
        * storage/indexeddb/list-ordering-private-expected.txt: Added.
        * storage/indexeddb/list-ordering-private.html: Added.
        * storage/indexeddb/metadata-private-expected.txt: Added.
        * storage/indexeddb/metadata-private.html: Added.
        * storage/indexeddb/mutating-cursor-private-expected.txt: Added.
        * storage/indexeddb/mutating-cursor-private.html: Added.
        * storage/indexeddb/objectStore-required-arguments-private-expected.txt: Added.
        * storage/indexeddb/objectStore-required-arguments-private.html: Added.
        * storage/indexeddb/objectstore-autoincrement-private-expected.txt: Added.
        * storage/indexeddb/objectstore-autoincrement-private.html: Added.
        * storage/indexeddb/objectstore-basics-private-expected.txt: Added.
        * storage/indexeddb/objectstore-basics-private.html: Added.
        * storage/indexeddb/objectstore-clear-private-expected.txt: Added.
        * storage/indexeddb/objectstore-clear-private.html: Added.
        * storage/indexeddb/objectstore-count-private-expected.txt: Added.
        * storage/indexeddb/objectstore-count-private.html: Added.
        * storage/indexeddb/objectstore-cursor-private-expected.txt: Added.
        * storage/indexeddb/objectstore-cursor-private.html: Added.
        * storage/indexeddb/objectstore-removeobjectstore-private-expected.txt: Added.
        * storage/indexeddb/objectstore-removeobjectstore-private.html: Added.
        * storage/indexeddb/odd-strings-private-expected.txt: Added.
        * storage/indexeddb/odd-strings-private.html: Added.
        * storage/indexeddb/open-cursor-private-expected.txt: Added.
        * storage/indexeddb/open-cursor-private.html: Added.
        * storage/indexeddb/open-during-transaction-private-expected.txt: Added.
        * storage/indexeddb/open-during-transaction-private.html: Added.
        * storage/indexeddb/open-ordering-private-expected.txt: Added.
        * storage/indexeddb/open-ordering-private.html: Added.
        * storage/indexeddb/opencursor-key-private-expected.txt: Added.
        * storage/indexeddb/opencursor-key-private.html: Added.
        * storage/indexeddb/pending-activity-private-expected.txt: Added.
        * storage/indexeddb/pending-activity-private.html: Added.
        * storage/indexeddb/pending-version-change-on-exit-private-expected.txt: Added.
        * storage/indexeddb/pending-version-change-on-exit-private.html: Added.
        * storage/indexeddb/pending-version-change-stuck-private-expected.txt: Added.
        * storage/indexeddb/pending-version-change-stuck-private.html: Added.
        * storage/indexeddb/persistence-expected.txt:
        * storage/indexeddb/persistence-private-expected.txt: Copied from LayoutTests/storage/indexeddb/persistence-expected.txt.
        * storage/indexeddb/persistence-private.html: Added.
        * storage/indexeddb/prefetch-bugfix-108071-private-expected.txt: Added.
        * storage/indexeddb/prefetch-bugfix-108071-private.html: Added.
        * storage/indexeddb/queued-commands-private-expected.txt: Added.
        * storage/indexeddb/queued-commands-private.html: Added.
        * storage/indexeddb/readonly-private-expected.txt: Added.
        * storage/indexeddb/readonly-private.html: Added.
        * storage/indexeddb/readonly-properties-private-expected.txt: Added.
        * storage/indexeddb/readonly-properties-private.html: Added.
        * storage/indexeddb/removed-private-expected.txt: Added.
        * storage/indexeddb/removed-private.html: Added.
        * storage/indexeddb/request-continue-abort-private-expected.txt: Added.
        * storage/indexeddb/request-continue-abort-private.html: Added.
        * storage/indexeddb/request-event-propagation-private-expected.txt: Added.
        * storage/indexeddb/request-event-propagation-private.html: Added.
        * storage/indexeddb/resources/persistence.js:
        * storage/indexeddb/set_version_blocked-private-expected.txt: Added.
        * storage/indexeddb/set_version_blocked-private.html: Added.
        * storage/indexeddb/setversion-blocked-by-versionchange-close-private-expected.txt: Added.
        * storage/indexeddb/setversion-blocked-by-versionchange-close-private.html: Added.
        * storage/indexeddb/setversion-not-blocked-private-expected.txt: Added.
        * storage/indexeddb/setversion-not-blocked-private.html: Added.
        * storage/indexeddb/transaction-abort-private-expected.txt: Added.
        * storage/indexeddb/transaction-abort-private.html: Added.
        * storage/indexeddb/transaction-active-flag-private-expected.txt: Added.
        * storage/indexeddb/transaction-active-flag-private.html: Added.
        * storage/indexeddb/transaction-after-close-private-expected.txt: Added.
        * storage/indexeddb/transaction-after-close-private.html: Added.
        * storage/indexeddb/transaction-and-objectstore-calls-private-expected.txt: Added.
        * storage/indexeddb/transaction-and-objectstore-calls-private.html: Added.
        * storage/indexeddb/transaction-basics-private-expected.txt: Added.
        * storage/indexeddb/transaction-basics-private.html: Added.
        * storage/indexeddb/transaction-complete-workers-private-expected.txt: Added.
        * storage/indexeddb/transaction-complete-workers-private.html: Added.
        * storage/indexeddb/transaction-coordination-across-databases-private-expected.txt: Added.
        * storage/indexeddb/transaction-coordination-across-databases-private.html: Added.
        * storage/indexeddb/transaction-coordination-within-database-private-expected.txt: Added.
        * storage/indexeddb/transaction-coordination-within-database-private.html: Added.
        * storage/indexeddb/transaction-crash-on-abort-private-expected.txt: Added.
        * storage/indexeddb/transaction-crash-on-abort-private.html: Added.
        * storage/indexeddb/transaction-error-private-expected.txt: Added.
        * storage/indexeddb/transaction-error-private.html: Added.
        * storage/indexeddb/transaction-event-propagation-private-expected.txt: Added.
        * storage/indexeddb/transaction-event-propagation-private.html: Added.
        * storage/indexeddb/transaction-read-only-private-expected.txt: Added.
        * storage/indexeddb/transaction-read-only-private.html: Added.
        * storage/indexeddb/transaction-readwrite-exclusive-private-expected.txt: Added.
        * storage/indexeddb/transaction-readwrite-exclusive-private.html: Added.
        * storage/indexeddb/transaction-rollback-private-expected.txt: Added.
        * storage/indexeddb/transaction-rollback-private.html: Added.
        * storage/indexeddb/transaction-scope-sequencing-private-expected.txt: Added.
        * storage/indexeddb/transaction-scope-sequencing-private.html: Added.
        * storage/indexeddb/transaction-starvation-private-expected.txt: Added.
        * storage/indexeddb/transaction-storeNames-required-private-expected.txt: Added.
        * storage/indexeddb/transaction-storeNames-required-private.html: Added.
        * storage/indexeddb/unblocked-version-changes-private-expected.txt: Added.
        * storage/indexeddb/unblocked-version-changes-private.html: Added.
        * storage/indexeddb/unprefix-private-expected.txt: Added.
        * storage/indexeddb/unprefix-private.html: Added.
        * storage/indexeddb/value-undefined-private-expected.txt: Added.
        * storage/indexeddb/value-undefined-private.html: Added.
        * storage/indexeddb/values-odd-types-private-expected.txt: Added.
        * storage/indexeddb/values-odd-types-private.html: Added.
        * storage/indexeddb/version-change-abort-private-expected.txt: Added.
        * storage/indexeddb/version-change-abort-private.html: Added.
        * storage/indexeddb/version-change-exclusive-private-expected.txt: Added.
        * storage/indexeddb/version-change-exclusive-private.html: Added.
        * storage/indexeddb/versionchangerequest-activedomobject-private-expected.txt: Added.
        * storage/indexeddb/versionchangerequest-activedomobject-private.html: Added.

2016-01-18  Nan Wang  <n_wang@apple.com>

        AX: [Mac] Implement next/previous text marker functions using TextIterator
        https://bugs.webkit.org/show_bug.cgi?id=152728

        Reviewed by Chris Fleizach.

        * accessibility/mac/previous-next-text-marker-expected.txt: Added.
        * accessibility/mac/previous-next-text-marker.html: Added.
        * accessibility/mac/text-marker-with-user-select-none-expected.txt: Added.
        * accessibility/mac/text-marker-with-user-select-none.html: Added.

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

        More displaylist tests, and minor cleanup
        https://bugs.webkit.org/show_bug.cgi?id=153198

        Reviewed by Zalan Bujtas.

        A couple more display list tests that check that the computed extent of an item
        includes shadows and transforms.

        WK1 results differ in that they disable should-subpixel-quantize-fonts in the state
        (which is a bug).

        Move some shared JS into a helper file.

        * displaylists/extent-includes-shadow-expected.txt: Added.
        * displaylists/extent-includes-shadow.html: Added.
        * displaylists/extent-includes-transforms-expected.txt: Added.
        * displaylists/extent-includes-transforms.html: Added.
        * displaylists/layer-dispay-list.html:
        * displaylists/resources/dump-target-display-list.js: Added.
        (doTest):
        * platform/mac-wk1/displaylists/extent-includes-shadow-expected.txt: Added.
        * platform/mac-wk1/displaylists/extent-includes-transforms-expected.txt: Added.

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

        Modern IDB: .js test files should not log database names.
        https://bugs.webkit.org/show_bug.cgi?id=153181

        Reviewed by Alex Christensen.

        We'll be sharing .js files as well as test expectations between different HTML test files,
        and logging the filename is counter to this goal, as it will change depending on the HTML
        driver running the test.
        
        * storage/indexeddb/resources/shared.js:
        (setDBNameFromPath): eval() setting the filename instead of evalAndLog().

        * platform/wk2/storage/indexeddb/aborted-versionchange-closes-expected.txt:
        * platform/wk2/storage/indexeddb/create-and-remove-object-store-expected.txt:
        * platform/wk2/storage/indexeddb/cursor-continue-dir-expected.txt:
        * platform/wk2/storage/indexeddb/cursor-continue-expected.txt:
        * platform/wk2/storage/indexeddb/cursor-finished-expected.txt:
        * platform/wk2/storage/indexeddb/database-basics-expected.txt:
        * platform/wk2/storage/indexeddb/index-count-expected.txt:
        * platform/wk2/storage/indexeddb/intversion-abort-in-initial-upgradeneeded-expected.txt:
        * platform/wk2/storage/indexeddb/intversion-close-in-oncomplete-expected.txt:
        * platform/wk2/storage/indexeddb/intversion-close-in-upgradeneeded-expected.txt:
        * platform/wk2/storage/indexeddb/invalid-keys-expected.txt:
        * platform/wk2/storage/indexeddb/key-type-array-expected.txt:
        * platform/wk2/storage/indexeddb/keypath-arrays-expected.txt:
        * platform/wk2/storage/indexeddb/keypath-edges-expected.txt:
        * platform/wk2/storage/indexeddb/mozilla/bad-keypath-expected.txt:
        * platform/wk2/storage/indexeddb/mozilla/clear-expected.txt:
        * platform/wk2/storage/indexeddb/mozilla/create-objectstore-basics-expected.txt:
        * platform/wk2/storage/indexeddb/mozilla/cursors-expected.txt:
        * platform/wk2/storage/indexeddb/mozilla/key-requirements-delete-null-key-expected.txt:
        * platform/wk2/storage/indexeddb/mozilla/key-requirements-inline-and-passed-expected.txt:
        * platform/wk2/storage/indexeddb/mozilla/key-requirements-put-no-key-expected.txt:
        * platform/wk2/storage/indexeddb/mozilla/key-requirements-put-null-key-expected.txt:
        * platform/wk2/storage/indexeddb/mozilla/readonly-transactions-expected.txt:
        * platform/wk2/storage/indexeddb/object-lookups-in-versionchange-expected.txt:
        * platform/wk2/storage/indexeddb/objectstore-count-expected.txt:
        * platform/wk2/storage/indexeddb/open-cursor-expected.txt:
        * platform/wk2/storage/indexeddb/request-result-cache-expected.txt:
        * platform/wk2/storage/indexeddb/transaction-abort-expected.txt:
        * platform/wk2/storage/indexeddb/transaction-active-flag-expected.txt:
        * platform/wk2/storage/indexeddb/transaction-after-close-expected.txt:
        * platform/wk2/storage/indexeddb/transaction-read-only-expected.txt:
        * platform/wk2/storage/indexeddb/version-change-exclusive-expected.txt:
        * storage/indexeddb/aborted-versionchange-closes-expected.txt:
        * storage/indexeddb/clone-exception-expected.txt:
        * storage/indexeddb/closed-cursor-expected.txt:
        * storage/indexeddb/create-and-remove-object-store-expected.txt:
        * storage/indexeddb/create-object-store-options-expected.txt:
        * storage/indexeddb/createIndex-after-failure-expected.txt:
        * storage/indexeddb/createObjectStore-name-argument-required-expected.txt:
        * storage/indexeddb/createObjectStore-null-name-expected.txt:
        * storage/indexeddb/cursor-added-bug-expected.txt:
        * storage/indexeddb/cursor-advance-expected.txt:
        * storage/indexeddb/cursor-basics-expected.txt:
        * storage/indexeddb/cursor-cast-expected.txt:
        * storage/indexeddb/cursor-continue-dir-expected.txt:
        * storage/indexeddb/cursor-continue-expected.txt:
        * storage/indexeddb/cursor-continue-validity-expected.txt:
        * storage/indexeddb/cursor-delete-expected.txt:
        * storage/indexeddb/cursor-finished-expected.txt:
        * storage/indexeddb/cursor-inconsistency-expected.txt:
        * storage/indexeddb/cursor-index-delete-expected.txt:
        * storage/indexeddb/cursor-key-order-expected.txt:
        * storage/indexeddb/cursor-overloads-expected.txt:
        * storage/indexeddb/cursor-prev-no-duplicate-expected.txt:
        * storage/indexeddb/cursor-primary-key-order-expected.txt:
        * storage/indexeddb/cursor-properties-expected.txt:
        * storage/indexeddb/cursor-reverse-bug-expected.txt:
        * storage/indexeddb/cursor-skip-deleted-expected.txt:
        * storage/indexeddb/cursor-update-expected.txt:
        * storage/indexeddb/cursor-update-value-argument-required-expected.txt:
        * storage/indexeddb/cursor-value-expected.txt:
        * storage/indexeddb/database-basics-expected.txt:
        * storage/indexeddb/database-close-expected.txt:
        * storage/indexeddb/database-closepending-flag-expected.txt:
        * storage/indexeddb/database-deletepending-flag-expected.txt:
        * storage/indexeddb/database-wrapper-expected.txt:
        * storage/indexeddb/delete-closed-database-object-expected.txt:
        * storage/indexeddb/delete-in-upgradeneeded-close-in-open-success-expected.txt:
        * storage/indexeddb/delete-in-upgradeneeded-close-in-versionchange-expected.txt:
        * storage/indexeddb/delete-range-expected.txt:
        * storage/indexeddb/deleteIndex-expected.txt:
        * storage/indexeddb/deleteObjectStore-name-argument-required-expected.txt:
        * storage/indexeddb/deleteObjectStore-null-name-expected.txt:
        * storage/indexeddb/deleted-objects-expected.txt:
        * storage/indexeddb/deletedatabase-blocked-expected.txt:
        * storage/indexeddb/deletedatabase-delayed-by-open-and-versionchange-expected.txt:
        * storage/indexeddb/deletedatabase-not-blocked-expected.txt:
        * storage/indexeddb/deletedatabase-transaction-expected.txt:
        * storage/indexeddb/dont-wedge-expected.txt:
        * storage/indexeddb/duplicates-expected.txt:
        * storage/indexeddb/error-causes-abort-by-default-expected.txt:
        * storage/indexeddb/exception-in-event-aborts-expected.txt:
        * storage/indexeddb/exceptions-expected.txt:
        * storage/indexeddb/factory-deletedatabase-expected.txt:
        * storage/indexeddb/get-keyrange-expected.txt:
        * storage/indexeddb/index-basics-expected.txt:
        * storage/indexeddb/index-count-expected.txt:
        * storage/indexeddb/index-cursor-expected.txt:
        * storage/indexeddb/index-duplicate-keypaths-expected.txt:
        * storage/indexeddb/index-get-key-argument-required-expected.txt:
        * storage/indexeddb/index-multientry-expected.txt:
        * storage/indexeddb/index-population-expected.txt:
        * storage/indexeddb/index-unique-expected.txt:
        * storage/indexeddb/intversion-abort-in-initial-upgradeneeded-expected.txt:
        * storage/indexeddb/intversion-bad-parameters-expected.txt:
        * storage/indexeddb/intversion-blocked-expected.txt:
        * storage/indexeddb/intversion-close-between-events-expected.txt:
        * storage/indexeddb/intversion-close-in-oncomplete-expected.txt:
        * storage/indexeddb/intversion-close-in-upgradeneeded-expected.txt:
        * storage/indexeddb/intversion-encoding-expected.txt:
        * storage/indexeddb/intversion-gated-on-delete-expected.txt:
        * storage/indexeddb/intversion-long-queue-expected.txt:
        * storage/indexeddb/intversion-omit-parameter-expected.txt:
        * storage/indexeddb/intversion-open-in-upgradeneeded-expected.txt:
        * storage/indexeddb/intversion-open-with-version-expected.txt:
        * storage/indexeddb/intversion-pending-version-changes-ascending-expected.txt:
        * storage/indexeddb/intversion-pending-version-changes-descending-expected.txt:
        * storage/indexeddb/intversion-pending-version-changes-same-expected.txt:
        * storage/indexeddb/intversion-persistence-expected.txt:
        * storage/indexeddb/intversion-revert-on-abort-expected.txt:
        * storage/indexeddb/intversion-two-opens-no-versions-expected.txt:
        * storage/indexeddb/intversion-upgrades-expected.txt:
        * storage/indexeddb/invalid-keys-expected.txt:
        * storage/indexeddb/key-generator-expected.txt:
        * storage/indexeddb/key-sort-order-across-types-expected.txt:
        * storage/indexeddb/key-sort-order-date-expected.txt:
        * storage/indexeddb/key-type-array-expected.txt:
        * storage/indexeddb/key-type-binary-expected.txt:
        * storage/indexeddb/key-type-infinity-expected.txt:
        * storage/indexeddb/keypath-arrays-expected.txt:
        * storage/indexeddb/keypath-basics-expected.txt:
        * storage/indexeddb/keypath-edges-expected.txt:
        * storage/indexeddb/keypath-fetch-key-expected.txt:
        * storage/indexeddb/keypath-intrinsic-properties-expected.txt:
        * storage/indexeddb/lazy-index-population-expected.txt:
        * storage/indexeddb/lazy-index-types-expected.txt:
        * storage/indexeddb/list-ordering-expected.txt:
        * storage/indexeddb/metadata-expected.txt:
        * storage/indexeddb/metadata-race-expected.txt:
        * storage/indexeddb/modern/abort-objectstore-info-expected.txt:
        * storage/indexeddb/modern/blocked-open-db-requests-expected.txt:
        * storage/indexeddb/modern/memory-index-not-deleted-with-objectstore-expected.txt:
        * storage/indexeddb/modern/transaction-scheduler-4-expected.txt:
        * storage/indexeddb/mozilla/add-twice-failure-expected.txt:
        * storage/indexeddb/mozilla/autoincrement-indexes-expected.txt:
        * storage/indexeddb/mozilla/bad-keypath-expected.txt:
        * storage/indexeddb/mozilla/clear-expected.txt:
        * storage/indexeddb/mozilla/create-index-unique-expected.txt:
        * storage/indexeddb/mozilla/create-index-with-integer-keys-expected.txt:
        * storage/indexeddb/mozilla/create-objectstore-basics-expected.txt:
        * storage/indexeddb/mozilla/create-objectstore-null-name-expected.txt:
        * storage/indexeddb/mozilla/cursor-mutation-expected.txt:
        * storage/indexeddb/mozilla/cursor-mutation-objectstore-only-expected.txt:
        * storage/indexeddb/mozilla/cursor-update-updates-indexes-expected.txt:
        * storage/indexeddb/mozilla/cursors-expected.txt:
        * storage/indexeddb/mozilla/delete-result-expected.txt:
        * storage/indexeddb/mozilla/event-source-expected.txt:
        * storage/indexeddb/mozilla/global-data-expected.txt:
        * storage/indexeddb/mozilla/index-prev-no-duplicate-expected.txt:
        * storage/indexeddb/mozilla/indexes-expected.txt:
        * storage/indexeddb/mozilla/key-requirements-delete-null-key-expected.txt:
        * storage/indexeddb/mozilla/key-requirements-expected.txt:
        * storage/indexeddb/mozilla/key-requirements-inline-and-passed-expected.txt:
        * storage/indexeddb/mozilla/key-requirements-put-no-key-expected.txt:
        * storage/indexeddb/mozilla/key-requirements-put-null-key-expected.txt:
        * storage/indexeddb/mozilla/object-cursors-expected.txt:
        * storage/indexeddb/mozilla/object-identity-expected.txt:
        * storage/indexeddb/mozilla/object-store-inline-autoincrement-key-added-on-put-expected.txt:
        * storage/indexeddb/mozilla/object-store-remove-values-expected.txt:
        * storage/indexeddb/mozilla/objectstorenames-expected.txt:
        * storage/indexeddb/mozilla/odd-result-order-expected.txt:
        * storage/indexeddb/mozilla/put-get-values-expected.txt:
        * storage/indexeddb/mozilla/readonly-transactions-expected.txt:
        * storage/indexeddb/mozilla/readwrite-transactions-expected.txt:
        * storage/indexeddb/mozilla/readyState-expected.txt:
        * storage/indexeddb/mozilla/remove-index-expected.txt:
        * storage/indexeddb/mozilla/remove-objectstore-expected.txt:
        * storage/indexeddb/mozilla/versionchange-abort-expected.txt:
        * storage/indexeddb/mutating-cursor-expected.txt:
        * storage/indexeddb/noblobs-expected.txt:
        * storage/indexeddb/object-lookups-in-versionchange-expected.txt:
        * storage/indexeddb/objectStore-required-arguments-expected.txt:
        * storage/indexeddb/objectstore-autoincrement-expected.txt:
        * storage/indexeddb/objectstore-basics-expected.txt:
        * storage/indexeddb/objectstore-clear-expected.txt:
        * storage/indexeddb/objectstore-count-expected.txt:
        * storage/indexeddb/objectstore-cursor-expected.txt:
        * storage/indexeddb/objectstore-removeobjectstore-expected.txt:
        * storage/indexeddb/open-cursor-expected.txt:
        * storage/indexeddb/open-during-transaction-expected.txt:
        * storage/indexeddb/open-ordering-expected.txt:
        * storage/indexeddb/opencursor-key-expected.txt:
        * storage/indexeddb/optional-arguments-expected.txt:
        * storage/indexeddb/pending-activity-expected.txt:
        * storage/indexeddb/persistence-expected.txt:
        * storage/indexeddb/prefetch-bugfix-108071-expected.txt:
        * storage/indexeddb/prefetch-invalidation-expected.txt:
        * storage/indexeddb/prefetch-race-expected.txt:
        * storage/indexeddb/queued-commands-expected.txt:
        * storage/indexeddb/readonly-expected.txt:
        * storage/indexeddb/readonly-properties-expected.txt:
        * storage/indexeddb/request-continue-abort-expected.txt:
        * storage/indexeddb/request-event-propagation-expected.txt:
        * storage/indexeddb/request-result-cache-expected.txt:
        * storage/indexeddb/set_version_blocked-expected.txt:
        * storage/indexeddb/setversion-blocked-by-versionchange-close-expected.txt:
        * storage/indexeddb/setversion-not-blocked-expected.txt:
        * storage/indexeddb/structured-clone-expected.txt:
        * storage/indexeddb/transaction-abort-expected.txt:
        * storage/indexeddb/transaction-active-flag-expected.txt:
        * storage/indexeddb/transaction-after-close-expected.txt:
        * storage/indexeddb/transaction-and-objectstore-calls-expected.txt:
        * storage/indexeddb/transaction-basics-expected.txt:
        * storage/indexeddb/transaction-complete-with-js-recursion-cross-frame-expected.txt:
        * storage/indexeddb/transaction-complete-with-js-recursion-expected.txt:
        * storage/indexeddb/transaction-coordination-across-databases-expected.txt:
        * storage/indexeddb/transaction-coordination-within-database-expected.txt:
        * storage/indexeddb/transaction-crash-in-tasks-expected.txt:
        * storage/indexeddb/transaction-crash-on-abort-expected.txt:
        * storage/indexeddb/transaction-error-expected.txt:
        * storage/indexeddb/transaction-event-propagation-expected.txt:
        * storage/indexeddb/transaction-ordering-expected.txt:
        * storage/indexeddb/transaction-overlapping-expected.txt:
        * storage/indexeddb/transaction-read-only-expected.txt:
        * storage/indexeddb/transaction-readwrite-exclusive-expected.txt:
        * storage/indexeddb/transaction-rollback-expected.txt:
        * storage/indexeddb/transaction-scope-sequencing-expected.txt:
        * storage/indexeddb/transaction-starvation-expected.txt:
        * storage/indexeddb/transaction-storeNames-required-expected.txt:
        * storage/indexeddb/unblocked-version-changes-expected.txt:
        * storage/indexeddb/value-undefined-expected.txt:
        * storage/indexeddb/values-odd-types-expected.txt:
        * storage/indexeddb/version-change-abort-expected.txt:
        * storage/indexeddb/version-change-event-expected.txt:
        * storage/indexeddb/version-change-exclusive-expected.txt:

2016-01-16  Myles C. Maxfield  <mmaxfield@apple.com>

        Remove TextRun::allowsRoundingHacks()
        https://bugs.webkit.org/show_bug.cgi?id=153185

        Reviewed by Simon Fraser.

        * platform/mac/fast/text/rounding-hacks-expansion.html: Removed.
        * platform/mac/fast/text/rounding-hacks.html: Removed.
        * platform/mac/platform/mac/fast/text/rounding-hacks-expansion-expected.png: Removed.
        * platform/mac/platform/mac/fast/text/rounding-hacks-expansion-expected.txt: Removed.
        * platform/mac/platform/mac/fast/text/rounding-hacks-expected.png: Removed.
        * platform/mac/platform/mac/fast/text/rounding-hacks-expected.txt: Removed.
        * svg/text/svg-font-word-rounding-hacks-spaces-expected.html: Removed.
        * svg/text/svg-font-word-rounding-hacks-spaces.html: Removed.

2016-01-16  Skachkov Oleksandr  <gskachkov@gmail.com>

        [ES6] Arrow function syntax. Arrow function should support the destructuring parameters.
        https://bugs.webkit.org/show_bug.cgi?id=146934

        Reviewed by Saam Barati.

        * js/arrowfunction-syntax-errors-expected.txt:
        * js/arrowfunction-syntax-expected.txt:
        * js/script-tests/arrowfunction-syntax-errors.js:
        * js/script-tests/arrowfunction-syntax.js:

2016-01-16  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Add tests for Array Utilities like lowerBound/upperBound
        https://bugs.webkit.org/show_bug.cgi?id=153177

        Reviewed by Timothy Hatcher.

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

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

        This test needs to force layout before calling setElementUsesDisplayListDrawing(),
        so that the layer already has its "drawsContents" property updated.

        * displaylists/layer-dispay-list.html:

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

        FrameLoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame() is never called when loading a main resource from the memory cache
        https://bugs.webkit.org/show_bug.cgi?id=152520
        <rdar://problem/23305737>

        Reviewed by Andy Estes.

        * http/tests/loading/resources/server-redirect-result.html: Added.
        * http/tests/loading/resources/server-redirect.php: Added.
        * http/tests/loading/server-redirect-for-provisional-load-caching-expected.txt: Added.
        * http/tests/loading/server-redirect-for-provisional-load-caching.html: Added.

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

        Content blocking console messages are not deterministic for one test
        https://bugs.webkit.org/show_bug.cgi?id=153051

        Unreviewed.

        Console messages will print the line number of whichever JavaScript line is
        being parsed. However, font requests (and therefore content blockers) are
        not run in response to script. The solution is to add the webfont style
        from script, so the line number is deterministic.

        * http/tests/contentextensions/font-display-none-repeated-layout.html:

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

        Drop obsolete HTMLDocument.width / height attributes
        https://bugs.webkit.org/show_bug.cgi?id=153144

        Reviewed by Ryosuke Niwa.

        * fast/dom/HTMLDocument/width-and-height-expected.txt: Removed.
        * fast/dom/HTMLDocument/width-and-height.html: Removed.
        Drop outdated test.

        * fast/dom/Window/window-property-invalid-characters-ignored-expected.txt:
        * fast/dom/Window/window-property-invalid-characters-ignored.html:
        Stop relying on Document.width / height as these are obsolete.

2016-01-15  Beth Dakin  <bdakin@apple.com>

        Add a test for touch events in scaled documents
        https://bugs.webkit.org/show_bug.cgi?id=153149
        -and corresponding-
        rdar://problem/24181371

        Reviewed by Simon Fraser.

        * fast/events/touch/ios/touch-event-in-scaled-document-expected.txt: Added.
        * fast/events/touch/ios/touch-event-in-scaled-document.html: Added.

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

        Make a way to test display-list drawing
        https://bugs.webkit.org/show_bug.cgi?id=152956

        Reviewed by Ryosuke Niwa.
        
        Enable displaylists tests on Mac and iOS.

        * TestExpectations:
        * displaylists/layer-dispay-list-expected.txt: Added.
        * displaylists/layer-dispay-list.html: Added.
        * platform/ios-simulator/TestExpectations:
        * platform/mac/TestExpectations:

2016-01-15  Ryosuke Niwa  <rniwa@webkit.org>

        createElementNS and createAttributeNS should treat undefined namespaceURI as null string
        https://bugs.webkit.org/show_bug.cgi?id=153119

        Reviewed by Chris Dumez.

        Add a regression test for calling createAttributeNS with undefined namespaceURI.

        * fast/dom/Document/createAttributeNS-undefined-namespace-expected.txt: Added.
        * fast/dom/Document/createAttributeNS-undefined-namespace.html: Added.

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

        Refine http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer*
        https://bugs.webkit.org/show_bug.cgi?id=153140

        Reviewed by Alexey Proskuryakov.

        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-always.html:
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-default.html:
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-never.html:
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-no-referrer-when-downgrade.html:
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-no-referrer.html:
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-origin.html:
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-unsafe-url.html:
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped.html:
        * http/tests/contentdispositionattachmentsandbox/resources/referer-header-stripped.js:
        (onload):
        (navigation): Deleted.
        The reason why the tests are not completed after calling testRunner.notifyDone() is that the original navigation()
        is bound as the onload of the iframe which will dispatch two load events. Therefore, navigation() will be called
        twice. Here, change the navigation() to be bound with the main frame's onload function, which will restrict it to
        be called only once.

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

        [Cocoa] Font features are not applied to the system font
        https://bugs.webkit.org/show_bug.cgi?id=153053

        Reviewed by Dean Jackson.

        * fast/text/system-font-features-expected.html: Added.
        * fast/text/system-font-features.html: Added.

2016-01-15  Joseph Pecoraro  <pecoraro@apple.com>

        Media Query (-webkit-video-playable-inline) is failing as an invalid media query expression
        https://bugs.webkit.org/show_bug.cgi?id=153111

        Reviewed by Dean Jackson.

        * fast/media/video-playable-inline-media-query-expected.txt: Added.
        * fast/media/video-playable-inline-media-query.html: Added.
        * platform/ios-simulator/ios/fast/media/video-inline-expected.txt: Removed.
        * platform/ios-simulator/ios/fast/media/video-inline.html: Removed.

2016-01-15  Joseph Pecoraro  <pecoraro@apple.com>

        LayoutTest inspector/script-profiler/event-type-Other.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=153016
        <rdar://problem/24192919>

        Reviewed by Brian Burg.

        Introduce a better way for the inspected page to signal to
        the inspector page by dispatching an event with JSON data.
        Use it in this test to try to eliminate flakyness.

        * http/tests/inspector/resources/inspector-test.js:
        (TestPage.dispatchEventToFrontend):
        * http/tests/inspector/resources/protocol-test.js:
        (TestPage.runTest.window.runTest):
        (TestPage.dispatchEventToFrontend):
        * inspector/script-profiler/event-type-Other.html:
        * inspector/unit-tests/inspector-test-dispatch-event-to-frontend-expected.txt: Added.
        * inspector/unit-tests/inspector-test-dispatch-event-to-frontend.html: Added.
        * inspector/unit-tests/protocol-test-dispatch-event-to-frontend-expected.txt: Added.
        * inspector/unit-tests/protocol-test-dispatch-event-to-frontend.html: Added.
        * platform/mac/TestExpectations:

2016-01-15  Zalan Bujtas  <zalan@apple.com>

        ASSERTION FAILED: canHaveChildren() || canHaveGeneratedChildren() in WebCore::RenderElement::insertChildInternal
        https://bugs.webkit.org/show_bug.cgi?id=123331

        Reviewed by Darin Adler.

        Do not set named flow fragment bit on the flow until after the renderer is attached. Setting/resetting it too early
        could affect the attach/detach process itself (This is similar to attaching a multi column flow thread).

        * fast/regions/input-box-with-region-assert-expected.txt: Added.
        * fast/regions/input-box-with-region-assert.html: Added.

2016-01-15  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Fix some typos in unit tests
        https://bugs.webkit.org/show_bug.cgi?id=153141

        Reviewed by Brian Burg.

        * inspector/unit-tests/async-test-suite-expected.txt:
        * inspector/unit-tests/async-test-suite.html:
        * inspector/unit-tests/sync-test-suite-expected.txt:
        * inspector/unit-tests/sync-test-suite.html:
        Fix some typos.

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

        Rebaseline tables/mozilla_expected_failures/bugs/bug89315.html for ios-simulator
        https://bugs.webkit.org/show_bug.cgi?id=152130

        Unreviewed test gardening.

        * platform/ios-simulator/tables/mozilla_expected_failures/bugs/bug89315-expected.txt:

2016-01-15  Andy VanWagoner  <thetalecrafter@gmail.com>

        [INTL] Implement Date.prototype.toLocaleString in ECMA-402
        https://bugs.webkit.org/show_bug.cgi?id=147611

        Reviewed by Benjamin Poulain.

        * js/intl-datetimeformat-expected.txt: Added test for null options.
        * js/date-toLocaleString-expected.txt: Added.
        * js/date-toLocaleString.html: Added.
        * js/script-tests/intl-datetimeformat.js: Added test for null options.
        * js/script-tests/date-toLocaleString.js: Added.

2016-01-15  Antti Koivisto  <antti@apple.com>

        Switch out from ES6 arrow function syntax to allow the test to work with an older WebKit.

        * fast/loader/cache-encoding.html:

2016-01-15  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        [Streams API] Expose ReadableStream and relatives to Worker
        https://bugs.webkit.org/show_bug.cgi?id=152066

        Reviewed by Darin Adler.

        Rebasing tests as ReadableStream is now available in workers.

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

2016-01-15  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        CORS: Fix the handling of redirected request containing Origin null.
        https://bugs.webkit.org/show_bug.cgi?id=128816

        Reviewed by Brent Fulgham.

        Merging Blink patch from George Ancil (https://chromiumcodereview.appspot.com/20735002)

        Added two tests to check CORS with Origin null in HTTP redirect and iframe cases.
        Updated two test sandboxed iframes test expectations (requests are still denied but error messages are different).

        * http/tests/xmlhttprequest/access-control-sandboxed-iframe-allow-origin-null-expected.txt: Added.
        * http/tests/xmlhttprequest/access-control-sandboxed-iframe-allow-origin-null.html: Added.
        * http/tests/xmlhttprequest/access-control-sandboxed-iframe-denied-expected.txt:
        * http/tests/xmlhttprequest/access-control-sandboxed-iframe-denied-without-wildcard-expected.txt:
        * http/tests/xmlhttprequest/redirect-cors-origin-null-expected.txt: Added.
        * http/tests/xmlhttprequest/redirect-cors-origin-null.html: Added.
        * http/tests/xmlhttprequest/resources/access-control-sandboxed-iframe-allow-origin-null-iframe.html: Added.
        * http/tests/xmlhttprequest/resources/access-control-sandboxed-iframe-allow-origin-null.cgi: Added.
        * http/tests/xmlhttprequest/resources/redirect-cors-origin-null-pass.php: Added.
        * http/tests/xmlhttprequest/resources/redirect-cors-origin-null.php: Added.

2016-01-14  Commit Queue  <commit-queue@webkit.org>

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

        test fails most of the time (Requested by alexchristensen on
        #webkit).

        Reverted changeset:

        "Avoid downloading the wrong image for <picture> elements."
        https://bugs.webkit.org/show_bug.cgi?id=153027
        http://trac.webkit.org/changeset/195064

2016-01-14  Myles C. Maxfield  <mmaxfield@apple.com>

        Test gardening after r195088

        Unreviewed.

        * http/tests/contentextensions/font-display-none-repeated-layout-expected.txt:

2016-01-14  Myles C. Maxfield  <mmaxfield@apple.com>

        Mixing Content Blocking of fonts and display:none rules causes battery drain
        https://bugs.webkit.org/show_bug.cgi?id=153051
        <rdar://problem/23187709>

        Reviewed by Alex Christensen.

        Make sure that layoutCount does not skyrocket.

        * http/tests/contentextensions/font-display-none-repeated-layout-expected.txt: Added.
        * http/tests/contentextensions/font-display-none-repeated-layout.html: Added.
        * http/tests/contentextensions/font-display-none-repeated-layout.html.json: Added.

2016-01-14  Ryosuke Niwa  <rniwa@webkit.org>

        Add document.defineCustomElement
        https://bugs.webkit.org/show_bug.cgi?id=153092

        Reviewed by Chris Dumez.

        Added tests for document.defineCustomElement and instantiating custom elements.

        * TestExpectations: Skipped the tests on non-Mac ports.
        * fast/custom-elements: Added.
        * fast/custom-elements/Document-defineCustomElement-expected.txt: Added.
        * fast/custom-elements/Document-defineCustomElement.html: Added.
        * fast/custom-elements/HTMLElement-constructor-expected.txt: Added.
        * fast/custom-elements/HTMLElement-constructor.html: Added.
        * platform/mac/TestExpectations:

2016-01-14  Beth Dakin  <bdakin@apple.com>

        WK2: Request completion candidates when needed
        https://bugs.webkit.org/show_bug.cgi?id=153040
        -and corresponding-
        rdar://problem/24155631

        Reviewed by Enrica Casucci and Tim Horton.

        Getting updated EditorState in platformEditorState causes some extra layout 
        to happen, so now the layout test results for WK2 reflect the results that we 
        already see on iOS for this test and they reflect the render tree as it is 
        when you load the page in browser.
        * platform/mac/fast/dom/focus-contenteditable-expected.txt:

        WebKit 1 is not affected by these new results, so this adds WK-1 only results 
        that match the old Mac results.
        * platform/mac-wk1/fast/dom: Added.
        * platform/mac-wk1/fast/dom/focus-contenteditable-expected.txt: Added.

2016-01-14  Daniel Bates  <dabates@apple.com>

        Disallow use of Geolocation service from unique origins
        https://bugs.webkit.org/show_bug.cgi?id=153102
        <rdar://problem/23055645>

        Reviewed by Alexey Proskuryakov.

        * fast/dom/Geolocation/dataURL-getCurrentPosition-expected.txt: Added.
        * fast/dom/Geolocation/dataURL-getCurrentPosition.html: Added.
        * fast/dom/Geolocation/dataURL-watchPosition-expected.txt: Added.
        * fast/dom/Geolocation/dataURL-watchPosition.html: Added.
        * fast/dom/Geolocation/srcdoc-getCurrentPosition-expected.txt: Added.
        * fast/dom/Geolocation/srcdoc-getCurrentPosition.html: Added.
        * fast/dom/Geolocation/srcdoc-watchPosition-expected.txt: Added.
        * fast/dom/Geolocation/srcdoc-watchPosition.html: Added.
        * http/tests/security/resources/checkThatPositionErrorCallbackIsCalledWithPositionUnavailableForGeolocationMethod.js: Added.
        (done):
        (logMessage):
        (didReceivePosition):
        (didReceiveError):
        (checkThatPositionErrorCallbackIsCalledWithPositionUnavailableForGeolocationMethod):
        (markupToCheckThatPositionErrorCallbackIsCalledWithPositionUnavailableForGeolocationMethod):
        (dataURLToCheckThatPositionErrorCallbackIsCalledWithPositionUnavailableForGeolocationMethod):
        * http/tests/security/resources/sandboxed-iframe-geolocation-getCurrentPosition.html: Added.
        * http/tests/security/resources/sandboxed-iframe-geolocation-watchPosition.html: Added.
        * http/tests/security/sandboxed-iframe-geolocation-getCurrentPosition-expected.txt: Added.
        * http/tests/security/sandboxed-iframe-geolocation-getCurrentPosition.html: Added.
        * http/tests/security/sandboxed-iframe-geolocation-watchPosition-expected.txt: Added.
        * http/tests/security/sandboxed-iframe-geolocation-watchPosition.html: Added.

2016-01-14  Daniel Bates  <dabates@apple.com>

        [XSS Auditor] Partial bypass when web server collapses path components
        https://bugs.webkit.org/show_bug.cgi?id=152872

        Reviewed by Brent Fulgham.

        Merged from Blink (patch by Tom Sepez <tsepez@chromium.org>):
        <https://src.chromium.org/viewvc/blink?revision=167610&view=revision>

        * http/tests/security/xssAuditor/embed-tag-in-path-unterminated-expected.txt: Added.
        * http/tests/security/xssAuditor/embed-tag-in-path-unterminated.html: Added.
        * http/tests/security/xssAuditor/intercept/.htaccess:

2016-01-14  Zalan Bujtas  <zalan@apple.com>

        [iOS Simulator] fast/table/003.html failing
        https://bugs.webkit.org/show_bug.cgi?id=152444

        Unreviewed gardening.

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

2016-01-14  Keith Miller  <keith_miller@apple.com>

        [ES6] Support subclassing Function.
        https://bugs.webkit.org/show_bug.cgi?id=153081

        Reviewed by Geoffrey Garen.

        Rebasline tests with the new clearer error message.

        * js/class-syntax-extends-expected.txt:
        * js/script-tests/class-syntax-extends.js:

2016-01-14  Zalan Bujtas  <zalan@apple.com>

        ASSERTION FAILED: !newRelayoutRoot.container() || !newRelayoutRoot.container()->needsLayout() in WebCore::FrameView::scheduleRelayoutOfSubtree
        https://bugs.webkit.org/show_bug.cgi?id=151605#c1

        Reviewed by David Hyatt.

        Do not let RenderMultiColumnSet/RenderFlowThread mark ancestors dirty while updating scrollbars
        for overflow content. While updating scrollbars, we only layout descendants so marking parents dirty
        is unnecessary and could lead to an invalid dirty state.

        * fast/multicol/body-stuck-with-dirty-bit-with-columns-expected.txt: Added.
        * fast/multicol/body-stuck-with-dirty-bit-with-columns.html: Added.

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

        Avoid downloading the wrong image for <picture> elements.
        https://bugs.webkit.org/show_bug.cgi?id=153027

        Reviewed by Dean Jackson.

        * fast/picture/image-picture-loads-1x-expected.txt: Added.
        * fast/picture/image-picture-loads-1x.html: Added.

2016-01-14  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        Move streams/webkitGetUserMedia-shadowing-then.html to fast/mediastream
        https://bugs.webkit.org/show_bug.cgi?id=152973

        Reviewed by Brent Fulgham.

        Moved the test, made it asynchronous to ensure that the error callback is called.

        * fast/mediastream/webkitGetUserMedia-shadowing-then-expected.txt: Renamed from LayoutTests/streams/webkitGetUserMedia-shadowing-then-expected.txt.
        * fast/mediastream/webkitGetUserMedia-shadowing-then.html: Renamed from LayoutTests/streams/webkitGetUserMedia-shadowing-then.html.

2016-01-14  Commit Queue  <commit-queue@webkit.org>

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

        Crashes many/most editing tests (Requested by ap on #webkit).

        Reverted changeset:

        "WK2: Request completion candidates when needed"
        https://bugs.webkit.org/show_bug.cgi?id=153040
        http://trac.webkit.org/changeset/195002

2016-01-14  Martin Robinson  <mrobinson@igalia.com>

        [GTK] [EFL] Hyphenation can never work in practice due to requirements on lang tags
        https://bugs.webkit.org/show_bug.cgi?id=147310

        Reviewed by Michael Catanzaro.

        Update some baselines and add a GTK+ specific test for locale variations.

        * platform/gtk/fast/text/hyphenate-flexible-locales-expected.html: Added.
        * platform/gtk/fast/text/hyphenate-flexible-locales.html: Added.
        * platform/gtk/fast/text/hyphenate-locale-expected.png: We now properly hyphenate
        text with the 'en' locale.
        * platform/gtk/fast/text/hyphenate-locale-expected.txt:

2016-01-14  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        Fix problems with cross-origin redirects
        https://bugs.webkit.org/show_bug.cgi?id=116075

        Reviewed by Daniel Bates.

        Merging https://chromium.googlesource.com/chromium/blink/+/7ea774e478f84f355748108d2aaabca15355d512 by Ken Russell
        This merge adds tests for cross origin requests triggered from same origin redirection responses with and without credentials).
        Rebaseline of some tests due to console error messages generated from newly hit CORS checks.

        * TestExpectations: Disabled WPT tests that require access to non localhost URLs which are currently blocked by DTR/WTR.
        * http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt:
        * http/tests/xmlhttprequest/access-control-and-redirects-async-same-origin-expected.txt: Added.
        * http/tests/xmlhttprequest/access-control-and-redirects-async-same-origin.html: Added.
        * http/tests/xmlhttprequest/access-control-and-redirects-async.html:
        * http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
        * http/tests/xmlhttprequest/access-control-and-redirects.html:
        * http/tests/xmlhttprequest/redirect-cross-origin-2-expected.txt:
        * http/tests/xmlhttprequest/redirect-cross-origin-expected.txt:
        * http/tests/xmlhttprequest/redirect-cross-origin-post-expected.txt:
        * http/tests/xmlhttprequest/redirect-cross-origin-tripmine-expected.txt:
        * http/tests/xmlhttprequest/resources/access-control-basic-allow-no-credentials.cgi: Added.
        * http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect-expected.txt:

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

        Marking test as flaky: sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.3_encodeURI/S15.1.3.3_A2.4_T2.html
        https://bugs.webkit.org/show_bug.cgi?id=153086

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2016-01-13  Beth Dakin  <bdakin@apple.com>

        WK2: Request completion candidates when needed
        https://bugs.webkit.org/show_bug.cgi?id=153040
        -and corresponding-
        rdar://problem/24155631

        Reviewed by Enrica Casucci.

        Getting updated EditorState in platformEditorState causes some extra layout 
        to happen, so now the layout test results for WK2 reflect the results that we 
        already see on iOS for this test and they reflect the render tree as it is 
        when you load the page in browser.
        * platform/mac/fast/dom/focus-contenteditable-expected.txt:

        WebKit 1 is not affected by these new results, so this adds WK-1 only results 
        that match the old Mac results.
        * platform/mac-wk1/fast/dom: Added.
        * platform/mac-wk1/fast/dom/focus-contenteditable-expected.txt: Added.

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

        formaction must return document's address when formaction is missing
        https://bugs.webkit.org/show_bug.cgi?id=148874

        Reviewed by Chris Dumez.

        Added a regression test and rebaselined imported W3C tests.

        * fast/forms/formaction-attribute-with-empty-value-expected.txt: Added.
        * fast/forms/formaction-attribute-with-empty-value.html: Added.
        * fast/forms/submit-form-attributes-expected.txt:
        * fast/forms/submit-form-attributes.html:

2016-01-13  Mark Lam  <mark.lam@apple.com>

        The StringFromCharCode DFG intrinsic should support untyped operands.
        https://bugs.webkit.org/show_bug.cgi?id=153046

        Reviewed by Geoffrey Garen.

        * js/regress/ftl-polymorphic-StringFromCharCode-expected.txt: Added.
        * js/regress/ftl-polymorphic-StringFromCharCode.html: Added.
        * js/regress/script-tests/ftl-polymorphic-StringFromCharCode.js: Added.
        (o1.valueOf):
        (foo):

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

        Web Inspector: Inspector should use the last sourceURL / sourceMappingURL directive
        https://bugs.webkit.org/show_bug.cgi?id=153072
        <rdar://problem/24168312>

        Reviewed by Timothy Hatcher.

        * inspector/console/console-api-expected.txt:
        * inspector/console/console-table-expected.txt:
        * platform/mac/inspector/model/remote-object-expected.txt:
        Updated line number in output now that code evaluated through the frontend
        gets the __WebInspectorInternal__ sourceURL prepended to the start instead
        of appended to the end.

        * inspector/debugger/sourceURLs-expected.txt:
        * inspector/debugger/sourceURLs.html:
        Update the test to find the second sourceURL, not the first.

2016-01-13  Daniel Bates  <dabates@apple.com>

        [XSS Auditor] Do not include trailing comment characters in JavaScript snippets
        https://bugs.webkit.org/show_bug.cgi?id=152873

        Reviewed by Brent Fulgham.

        Merged from Blink (patch by Tom Sepez <tsepez@chromium.org>):
        <https://src.chromium.org/viewvc/blink?view=rev&revision=169967>

        * http/tests/security/xssAuditor/script-tag-with-injected-comment-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-with-injected-comment.html: Added.

2016-01-13  Daniel Bates  <dabates@apple.com>

        [XSS Auditor] Add test when XSS payload is in the path portion of the URL
        https://bugs.webkit.org/show_bug.cgi?id=152871

        Reviewed by Brent Fulgham.

        Merged from Blink (patch by Tom Sepez <tsepez@chromium.org>):
        <https://src.chromium.org/viewvc/blink?revision=164746&view=revision>

        Add infrastructure and a test for an XSS attack where the payload is
        embedded in the path portion of the URL.

        Many XSS Auditor tests pass the XSS payload to CGI scripts via the
        query string portion of the URL. Now we also support calling these
        same scripts with the payload embedded in the path portion of the
        URL.

        Loading <http://127.0.0.1:8000/security/xssAuditor/intercept/X/Y>
        returns a response whose content is identical to <http://127.0.0.1:8000/security/xssAuditor/resoures/X?q=Y>,
        where X is the filename of some CGI script in directory LayoutTests/http/tests/security/xssAuditor/resources
        and Y is the XSS payload.

        * http/tests/security/xssAuditor/intercept/.htaccess: Added.
        * http/tests/security/xssAuditor/reflection-in-path-expected.txt: Added.
        * http/tests/security/xssAuditor/reflection-in-path.html: Added.
        * http/tests/security/xssAuditor/resources/echo-form-action.pl: Added.

2016-01-13  Adam Bergkvist  <adam.bergkvist@ericsson.com>

        WebRTC: Add support for RTCRtpSender.replaceTrack()
        https://bugs.webkit.org/show_bug.cgi?id=153063

        Reviewed by Eric Carlson.

        Add API test for RTCRtpSender.replaceTrack(). A successful call is still
        rejected (promise) until proper support is available in the WebRTC backend.

        * fast/mediastream/RTCRtpSender-replaceTrack-expected.txt: Added.
        * fast/mediastream/RTCRtpSender-replaceTrack.html: Added.

2016-01-13  Mario Sanchez Prada  <mario@webkit.org>

        [GTK] Unreviewed gardening.

        * platform/gtk/TestExpectations: Mark three tests failing in the
        GTK bots as Crash, Timeout (release builds only) and Failure.

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

        Changing expectation from flaky to skip for two crashing tests.
        https://bugs.webkit.org/show_bug.cgi?id=152279

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

2016-01-12  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r194926 and r194928.
        https://bugs.webkit.org/show_bug.cgi?id=153048

        This change is causing LayoutTest crashes (Requested by
        ryanhaddad on #webkit).

        Reverted changesets:

        "Avoid downloading the wrong image for <picture> elements."
        https://bugs.webkit.org/show_bug.cgi?id=153027
        http://trac.webkit.org/changeset/194926

        "Avoid downloading the wrong image for <picture> elements."
        https://bugs.webkit.org/show_bug.cgi?id=153027
        http://trac.webkit.org/changeset/194928

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

        [iOS] Antialiasing doesn't work in WebGL
        https://bugs.webkit.org/show_bug.cgi?id=153000
        <rdar://problem/9165531>

        Reviewed by Alex Christensen.

        New test to check if WebGL antialiasing happened on a rendered canvas.

        * fast/canvas/webgl/antialiasing-enabled-expected.txt: Added.
        * fast/canvas/webgl/antialiasing-enabled.html: Added.

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

        Skipped more tests related to picture element on ios-simulator and grouped them together in TestExpectations file.

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

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

        Skipping crashing test fast/picture/image-picture-loads-1x.html on ios-simulator
        https://bugs.webkit.org/show_bug.cgi?id=153043

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

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

        Avoid downloading the wrong image for <picture> elements.
        https://bugs.webkit.org/show_bug.cgi?id=153027

        Reviewed by Dean Jackson.

        * fast/picture/image-picture-loads-1x-expected.txt: Added.
        * fast/picture/image-picture-loads-1x.html: Added.

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

        XSS Auditor should navigate to empty substitute data on full page block
        https://bugs.webkit.org/show_bug.cgi?id=152868
        <rdar://problem/18658448>

        Reviewed by David Kilzer and Andy Estes.

        Derived from Blink patch (by Tom Sepez <tsepez@chromium.org>):
        <https://src.chromium.org/viewvc/blink?view=rev&revision=179240>

        Added additional test block-does-not-leak-that-page-was-blocked-using-empty-data-url.html to explicitly
        tests that we do redirect to an empty data URL when a full page block is triggered.

        * http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-allow-block-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-block-allow-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-block-block-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-block-filter-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-block-invalid-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-block-unset-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-filter-block-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-invalid-block-expected.txt:
        * http/tests/security/contentSecurityPolicy/1.1/reflected-xss-and-xss-protection-unset-block-expected.txt:
        * http/tests/security/xssAuditor/block-does-not-leak-location-expected.txt:
        * http/tests/security/xssAuditor/block-does-not-leak-referrer-expected.txt:
        * http/tests/security/xssAuditor/block-does-not-leak-that-page-was-blocked-using-empty-data-url-expected.txt: Added.
        * http/tests/security/xssAuditor/block-does-not-leak-that-page-was-blocked-using-empty-data-url.html: Added.
        * http/tests/security/xssAuditor/full-block-base-href-expected.txt:
        * http/tests/security/xssAuditor/full-block-iframe-javascript-url-expected.txt:
        * http/tests/security/xssAuditor/full-block-javascript-link-expected.txt:
        * http/tests/security/xssAuditor/full-block-link-onclick-expected.txt:
        * http/tests/security/xssAuditor/full-block-object-tag-expected.txt:
        * http/tests/security/xssAuditor/full-block-script-tag-cross-domain-expected.txt:
        * http/tests/security/xssAuditor/full-block-script-tag-expected.txt:
        * http/tests/security/xssAuditor/full-block-script-tag-with-source-expected.txt:
        * http/tests/security/xssAuditor/full-block-script-tag.html:
        * http/tests/security/xssAuditor/xss-protection-parsing-03-expected.txt:
        * http/tests/security/xssAuditor/xss-protection-parsing-04-expected.txt:

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

        Null dereference loading Blink layout test fast/frames/navigation-in-pagehide.html
        https://bugs.webkit.org/show_bug.cgi?id=149303
        <rdar://problem/22747634>

        Reviewed by Brent Fulgham.

        * imported/blink/fast/frames/navigation-in-pagehide-expected.txt: Added.
        * imported/blink/fast/frames/navigation-in-pagehide.html: Added.

2016-01-12  Adam Bergkvist  <adam.bergkvist@ericsson.com>

        WebRTC: Update RTCPeerConnection.add/removeTrack() and add test
        https://bugs.webkit.org/show_bug.cgi?id=153010

        Reviewed by Eric Carlson.

        Add test for RTCPeerConnection.add/removeTrack() (currently not covered by other tests).
        This test also covers some of the functionality of RTCRtpSender.

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

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

        Null dereference loading Blink layout test editing/selection/selectstart-event-crash.html
        https://bugs.webkit.org/show_bug.cgi?id=150210
        <rdar://problem/23137259>

        Reviewed by Brent Fulgham.

        * imported/blink/editing/selection/selectstart-event-crash-expected.txt: Added.
        * imported/blink/editing/selection/selectstart-event-crash.html: Added.
        * platform/ios-simulator-wk2/TestExpectations:

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

        Null dereference loading Blink layout test editing/apply-inline-style-to-element-with-no-renderer-crash.html
        https://bugs.webkit.org/show_bug.cgi?id=149287
        <rdar://problem/22746217>

        Reviewed by Brent Fulgham.

        * imported/blink/editing/apply-inline-style-to-element-with-no-renderer-crash-expected.txt: Added.
        * imported/blink/editing/apply-inline-style-to-element-with-no-renderer-crash.html: Added.

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

        Modern IDB: storage/indexeddb/dont-wedge.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=152892

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

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

        Don't reuse memory cache entries with different charset
        https://bugs.webkit.org/show_bug.cgi?id=110031

        Reviewed by Andreas Kling.

        * fast/loader/cache-encoding-expected.txt: Added.
        * fast/loader/cache-encoding.html: Added.
        * fast/loader/resources/success.js: Added.

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

        Marking inspector/model/scope-chain-node.html as flaky on Mac debug
        https://bugs.webkit.org/show_bug.cgi?id=153018

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        Marking inspector/script-profiler/event-type-Other.html as flaky on Mac
        https://bugs.webkit.org/show_bug.cgi?id=153016

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2016-01-12  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed GTK+ gardening. Rebaseline test results after r194847.

        Before r194847 we were always taking the separator of combo boxes
        into account when calculating the size of menu list buttons, even
        when we didn't render the separator. In r194847 we removed all the
        code to deal with separators in combo boxes. Also, since r194847
        we are correctly adding the padding between the icon and the text
        in search fileds.

        * platform/gtk/css3/selectors3/html/css3-modsel-161-expected.txt:
        * platform/gtk/css3/selectors3/xhtml/css3-modsel-161-expected.txt:
        * platform/gtk/css3/selectors3/xml/css3-modsel-161-expected.txt:
        * platform/gtk/editing/pasteboard/4641033-expected.txt:
        * platform/gtk/editing/pasteboard/4944770-1-expected.txt:
        * platform/gtk/editing/pasteboard/4944770-2-expected.txt:
        * platform/gtk/editing/selection/caret-before-select-expected.txt:
        * platform/gtk/editing/selection/replaced-boundaries-3-expected.txt:
        * platform/gtk/editing/selection/select-box-expected.txt:
        * platform/gtk/editing/selection/select-element-paragraph-boundary-expected.txt:
        * platform/gtk/fast/css/focus-ring-exists-for-search-field-expected.txt:
        * platform/gtk/fast/css/input-search-padding-expected.txt:
        * platform/gtk/fast/css/text-input-with-webkit-border-radius-expected.txt:
        * platform/gtk/fast/css/text-overflow-input-expected.txt:
        * platform/gtk/fast/css/text-transform-select-expected.txt:
        * platform/gtk/fast/forms/001-expected.txt:
        * platform/gtk/fast/forms/003-expected.txt:
        * platform/gtk/fast/forms/004-expected.txt:
        * platform/gtk/fast/forms/basic-inputs-expected.txt:
        * platform/gtk/fast/forms/basic-selects-expected.txt:
        * platform/gtk/fast/forms/box-shadow-override-expected.txt:
        * platform/gtk/fast/forms/control-restrict-line-height-expected.txt:
        * platform/gtk/fast/forms/disabled-select-change-index-expected.txt:
        * platform/gtk/fast/forms/form-element-geometry-expected.txt:
        * platform/gtk/fast/forms/input-appearance-height-expected.txt:
        * platform/gtk/fast/forms/input-value-expected.txt:
        * platform/gtk/fast/forms/menulist-deselect-update-expected.txt:
        * platform/gtk/fast/forms/menulist-narrow-width-expected.txt:
        * platform/gtk/fast/forms/menulist-no-overflow-expected.txt:
        * platform/gtk/fast/forms/menulist-restrict-line-height-expected.txt:
        * platform/gtk/fast/forms/menulist-separator-painting-expected.txt:
        * platform/gtk/fast/forms/menulist-style-color-expected.txt:
        * platform/gtk/fast/forms/menulist-width-change-expected.txt:
        * platform/gtk/fast/forms/option-script-expected.txt:
        * platform/gtk/fast/forms/option-strip-whitespace-expected.txt:
        * platform/gtk/fast/forms/placeholder-position-expected.txt:
        * platform/gtk/fast/forms/placeholder-pseudo-style-expected.txt:
        * platform/gtk/fast/forms/search-cancel-button-style-sharing-expected.txt:
        * platform/gtk/fast/forms/search-display-none-cancel-button-expected.txt:
        * platform/gtk/fast/forms/search-rtl-expected.txt:
        * platform/gtk/fast/forms/search-styled-expected.txt:
        * platform/gtk/fast/forms/search/search-size-with-decorations-expected.txt:
        * platform/gtk/fast/forms/searchfield-heights-expected.txt:
        * platform/gtk/fast/forms/select-background-none-expected.txt:
        * platform/gtk/fast/forms/select-baseline-expected.txt:
        * platform/gtk/fast/forms/select-change-listbox-to-popup-expected.txt:
        * platform/gtk/fast/forms/select-dirty-parent-pref-widths-expected.txt:
        * platform/gtk/fast/forms/select-disabled-appearance-expected.txt:
        * platform/gtk/fast/forms/select-element-focus-ring-expected.txt:
        * platform/gtk/fast/forms/select-initial-position-expected.txt:
        * platform/gtk/fast/forms/select-selected-expected.txt:
        * platform/gtk/fast/forms/select-size-expected.txt:
        * platform/gtk/fast/forms/select-style-expected.txt:
        * platform/gtk/fast/forms/select-visual-hebrew-expected.txt:
        * platform/gtk/fast/forms/select/optgroup-rendering-expected.txt:
        * platform/gtk/fast/forms/selectlist-minsize-expected.txt:
        * platform/gtk/fast/forms/stuff-on-my-optgroup-expected.txt:
        * platform/gtk/fast/forms/validation-message-appearance-expected.txt:
        * platform/gtk/fast/html/keygen-expected.txt:
        * platform/gtk/fast/invalid/014-expected.txt:
        * platform/gtk/fast/parser/document-write-option-expected.txt:
        * platform/gtk/fast/repaint/search-field-cancel-expected.txt:
        * platform/gtk/fast/replaced/replaced-breaking-expected.txt:
        * platform/gtk/fast/replaced/replaced-breaking-mixture-expected.txt:
        * platform/gtk/fast/replaced/three-selects-break-expected.txt:
        * platform/gtk/fast/replaced/width100percent-menulist-expected.txt:
        * platform/gtk/fast/replaced/width100percent-searchfield-expected.txt:
        * platform/gtk/http/tests/navigation/javascriptlink-frames-expected.txt:

2016-01-11  Carlos Garcia Campos  <cgarcia@igalia.com>

        Inconsistencies in main resource load delegates when loading from history
        https://bugs.webkit.org/show_bug.cgi?id=150927

        Reviewed by Michael Catanzaro.

        Add test to check that main resource load delegates are emitted in
        the same order before the load is committed when loading a page
        from history with the page cache enabled and disabled.

        * http/tests/loading/main-resource-delegates-on-back-navigation-expected.txt: Added.
        * http/tests/loading/main-resource-delegates-on-back-navigation.html: Added.
        * http/tests/loading/resources/page-go-back-onload.html: Added.
        * loader/go-back-cached-main-resource-expected.txt:

2016-01-11  Johan K. Jensen  <jj@johanjensen.dk>

        Web Inspector: console.count() shouldn't show a colon in front of a number
        https://bugs.webkit.org/show_bug.cgi?id=152038

        Reviewed by Brian Burg.

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

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

        keywords ("super", "delete", etc) should be valid method names
        https://bugs.webkit.org/show_bug.cgi?id=144281

        Reviewed by Ryosuke Niwa.

        * js/class-syntax-super-expected.txt:
        * js/script-tests/class-syntax-super.js:
        Update the test for the correct expected result.

        * js/keyword-method-names-expected.txt: Added.
        * js/keyword-method-names.html: Added.
        * js/script-tests/keyword-method-names.js: Added.
        Add tests to cover parsing allows keywords in method name syntax.

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

        Modern IDB: storage/indexeddb/intversion-long-queue.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=152995

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/intversion-long-queue-expected.txt:
        * storage/indexeddb/resources/intversion-long-queue.js:

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

        Modern IDB: storage/indexeddb/index-multientry.html fails under GuardMalloc/ASAN.
        https://bugs.webkit.org/show_bug.cgi?id=152990

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

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

        Web Inspector: Migrate Page Timeline recording to ScriptProfiler
        https://bugs.webkit.org/show_bug.cgi?id=152727

        Reviewed by Brian Burg.

        * inspector/script-profiler/event-type-Other-expected.txt: Added.
        * inspector/script-profiler/event-type-Other.html: Added.
        Add a test that Web script evaluations create "Other" ScriptProfiler events.

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

        Padding added to table-cell element after font-size change.
        https://bugs.webkit.org/show_bug.cgi?id=152796

        Reviewed by David Hyatt.

        Do not include intrinsicPaddingBefore value while figuring out the height of a row.
        In RenderTableSection::calcRowLogicalHeight() we are interested in the height of the content
        without the additional padding (normal padding is included).

        * TestExpectations: This test fails even without the patch when Ahem font is not used.
        * fast/table/table-baseline-grows-expected.html: Added.
        * fast/table/table-baseline-grows.html: Added.

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

        Picture element needs to work with the preload scanner and select the correct
        source element instead of loading the image.
        https://bugs.webkit.org/show_bug.cgi?id=152983

        Reviewed by Dean Jackson.

        These tests are imported from Blink, although they have been modified slightly to
        reflect the fact that we pass the nested <picture> cases that Blink fails.

        * http/tests/loading/hidpi-preload-picture-sizes-expected.txt: Added.
        * http/tests/loading/hidpi-preload-picture-sizes.html: Added.
        * http/tests/loading/preload-picture-invalid-expected.txt: Added.
        * http/tests/loading/preload-picture-invalid.html: Added.
        * http/tests/loading/preload-picture-nested-expected.txt: Added.
        * http/tests/loading/preload-picture-nested.html: Added.
        * http/tests/loading/preload-picture-sizes-expected.txt: Added.
        * http/tests/loading/preload-picture-sizes.html: Added.
        * http/tests/loading/resources/base-image1.png: Added.
        * http/tests/loading/resources/base-image2.png: Added.
        * http/tests/loading/resources/base-image3.png: Added.
        * http/tests/loading/resources/dup-image1.png: Added.
        * http/tests/loading/resources/dup-image2.png: Added.
        * http/tests/loading/resources/dup-image3.png: Added.
        * http/tests/loading/resources/image1.png: Added.
        * http/tests/loading/resources/image2.png: Added.
        * http/tests/loading/resources/picture-preload-helper.js: Added.

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

        Modern IDB: storage/indexeddb/key-generator.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=152981

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * platform/wk2/imported/w3c/indexeddb/keygenerator-overflow-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/keygenerator-overflow-expected.txt.

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

        Modern IDB: storage/indexeddb/lazy-index-population.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=152976

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

2016-01-11  Michael Catanzaro  <mcatanzaro@igalia.com>

        [GTK] Update test expectations after r194845

        Unreviewed gardening. Mark XHTML tests as passing now that we have patched shared-mime-info
        to better detect XHTML. Add expectations for additional XHTML tests that were unskipped in
        r194845.

        * platform/gtk/TestExpectations:
        * platform/gtk/css2.1/tables/table-anonymous-objects-015-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-016-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-023-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-024-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-035-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-036-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-037-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-038-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-045-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-046-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-047-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-048-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-049-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-050-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-055-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-056-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-091-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-092-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-099-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-100-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-103-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-104-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-105-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-106-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-107-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-108-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-109-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-110-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-111-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-112-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-113-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-114-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-115-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-116-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-117-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-118-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-119-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-120-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-121-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-122-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-123-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-124-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-139-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-140-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-149-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-150-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-155-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-156-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-159-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-160-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-165-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-166-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-177-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-178-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-179-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-180-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-181-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-189-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-190-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-191-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-192-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-193-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-194-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-195-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-196-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-205-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-206-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-207-expected.txt: Added.
        * platform/gtk/css2.1/tables/table-anonymous-objects-208-expected.txt: Added.

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

        Skipping unsupported test pageoverlay/overlay-small-frame-mouse-events.html on ios-simulator
        https://bugs.webkit.org/show_bug.cgi?id=152130

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

2016-01-11  Michael Catanzaro  <mcatanzaro@igalia.com>

        [GTK] W3C CSS2.1 anonymous table tests are failing
        https://bugs.webkit.org/show_bug.cgi?id=152455

        Reviewed by Mario Sanchez Prada.

        Unskip the anonymous table tests, so the bots can generate expected results. The expected
        results will be committed separately.

        * platform/gtk/TestExpectations:

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

        [SVG -> OTF Converter] Parsing failures cause use of incomplete fonts
        https://bugs.webkit.org/show_bug.cgi?id=152772
        <rdar://problem/24043104>

        Reviewed by Simon Fraser.

        Make sure the font renders as if its invalid.

        * fast/text/resources/bustedfont.svg: Added.
        * fast/text/svg-font-invalid-glyph-path-failure-expected.html: Added.
        * fast/text/svg-font-invalid-glyph-path-failure.html: Added.

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

        [JSC] Iterating over a Set/Map is too slow
        https://bugs.webkit.org/show_bug.cgi?id=152691

        Reviewed by Saam Barati.

        Add regress tests.

        * js/regress/map-for-each-expected.txt: Added.
        * js/regress/map-for-each.html: Added.
        * js/regress/map-for-of-expected.txt: Added.
        * js/regress/map-for-of.html: Added.
        * js/regress/script-tests/map-for-each.js: Added.
        (createMap):
        (i.map.forEach):
        * js/regress/script-tests/map-for-of.js: Added.
        (createMap):
        * js/regress/script-tests/set-for-each.js: Added.
        (set forEach):
        (set createSet):
        * js/regress/script-tests/set-for-of.js: Added.
        * js/regress/set-for-each-expected.txt: Added.
        * js/regress/set-for-each.html: Added.
        * js/regress/set-for-of-expected.txt: Added.
        * js/regress/set-for-of.html: Added.

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

        REGRESSION (r194426): First email field is not autofilled on amazon.com
        https://bugs.webkit.org/show_bug.cgi?id=152945
        <rdar://problem/24082914>

        Reviewed by Simon Fraser.

        r194426 missed marking the m_layoutRoot for layout while converting to full layout (it only marked the new layout root).

        * fast/forms/multiple-subtree-layout-failure-expected.html: Added.
        * fast/forms/multiple-subtree-layout-failure.html: Added.

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

        Absolute positioning -webkit-search-cancel-button crashes Safari.
        https://bugs.webkit.org/show_bug.cgi?id=152847
        <rdar://problem/24112087>

        Reviewed by Simon Fraser.

        Do not call offsetFromContainer while resolving the painting position for the search/cancel button renderer.
        It skips the static positioned parent input renderer, when the search/cancel renderer is absolute positioned.
        This patch also fixes a rendering glitch when the margin-right is > 0.

        * fast/forms/absolute-positioned-custom-search-cancel-crash-expected.txt: Added.
        * fast/forms/absolute-positioned-custom-search-cancel-crash.html: Added.

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

        Modern IDB: storage/indexeddb/setversion-blocked-by-versionchange-close.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=152936

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/resources/setversion-blocked-by-versionchange-close.js:
        * storage/indexeddb/setversion-blocked-by-versionchange-close-expected.txt:

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

        Marking fast/scrolling/scroll-position-on-reload-rtl.html as failing on ios-simulator
        https://bugs.webkit.org/show_bug.cgi?id=152935

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

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

        Skipping two unsupported mouse event tests on ios-simulator

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

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

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

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

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

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

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

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

        Marking js/intl-collator.html as failing on ios-simulator
        https://bugs.webkit.org/show_bug.cgi?id=152448

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

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

        Modern IDB: imported/w3c/indexeddb/keyorder.htm times out.
        https://bugs.webkit.org/show_bug.cgi?id=152929

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

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

        Marking two css3/filters/composited-during-* tests as failing on ios-simulator.
        https://bugs.webkit.org/show_bug.cgi?id=152282

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

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

        Mark compositing/overflow/dynamic-composited-scrolling-status.html as failing on ios-simulator, remove duplicate
        expectation added by previous commit.

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

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

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

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

        Removing WK2 specific results for this test.
        
        Legacy IDB passes just the same as Modern IDB.

        * platform/wk2/imported/w3c/indexeddb/keypath-expected.txt: Removed.

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

        Marking two ios/scolling tests as failing on ios-simulator.
        https://bugs.webkit.org/show_bug.cgi?id=152276

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

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

        Rebaselining two compositing tests for ios-simulator
        https://bugs.webkit.org/show_bug.cgi?id=152138

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/compositing/contents-opaque/body-background-painted-expected.txt:
        * platform/ios-simulator/compositing/contents-opaque/table-parts-expected.txt: Added.

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

        Removing ios-simulator-wk1/ and ios-simulator-wk2/ expected.* files that are identical to the ones in ios-simulator/
        https://bugs.webkit.org/show_bug.cgi?id=152130

        Unreviewed test gardening.

        * platform/ios-simulator-wk1/editing/deleting/delete-block-merge-contents-011-expected.txt: Removed.
        * platform/ios-simulator-wk1/editing/deleting/delete-first-list-item-expected.txt: Removed.
        * platform/ios-simulator-wk1/editing/deleting/merge-different-styles-expected.txt: Removed.
        * +1714 more

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

        Removing deleted test fast/mediastream/RTCPeerConnection-state.html from mac TestExpectations file

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

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

        Modern IDB: IDBBindingUtilities chokes on unicode strings for get/set.
        https://bugs.webkit.org/show_bug.cgi?id=152921

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        
        * storage/indexeddb/objectstore-autoincrement-expected.txt:
        * storage/indexeddb/objectstore-autoincrement.html:
        * storage/indexeddb/resources/objectstore-autoincrement.js:

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

        Modern IDB: Blocked event can fire on a delete request even after the last open connection has closed.
        https://bugs.webkit.org/show_bug.cgi?id=152896

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        
        * platform/wk2/imported/w3c/indexeddb/idbfactory_open12-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbfactory_open12-expected.txt.
        * platform/wk2/imported/w3c/indexeddb/idbversionchangeevent-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbversionchangeevent-expected.txt.
        
        * storage/indexeddb/database-wrapper-expected.txt:
        * storage/indexeddb/delete-in-upgradeneeded-close-in-versionchange-expected.txt:
        * storage/indexeddb/deletedatabase-not-blocked-expected.txt:
        * storage/indexeddb/intversion-upgrades-expected.txt:
        * storage/indexeddb/resources/delete-in-upgradeneeded-close-in-versionchange.js:
        * storage/indexeddb/resources/deletedatabase-not-blocked.js:
        * storage/indexeddb/resources/setversion-not-blocked.js:
        * storage/indexeddb/setversion-not-blocked-expected.txt:

2016-01-08  Michael Catanzaro  <mcatanzaro@igalia.com>

        [GTK] Several animation tests fail with accelerated compositing enabled

        Unreviewed gardening.

        * platform/gtk/TestExpectations:

2016-01-08  Lorenzo Tilve  <ltilve@igalia.com>

        [GTK] pageoverlay tests are failing

        Unreviewed gardening.

        * platform/gtk/TestExpectations:

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

        Hovering link on http://help.apple.com/appletv/#/ does not show text underline.
        https://bugs.webkit.org/show_bug.cgi?id=152906
        <rdar://problem/23339617>

        Reviewed by Simon Fraser.

        GraphicsContext::computeLineBoundsAndAntialiasingModeForText() always integral ceils the origin y position to offset underline text.
        This additional visual overflow offset is not taken into account by visualOverflowForDecorations().
        Unfortunately we can't compute the exact same offset value while collecting repaint rects, because
        computeLineBoundsAndAntialiasingModeForText() uses CTM scaling before adjusting the offset position.
        Use 1px (css) bottom offset to cover this underling overflow.

        * fast/css3-text/css3-text-decoration/text-underline-position/underline-visual-overflow-with-subpixel-position-expected.txt: Added.
        * fast/css3-text/css3-text-decoration/text-underline-position/underline-visual-overflow-with-subpixel-position.html: Added.

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

        Modern IDB: imported/w3c/indexeddb/idbobjectstore_createIndex6-event_order.htm fails.
        https://bugs.webkit.org/show_bug.cgi?id=152891

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * platform/wk2/imported/w3c/indexeddb/idbobjectstore_createIndex6-event_order-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex6-event_order-expected.txt.
        * platform/wk2/imported/w3c/indexeddb/idbobjectstore_createIndex7-event_order-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex7-event_order-expected.txt.

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

        Modern IDB: storage/indexeddb/dont-wedge.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=152892

        Unreviewed.

        * platform/mac-wk1/TestExpectations: Skip it for now.

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

        Unreviewed IndexedDB test gardening.

        * platform/mac-wk1/TestExpectations:

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

        Modern IDB: Success-after-open event should only have the IDBOpenDBRequest as its target.
        https://bugs.webkit.org/show_bug.cgi?id=152875

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

2016-01-07  Alexey Proskuryakov  <ap@apple.com>

        Better test gardening. Only skip those tests that use touch events, not the whole
        directory.

        * platform/ios-simulator-wk2/TestExpectations:

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

        Modern IDB: Various imported/w3c/indexeddb tests fail due to expecting the wrong exception.
        https://bugs.webkit.org/show_bug.cgi?id=152866

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

2016-01-07  Alexey Proskuryakov  <ap@apple.com>

        Test gardening.

        * platform/ios-simulator-wk2/TestExpectations:

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

        Modern IDB: imported/w3c/indexeddb/idbcursor-continue.htm fails.
        https://bugs.webkit.org/show_bug.cgi?id=152849

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

2016-01-07  Alexey Proskuryakov  <ap@apple.com>

        testRunner.runUIScript crashes while running multiple tests in a row that invokes the same UIScript
        https://bugs.webkit.org/show_bug.cgi?id=152390
        <rdar://problem/23948321>

        Reviewed by Simon Fraser.

        * platform/ios-simulator/TestExpectations: Unskipped tests that used to be affected.

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

        Incorrect position: fixed; rendering when child of position:relative/sticky.
        https://bugs.webkit.org/show_bug.cgi?id=147284

        Reviewed by Simon Fraser and David Hyatt.

        Computing logical left for positioned objects should take the relative positioned ancestors' offset
        into account.

        * fast/block/positioning/fixed-container-with-relative-parent-expected.html: Added.
        * fast/block/positioning/fixed-container-with-relative-parent.html: Added.
        * fast/block/positioning/fixed-container-with-sticky-parent-expected.html: Added.
        * fast/block/positioning/fixed-container-with-sticky-parent.html: Added.

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

        Directly-composited animated GIFs never resume once scrolled offscreen
        https://bugs.webkit.org/show_bug.cgi?id=152817
        <rdar://problem/19982020>

        Reviewed by Daniel Bates.

        Add a layout test to check that directly-composited animated GIFs are
        properly suspended / resumed based on visibility inside the viewport.

        * fast/images/composited-animated-gif-outside-viewport-expected.txt: Added.
        * fast/images/composited-animated-gif-outside-viewport.html: Added.

2016-01-06  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: CRASH Attempting to pause on CSP violation not inside of script
        https://bugs.webkit.org/show_bug.cgi?id=152825
        <rdar://problem/24021276>

        Reviewed by Timothy Hatcher.

        * http/tests/inspector/resources/inspector-test.js:
        (TestPage.reportUncaughtException):
        Allow a test to continue after uncaught exceptions.

        * inspector/debugger/csp-exceptions-expected.txt: Added.
        * inspector/debugger/csp-exceptions.html: Added.
        * inspector/debugger/resources/csp-exception-iframe.html: Added.
        Test a CSP exception that causes a pause and one outside of
        script that does not pause (and does not crash).

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

        Unreviewed IndexedDB test gardening.

        * platform/mac-wk1/TestExpectations:

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

        Modern IDB: Add expectations for W3C tests that were missing them.
        https://bugs.webkit.org/show_bug.cgi?id=152835

        Reviewed by Daniel Bates.

        * platform/mac-wk1/TestExpectations:

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

        Modern IDB: Update results for W3C tests marked as failures that actually pass.
        https://bugs.webkit.org/show_bug.cgi?id=152827

        Reviewed by Daniel Bates.
        
        - Update FAIL expectations to PASS expectations for Modern IDB.
        - Copy the FAIL expectations over to platform/wk2 to keep testing Legacy IDB.

        * platform/mac-wk1/TestExpectations:
        * platform/wk2/imported/w3c/indexeddb/abort-in-initial-upgradeneeded-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/abort-in-initial-upgradeneeded-expected.txt.
        * platform/wk2/imported/w3c/indexeddb/idbcursor-advance-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbcursor-advance-expected.txt.
        * platform/wk2/imported/w3c/indexeddb/idbcursor_advance_index5-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index5-expected.txt.
        * platform/wk2/imported/w3c/indexeddb/idbcursor_advance_index9-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbcursor_advance_index9-expected.txt.
        * platform/wk2/imported/w3c/indexeddb/idbcursor_advance_objectstore5-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbcursor_advance_objectstore5-expected.txt.
        * platform/wk2/imported/w3c/indexeddb/idbcursor_continue_index8-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbcursor_continue_index8-expected.txt.
        * platform/wk2/imported/w3c/indexeddb/idbcursor_continue_objectstore6-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbcursor_continue_objectstore6-expected.txt.
        * platform/wk2/imported/w3c/indexeddb/idbcursor_delete_index4-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbcursor_delete_index4-expected.txt.
        * platform/wk2/imported/w3c/indexeddb/idbcursor_delete_objectstore4-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbcursor_delete_objectstore4-expected.txt.
        * platform/wk2/imported/w3c/indexeddb/idbdatabase_close2-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbdatabase_close2-expected.txt.
        * platform/wk2/imported/w3c/indexeddb/idbdatabase_deleteObjectStore4-not_reused-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbdatabase_deleteObjectStore4-not_reused-expected.txt.
        * platform/wk2/imported/w3c/indexeddb/idbfactory_deleteDatabase3-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbfactory_deleteDatabase3-expected.txt.
        * platform/wk2/imported/w3c/indexeddb/idbindex-multientry-big-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbindex-multientry-big-expected.txt.
        * platform/wk2/imported/w3c/indexeddb/idbindex_get3-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbindex_get3-expected.txt.
        * platform/wk2/imported/w3c/indexeddb/idbobjectstore_add4-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbobjectstore_add4-expected.txt.
        * platform/wk2/imported/w3c/indexeddb/idbobjectstore_createIndex2-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex2-expected.txt.
        * platform/wk2/imported/w3c/indexeddb/idbobjectstore_createIndex4-deleteIndex-event_order-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbobjectstore_createIndex4-deleteIndex-event_order-expected.txt.
        * platform/wk2/imported/w3c/indexeddb/idbobjectstore_put4-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbobjectstore_put4-expected.txt.
        * platform/wk2/imported/w3c/indexeddb/idbtransaction_abort-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/idbtransaction_abort-expected.txt.
        * platform/wk2/imported/w3c/indexeddb/keygenerator-constrainterror-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/keygenerator-constrainterror-expected.txt.
        * platform/wk2/imported/w3c/indexeddb/keygenerator-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/keygenerator-expected.txt.
        * platform/wk2/imported/w3c/indexeddb/transaction-requestqueue-expected.txt: Copied from LayoutTests/imported/w3c/indexeddb/transaction-requestqueue-expected.txt.

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

        Modern IDB: Initial enabling of imported W3C IDB tests.
        https://bugs.webkit.org/show_bug.cgi?id=152824

        Reviewed by Daniel Bates.

        * platform/mac-wk1/TestExpectations: Unskip the entire W3C IDB test directory,
          but add appropriate results for all the tests that don't yet pass.

2016-01-06  Devin Rousso  <dcrousso+webkit@gmail.com>

        Web Inspector: Add test for Color.canBeSerializedAsShortHex
        https://bugs.webkit.org/show_bug.cgi?id=152809

        Reviewed by Brian Burg.

        Added more specific tests for the canBeSerializedAsShortHex
        method of Web Inspector model class Color.

        * inspector/model/color-expected.txt:
        * inspector/model/color.html:

2016-01-06  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Scope chain shows too many scopes for functions (`let` and `var` in the same function are two scopes)
        https://bugs.webkit.org/show_bug.cgi?id=152349

        Reviewed by Timothy Hatcher.

        * inspector/debugger/breakpoint-scope.html:
        * inspector/model/scope-chain-node.html:
        The ScopeChainNode model object changed, so update tests.

2016-01-06  Michael Catanzaro  <mcatanzaro@igalia.com>

        [GTK] css-multicol-1 tests are failing

        Unreviewed gardening.

        * platform/gtk/TestExpectations:

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

        Rebaselining media/airplay-target-availability.html
        hhttps://bugs.webkit.org/show_bug.cgi?id=152815

        Unreviewed test gardening.

        * media/airplay-target-availability-expected.txt:

2016-01-06  Joseph Pecoraro  <pecoraro@apple.com>

        Remove Debug Logging from some Inspector Tests
        https://bugs.webkit.org/show_bug.cgi?id=152806

        Reviewed by Brian Burg.

        * inspector/debugger/scriptParsed.html:
        * inspector/model/scope-chain-node.html:

2016-01-06  Eric Carlson  <eric.carlson@apple.com>

        AirPlay route availability event not always sent
        https://bugs.webkit.org/show_bug.cgi?id=152802

        Reviewed by Jer Noble.

        * media/airplay-target-availability-expected.txt: Added.
        * media/airplay-target-availability.html: Added.
        * platform/mac/TestExpectations: Skip new test on Yosemite.
        * platform/efl/TestExpectations: Skip new test.
        * platform/gtk/TestExpectations: Ditto.
        * platform/win/TestExpectations: Ditto.

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

        Modern IDB: storage/indexeddb/odd-strings.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=152800

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

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

        Modern IDB: storage/indexeddb/intversion-gated-on-delete.html is flaky.
        https://bugs.webkit.org/show_bug.cgi?id=152795

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

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

        [iOS] Revert overflow:hidden on the body affecting viewport scale (r186786)
        https://bugs.webkit.org/show_bug.cgi?id=152803
        rdar://problem/22242515

        Reviewed by Tim Horton.
        
        Keep the tests, but update their expected results.

        * platform/ios-simulator/fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-expected.txt:
        * platform/ios-simulator/fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-tall-expected.txt:
        * platform/ios-simulator/fast/viewport/ios/width-is-device-width-overflowing-expected.txt:

2016-01-06  Brent Fulgham  <bfulgham@apple.com>

        Port blocking bypass issue using 307 redirect
        https://bugs.webkit.org/show_bug.cgi?id=152801
        <rdar://problem/24048554>

        Reviewed by Anders Carlsson.

        * http/tests/security/blocked-on-redirect-expected.txt: Added.
        * http/tests/security/blocked-on-redirect.html: Added.

gi2016-01-06  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [GTK] Unreviewed gardening.

        * platform/gtk/TestExpectations: report and mark new SVG failures
        after r192138 and new media timeouts after r191948. Mark also the
        RTSP test as skip because it was failing, and update the expectation
        for a slow inspector test that now timeouts.

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

        Modern IDB: storage/indexeddb/transaction-scope-sequencing.html fails
        https://bugs.webkit.org/show_bug.cgi?id=152775

        Reviewed by Alex Christensen.

        In addition to enabling the previously skipped test, this also completely rewrites transaction-scheduler-4, 
        which covered incorrect behavior, to cover newly implemented correct behavior.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/modern/resources/transaction-scheduler-4.js: Added.
        * storage/indexeddb/modern/transaction-scheduler-4-expected.txt:
        * storage/indexeddb/modern/transaction-scheduler-4.html:

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

        Float with media query positioned incorrectly after window resize.
        https://bugs.webkit.org/show_bug.cgi?id=152558

        Reviewed by Simon Fraser and David Hyatt.

        This patch ensures that when a renderer becomes floated, it is moved
        to the right containing block.
        When this floated renderer's previous sibling is an anonymous block, it needs
        to be reparented so that the float is positioned as if there was no anonymous block at all.

        * fast/block/float/float-with-anonymous-previous-sibling-expected.html: Added.
        * fast/block/float/float-with-anonymous-previous-sibling.html: Added.

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

        Marking webarchive/adopt-attribute-styled-body-webarchive.html as flaky on mac-wk1
        https://bugs.webkit.org/show_bug.cgi?id=152789

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

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

        isAnonymousInlineBlock() should exclude any ruby content.
        https://bugs.webkit.org/show_bug.cgi?id=152648
        <rdar://problem/23872549>

        Reviewed by David Hyatt.

        isAnonymousInlineBlock is designed for the new Block-Inside-Inline Model
        and all other anonymous inline-block renderers (including Ruby) should bail out of it.
        (see webkit.org/b/143145)

        * fast/ruby/ruby-inline-margin-collapse-crash-expected.txt: Added.
        * fast/ruby/ruby-inline-margin-collapse-crash.html: Added.

2016-01-06  Andy VanWagoner  <thetalecrafter@gmail.com>

        [ES6] Date.prototype should be a plain object
        https://bugs.webkit.org/show_bug.cgi?id=152574

        Reviewed by Benjamin Poulain.

        Test that the non-generic Date.prototype methods throw when invoked
        from the now generic object Date.prototype. Also test that this change
        preserves correct instanceof behavior.

        * js/date-proto-generic-invocation-expected.txt:
        * js/script-tests/date-proto-generic-invocation.js:

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

        Unreviewed IndexedDB test gardening

        * platform/mac-wk1/TestExpectations: Update the current known status of a few tests.

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

        Modern IDB: storage/indexeddb/structured-clone.html crashes.
        https://bugs.webkit.org/show_bug.cgi?id=152763

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/clone-exception-expected.txt:
        * storage/indexeddb/exceptions-expected.txt:
        * storage/indexeddb/objectstore-basics-expected.txt:
        * storage/indexeddb/structured-clone-expected.txt:

2016-01-05  Pranjal Jumde  <pjumde@apple.com>

        Image should not be re-registered if m_form already exists. This leads to an assertion failure.
        https://bugs.webkit.org/show_bug.cgi?id=152741
        <rdar://problem/24030778>

        Reviewed by Brent Fulgham.

        * LayoutTests/fast/html/form-registerimg-multiple-crash-expected.txt: Added.
        * LayoutTests/fast/html/form-registerimg-multiple-crash.html: Added.

2016-01-05  Commit Queue  <commit-queue@webkit.org>

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

        This change introduced JSC test failures (Requested by
        ryanhaddad on #webkit).

        Reverted changeset:

        "[ES6] Date.prototype should be a plain object"
        https://bugs.webkit.org/show_bug.cgi?id=152574
        http://trac.webkit.org/changeset/194603

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

        Adjust tile coverage with margin tiles, and tidy up the indicator
        https://bugs.webkit.org/show_bug.cgi?id=152742

        Reviewed by Beth Dakin.

        New baselines. simple-document-with-margin-tiles.html needs to wait for over 0.5s
        for the FrameView::enableSpeculativeTilingIfNeeded() timer to fire before
        dumping coverage (ouch).

        * tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-expected.txt:
        * tiled-drawing/scrolling/fast-scroll-iframe-latched-iframe-with-handler-expected.txt:
        * tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-expected.txt:
        * tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe-with-handler-expected.txt:
        * tiled-drawing/simple-document-with-margin-tiles.html:

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

        IDB test gardening.

        Rubberstamped by Alex Christensen.

        * platform/mac-wk1/TestExpectations: Unskip a passing test, and move a test from "times out" to "fails"

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

        [ES6] Date.prototype should be a plain object
        https://bugs.webkit.org/show_bug.cgi?id=152574

        Reviewed by Benjamin Poulain.

        Test that the non-generic Date.prototype methods throw when invoked
        from the now generic object Date.prototype. Also test that this change
        preserves correct instanceof behavior.

        * js/date-proto-generic-invocation-expected.txt:
        * js/script-tests/date-proto-generic-invocation.js:

2016-01-05  Mark Lam  <mark.lam@apple.com>

        Make ftl-polymorphic-xxx tests more polymorphic.
        https://bugs.webkit.org/show_bug.cgi?id=152736

        Reviewed by Saam Barati.

        1. Change the test driver to alternate inputs between numeric operands and
           an object with a valueOf() method.
        2. Changed busy work blob to use the operator being tested instead of always using
           the + operator.
        3. Updated test results.

        With these change, the tests each triggers around 49000+ speculation failures when
        run as a benchmark on the VM before the fix for https://webkit.org/b/152708
        landed (in r194560: <http://trac.webkit.org/r194560>).  After the fix, the
        number of speculation failures is around 11 or lower.

        The benchmark perf with these tests shows about a 10% gain on x86 (32-bit with no
        FTL) and about 2x on x86_64 (64-bit with FTL).

        * js/regress/script-tests/ftl-polymorphic-bitand.js:
        * js/regress/script-tests/ftl-polymorphic-bitor.js:
        * js/regress/script-tests/ftl-polymorphic-bitxor.js:
        * js/regress/script-tests/ftl-polymorphic-div.js:
        * js/regress/script-tests/ftl-polymorphic-lshift.js:
        * js/regress/script-tests/ftl-polymorphic-mul.js:
        * js/regress/script-tests/ftl-polymorphic-rshift.js:
        * js/regress/script-tests/ftl-polymorphic-sub.js:
        * js/regress/script-tests/ftl-polymorphic-urshift.js:

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

        Modern IDB: Error message updates for two failing tests.
        https://bugs.webkit.org/show_bug.cgi?id=152735

        Reviewed by Alex Christensen.

        - Update results to accommodate new error messages.
        - openKeyCursor on IDBObjectStore has been removed, so remove that from the results.
        - "undefined" and "null" are invalid keys, so update the keypath-basics test to reflect this.
        
        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/deleted-objects-expected.txt:
        * storage/indexeddb/keypath-basics-expected.txt:
        * storage/indexeddb/resources/keypath-basics.js:
        * storage/indexeddb/transaction-basics-expected.txt:

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

        IndexedDB TestExpectations gardening.

        Reviewed by Alex Christensen.

        - Enable 3 flakes that should now not be flakey.
        - Unskip some previously crashing tests, but mark as text failures.
        - Move some tests around with better comments.
        
        * platform/mac-wk1/TestExpectations: 

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

        Modern IDB: Transactions from a previous page can leak forward to the next.
        https://bugs.webkit.org/show_bug.cgi?id=152698

        Reviewed by Alex Christensen.

        * storage/indexeddb/modern/resources/transactions-stop-on-navigation-2.html: Added.
        * storage/indexeddb/modern/resources/transactions-stop-on-navigation.js: Added.
        * storage/indexeddb/modern/transactions-stop-on-navigation-expected.txt: Added.
        * storage/indexeddb/modern/transactions-stop-on-navigation.html: Added.

2016-01-05  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        Marking imported/w3c/web-platform-tests/html/dom/dynamic-markup-insertion/opening-the-input-stream/010.html
        as failing (before https://bugs.webkit.org/show_bug.cgi?id=151984 it was timing out)

        Unreviewed.

        * TestExpectations:

2016-01-05  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        Activate service-workers import
        https://bugs.webkit.org/show_bug.cgi?id=152686

        Reviewed by Daniel Bates.

        * TestExpectations: Marking all service worker tests as skipped.

2016-01-05  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        Update web-platform-tests test suite
        https://bugs.webkit.org/show_bug.cgi?id=151984

        Reviewed by Daniel Bates.

        * TestExpectations: updated expectations for newly failing tests.

2016-01-04  Devin Rousso  <dcrousso+webkit@gmail.com>

        Web Inspector: add context menu items to switch CSS color property value syntax between RGB, HSL, etc
        https://bugs.webkit.org/show_bug.cgi?id=151918

        Reviewed by Timothy Hatcher.

        * inspector/model/color-expected.html:
        * inspector/model/color.html:
        Changed "nickname" to "keyword".

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

        Modern IDB: Memory indexes aren't deleted when their owning memory object stores are deleted.
        https://bugs.webkit.org/show_bug.cgi?id=152717

        Reviewed by Alex Christensen.

        * storage/indexeddb/modern/memory-index-not-deleted-with-objectstore-expected.txt: Added.
        * storage/indexeddb/modern/memory-index-not-deleted-with-objectstore.html: Added.
        * storage/indexeddb/modern/resources/memory-index-not-deleted-with-objectstore.js: Added.

2016-01-04  Sergio Villar Senin  <svillar@igalia.com>

        REGRESSION(r194143): Float width incorrectly calculated on Wikipedia
        https://bugs.webkit.org/show_bug.cgi?id=152644

        Reviewed by Myles C. Maxfield.

        * fast/css-intrinsic-dimensions/inlinesize-contribution-floats-expected.html: Added.
        * fast/css-intrinsic-dimensions/inlinesize-contribution-floats.html: Added.

2016-01-04  David Hyatt  <hyatt@apple.com>

        word-wrap: break-word broken inside a flexbox
        https://bugs.webkit.org/show_bug.cgi?id=152321

        Reviewed by Simon Fraser.

        * fast/text/word-break-on-flexbox-child-expected.html: Added.
        * fast/text/word-break-on-flexbox-child.html: Added.

2016-01-04  John Wilander  <wilander@apple.com>

        webkitGetUserMedia built-in should use @then and not then
        https://bugs.webkit.org/show_bug.cgi?id=152296

        Reviewed by Brent Fulgham.

        * streams/webkitGetUserMedia-shadowing-then-expected.txt: Added.
        * streams/webkitGetUserMedia-shadowing-then.html: Added.

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

        Unreviewed, rolling out r194533.

        The test that was re-enabled with this change is still flaky

        Reverted changeset:

        "Modern IDB TestExpectations gardening."
        http://trac.webkit.org/changeset/194533

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

        Skip failing test fast/animation/request-animation-frame-disabled.html on ios-simulator
        fast/animation/request-animation-frame-disabled.html

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

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

        Re-enable fast/animation tests on ios-simulator
        https://bugs.webkit.org/show_bug.cgi?id=137588

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

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

        Modern IDB TestExpectations gardening.

        Rubberstamped by Andy Estes.

        * platform/mac-wk1/TestExpectations: Remove the failure entry for a test that passes.

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

        scrollLeft returns different values for viewport and non-viewport scrolling with rtl
        https://bugs.webkit.org/show_bug.cgi?id=94405
        rdar://problem/21829754

        Reviewed by Zalan Bujtas.
        
        programmatic-overflow-rtl-scrollIntoView.html is a basic test for negative scrollLeft
        in an RTL scroller.
        
        Other tests are fixed to programmatically scroll to negative scroll positions.

        * compositing/rtl/rtl-overflow-scrolling.html:
        * fast/overflow/scroll-div-hide-show-expected.txt:
        * fast/overflow/scroll-div-hide-show.html:
        * fast/repaint/horizontal-bt-overflow-parent.html:
        * fast/repaint/horizontal-bt-overflow-same.html:
        * fast/repaint/vertical-overflow-parent.html:
        * fast/repaint/vertical-overflow-same.html:
        * fast/scrolling/programmatic-overflow-rtl-scrollIntoView-expected.txt: Added.
        * fast/scrolling/programmatic-overflow-rtl-scrollIntoView.html: Added.
        * fast/writing-mode/flipped-blocks-hit-test-overflow-scroll.html:
        * imported/blink/compositing/overflow/rtl-overflow.html:

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

        Some cleanup in ScrollAnimator
        https://bugs.webkit.org/show_bug.cgi?id=152649

        Reviewed by Zalan Bujtas.
        
        Added fast/scrolling/arrow-key-scroll-in-rtl-document.html to test for arrow
        key scrolling in an RTL document, which an earlier version of the patch
        regressed without detection.

        * fast/dom/horizontal-scrollbar-in-rtl-expected.txt:
        * fast/scrolling/arrow-key-scroll-in-rtl-document-expected.txt: Added.
        * fast/scrolling/arrow-key-scroll-in-rtl-document.html: Added.

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

        Simple line layout:: Add text-decoration support.
        https://bugs.webkit.org/show_bug.cgi?id=152623

        Reviewed by Antti Koivisto.

        Existing tests cases also cover decoration correctness.

        * fast/css3-text/css3-text-decoration/simple-line-layout-text-decoration-expected.html: Added.
        * fast/css3-text/css3-text-decoration/simple-line-layout-text-decoration.html: Added.

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

        Modern IDB: storage/indexeddb/database-deletepending-flag.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=152600

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

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

        Fix reload and programmatic scrolling in RTL documents
        https://bugs.webkit.org/show_bug.cgi?id=152639

        Reviewed by Zalan Bujtas.
        
        New tests for programmatic scrolling (2 kinds!) in RTL documents, and
        reloading a scrolled RTL document.

        * fast/scrolling/programmatic-document-rtl-scroll-expected.html: Added.
        * fast/scrolling/programmatic-document-rtl-scroll.html: Added.
        * fast/scrolling/programmatic-document-rtl-scrollIntoView-expected.txt: Added.
        * fast/scrolling/programmatic-document-rtl-scrollIntoView.html: Added.
        * fast/scrolling/scroll-position-on-reload-rtl-expected.txt: Added.
        * fast/scrolling/scroll-position-on-reload-rtl.html: Added.

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

        REGRESSION (r194448): Scrolling overflow:scroll goes too far
        https://bugs.webkit.org/show_bug.cgi?id=152645

        Reviewed by Zalan Bujtas.
        
        Test that scrolls and overflow div with wheel events, then checks that it has
        not passed the max scroll offset.

        * fast/scrolling/overflow-scroll-past-max-expected.txt: Added.
        * fast/scrolling/overflow-scroll-past-max.html: Added.

2016-01-01  Michael Catanzaro  <mcatanzaro@igalia.com>

        [GTK] Several IndexedDB tests failing

        Unreviewed gardening.

        * platform/gtk/TestExpectations:

2016-01-01  Michael Catanzaro  <mcatanzaro@igalia.com>

        [GTK] http/tests/misc/detached-frame-console.html is crashing

        Unreviewed gardening.

        * platform/gtk/TestExpectations:

2016-01-01  Michael Catanzaro  <mcatanzaro@igalia.com>

        [GTK] http/tests/media/clearkey/clear-key-hls-aes128.html is crashing

        Unreviewed gardening.

        * platform/gtk/TestExpectations:

2016-01-01  Michael Catanzaro  <mcatanzaro@igalia.com>

        [GTK] Expect missing results for CSS table anonymous objects tests

        Unreviewed gardening.

        * platform/gtk/TestExpectations:

2015-12-31  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Fix incorrect scrollPosition handling
        https://bugs.webkit.org/show_bug.cgi?id=152630

        Reviewed by Zalan Bujtas.
        
        These tests now load with a 0,0 scroll position, so don't dump out the "scrolled to" text,
        which matches Mac behavior.

        * platform/ios-simulator-wk2/fast/multicol/pagination/BottomToTop-bt-expected.txt:
        * platform/ios-simulator-wk2/fast/multicol/pagination/BottomToTop-lr-expected.txt:
        * platform/ios-simulator-wk2/fast/multicol/pagination/BottomToTop-rl-expected.txt:
        * platform/ios-simulator-wk2/fast/multicol/pagination/BottomToTop-tb-expected.txt:
        * platform/ios-simulator-wk2/fast/multicol/pagination/RightToLeft-bt-expected.txt:
        * platform/ios-simulator-wk2/fast/multicol/pagination/RightToLeft-lr-expected.txt:
        * platform/ios-simulator-wk2/fast/multicol/pagination/RightToLeft-rl-dynamic-expected.txt:
        * platform/ios-simulator-wk2/fast/multicol/pagination/RightToLeft-rl-expected.txt:
        * platform/ios-simulator-wk2/fast/multicol/pagination/RightToLeft-tb-expected.txt:
        * platform/ios-simulator-wk2/fast/multicol/vertical-rl/column-break-with-balancing-expected.txt:
        * platform/ios-simulator-wk2/fast/multicol/vertical-rl/column-rules-expected.txt:
        * platform/ios-simulator-wk2/fast/multicol/vertical-rl/float-paginate-complex-expected.txt:

2015-12-31  Zalan Bujtas  <zalan@apple.com>

        text-decoration: line-through is mispositioned when text has overline/underline too.
        https://bugs.webkit.org/show_bug.cgi?id=152619

        Reviewed by Simon Fraser.

        Line-through painting was mistakenly calling drawLineForText with overline/underline positioning.

        * fast/css3-text/css3-text-decoration/text-decoration-line-through-mispositioned-expected.html: Added.
        * fast/css3-text/css3-text-decoration/text-decoration-line-through-mispositioned.html: Added.

2015-12-31  Zalan Bujtas  <zalan@apple.com>

        Simple line layout: Text with stroke width is not positioned correctly.
        https://bugs.webkit.org/show_bug.cgi?id=152614

        Reviewed by Simon Fraser.

        Visual overflow should not affect text position.

        * fast/text/simple-line-layout-text-position-with-stroke-expected.html: Added.
        * fast/text/simple-line-layout-text-position-with-stroke.html: Added.

2015-12-31  Zalan Bujtas  <zalan@apple.com>

        Simple line layout: Nested block with pseudo first-line parent should bail out of simple line layout.
        https://bugs.webkit.org/show_bug.cgi?id=152599

        Reviewed by Simon Fraser.

        We should bail out of simple line layout if any of the ancestors have pseudo first-line style.
        (see RenderBlock::firstLineBlock()) 

        * fast/block/line-layout/first-line-should-bail-out-of-simple-line-layout-expected.html: Added.
        * fast/block/line-layout/first-line-should-bail-out-of-simple-line-layout.html: Added.

2015-12-31  Martin Robinson  <mrobinson@igalia.com>

        Mark some tests as failing on WebKitGTK+.

        Unreviewed gardening.

        * platform/gtk/TestExpectations:

2015-12-31  Martin Robinson  <mrobinson@igalia.com>

        Mark WOFF2 test as failing on WebKitGTK+

        Unreviewed. Gardening.

        * platform/gtk/TestExpectations:

2015-12-31  ChangSeok Oh  <changseok.oh@collabora.com>

        [GTK] Unreviewed gardening at 2015-12-31

        Mark fast/text/text-combine-placement.html as crashing.

        * platform/gtk/TestExpectations:

2015-12-30  Brady Eidson  <beidson@apple.com>

        Modern IDB: Only fire blocked events after all open connections have handled their versionchange events.
        https://bugs.webkit.org/show_bug.cgi?id=152593

        Reviewed by Andy Estes.

        - Unskip two timeout tests that now pass.
        - Reclassify a text-failure test to be skipped for new reasons.
        
        * platform/mac-wk1/TestExpectations:

2015-12-30  Gyuyoung Kim  <gyuyoung.kim@webkit.org>

        Unreviewed, EFL gardening.

        Mark navigation policy tests to failure and unskip some passing test.
        Update media failure tests.

        * platform/efl/TestExpectations:

2015-12-30  Skachkov Oleksandr  <gskachkov@gmail.com>

        [ES6] Arrow function syntax. Arrow function specific features. Lexical bind "super"
        https://bugs.webkit.org/show_bug.cgi?id=149615

        Reviewed by Saam Barati.

        * js/arrowfunction-superproperty-expected.txt: Added.
        * js/arrowfunction-superproperty.html: Added.
        * js/script-tests/arrowfunction-superproperty.js: Added.

2015-12-29  Andy VanWagoner  <andy@instructure.com>

        Remove tests for sometimes unsupported calendars, numbering systems, and time zone backward links
        https://bugs.webkit.org/show_bug.cgi?id=152550

        Reviewed by Alexey Proskuryakov.

        Time zones change often, so only test a few probable backward links.
        Remove hanidays numbering system tests, since GTK and EFL don't support it.
        Remove islamic-umalqura calendar tests, since GTK and EFL don't support it.

        * js/intl-datetimeformat-expected.txt:
        * js/script-tests/intl-datetimeformat.js:

2015-12-27  Zalan Bujtas  <zalan@apple.com>

        Should never be reached failure in WebCore::RenderElement::clearLayoutRootIfNeeded
        https://bugs.webkit.org/show_bug.cgi?id=151590

        Reviewed by Simon Fraser.

        We should always set the layoutroot when a new subtree layout is requested (and convert it
        to a full layout when needed). It ensures that renderers are detached cleanly even when
        they are set as layoutroot.

        * fast/block/assert-when-layout-root-is-not-cleared-expected.txt: Added.
        * fast/block/assert-when-layout-root-is-not-cleared.html: Added.

2015-12-25  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Add subpixel support for outline.
        https://bugs.webkit.org/show_bug.cgi?id=152560

        Unable to ref-test other outline types.

        Reviewed by Simon Fraser.

        * fast/borders/hidpi-outline-hairline-painting-expected.html: Added.
        * fast/borders/hidpi-outline-hairline-painting.html: Added.

2015-12-24  Zalan Bujtas  <zalan@apple.com>

        ASSERTION FAILED: x2 >= x1 in WebCore::RenderElement::drawLineForBoxSide
        https://bugs.webkit.org/show_bug.cgi?id=151210

        Reviewed by Simon Fraser.

        "IntRect outer = snappedIntRect(inner)" explicitly converts inner to LayoutRect and
        returns a snapped IntRect. When inner (after the inflate) overflows LayoutUnit,
        the snapped outer rect becomes smaller than the inner rect.

        This patch also enables outline painting on subpixel positions.

        * fast/borders/hidpi-outline-on-subpixel-position-expected.html: Added.
        * fast/borders/hidpi-outline-on-subpixel-position.html: Added.
        * fast/borders/outline-offset-overflow-expected.txt: Added.
        * fast/borders/outline-offset-overflow.html: Added.

2015-12-23  Brady Eidson  <beidson@apple.com>

        Modern IDB: Don't open any new connections until after version change transactions are completely handled.
        https://bugs.webkit.org/show_bug.cgi?id=152441

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations: Enable 4 now-passing tests.

2015-12-23  Brady Eidson  <beidson@apple.com>

        Modern IDB: storage/indexeddb/transaction-basics.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=152481

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt:
        * storage/indexeddb/transaction-basics-expected.txt:

2015-12-23  Gyuyoung Kim  <gyuyoung.kim@webkit.org>

        Unreviewed EFL gardening.

        Mark shadow dom to Pass with incorrect result. Additionally remove
        disappeared storage tests in TestExpectations.

        Unskip MSE tests because MSE functionalities have been supported by gstreamer.

        * platform/efl/TestExpectations:

2015-12-23  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r187593): Scroll position jumps when selecting text in an iframe
        https://bugs.webkit.org/show_bug.cgi?id=152541
        rdar://problem/23886181

        Reviewed by Tim Horton.
        
        New test for autoscrolling iframe contents (an existing test scrolled an overflow:scroll
        inside an iframe, and didn't catch the bug).

        * fast/events/autoscroll-in-iframe-body-expected.txt: Added.
        * fast/events/autoscroll-in-iframe-body.html: Added.
        * fast/forms/input-readonly-autoscroll.html: Fix a missing double quote.

2015-12-22  Simon Fraser  <simon.fraser@apple.com>

        Minor cleanup in RenderBox::canBeProgramaticallyScrolled()
        https://bugs.webkit.org/show_bug.cgi?id=152515

        Reviewed by Tim Horton.

        Test that programmatic scrolling works inside overflow:hidden.

        * fast/overflow/overflow-hidden-scroll-into-view-expected.html: Added.
        * fast/overflow/overflow-hidden-scroll-into-view.html: Added.

2015-12-23  Ryan Haddad  <ryanhaddad@apple.com>

        Rebaselining storage/domstorage/localstorage/delete-defineproperty-removal.html
        https://bugs.webkit.org/show_bug.cgi?id=149179

        Unreviewed test gardening.

        * storage/domstorage/localstorage/delete-defineproperty-removal-expected.txt:

2015-12-23  Pranjal Jumde  <pjumde@apple.com>

        Test to check for stack recursion when indexed propertyNames defined using Object.defineProperty are deleted.
        https://bugs.webkit.org/show_bug.cgi?id=149179
        <rdar://problem/22708019>.

        Reviewed by Filip Pizlo.

        * storage/domstorage/localstorage/delete-defineproperty-removal-expected.txt: Added.
        * storage/domstorage/localstorage/delete-defineproperty-removal.html: Added.

2015-12-23  Eric Carlson  <eric.carlson@apple.com>

        [MediaStream] MediaDeviceInfo.label must be empty in some situations
        https://bugs.webkit.org/show_bug.cgi?id=152000

        Reviewed by Brent Fulgham.

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

2015-12-23  Andy VanWagoner  <andy@instructure.com>

        [INTL] Implement DateTime Format Functions
        https://bugs.webkit.org/show_bug.cgi?id=147606

        Reviewed by Benjamin Poulain.

        * js/intl-datetimeformat-expected.txt: Added format tests.
        * js/intl-datetimeformat.html: Used utf-8.
        * js/script-tests/intl-datetimeformat.js: Added format tests.

2015-12-23  Andy VanWagoner  <thetalecrafter@gmail.com>

        [INTL] Implement String.prototype.localeCompare in ECMA-402
        https://bugs.webkit.org/show_bug.cgi?id=147607

        Reviewed by Benjamin Poulain.

        * js/script-tests/string-localeCompare.js:
        * js/script-tests/string-prototype-properties.js: Update error message.
        * js/string-localeCompare-expected.txt:
        * js/string-prototype-properties-expected.txt: Update error message.
        * js/string-localeCompare.html:

2015-12-23  Ryan Haddad  <ryanhaddad@apple.com>

        Rebaselining fast/text/emoji.html for Windows
        https://bugs.webkit.org/show_bug.cgi?id=152147

        Unreviewed test gardening.

        * platform/win/fast/text/emoji-expected.txt:

2015-12-23  Ryan Haddad  <ryanhaddad@apple.com>

        Marking http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-* as failing on Win
        https://bugs.webkit.org/show_bug.cgi?id=152411

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2015-12-23  ChangSeok Oh  <changseok.oh@collabora.com>

        [GTK] Unreviewed gardening

        RTCPeerConnection-state.html is removed after r194112. Remove failure expectations
        for tests which have been passing. Add new expectations for text-combine-shrink-on-color-change.html

        * platform/gtk/TestExpectations:
        * platform/gtk/fast/text/text-combine-shrink-on-color-change-expected.png: Added.
        * platform/gtk/fast/text/text-combine-shrink-on-color-change-expected.txt: Added.

2015-12-23  Andy VanWagoner  <andy@instructure.com>

        [INTL] Implement Intl.DateTimeFormat.prototype.resolvedOptions ()
        https://bugs.webkit.org/show_bug.cgi?id=147603

        Reviewed by Benjamin Poulain.

        * js/intl-datetimeformat-expected.txt: Added resolvedOptions tests.
        * js/script-tests/intl-datetimeformat.js: Added resolvedOptions tests.
        (string_appeared_here):

2015-12-23  Chris Aljoudi <chris@chrismatic.io> and Alex Christensen <achristensen@webkit.org>

        Content blockers should be able to promote http to https
        https://bugs.webkit.org/show_bug.cgi?id=148966

        Reviewed by Benjamin Poulain.

        * http/tests/contentextensions/make-https-expected.txt: Added.
        * http/tests/contentextensions/make-https.html: Added.
        * http/tests/contentextensions/make-https.html.json: Added.

2015-12-22  Xabier Rodriguez Calvar  <calvaris@igalia.com>

        [Streams API] Fix cosmetic things after importing spec tests
        https://bugs.webkit.org/show_bug.cgi?id=152479

        Reviewed by Youenn Fablet.

        Spec version are mainly updated in this patch as it wasn't done when importing tests from the spec. Some other
        minor changes were done, as renumbering some tests, removing some orphan expectations and other styling issues.

        * streams/brand-checks.html:
        * streams/pipe-to.html:
        * streams/readable-stream-controller-error.html:
        * streams/readable-stream-pipeThrough.html:
        * streams/readable-stream-reader-read.html:
        * streams/reference-implementation/abstract-ops.html:
        * streams/reference-implementation/bad-strategies.html:
        * streams/reference-implementation/bad-underlying-sinks.html:
        * streams/reference-implementation/bad-underlying-sources-expected.txt: Removed.
        * streams/reference-implementation/brand-checks.html:
        * streams/reference-implementation/byte-length-queuing-strategy.html:
        * streams/reference-implementation/count-queuing-strategy.html:
        * streams/reference-implementation/pipe-through.html:
        * streams/reference-implementation/pipe-to-options.html:
        * streams/reference-implementation/pipe-to.html:
        * streams/reference-implementation/readable-stream-templated.html:
        * streams/reference-implementation/transform-stream-errors.html:
        * streams/reference-implementation/transform-stream.html:
        * streams/reference-implementation/writable-stream-abort.html:
        * streams/reference-implementation/writable-stream-expected.txt:
        * streams/reference-implementation/writable-stream.html:

2015-12-22  Ryan Haddad  <ryanhaddad@apple.com>

        Marking webgl/1.0.2/conformance/extensions/get-extension.html as flaky on mac-wk1
        https://bugs.webkit.org/show_bug.cgi?id=152506

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2015-12-22  Chris Fleizach  <cfleizach@apple.com>

        [WK2] Looping in testcase: fast/dom/Window/property-access-on-cached-window-after-frame-removed.html
        https://bugs.webkit.org/show_bug.cgi?id=152482

        Reviewed by Brent Fulgham.

        * platform/mac-wk2/TestExpectations:

2015-12-21  Ryan Haddad  <ryanhaddad@apple.com>

        Skipping unsupported test on ios-simulator
        https://bugs.webkit.org/show_bug.cgi?id=152491

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

2015-12-21  Ryan Haddad  <ryanhaddad@apple.com>

        Marking inspector/debugger/break-on-exception-catch.html as a flaky timeout on mac-wk2 debug
        https://bugs.webkit.org/show_bug.cgi?id=152492

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2015-12-21  Skachkov Oleksandr  <gskachkov@gmail.com>

        Unexpected exception assigning to this._property inside arrow function
        https://bugs.webkit.org/show_bug.cgi?id=152028

        Reviewed by Saam Barati.

        Added new test cases for arrow function, to force create lexical env in body of function.

        * js/arrowfunction-lexical-bind-this-expected.txt:
        * js/script-tests/arrowfunction-lexical-bind-this.js:

2015-12-21  Ryan Haddad  <ryanhaddad@apple.com>

        Marking inspector/debugger/command-line-api-exception-nested-catch.html as a flaky timeout on mac-wk1
        https://bugs.webkit.org/show_bug.cgi?id=152487

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2015-12-21  Antti Koivisto  <antti@apple.com>

        Limit cached redirect chain length
        https://bugs.webkit.org/show_bug.cgi?id=152477

        Reviewed by Andreas Kling.

        * http/tests/cache/disk-cache/redirect-chain-limits-expected.txt: Added.
        * http/tests/cache/disk-cache/redirect-chain-limits.html: Added.
        * http/tests/cache/disk-cache/resources/redirect-chain.phpl: Added.

2015-12-21  Ryan Haddad  <ryanhaddad@apple.com>

        Marking webaudio/audiocontext-state-interrupted.html  as a flaky crasher on mac-wk1
        https://bugs.webkit.org/show_bug.cgi?id=152485

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2015-12-21  Ryan Haddad  <ryanhaddad@apple.com>

        Skipping fast/events/can-click-element-on-page-with-active-pseudo-class-and-search-field.html on ios-simulator
        https://bugs.webkit.org/show_bug.cgi?id=152449

        Unreviewed teset gardening.

        * platform/ios-simulator/TestExpectations:

2015-12-21  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r194328.

        This change appears to have caused failures in JSC tests

        Reverted changeset:

        "[INTL] Implement String.prototype.localeCompare in ECMA-402"
        https://bugs.webkit.org/show_bug.cgi?id=147607
        http://trac.webkit.org/changeset/194328

2015-12-21  Andy VanWagoner  <thetalecrafter@gmail.com>

        [INTL] Implement String.prototype.localeCompare in ECMA-402
        https://bugs.webkit.org/show_bug.cgi?id=147607

        Reviewed by Darin Adler.

        * js/script-tests/string-localeCompare.js:
        * js/script-tests/string-prototype-properties.js: Update error message.
        * js/string-localeCompare-expected.txt:
        * js/string-prototype-properties-expected.txt: Update error message.
        * js/string-localeCompare.html:

2015-12-20  Jeremy Zerfas  <WebKit@JeremyZerfas.com>

        Don't allocate a NSImage and skip unneeded call to TIFFRepresentation when copying image to clipboard.
        https://bugs.webkit.org/show_bug.cgi?id=152374

        Reviewed by Darin Adler.

        Added test to make sure that when copying a 50 frame 500x500 animation
        (50 MB uncompressed) to the clipboard, the additional memory usage is
        kept to less than 200 MB.

        * fast/images/image-copy-memory-usage-expected.txt: Added.
        * fast/images/image-copy-memory-usage.html: Added.
        * fast/images/resources/dot-moving-in-a-circle-animation.gif: Added.

2015-12-20  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r194033 and r194267.
        https://bugs.webkit.org/show_bug.cgi?id=152465

        Caused crashes on Mac WK1 bots (Requested by youenn on
        #webkit).

        Reverted changesets:

        "[Streams API] Expose ReadableStream and relatives to Worker"
        https://bugs.webkit.org/show_bug.cgi?id=152066
        http://trac.webkit.org/changeset/194033

        "[Streams API] imported/w3c/web-platform-tests/streams-api
        /readable-streams/cancel.html has a flaky test"
        https://bugs.webkit.org/show_bug.cgi?id=152065
        http://trac.webkit.org/changeset/194267

2015-12-18  Antti Koivisto  <antti@apple.com>

        Cache redirects as separate entries
        https://bugs.webkit.org/show_bug.cgi?id=152424

        Reviewed by Alex Christensen.

        * http/tests/cache/disk-cache/disk-cache-redirect-expected.txt: Added.
        * http/tests/cache/disk-cache/disk-cache-redirect.html: Added.
        * http/tests/cache/disk-cache/resources/generate-response.cgi:

2015-12-18  Michael Catanzaro  <mcatanzaro@igalia.com>

        [GTK] Mark fast/regions/overflow/overflow-region-float.html as passing

        Unreviewed test gardening. This test has been passing since r191658.

        * platform/gtk/TestExpectations:

2015-12-18  Ryan Haddad  <ryanhaddad@apple.com>

        Skipping fast/scrolling/rtl-point-in-iframe.html on ios-simulator since it tests wheel events.
        https://bugs.webkit.org/show_bug.cgi?id=152442

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

2015-12-18  Ryan Haddad  <ryanhaddad@apple.com>

        Rebaseline imported/w3c/web-platform-tests/html/dom/interfaces.html for ios-simulator
        https://bugs.webkit.org/show_bug.cgi?id=152437

        Unreviewed test gardening.

        * platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:

2015-12-18  Ryan Haddad  <ryanhaddad@apple.com>

        Marking inspector/console/messagesCleared.html as a flaky timeout on mac-wk2 debug
        https://bugs.webkit.org/show_bug.cgi?id=152025

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2015-12-18  Brady Eidson  <beidson@apple.com>

        Modern IDB: Refactor when opening the backing store takes place.
        https://bugs.webkit.org/show_bug.cgi?id=152405

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

2015-12-18  Michael Catanzaro  <mcatanzaro@igalia.com>

        [GTK] Unreviewed gardening

        css3/flexbox/multiline-reverse-wrap-baseline.html consistently passes for GTK since
        r191623, but fails on Apple ports, so add a GTK-specific Pass expectation.

        * platform/gtk/TestExpectations:

2015-12-18  Michael Catanzaro  <mcatanzaro@igalia.com>

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

        fast/images/animated-gif-body-outside-viewport.html and
        fast/images/animated-gif-window-resizing.html are flaky; mark them
        accordingly.

        * platform/gtk/TestExpectations:

2015-12-18  Michael Catanzaro  <mcatanzaro@igalia.com>

        [GTK] Unreviewed gardening

        Remove failure expectation for fast/events/drag-and-drop-autoscroll-inner-frame.html which
        has been consistently passing since r192511.

        * platform/gtk/TestExpectations:

2015-12-17  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r194241 and r194252.
        https://bugs.webkit.org/show_bug.cgi?id=152415

        Caused crashes on GuardMalloc (Requested by ap on #webkit).

        Reverted changesets:

        "Modern IDB: Refactor open/delete requests to exist in the
        same queue."
        https://bugs.webkit.org/show_bug.cgi?id=152397
        http://trac.webkit.org/changeset/194241

        "Modern IDB: Refactor when opening the backing store takes
        place."
        https://bugs.webkit.org/show_bug.cgi?id=152405
        http://trac.webkit.org/changeset/194252

2015-12-17  Sukolsak Sakshuwong  <sukolsak@gmail.com>

        [INTL] Implement Collator Compare Functions
        https://bugs.webkit.org/show_bug.cgi?id=147604

        Reviewed by Darin Adler.

        * js/intl-collator-expected.txt:
        * js/intl-collator.html:
        * js/script-tests/intl-collator.js:
        (testCollator):

2015-12-17  Brady Eidson  <beidson@apple.com>

        Modern IDB: Refactor when opening the backing store takes place.
        https://bugs.webkit.org/show_bug.cgi?id=152405

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

2015-12-17  Joseph Pecoraro  <pecoraro@apple.com>

        Provide a way to distinguish a nested lexical block from a function's lexical block
        https://bugs.webkit.org/show_bug.cgi?id=152361

        Reviewed by Saam Barati.

        * inspector/debugger/breakpoint-scope-expected.txt:
        We will soon remove the backend sending a "Local" scope.
        The backend was just marking the first closure scope as local.
        The frontend can do this itself and do a better job of it.

        * inspector/model/resources/all-scopes.js: Added.
        (testAllScopes.innerScope):
        (testAllScopes):
        * inspector/model/resources/block-scopes.js: Added.
        (testBlockScopes):
        (testBlockScopes.method):
        * inspector/model/resources/function-name-scopes.js: Added.
        (testFunctionNameScope1):
        * inspector/model/scope-chain-node-expected.txt: Added.
        * inspector/model/scope-chain-node.html: Added.
        Tests for ways to get all the different scope types and
        specific cases of certain scope types.

2015-12-17  Keith Miller  <keith_miller@apple.com>

        [ES6] Add support for Symbol.hasInstance
        https://bugs.webkit.org/show_bug.cgi?id=151839

        Reviewed by Saam Barati.

        Fix tests to reflect the changes to instanceof in ES6.

        Added a new regression test for bound functions in instanceof
        as the perfomance on bound functions should, to some degree,
        reflect the performance on C-API users.

        * inspector/model/remote-object-get-properties-expected.txt:
        * js/Object-getOwnPropertyNames-expected.txt:
        * js/exception-for-nonobject-expected.txt:
        * js/exception-instanceof-expected.txt:
        * js/instance-of-immediates-expected.txt:
        * js/regress/instanceof-bound-expected.txt: Added.
        * js/regress/instanceof-bound.html: Added.
        * js/regress/script-tests/instanceof-bound.js: Added.
        (Constructor):
        (test):
        * js/script-tests/Object-getOwnPropertyNames.js:

2015-12-17  Simon Fraser  <simon.fraser@apple.com>

        Disable viewport "shrink to fit" outside of multitasking mode
        https://bugs.webkit.org/show_bug.cgi?id=152403
        rdar://problem/23818102

        Reviewed by Tim Horton.
        
        This test no longer does shrink-to-fit, so starts with a min and initial scale of 1.

        * fast/viewport/ios/width-is-device-width-overflowing-expected.txt:

2015-12-16  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Add JSContext Script Profiling
        https://bugs.webkit.org/show_bug.cgi?id=151899

        Reviewed by Brian Burg.

        * inspector/script-profiler/event-type-API-expected.txt: Added.
        * inspector/script-profiler/event-type-API.html: Added.
        * inspector/script-profiler/event-type-Microtask-expected.txt: Added.
        * inspector/script-profiler/event-type-Microtask.html: Added.
        * inspector/script-profiler/tracking-expected.txt: Added.
        * inspector/script-profiler/tracking.html: Added.
        Tests for the new ScriptProfiler domain.

2015-12-17  Ryan Haddad  <ryanhaddad@apple.com>

        Marking fast/media/mq-* tests as failing on ios-simulator
        https://bugs.webkit.org/show_bug.cgi?id=152137

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

2015-12-17  Ryan Haddad  <ryanhaddad@apple.com>

        Skipping http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-* tests on ios-simulator
        https://bugs.webkit.org/show_bug.cgi?id=152390

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

2015-12-17  Lorenzo Tilve  <ltilve@igalia.com>

        [GTK] Unreviewed gardening
        
        Remove failure expectations for tests that have been passing after
        r185157, r186191, r189670, r191658 and r191727.

        * platform/gtk/TestExpectations:

2015-12-17  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        Remove temporary flakiness expectations for WPT tests introduced for bug 152257
        https://bugs.webkit.org/show_bug.cgi?id=152377

        Unreviewed.

        * TestExpectations: removing some flakiness expectations.

2015-12-17  Yusuke Suzuki  <utatane.tea@gmail.com>

        [ES6] Handle new_generator_func / new_generator_func_exp in DFG / FTL
        https://bugs.webkit.org/show_bug.cgi?id=152227

        Reviewed by Saam Barati.

        Make the test taking longer time.

        * js/regress/script-tests/generator-function-create.js:
        (test):

2015-12-16  Andy Estes  <aestes@apple.com>

        [iOS] Block loading external stylesheets in the Content-Disposition: attachment sandbox
        https://bugs.webkit.org/show_bug.cgi?id=152375
        <rdar://problem/22020902>

        Reviewed by Darin Adler.

        * http/tests/contentdispositionattachmentsandbox/at-import-stylesheets-disabled-expected.txt: Added.
        * http/tests/contentdispositionattachmentsandbox/at-import-stylesheets-disabled.html: Added.
        * http/tests/contentdispositionattachmentsandbox/cross-origin-frames-disabled-expected.txt:
        * http/tests/contentdispositionattachmentsandbox/external-stylesheets-disabled-expected.txt: Added.
        * http/tests/contentdispositionattachmentsandbox/external-stylesheets-disabled.html: Added.
        * http/tests/contentdispositionattachmentsandbox/resources/at-import-stylesheets-frame.php: Added.
        * http/tests/contentdispositionattachmentsandbox/resources/external-stylesheets-frame.php: Added.
        * http/tests/contentdispositionattachmentsandbox/resources/xml-stylesheet-processing-instructions-frame.php: Added.
        * http/tests/contentdispositionattachmentsandbox/xml-stylesheet-processing-instructions-disabled-expected.txt: Added.
        * http/tests/contentdispositionattachmentsandbox/xml-stylesheet-processing-instructions-disabled.html: Added.

2015-12-16  Ryan Haddad  <ryanhaddad@apple.com>

        Adding timout expectation to one more wpt test that I missed in the last commit.
        https://bugs.webkit.org/show_bug.cgi?id=152335

        Unreviewed test gardening.

        * TestExpectations:

2015-12-16  Ryan Haddad  <ryanhaddad@apple.com>

        Adding timeout to wpt TestExpectations due to WK/WPT testharness.js issues.
        https://bugs.webkit.org/show_bug.cgi?id=152335

        Unreviewed test gadening.

        * TestExpectations:

2015-12-16  Ryan Haddad  <ryanhaddad@apple.com>

        Re-baseline pageoverlay/overlay* tests for mac-wk1
        https://bugs.webkit.org/show_bug.cgi?id=152338

        Unreviewed test gardening.

        * platform/mac-wk1/pageoverlay/overlay-large-document-expected.txt:
        * platform/mac-wk1/pageoverlay/overlay-large-document-scrolled-expected.txt:
        * platform/mac-wk1/pageoverlay/overlay-small-frame-mouse-events-expected.txt:

2015-12-16  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        Mark additional wpt tests as flaky due to WK/WPT testharness.js
        https://bugs.webkit.org/show_bug.cgi?id=152335

        Unreviewed.

        * TestExpectations: marking some more tests as flaky.

2015-12-16  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Typing object literal in the console causes a parse error
        https://bugs.webkit.org/show_bug.cgi?id=141737

        Reviewed by Timothy Hatcher.

        * inspector/controller/runtime-controller-expected.txt: Added.
        * inspector/controller/runtime-controller.html: Added.

2015-12-08  Sergio Villar Senin  <svillar@igalia.com>

        Fix computation of min|max-content contribution of non-replaced blocks
        https://bugs.webkit.org/show_bug.cgi?id=152004

        Reviewed by Darin Adler.

        * fast/css-intrinsic-dimensions/auto-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
        * fast/css-intrinsic-dimensions/auto-maxcontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
        * fast/css-intrinsic-dimensions/auto-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
        * fast/css-intrinsic-dimensions/auto-mincontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
        * fast/css-intrinsic-dimensions/fillavailable-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
        * fast/css-intrinsic-dimensions/fillavailable-maxcontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
        * fast/css-intrinsic-dimensions/fillavailable-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
        * fast/css-intrinsic-dimensions/fillavailable-mincontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
        * fast/css-intrinsic-dimensions/fitcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
        * fast/css-intrinsic-dimensions/fitcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
        * fast/css-intrinsic-dimensions/fitcontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
        * fast/css-intrinsic-dimensions/fitcontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
        * fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-1-expected.html: Added.
        * fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-1.html: Added.
        * fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-2-expected.html: Added.
        * fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-2.html: Added.
        * fast/css-intrinsic-dimensions/indefinite-percent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
        * fast/css-intrinsic-dimensions/indefinite-percent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
        * fast/css-intrinsic-dimensions/indefinite-percent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
        * fast/css-intrinsic-dimensions/indefinite-percent-mincontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
        * fast/css-intrinsic-dimensions/maxcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
        * fast/css-intrinsic-dimensions/maxcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
        * fast/css-intrinsic-dimensions/maxcontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
        * fast/css-intrinsic-dimensions/maxcontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
        * fast/css-intrinsic-dimensions/mincontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
        * fast/css-intrinsic-dimensions/mincontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
        * fast/css-intrinsic-dimensions/mincontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added.
        * fast/css-intrinsic-dimensions/mincontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html: Added.
        * fast/css-intrinsic-dimensions/resources/intrinsic-size-contribution.css: Added.
        (.container):
        (.item):
        (.border):
        (.padding):
        (.margin):

2015-12-16  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        Mac EWS bots frequently fail several wpt tests
        https://bugs.webkit.org/show_bug.cgi?id=152257

        Unreviewed.

        * TestExpectations: marking some tests as flaky.

2015-12-16  Commit Queue  <commit-queue@webkit.org>

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

        due to missing OSR exit materialization support in FTL
        (Requested by yusukesuzuki on #webkit).

        Reverted changeset:

        "[ES6] Handle new_generator_func / new_generator_func_exp in
        DFG / FTL"
        https://bugs.webkit.org/show_bug.cgi?id=152227
        http://trac.webkit.org/changeset/194135

2015-12-16  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        Align WebKit testharness.js with WPT testharness.js
        https://bugs.webkit.org/show_bug.cgi?id=152297

        Reviewed by Darin Adler.

        Cosmetic changes (output:true is overriden by WK testharnessreport.js)
        To remove the warning "WPT tests are not using the same testharness.js file as other WebKit Layout tests."

        * media/track/getCueAsHTMLCrash.html: Adding testharnessreport.js and removing call to dumpAsText.
        * media/track/getCueAsHTMLCrash-expected.txt: Rebasing as tests are now outputting results.
        * resources/testharness.js:

2015-12-16  Yusuke Suzuki  <utatane.tea@gmail.com>

        [ES6] Handle new_generator_func / new_generator_func_exp in DFG / FTL
        https://bugs.webkit.org/show_bug.cgi?id=152227

        Reviewed by Saam Barati.

        Make the test taking longer time.

        * js/regress/script-tests/generator-function-create.js:
        (test):

2015-12-16  Tomas Popela  <tpopela@redhat.com>

        [GTK] Correct the wrong expectation introduced in r194106
        https://bugs.webkit.org/show_bug.cgi?id=152325

        Unreviewed GTK gardening

        * platform/gtk/http/tests/plugins/plugin-javascript-access-expected.txt:

2015-12-15  Ryan Haddad  <ryanhaddad@apple.com>

        Rebaseline fast/viewport/ios tests for ios-simulator, remove failure expectation and re-enable test directory.
        https://bugs.webkit.org/show_bug.cgi?id=152135

        Reviewed by Simon Fraser.

        * platform/ios-simulator-wk2/TestExpectations:
        * platform/ios-simulator/TestExpectations:
        * platform/ios-simulator/fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-expected.txt:
        * platform/ios-simulator/fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-tall-expected.txt:
        * platform/ios-simulator/fast/viewport/ios/width-is-device-width-overflowing-expected.txt:
        * platform/ios-simulator/fast/viewport/ios/width-is-device-width-overflowing-no-shrink-to-fit-expected.txt:

2015-12-15  Jiewen Tan  <jiewen_tan@apple.com>

        Verify that Referer Policy within Content-Disposition:attachment sandbox is always ReferrerPolicyNever
        https://bugs.webkit.org/show_bug.cgi?id=152260
        <rdar://problem/23884579>

        Reviewed by Andy Estes.

        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-expected.txt: Added.
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-always-expected.txt: Added.
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-always.html: Added.
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-default-expected.txt: Added.
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-default.html: Added.
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-never-expected.txt: Added.
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-never.html: Added.
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-no-referrer-expected.txt: Added.
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-no-referrer-when-downgrade-expected.txt: Added.
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-no-referrer-when-downgrade.html: Added.
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-no-referrer.html: Added.
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-origin-expected.txt: Added.
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-origin.html: Added.
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-unsafe-url-expected.txt: Added.
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped-with-meta-referer-unsafe-url.html: Added.
        * http/tests/contentdispositionattachmentsandbox/referer-header-stripped.html: Added.
        * http/tests/contentdispositionattachmentsandbox/resources/referer-header-stripped-frame.php: Added.
        * http/tests/contentdispositionattachmentsandbox/resources/referer-header-stripped.js: Added.
        * http/tests/contentdispositionattachmentsandbox/resources/subresource-request-not-include-referer-header-frame.php: Removed.
        * http/tests/contentdispositionattachmentsandbox/subresource-request-not-include-referer-header-expected.txt: Removed.
        * http/tests/contentdispositionattachmentsandbox/subresource-request-not-include-referer-header.html: Removed.

2015-12-15  Timothy Horton  <timothy_horton@apple.com>

        Rebaseline some page overlay tests for WK1

        * platform/mac-wk1/pageoverlay/overlay-installation-expected.txt:
        * platform/mac-wk1/pageoverlay/overlay-large-document-expected.txt:
        * platform/mac-wk1/pageoverlay/overlay-large-document-scrolled-expected.txt:
        * platform/mac-wk1/pageoverlay/overlay-small-frame-mouse-events-expected.txt: Added.

2015-12-15  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Localize "global code" and "eval code" strings
        https://bugs.webkit.org/show_bug.cgi?id=152313

        Reviewed by Timothy Hatcher.

        * inspector/debugger/js-stacktrace-expected.txt:
        * inspector/debugger/js-stacktrace.html:
        * inspector/model/stack-trace-expected.txt: Added.
        * inspector/model/stack-trace.html: Added.

2015-12-15  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (r191849): There's no yellow bouncy highlight when using Find on Page on iOS
        https://bugs.webkit.org/show_bug.cgi?id=152241
        <rdar://problem/23642574>

        Reviewed by Simon Fraser.

        * pageoverlay/overlay-small-frame-mouse-events-expected.txt: Added.
        * pageoverlay/overlay-small-frame-mouse-events.html: Added.
        Add a test ensuring that small-frame overlays get mouse events.

        * pageoverlay/overlay-small-frame-paints-expected.txt: Added.
        * pageoverlay/overlay-small-frame-paints.html: Added.
        Add a test ensuring that small-frame overlays get paint callbacks.

2015-12-15  Myles C. Maxfield  <mmaxfield@apple.com>

        [Font Features] TrueType fonts trigger real features even when synthesis is applied
        https://bugs.webkit.org/show_bug.cgi?id=152287

        Reviewed by Darin Adler.

        Adding tests.

        * css3/font-variant-petite-caps-synthesis-expected.html:
        * css3/font-variant-petite-caps-synthesis.html:
        * css3/font-variant-small-caps-synthesis-expected.html:
        * css3/font-variant-small-caps-synthesis.html:
        * css3/font-variant-petite-caps-synthesis-coverage-expected.html:
        * css3/font-variant-petite-caps-synthesis-coverage.html:
        * css3/font-variant-small-caps-synthesis-coverage-expected.html:
        * css3/font-variant-small-caps-synthesis-coverage.html:

2015-12-15  Mark Lam  <mark.lam@apple.com>

        Polymorphic operand types for DFG and FTL bit operators.
        https://bugs.webkit.org/show_bug.cgi?id=152191

        Reviewed by Saam Barati.

        * js/regress/ftl-polymorphic-bitand-expected.txt: Added.
        * js/regress/ftl-polymorphic-bitand.html: Added.
        * js/regress/ftl-polymorphic-bitor-expected.txt: Added.
        * js/regress/ftl-polymorphic-bitor.html: Added.
        * js/regress/ftl-polymorphic-bitxor-expected.txt: Added.
        * js/regress/ftl-polymorphic-bitxor.html: Added.
        * js/regress/ftl-polymorphic-lshift-expected.txt: Added.
        * js/regress/ftl-polymorphic-lshift.html: Added.
        * js/regress/ftl-polymorphic-rshift-expected.txt: Added.
        * js/regress/ftl-polymorphic-rshift.html: Added.
        * js/regress/ftl-polymorphic-urshift-expected.txt: Added.
        * js/regress/ftl-polymorphic-urshift.html: Added.
        * js/regress/script-tests/ftl-polymorphic-bitand.js: Added.
        (o1.valueOf):
        (foo):
        * js/regress/script-tests/ftl-polymorphic-bitor.js: Added.
        (o1.valueOf):
        (foo):
        * js/regress/script-tests/ftl-polymorphic-bitxor.js: Added.
        (o1.valueOf):
        (foo):
        * js/regress/script-tests/ftl-polymorphic-lshift.js: Added.
        (o1.valueOf):
        (foo):
        * js/regress/script-tests/ftl-polymorphic-rshift.js: Added.
        (o1.valueOf):
        (foo):
        * js/regress/script-tests/ftl-polymorphic-urshift.js: Added.
        (o1.valueOf):
        (foo):

2015-12-15  Adam Bergkvist  <adam.bergkvist@ericsson.com>

        WebRTC: Test that RTCPeerConnection promise functions reject on closed state
        https://bugs.webkit.org/show_bug.cgi?id=152295

        Reviewed by Eric Carlson.

        Add test that verifies RTCPeerConnection's behavior in the closed state
        (signalingState). Promise functions should reject, and (some) others
        should throw. Remove old test that tests incorrect behavior.

        * fast/mediastream/RTCPeerConnection-closed-state-expected.txt: Added.
        * fast/mediastream/RTCPeerConnection-closed-state.html: Added.
        * fast/mediastream/RTCPeerConnection-state-expected.txt: Removed.
        * fast/mediastream/RTCPeerConnection-state.html: Removed.

2015-12-15  Tomas Popela  <tpopela@redhat.com>

        [GTK] Gardening: Rebaseline tests
        https://bugs.webkit.org/show_bug.cgi?id=152301

        Unreviewed GTK gardening

        * platform/gtk/fast/dom/Window/window-lookup-precedence-expected.txt:
        Correct the expectations after r189202 when RangeException was
        removed.
        * platform/gtk/fast/dom/adopt-attribute-crash-expected.txt: Added.
        Add a new test expectations after r187148.
        * platform/gtk/http/tests/plugins/plugin-javascript-access-expected.txt: Added.
        Add a new test expectations after r193363.

2015-12-15  Ryan Haddad  <ryanhaddad@apple.com>

        Changing expectation for storage/indexeddb/deleted-objects.html to [ Failure Crash ]
        https://bugs.webkit.org/show_bug.cgi?id=152264

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2015-12-15  Javier Fernandez  <jfernandez@igalia.com>

        [css-align][css-grid] Overflow alignment value 'true' renamed to 'unsafe'
        https://bugs.webkit.org/show_bug.cgi?id=152251

        The 'True' Overflow Alignment keyword is known now as 'Unsafe', so adapting
        layout tests using such keyword.

        Reviewed by Darin Adler.

        * css3/overwrite-content-alignment-expected.txt:
        * css3/overwrite-content-alignment.html:
        * css3/overwrite-self-alignment-expected.txt:
        * css3/overwrite-self-alignment.html:
        * css3/parse-align-content-expected.txt:
        * css3/parse-align-content.html:
        * css3/parse-align-items-expected.txt:
        * css3/parse-align-items.html:
        * css3/parse-align-self-expected.txt:
        * css3/parse-align-self.html:
        * css3/parse-justify-content-expected.txt:
        * css3/parse-justify-content.html:
        * fast/css-grid-layout/grid-align-justify-overflow.html:
        * fast/css-grid-layout/grid-content-alignment-overflow.html:
        * fast/css/parse-justify-items-expected.txt:
        * fast/css/parse-justify-items.html:
        * fast/css/parse-justify-self-expected.txt:
        * fast/css/parse-justify-self.html:

2015-12-14  Ryan Haddad  <ryanhaddad@apple.com>

        Re-enabling passing test fast/viewport/ios/width-is-device-width.html, which was accidentally skipped with r194058.
        https://bugs.webkit.org/show_bug.cgi?id=152135

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:

2015-12-14  Yusuke Suzuki  <utatane.tea@gmail.com>

        Math.random should have an intrinsic thunk and it should be later handled as a DFG Node
        https://bugs.webkit.org/show_bug.cgi?id=152133

        Reviewed by Geoffrey Garen.

        Add new regression test.

        * js/regress/math-random-expected.txt: Added.
        * js/regress/math-random.html: Added.
        * js/regress/script-tests/math-random.js: Added.
        (test):

2015-12-14  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Stack traces in console incorrectly show "(anonymous function)" for global code
        https://bugs.webkit.org/show_bug.cgi?id=152280

        Reviewed by Brian Burg.

        * inspector/debugger/js-stacktrace-expected.txt:
        * inspector/debugger/js-stacktrace.html:

2015-12-14  Ryan Haddad  <ryanhaddad@apple.com>

        Marking storage/indexeddb/deleted-objects.html as a flaky crash on mac-wk1
        https://bugs.webkit.org/show_bug.cgi?id=152264

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2015-12-14  Ryan Haddad  <ryanhaddad@apple.com>

        Marking platform/ios-simulator/ios/scrolling tests as failing on ios-simulator
        https://bugs.webkit.org/show_bug.cgi?id=152276

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

2015-12-14  Ryan Haddad  <ryanhaddad@apple.com>

        Updating ios-simulator expectation for crashing tests http/tests/misc/large-js-program.php and js/dom/line-column-numbers.html
        https://bugs.webkit.org/show_bug.cgi?id=152279

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

2015-12-14  Ryan Haddad  <ryanhaddad@apple.com>

        Removing ios-simulator TestExpectations for deleted tests: streams/reference-implementation/readable-stream-cancel.html (r192186)
        and http/tests/inspector/console/access-inspected-object.html (r192186).
        https://bugs.webkit.org/show_bug.cgi?id=152131

        Unreviewed test gardening.

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

2015-12-14  Ryan Haddad  <ryanhaddad@apple.com>

        Adding a second newline to the expected result for compositing/iframes/page-cache-layer-tree.html
        https://bugs.webkit.org/show_bug.cgi?id=152132

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/compositing/iframes/page-cache-layer-tree-expected.txt:

2015-12-14  Ryan Haddad  <ryanhaddad@apple.com>

        Marking js/regress/generator-with-several-types.html as a flaky timeout on mac-wk1 debug.
        https://bugs.webkit.org/show_bug.cgi?id=152272

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2015-12-14  Ryan Haddad  <ryanhaddad@apple.com>

        Take 2 of updating expectations for fast/events/ios tests by removing the directory's [ Pass ] expectation.
        https://bugs.webkit.org/show_bug.cgi?id=152134

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:

2015-12-14  Ryan Haddad  <ryanhaddad@apple.com>

        Take 2 of updating expectations for fast/viewport/ios tests by removing the directory's [ Pass ] expectation.
        https://bugs.webkit.org/show_bug.cgi?id=152135

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/TestExpectations:

2015-12-14  Ryan Haddad  <ryanhaddad@apple.com>

        Rebaseline compositing/iframes/page-cache-layer-tree.html for iOS Simulator
        https://bugs.webkit.org/show_bug.cgi?id=152267

        Unreviewed test gardening.

        * platform/ios-simulator-wk2/compositing/iframes/page-cache-layer-tree-expected.txt:

2015-12-14  Ryan Haddad  <ryanhaddad@apple.com>

        Marking fast/viewport/ios/width-is-device-width-overflowing* tests as failing on iOS simulator
        https://bugs.webkit.org/show_bug.cgi?id=152135

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

2015-12-14  Chris Fleizach  <cfleizach@apple.com>

        AX: iOS: Text field variations do not have the correct traits
        https://bugs.webkit.org/show_bug.cgi?id=152237

        Reviewed by Mario Sanchez Prada.

        * accessibility/ios-simulator/textentry-traits-expected.txt: Added.
        * accessibility/ios-simulator/textentry-traits.html: Added.

2015-12-14  Ryan Haddad  <ryanhaddad@apple.com>

        Marking fast/viewport/ios/width-is-device-width-overflowing* tests as failing on iOS simulator
        https://bugs.webkit.org/show_bug.cgi?id=152135

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

2015-12-14  Ryan Haddad  <ryanhaddad@apple.com>

        Marking fast/picture/image-picture-* as failing on iOS simulator
        https://bugs.webkit.org/show_bug.cgi?id=152141

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

2015-12-14  Ryan Haddad  <ryanhaddad@apple.com>

        Removing failure expectation for css3/blending tests that are now passing on iOS simulator
        https://bugs.webkit.org/show_bug.cgi?id=152131

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

2015-12-14  Ryan Haddad  <ryanhaddad@apple.com>

        Rebaselining fast/text/emoji.html for iOS simulator
        https://bugs.webkit.org/show_bug.cgi?id=152261

        Unreviewed test gardening.

        * platform/ios-simulator/fast/text/emoji-expected.txt:

2015-12-14  Daniel Bates  <dabates@apple.com>

        [iOS] DOM click event may not be dispatched when page has :active style and <input type="search">
        https://bugs.webkit.org/show_bug.cgi?id=144451
        <rdar://problem/23099482>

        Reviewed by Simon Fraser.

        Add a test to ensure that a DOM click event is dispatched to an element in a subframe on a page
        with a search field and that specifies a CSS :active pseudo-class that changes the tap highlight
        color.

        Additionally, add tests to ensure we update the cancel button visibility whenever the visibility
        of the search field changes.

        * fast/events/can-click-element-on-page-with-active-pseudo-class-and-search-field-expected.txt: Added.
        * fast/events/can-click-element-on-page-with-active-pseudo-class-and-search-field.html: Added.
        * fast/forms/search/search-cancel-button-visible-when-input-becomes-disabled-expected.html: Added.
        * fast/forms/search/search-cancel-button-visible-when-input-becomes-disabled.html: Added.
        * fast/forms/search/search-cancel-button-visible-when-input-becomes-readonly-expected.html: Added.
        * fast/forms/search/search-cancel-button-visible-when-input-becomes-readonly.html: Added.
        * fast/forms/search/search-cancel-in-formerly-invisible-element-expected.html: Added.
        * fast/forms/search/search-cancel-in-formerly-invisible-element.html: Added.
        * fast/forms/search/search-cancel-toggle-visibility-initially-hidden-expected.html: Added.
        * fast/forms/search/search-cancel-toggle-visibility-initially-hidden.html: Added.
        * fast/forms/search/search-cancel-toggle-visibility-initially-visible-expected.html: Added.
        * fast/forms/search/search-cancel-toggle-visibility-initially-visible.html: Added.

2015-12-14  Chris Dumez  <cdumez@apple.com>

        Roll out r193974 and follow-up fixes as it caused JSC crashes
        https://bugs.webkit.org/show_bug.cgi?id=152256

        Unreviewed, roll out r193974 and follow-up fixes as it caused JSC crashes.

        * inspector/model/remote-object-get-properties-expected.txt:
        * js/Object-getOwnPropertyNames-expected.txt:
        * js/exception-for-nonobject-expected.txt:
        * js/exception-instanceof-expected.txt:
        * js/instance-of-immediates-expected.txt:
        * js/regress/instanceof-bound-expected.txt: Removed.
        * js/regress/instanceof-bound.html: Removed.
        * js/regress/script-tests/instanceof-bound.js: Removed.
        * js/script-tests/Object-getOwnPropertyNames.js:

2015-12-14  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        [Streams API] Expose ReadableStream and relatives to Worker
        https://bugs.webkit.org/show_bug.cgi?id=152066

        Reviewed by Darin Adler.

        Adding ByteLengthQueuingStrategy, CountQueuingStrategy and ReadableStream as worker constructors.

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

2015-12-14  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [GTK] Unreviewed gardening.

        * platform/gtk/TestExpectations: Update TestExpectations with the following changes:
          - Remove expectations for tests removed after r193411 r193426 and r19366.
          - Merge repeated expectations from some tests.
          - Mark tests failing after r188159.
          - Update list of imported/blink tests failing.

2015-12-14  Sergio Villar Senin  <svillar@igalia.com>

        [css-grid] Fix height computation of grid items with borders
        https://bugs.webkit.org/show_bug.cgi?id=151800

        Reviewed by Darin Adler.

        * fast/css-grid-layout/grid-item-with-border-in-intrinsic-expected.txt: Added.
        * fast/css-grid-layout/grid-item-with-border-in-intrinsic.html: Added.

2015-12-13  Zalan Bujtas  <zalan@apple.com>

        Clean up absolute positioned map properly.
        https://bugs.webkit.org/show_bug.cgi?id=152219
        rdar://problem/23861165

        Reviewed by Simon Fraser.

        We insert positioned renderers into a static map (RenderBlock::gPositionedDescendantsMap) to keep track of them.
        Since this static map is at block level, (positioned)inline renderers use their containing block to store
        their positioned descendants.
        This patch ensures that when an inline element can no longer hold positioned children, we remove them from
        the inline's containing block's map. -unless the container itself can hold positioned renderers(see RenderElement::canContainAbsolutelyPositionedObjects).

        * fast/block/positioning/crash-when-positioned-inline-has-positioned-child-expected.txt: Added.
        * fast/block/positioning/crash-when-positioned-inline-has-positioned-child.html: Added.

2015-12-13  Joanmarie Diggs  <jdiggs@igalia.com>

        AX: [EFL] Anonymous render block flow elements should be exposed as ATK_ROLE_SECTION; not ATK_ROLE_PANEL
        https://bugs.webkit.org/show_bug.cgi?id=152079

        Reviewed by Chris Fleizach.

        * platform/efl/accessibility/deleting-iframe-destroys-axcache-expected.txt: Added.
        * platform/efl/accessibility/image-link-expected.txt: Updated.
        * platform/efl/accessibility/image-with-alt-and-map-expected.txt: Updated.
        * platform/efl/accessibility/lists-expected.txt: Updated.
        * platform/efl/accessibility/media-element-expected.txt: Updated

2015-12-13  Brady Eidson  <beidson@apple.com>

        Modern IDB: TextExpectations gardening to run more tests.
        https://bugs.webkit.org/show_bug.cgi?id=152217

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations: 5 crash/timeout tests now either pass or merely have text failures.

2015-12-12  Brady Eidson  <beidson@apple.com>

        Modern IDB: Update a couple of tests that fail only because of error message differences.
        https://bugs.webkit.org/show_bug.cgi?id=152205

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/objectstore-autoincrement-expected.txt:
        * storage/indexeddb/open-cursor-expected.txt:

2015-12-12  Brady Eidson  <beidson@apple.com>

        Modern IDB: storage/indexeddb/index-duplicate-keypaths.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=152201

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

2015-12-11  Simon Fraser  <simon.fraser@apple.com>

        Mousewheel events don't work in iframes in RTL documents
        https://bugs.webkit.org/show_bug.cgi?id=152200

        Reviewed by Beth Dakin.
        
        Try dispatching wheel events to an iframe in an RTL document.

        * fast/scrolling/rtl-point-in-iframe-expected.txt: Added.
        * fast/scrolling/rtl-point-in-iframe.html: Added.

2015-12-11  Zalan Bujtas  <zalan@apple.com>

        ASSERTION FAILED: !rect.isEmpty() in WebCore::GraphicsContext::drawRect
        https://bugs.webkit.org/show_bug.cgi?id=151201

        Reviewed by Simon Fraser.

        Drawing empty rect is a waste.

        * fast/borders/empty-drawrect-assert-after-pixelsnap-expected.txt: Added.
        * fast/borders/empty-drawrect-assert-after-pixelsnap.html: Added.

2015-12-11  Jiewen Tan  <jiewen_tan@apple.com>

        Strip out Referer header when requesting subresources or following links for documents with "Content-Disposition: attachment"
        https://bugs.webkit.org/show_bug.cgi?id=152102
        <rdar://problem/22124230>

        Reviewed by Andy Estes.

        * http/tests/contentdispositionattachmentsandbox/resources/echo-http-referer.php: Added.
        * http/tests/contentdispositionattachmentsandbox/resources/subresource-request-not-include-referer-header-frame.php: Added.
        * http/tests/contentdispositionattachmentsandbox/subresource-request-not-include-referer-header-expected.txt: Added.
        * http/tests/contentdispositionattachmentsandbox/subresource-request-not-include-referer-header.html: Added.

2015-12-11  Eric Carlson  <eric.carlson@apple.com>

        [MediaStream] Add a setting to allow the mock media capture devices to be enabled and disabled
        https://bugs.webkit.org/show_bug.cgi?id=152197

        Reviewed by Dean Jackson.

        * fast/mediastream/mock-media-source-expected.txt: Added.
        * fast/mediastream/mock-media-source.html: Added.

2015-12-11  Beth Dakin  <bdakin@apple.com>

        _touchEventRegions should return regions in the view's coordinates
        https://bugs.webkit.org/show_bug.cgi?id=152189
        -and corresponding-
        rdar://problem/23188605

        Reviewed by Dan Bernstein.

        * fast/events/touch/ios/touch-event-rtl-expected.txt: Added.
        * fast/events/touch/ios/touch-event-rtl.html: Added.

2015-12-11  Alexey Proskuryakov  <ap@apple.com>

        Roll out http://trac.webkit.org/r193984, because the new test is timing out.

        Was: Strip out Referer header when requesting subresources or following links for documents with "Content-Disposition: attachment"
        https://bugs.webkit.org/show_bug.cgi?id=152102
        <rdar://problem/22124230>

        * http/tests/contentdispositionattachmentsandbox/resources/echo-http-referer.php: Removed.
        * http/tests/contentdispositionattachmentsandbox/resources/subresource-request-not-include-referer-header-frame.php: Removed.
        * http/tests/contentdispositionattachmentsandbox/subresource-request-not-include-referer-header-expected.txt: Removed.
        * http/tests/contentdispositionattachmentsandbox/subresource-request-not-include-referer-header.html: Removed.

2015-12-11  Brady Eidson  <beidson@apple.com>

        Modern IDB: storage/indexeddb/optional-arguments.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=152194

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/invalid-keys-expected.txt: Updated for new error message.
        * storage/indexeddb/optional-arguments-expected.txt: Remove results that expect IDBObjectStore.openKeyCursor() to be
          a thing. That method no longer exists in the spec and was already removed from the test.

2015-12-11  Brady Eidson  <beidson@apple.com>

        Modern IDB: storage/indexeddb/cursor-continue.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=152192

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/cursor-continue-expected.txt:

2015-12-11  Brady Eidson  <beidson@apple.com>

        Modern IDB: storage/indexeddb/index-basics.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=152190

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

2015-12-11  Keith Miller  <keith_miller@apple.com>

        Rebaseline a failing inspector test for a new property on Function.prototype.

        * inspector/model/remote-object-get-properties-expected.txt:

2015-12-11  Jiewen Tan  <jiewen_tan@apple.com>

        Strip out Referer header when requesting subresources or following links for documents with "Content-Disposition: attachment"
        https://bugs.webkit.org/show_bug.cgi?id=152102
        <rdar://problem/22124230>

        Reviewed by Andy Estes.

        * http/tests/contentdispositionattachmentsandbox/resources/echo-http-referer.php: Added.
        * http/tests/contentdispositionattachmentsandbox/resources/subresource-request-not-include-referer-header-frame.php: Added.
        * http/tests/contentdispositionattachmentsandbox/subresource-request-not-include-referer-header-expected.txt: Added.
        * http/tests/contentdispositionattachmentsandbox/subresource-request-not-include-referer-header.html: Added.

2015-12-11  Ryan Haddad  <ryanhaddad@apple.com>

        Marking fast/events/ios tests as flaky on ios-simulator due to timeouts
        https://bugs.webkit.org/show_bug.cgi?id=152134

        Unreviewed test gardening.

        * platform/ios-simulator/TestExpectations:

2015-12-11  Brady Eidson  <beidson@apple.com>

        Modern IDB: storage/indexeddb/key-type-array.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=152187

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/key-type-array-expected.txt:

2015-12-11  Brady Eidson  <beidson@apple.com>

        Modern IDB: Updates to 3 intversion tests, and/or their results.
        https://bugs.webkit.org/show_bug.cgi?id=152179

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * platform/wk2/storage/indexeddb/intversion-close-in-oncomplete-expected.txt:

        * storage/indexeddb/intversion-close-in-oncomplete-expected.txt:
        * storage/indexeddb/intversion-close-in-upgradeneeded-expected.txt:
        * storage/indexeddb/intversion-upgrades-expected.txt:
        * storage/indexeddb/resources/intversion-close-in-oncomplete.js:

2015-12-11  Keith Miller  <keith_miller@apple.com>

        [ES6] Add support for Symbol.hasInstance
        https://bugs.webkit.org/show_bug.cgi?id=151839

        Reviewed by Saam Barati.

        Fix tests to reflect the changes to instanceof in ES6.

        Added a new regression test for bound functions in instanceof
        as the perfomance on bound functions should, to some degree,
        reflect the performance on C-API users.

        * js/Object-getOwnPropertyNames-expected.txt:
        * js/exception-for-nonobject-expected.txt:
        * js/exception-instanceof-expected.txt:
        * js/instance-of-immediates-expected.txt:
        * js/regress/instanceof-bound-expected.txt: Added.
        * js/regress/instanceof-bound.html: Added.
        * js/regress/script-tests/instanceof-bound.js: Added.
        (Constructor):
        (test):
        * js/script-tests/Object-getOwnPropertyNames.js:

2015-12-11  Ryan Haddad  <ryanhaddad@apple.com>

        Updating mac-wk1 TestExpectations for fast/replaced/replaced-breaking.html to Yosemite+ to fix EWS bot results.
        https://bugs.webkit.org/show_bug.cgi?id=152178

        Unreviewed test gardening.

        * platform/mac-wk1/TestExpectations:

2015-12-11  Brady Eidson  <beidson@apple.com>

        Modern IDB: storage/indexeddb/intversion-abort-in-initial-upgradeneeded.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=152177

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * platform/wk2/storage/indexeddb/intversion-abort-in-initial-upgradeneeded-expected.txt: Copied from LayoutTests/storage/indexeddb/intversion-abort-in-initial-upgradeneeded-expected.txt.
        * storage/indexeddb/intversion-abort-in-initial-upgradeneeded-expected.txt:
        * storage/indexeddb/resources/intversion-abort-in-initial-upgradeneeded.js:

2015-12-11  Jiewen Tan  <jiewen_tan@apple.com>

        Do not fire load events from frames with scripting disabled
        https://bugs.webkit.org/show_bug.cgi?id=118042
        <rdar://problem/14272857>

        Reviewed by Brent Fulgham.

        Since the crash is not reproducible, only test case from Blink r153029 is merged:
        https://codereview.chromium.org/17682003

        * fast/images/image-load-event-crash-expected.txt: Added.
        * fast/images/image-load-event-crash.html: Added.

2015-12-11  Brady Eidson  <beidson@apple.com>

        Modern IDB: storage/indexeddb/index-count.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=152175

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/index-count-expected.txt:
        * storage/indexeddb/modern/index-get-count-failures-expected.txt:

2015-12-11  Daniel Bates  <dabates@apple.com>

        [iOS][WK2] Update expected results for tests imported/w3c/web-platform-tests

        * platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt: Added.
        * platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt: Added.
        * platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt: Renamed from LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt.
        * platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt: Added.
        * platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt: Added.

2015-12-11  Darin Adler  <darin@apple.com>

        Reduce the number of events that can be created by Document.createEvent
        https://bugs.webkit.org/show_bug.cgi?id=151931

        Reviewed by Alex Christensen.

        * TestExpectations: Added expected failures for the two tests that depend
        on createEvent("IDBVersionChangeEvent").

        * animations/animation-events-create.html: Updated to use
        "new WebKitAnimationEvent" instead of document.createEvent.

        * fast/events/event-creation-expected.txt: Removed expected results for
        various events that can no longer be created with createEvent.
        * fast/events/event-creation.html: Removed tests for various events
        that can no longer be created with createEvent.

        * imported/blink/plugins/plugin-synthetic-event-crash.html: Updated to use
        "new PopStateEvent" instead of document.createEvent.

        * indieui/create-uirequestevent-expected.txt: Removed.
        * indieui/create-uirequestevent.html: Removed.

        * platform/mac-wk2/TestExpecations: Removed expectations for some deleted tests.

        * platform/wk2/storage/indexeddb/removed-expected.txt: Removed, since this is
        no different from the platform-independent expected result.

        * transitions/transition-end-event-create.html: Updated to use
        "new WebKitTransitionEvent" instead of document.createEvent.

2015-12-11  Nikita Vasilyev  <nvasilyev@apple.com>

        Web Inspector: When logging strings, detect stack traces and show them as StackTraceView
        https://bugs.webkit.org/show_bug.cgi?id=149790

        Reviewed by Timothy Hatcher.

        * inspector/console/js-isLikelyStackTrace.html: Added.

2015-12-10  Brady Eidson  <beidson@apple.com>

        Modern IDB: storage/indexeddb/objectstore-count.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=152167

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/objectstore-count-expected.txt:

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

        ASSERTION FAILED: !simpleLineLayout() in WebCore::RenderText::collectSelectionRectsForLineBoxes
        https://bugs.webkit.org/show_bug.cgi?id=152115

        Reviewed by Simon Fraser.

        document.execCommand("indent") generates a blockquote wrapper and moves the indented content inside.
        If the indented content is already inside a selection, we need to make sure that newly created flow uses
        normal line layout.
        This patch fixes the generic case as re-parenting an already selected renderer is not specific to document.execCommand("indent").

        * fast/block/selection-inside-simple-line-layout-expected.txt: Added.
        * fast/block/selection-inside-simple-line-layout.html: Added.

2015-12-10  Brady Eidson  <beidson@apple.com>

        Unreviewed TestExpectations gardening.

        * platform/mac-wk1/TestExpectations: Move 3 failing IDB tests to the "Skipped because of Workers" section.

2015-12-10  Eric Carlson  <eric.carlson@apple.com>

        [MediaStream] Expose media capture devices persistent permissions to WebCore
        https://bugs.webkit.org/show_bug.cgi?id=152087

        Reviewed by Chris Dumez.

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

2015-12-10  Daniel Bates  <dabates@apple.com>

        [CSP] eval() is not blocked for stringified literals
        https://bugs.webkit.org/show_bug.cgi?id=152158
        <rdar://problem/15775625>

        Reviewed by Saam Barati.

        Update test LayoutTests/http/tests/security/contentSecurityPolicy/eval-blocked.html to be
        more comprehensive.

        Add tests to ensure that we block eval() from within an external JavaScript script when the
        policy of the page disallows eval() and that we block eval() inside a subframe that disallows
        eval() when the page in the main frame allows eval().

        * http/tests/security/contentSecurityPolicy/eval-blocked-expected.txt:
        * http/tests/security/contentSecurityPolicy/eval-blocked-in-external-script-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/eval-blocked-in-external-script.html: Added.
        * http/tests/security/contentSecurityPolicy/eval-blocked-in-subframe-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/eval-blocked-expected.txt.
        * http/tests/security/contentSecurityPolicy/eval-blocked-in-subframe.html: Added.
        * http/tests/security/contentSecurityPolicy/eval-blocked.html:
        * http/tests/security/contentSecurityPolicy/resources/eval-blocked-in-external-script.js: Added.

2015-12-10  Brady Eidson  <beidson@apple.com>

        Modern IDB: storage/indexeddb/delete-in-upgradeneeded-close-in-versionchange.html fails
        https://bugs.webkit.org/show_bug.cgi?id=152144

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/modern/abort-requests-cancelled-expected.txt:
        * storage/indexeddb/modern/aborted-put-expected.txt:
        * storage/indexeddb/modern/createobjectstore-basic-expected.txt:
        * storage/indexeddb/modern/deletedatabase-2-expected.txt:
        * storage/indexeddb/modern/deletedatabase-2.html:
        * storage/indexeddb/modern/deleteindex-2-expected.txt:
        * storage/indexeddb/modern/deleteobjectstore-1-expected.txt:
        * storage/indexeddb/modern/opendatabase-versions-expected.txt:
        * storage/indexeddb/modern/opendatabase-versions.html:
        * storage/indexeddb/modern/versionchange-abort-then-reopen-expected.txt:

2015-12-10  Ryan Haddad  <ryanhaddad@apple.com>

        Rebaselining fast/text/emoji.html for Yosemite.
        https://bugs.webkit.org/show_bug.cgi?id=152147

        Unreviewed test gardening.

        * platform/mac-yosemite/fast/text/emoji-expected.txt: Added.

2015-12-10  Myles C. Maxfield  <mmaxfield@apple.com>

        Build fix

        Unreviewed.

        * platform/mac/TestExpectations:

2015-12-10  Ryan Haddad  <ryanhaddad@apple.com>

        Adding iOS-simulator expectations for compositing/layers-inside-overflow-scroll.html
        https://bugs.webkit.org/show_bug.cgi?id=152132

        Unreviewed test gardening.

        * platform/ios-simulator/compositing/layers-inside-overflow-scroll-expected.txt: Added.

2015-12-10  Alex Christensen  <achristensen@webkit.org>

        REGRESSION (r192796) WKBundlePageResourceLoadClient should be able to setHTTPBody in willSendRequestForFrame
        https://bugs.webkit.org/show_bug.cgi?id=152022
        rdar://problem/23763584

        Reviewed by Darin Adler.

        * TestExpectations:
        * http/tests/misc/resources/post-echo.cgi: Copied from LayoutTests/http/tests/xmlhttprequest/resources/post-echo.cgi.
        * http/tests/misc/will-send-request-with-client-provided-http-body-expected.txt: Added.
        * http/tests/misc/will-send-request-with-client-provided-http-body.html: Added.
        * platform/wk2/TestExpectations:
        New test for WK2 only.

2015-12-10  Enrica Casucci  <enrica@apple.com>

        Change skin tone support for two emoji.
        https://bugs.webkit.org/show_bug.cgi?id=152147
        rdar://problem/23716993
        rdar://problem/23716344

        Reviewed by Darin Adler.

        * fast/text/emoji.html:
        * platform/mac/fast/text/emoji-expected.txt:

2015-12-10  Ryan Haddad  <ryanhaddad@apple.com>

        Skip unsupported css3/font-variant-* tests on Win
        https://bugs.webkit.org/show_bug.cgi?id=149774

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2015-12-10  Daniel Bates  <dabates@apple.com>

        [iOS][WK2] Update expected results for editing tests

        * platform/ios-simulator-wk2/editing/deleting/delete-3608462-fix-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/4278698-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/before-after-input-element-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/editable-html-element-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/editing-empty-divs-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-3778059-fix-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-3851164-fix-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-at-end-01-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-br-009-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-br-at-tabspan-001-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-br-at-tabspan-002-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-br-at-tabspan-003-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-br-quoted-001-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-br-quoted-002-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-br-quoted-003-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-br-quoted-004-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-br-quoted-005-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-br-quoted-006-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-div-009-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-div-010-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-div-011-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-div-012-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-div-013-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-div-014-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-div-015-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-div-016-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-div-017-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-div-018-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-div-019-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-div-020-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-div-022-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-div-023-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-div-024-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-div-025-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-div-026-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-div-027-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-paragraph-01-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-paragraph-02-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-paragraph-03-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-paragraph-04-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-paragraph-05-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-tab-003-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-text-at-tabspan-001-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-text-at-tabspan-002-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-text-at-tabspan-003-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/insert-text-with-newlines-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/line-break-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/multiple-lines-selected-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/paragraph-separator-01-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/paragraph-separator-02-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/paragraph-separator-03-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/paragraph-separator-in-table-1-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/paragraph-separator-in-table-2-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/redo-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/return-key-with-selection-001-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/return-key-with-selection-002-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/return-key-with-selection-003-expected.txt:
        * platform/ios-simulator-wk2/editing/inserting/typing-002-expected.txt:
        * platform/ios-simulator-wk2/editing/style/apple-style-editable-mix-expected.txt:
        * platform/ios-simulator-wk2/editing/style/block-style-001-expected.txt:
        * platform/ios-simulator-wk2/editing/style/block-style-002-expected.txt:
        * platform/ios-simulator-wk2/editing/style/block-style-003-expected.txt:
        * platform/ios-simulator-wk2/editing/style/block-styles-007-expected.txt:
        * platform/ios-simulator-wk2/editing/style/create-block-for-style-001-expected.txt:
        * platform/ios-simulator-wk2/editing/style/create-block-for-style-002-expected.txt:
        * platform/ios-simulator-wk2/editing/style/create-block-for-style-003-expected.txt:
        * platform/ios-simulator-wk2/editing/style/create-block-for-style-004-expected.txt:
        * platform/ios-simulator-wk2/editing/style/create-block-for-style-005-expected.txt:
        * platform/ios-simulator-wk2/editing/style/create-block-for-style-006-expected.txt:
        * platform/ios-simulator-wk2/editing/style/create-block-for-style-007-expected.txt:
        * platform/ios-simulator-wk2/editing/style/create-block-for-style-008-expected.txt:
        * platform/ios-simulator-wk2/editing/style/create-block-for-style-009-expected.txt:
        * platform/ios-simulator-wk2/editing/style/create-block-for-style-010-expected.txt:
        * platform/ios-simulator-wk2/editing/style/create-block-for-style-011-expected.txt:
        * platform/ios-simulator-wk2/editing/style/create-block-for-style-012-expected.txt:
        * platform/ios-simulator-wk2/editing/style/create-block-for-style-013-expected.txt:
        * platform/ios-simulator-wk2/editing/style/designmode-expected.txt:
        * platform/ios-simulator-wk2/editing/style/relative-font-size-change-001-expected.txt:
        * platform/ios-simulator-wk2/editing/style/relative-font-size-change-002-expected.txt:
        * platform/ios-simulator-wk2/editing/style/relative-font-size-change-003-expected.txt:
        * platform/ios-simulator-wk2/editing/style/relative-font-size-change-004-expected.txt:
        * platform/ios-simulator-wk2/editing/style/style-3681552-fix-002-expected.txt:
        * platform/ios-simulator-wk2/editing/style/style-3998892-fix-expected.txt:
        * platform/ios-simulator-wk2/editing/style/style-boundary-001-expected.txt:
        * platform/ios-simulator-wk2/editing/style/style-boundary-004-expected.txt:
        * platform/ios-simulator-wk2/editing/style/table-selection-expected.txt:
        * platform/ios-simulator-wk2/editing/style/unbold-in-bold-expected.txt:

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

        [ES6] Add several generator related JSRegress tests to measure performance change after optimization
        https://bugs.webkit.org/show_bug.cgi?id=151785

        Reviewed by Saam Barati.

        Before starting optimization for ES6 Generators, add several JSRegress tests to measure that.

        * js/regress/generator-create-expected.txt: Added.
        * js/regress/generator-create.html: Added.
        * js/regress/generator-fib-expected.txt: Added.
        * js/regress/generator-fib.html: Added.
        * js/regress/generator-function-create-expected.txt: Added.
        * js/regress/generator-function-create.html: Added.
        * js/regress/generator-sunspider-access-nsieve-expected.txt: Added.
        * js/regress/generator-sunspider-access-nsieve.html: Added.
        * js/regress/generator-with-several-types-expected.txt: Added.
        * js/regress/generator-with-several-types.html: Added.
        * js/regress/script-tests/generator-create.js: Added.
        (gen):
        * js/regress/script-tests/generator-fib.js: Added.
        (result):
        * js/regress/script-tests/generator-function-create.js: Added.
        (createGeneratorFunction.gen):
        (createGeneratorFunction):
        * js/regress/script-tests/generator-sunspider-access-nsieve.js: Added.
        (prime):
        (sieve):
        * js/regress/script-tests/generator-with-several-types.js: Added.
        (g1):
        (g2):
        (g3):

2015-12-10  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix ambiguous expectations added in r193895.

        * platform/gtk/TestExpectations:

2015-12-10  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        JSC Builtins should use safe array methods
        https://bugs.webkit.org/show_bug.cgi?id=151501

        Reviewed by Darin Adler.

        Adding shielding test for TypedArray.prototype.filter and stream enqueuing of values and read promises.

        * js/builtins/resources/shielding-typedarray.js: Added.
        (Array.prototype.push):
        (try.array.Int8Array.from.string_appeared_here.filter):
        * js/builtins/shielding-typedarray-expected.txt: Added.
        * js/builtins/shielding-typedarray.html: Added.
        * streams/streams-promises-expected.txt:
        * streams/streams-promises.html:

2015-12-10  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. GTK+ gardening: skip HLS tests crashing in debug after r192102.

        * platform/gtk/TestExpectations:

2015-12-10  Myles C. Maxfield  <mmaxfield@apple.com>

        font-variant-caps does not work if the font does not support font features
        https://bugs.webkit.org/show_bug.cgi?id=149774

        Reviewed by Antti Koivisto.

        Adding two new font which include lowercase characters which respond to 'smcp' and 'c2sc'. 

        The character mappings are:

        OpenType:
        'smcp': f
        'c2sc': g

        TrueType:
        kLowerCaseType / kLowerCaseSmallCapsSelector: r
        kUpperCaseType / kUpperCaseSmallCapsSelector: u

        * css3/font-variant-all-expected.html:
        * css3/font-variant-all.html:
        * css3/font-variant-small-caps-synthesis-expected.html: Added.
        * css3/font-variant-small-caps-synthesis.html: Added.
        * css3/font-variant-petite-caps-synthesis-expected.html: Added.
        * css3/font-variant-petite-caps-synthesis.html: Added.
        * css3/resources/FontWithFeaturesLowercaseSmallCaps.otf: Added.
        * css3/resources/FontWithFeaturesLowercaseSmallCaps.ttf: Added.
        * platform/mac/TestExpectations:
        * platform/mac/fast/writing-mode/broken-ideograph-small-caps-expected.txt:

2015-12-09  Brady Eidson  <beidson@apple.com>

        Modern IDB: storage/indexeddb/objectstore-basics.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=152101

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * platform/wk2/storage/indexeddb/mozilla/bad-keypath-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/bad-keypath-expected.txt.
        * platform/wk2/storage/indexeddb/mozilla/key-requirements-inline-and-passed-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/key-requirements-inline-and-passed-expected.txt.
        * platform/wk2/storage/indexeddb/mozilla/key-requirements-put-no-key-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/key-requirements-put-no-key-expected.txt.
        * platform/wk2/storage/indexeddb/mozilla/key-requirements-put-null-key-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/key-requirements-put-null-key-expected.txt.
        * storage/indexeddb/invalid-keys-expected.txt:
        * storage/indexeddb/key-type-binary-expected.txt:
        * storage/indexeddb/keypath-edges-expected.txt:
        * storage/indexeddb/mozilla/bad-keypath-expected.txt:
        * storage/indexeddb/mozilla/key-requirements-inline-and-passed-expected.txt:
        * storage/indexeddb/mozilla/key-requirements-put-no-key-expected.txt:
        * storage/indexeddb/mozilla/key-requirements-put-null-key-expected.txt:
        * storage/indexeddb/objectstore-basics-expected.txt:

2015-12-09  Brady Eidson  <beidson@apple.com>

        Modern IDB: storage/indexeddb/metadata.html fails
        https://bugs.webkit.org/show_bug.cgi?id=152099

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/modern/abort-objectstore-info-expected.txt: Added.
        * storage/indexeddb/modern/abort-objectstore-info.html: Added.
        * storage/indexeddb/modern/resources/abort-objectstore-info.js: Added.

2015-12-09  Brady Eidson  <beidson@apple.com>

        Modern IDB: storage/indexeddb/intversion-close-between-events.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=152096

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

2015-12-09  Brady Eidson  <beidson@apple.com>

        Modern IDB: storage/indexeddb/database-closepending-flag.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=152095

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

2015-12-09  Brady Eidson  <beidson@apple.com>

        Modern IDB: Some tests expect UInt8Array to be a valid key.
        https://bugs.webkit.org/show_bug.cgi?id=152092

        Reviewed by Alex Christensen.

        Everything that expected UInt8Array to be a valid key needs to be updated to expect it to be invalid.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/factory-cmp-expected.txt:
        * storage/indexeddb/key-type-binary-expected.txt:
        * storage/indexeddb/resources/factory-cmp.js:
        * storage/indexeddb/resources/key-type-binary.js:

2015-12-09  Brady Eidson  <beidson@apple.com>

        Modern IDB: storage/indexeddb/createIndex-after-failure.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=152078

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/createIndex-after-failure-expected.txt:
        * storage/indexeddb/resources/createIndex-after-failure.js:

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

        Baseline fast/dom/HTMLProgressElement/native-progress-bar.html for iOS
        https://bugs.webkit.org/show_bug.cgi?id=152094

        Unreviewed test gardening.

        * platform/ios-simulator/fast/dom/HTMLProgressElement/native-progress-bar-expected.txt: Added.

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

        Baseline fast/text/text-combine-shrink-on-color-change.html for iOS
        https://bugs.webkit.org/show_bug.cgi?id=151218

        Unreviewed test gardening.

        * platform/ios-simulator/fast/text/text-combine-shrink-on-color-change-expected.txt: Added.

2015-12-09  David Hyatt  <hyatt@apple.com>

        Picture element needs to respond to dynamic viewport changes.
        https://bugs.webkit.org/show_bug.cgi?id=152013
        <rdar://problem/23766375>

        Reviewed by Dean Jackson.

        * fast/picture/resources/resize-test.js: Added.
        * fast/picture/viewport-resize-expected.txt: Added.
        * fast/picture/viewport-resize.html: Added.

2015-12-09  Mark Lam  <mark.lam@apple.com>

        Rename ftl-object-* tests to ftl-polymorphic-*.
        https://bugs.webkit.org/show_bug.cgi?id=152091

        Reviewed by Saam Barati.

        This is because those tests are actually testing the effects of polymorphic
        operands on performance, and not the correctness of operations on objects.

        * js/regress/ftl-object-div-expected.txt: Removed.
        * js/regress/ftl-object-div.html: Removed.
        * js/regress/ftl-object-mul-expected.txt: Removed.
        * js/regress/ftl-object-mul.html: Removed.
        * js/regress/ftl-object-sub-expected.txt: Removed.
        * js/regress/ftl-object-sub.html: Removed.
        * js/regress/ftl-polymorphic-div-expected.txt: Copied from LayoutTests/js/regress/ftl-object-div-expected.txt.
        * js/regress/ftl-polymorphic-div.html: Copied from LayoutTests/js/regress/ftl-object-div.html.
        * js/regress/ftl-polymorphic-mul-expected.txt: Copied from LayoutTests/js/regress/ftl-object-mul-expected.txt.
        * js/regress/ftl-polymorphic-mul.html: Copied from LayoutTests/js/regress/ftl-object-mul.html.
        * js/regress/ftl-polymorphic-sub-expected.txt: Copied from LayoutTests/js/regress/ftl-object-sub-expected.txt.
        * js/regress/ftl-polymorphic-sub.html: Copied from LayoutTests/js/regress/ftl-object-sub.html.
        * js/regress/script-tests/ftl-object-div.js: Removed.
        * js/regress/script-tests/ftl-object-mul.js: Removed.
        * js/regress/script-tests/ftl-object-sub.js: Removed.
        * js/regress/script-tests/ftl-polymorphic-div.js: Copied from LayoutTests/js/regress/script-tests/ftl-object-div.js.
        * js/regress/script-tests/ftl-polymorphic-mul.js: Copied from LayoutTests/js/regress/script-tests/ftl-object-mul.js.
        * js/regress/script-tests/ftl-polymorphic-sub.js: Copied from LayoutTests/js/regress/script-tests/ftl-object-sub.js.

2015-12-09  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [GTK] Unreviewed GTK Gardening.

        Rebaseline media tests after r190054 and r190200.

        * platform/gtk/media/audio-controls-rendering-expected.txt:
        * platform/gtk/media/controls-strict-expected.txt:
        * platform/gtk/media/media-controls-clone-expected.txt:
        * platform/gtk/media/video-controls-rendering-expected.txt:
        * platform/gtk/media/video-display-toggle-expected.txt:
        * platform/gtk/media/video-empty-source-expected.txt:
        * platform/gtk/media/video-no-audio-expected.txt:
        * platform/gtk/media/video-volume-slider-expected.txt:
        * platform/gtk/media/video-zoom-controls-expected.txt:

2015-12-09  Joanmarie Diggs  <jdiggs@igalia.com>

        AX: [GTK] Anonymous render block flow elements should be exposed as ATK_ROLE_SECTION; not ATK_ROLE_PANEL
        https://bugs.webkit.org/show_bug.cgi?id=152070

        Reviewed by Mario Sanchez Prada.

        * platform/gtk/accessibility/deleting-iframe-destroys-axcache-expected.txt: Added.
        * platform/gtk/accessibility/gtk/media-controls-panel-title-expected.txt: Added.
        * platform/gtk/accessibility/gtk/replaced-objects-in-anonymous-blocks-expected.txt: Added.
        * platform/gtk/accessibility/image-link-expected.txt: Updated
        * platform/gtk/accessibility/image-with-alt-and-map-expected.txt: Updated.
        * platform/gtk/accessibility/lists-expected.txt: Updated.
        * platform/gtk/accessibility/media-emits-object-replacement-expected.txt: Updated.

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

        Replacing Yosemite flag with Release flag for two flaky xmlhttprequest tests.
        https://bugs.webkit.org/show_bug.cgi?id=151729

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        Marking inspector/debugger/command-line-api-exception.html as flaky on Mac
        https://bugs.webkit.org/show_bug.cgi?id=152029

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2015-12-09  Joanmarie Diggs  <jdiggs@igalia.com>

        AX: [GTK] Remove duplicate/platform media-emits-object-replacement.html and move expectations where they belong
        https://bugs.webkit.org/show_bug.cgi?id=152064

        Unreviewed test gardening.

        * accessibility/gtk/media-emits-object-replacement.html: Removed.
        * platform/gtk/accessibility/media-emits-object-replacement-expected.txt: Renamed from LayoutTests/accessibility/gtk/media-emits-object-replacement-expected.txt.

2015-12-09  Frederic Wang  <fred.wang@free.fr>

        Bad position of large operators inside an munderover element
        https://bugs.webkit.org/show_bug.cgi?id=151916

        Reviewed by Alejandro G. Castro.

        * mathml/opentype/large-operators-munderover-expected.txt: Added.
        * mathml/opentype/large-operators-munderover.html: Added.

        Add a test to verify the position and size of a large operator used as an munderover base.

2015-12-09  Joanmarie Diggs  <jdiggs@igalia.com>

        [AX][GTK] Accessibility gardening
        https://bugs.webkit.org/show_bug.cgi?id=152062

        Unreviewed test gardening.

        Skip two tests specific to AX API, mark a test which is timing out, remove passing
        test from failures.

        * platform/gtk/TestExpectations:

2015-12-09  Xabier Rodriguez Calvar  <calvaris@igalia.com>

        [Streams API] Import the web-platform-tests directly from the spec
        https://bugs.webkit.org/show_bug.cgi?id=152051

        Reviewed by Youenn Fablet.

        Removed the tests that are already imported directly from the spec.

        * streams/brand-checks-expected.txt: Added.
        * streams/brand-checks.html: Added. This includes some tests that vanished from the spec.
        * streams/reference-implementation/bad-strategies-expected.txt:
        * streams/reference-implementation/bad-strategies.html:
        * streams/reference-implementation/bad-underlying-sources.html: Removed.
        * streams/reference-implementation/brand-checks-expected.txt:
        * streams/reference-implementation/brand-checks.html:
        * streams/reference-implementation/byte-length-queuing-strategy-expected.txt:
        * streams/reference-implementation/byte-length-queuing-strategy.html:
        * streams/reference-implementation/count-queuing-strategy-expected.txt:
        * streams/reference-implementation/count-queuing-strategy.html:
        * streams/reference-implementation/readable-stream-cancel.html: Removed.
        * streams/reference-implementation/readable-stream-reader.html: Removed.
        * streams/reference-implementation/readable-stream-tee.html: Removed.
        * streams/reference-implementation/readable-stream-templated-expected.txt:
        * streams/reference-implementation/readable-stream-templated.html:
        * streams/reference-implementation/readable-stream.html: Removed.

2015-12-09  Joanmarie Diggs  <jdiggs@igalia.com>

        [AX][GTK] combobox-descendants-orientation-crash.html needs new baseline after r190648
        https://bugs.webkit.org/show_bug.cgi?id=152052

        Unreviewed test gardening.

        * accessibility/gtk/combobox-descendants-orientation-crash-expected.txt:

2015-12-09  Joanmarie Diggs  <jdiggs@igalia.com>

        AX: The aria-table-content.html layout test should be more cross-platform friendly
        https://bugs.webkit.org/show_bug.cgi?id=152002

        Reviewed by Mario Sanchez Prada.

        Use 'debug' to dump the role instead of 'shouldBe' with a hard-coded role.

        * accessibility/aria-table-content-expected.txt: Updated
        * accessibility/aria-table-content.html: Updated
        * platform/gtk/accessibility/aria-table-content-expected.txt: Added
        * platform/efl/accessibility/aria-table-content-expected.txt: Added

2015-12-09  Joanmarie Diggs  <jdiggs@igalia.com>

        [AX][GTK] media-emits-object-replacement.html needs new baseline
        https://bugs.webkit.org/show_bug.cgi?id=152050

        Unreviewed test gardening.

        * accessibility/gtk/media-emits-object-replacement-expected.txt:

2015-12-09  Joanmarie Diggs  <jdiggs@igalia.com>

        AX: [EFL] Consider deferring to WebCore Accessibility for table exposure
        https://bugs.webkit.org/show_bug.cgi?id=144898

        Reviewed by Darin Adler.

        * platform/efl/accessibility/table-detection-expected.txt: Updated to reflect new behavior.
        * platform/efl/accessibility/table-hierarchy-expected.txt: Updated to reflect new behavior.
        * platform/efl/accessibility/table-one-cell-expected.txt: Updated to reflect new behavior.
        * platform/efl/accessibility/table-with-rules-expected.txt: Updated to reflect new behavior.

2015-12-08  David Kilzer  <ddkilzer@apple.com>

        Skip storage/indexeddb/index-multientry.html once again

        * platform/mac-wk1/TestExpectations: Skip:
        - storage/indexeddb/index-multientry.html

2015-12-08  Brady Eidson  <beidson@apple.com>

        Modern IDB: storage/indexeddb/objectstore-cursor.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=152023

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

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

        Skipping fast/canvas/canvas-too-large-to-draw.html on win
        https://bugs.webkit.org/show_bug.cgi?id=152009

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

        Rebaseline fast/block/float/overhanging-tall-block.html for win after r193511
        https://bugs.webkit.org/show_bug.cgi?id=151906

        Unreviewed test gardening.

        * platform/win/fast/block/float/overhanging-tall-block-expected.txt:

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

        Skipping fast/canvas/canvas-too-large-to-draw.html on ElCapitan Debug
        https://bugs.webkit.org/show_bug.cgi?id=152009

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2015-12-08  Brady Eidson  <beidson@apple.com>

        Modern IDB: IDBTransaction::hasPendingActivity() was wrong, leading to premature GC of the wrapper.
        https://bugs.webkit.org/show_bug.cgi?id=151507

        Reviewed by Beth Dakin.

        A handful of tests were marked flaky and tracked back to this bug.
        
        Ever since the presumed fix for this bug (r192687) the flakiness dashboard says they pass.
        
        * platform/mac-wk1/TestExpectations: Re-enable the no-longer-flaky tests.

2015-12-08  Brady Eidson  <beidson@apple.com>

        More IDB TestExpectations gardening.

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

2015-12-08  Brady Eidson  <beidson@apple.com>

        Unreviewed IDB layout test gardening (Adding some flaky crashes)

        * platform/mac-wk1/TestExpectations:

2015-12-08  Brady Eidson  <beidson@apple.com>

        Modern IDB: Fire blocked events for delete requests that are blocked.
        https://bugs.webkit.org/show_bug.cgi?id=152015

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

2015-12-08  Brady Eidson  <beidson@apple.com>

        More IDB TestExpectations gardening.

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

2015-12-08  Brady Eidson  <beidson@apple.com>

        Modern IDB: Fire blocked events for upgrade requests that are blocked.
        https://bugs.webkit.org/show_bug.cgi?id=152007

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

        * storage/indexeddb/modern/blocked-open-db-requests-expected.txt: Added.
        * storage/indexeddb/modern/blocked-open-db-requests.html: Added.
        * storage/indexeddb/modern/resources/blocked-open-db-requests.js: Added.
        
        * storage/indexeddb/modern/deleteobjectstore-1.html: Fix subtly broken test.
        * storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures.html: Ditto.
        
2015-12-08  Mark Lam  <mark.lam@apple.com>

        Polymorphic operand types for DFG and FTL div.
        https://bugs.webkit.org/show_bug.cgi?id=151747

        Reviewed by Geoffrey Garen.

        * js/regress/ftl-object-div-expected.txt: Added.
        * js/regress/ftl-object-div.html: Added.
        * js/regress/script-tests/ftl-object-div.js: Added.
        (o1.valueOf):
        (foo):

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

        Do not insert positioned renderers to multiple gPositionedDescendantsMap.
        https://bugs.webkit.org/show_bug.cgi?id=151878
        rdar://problem/22229889

        Reviewed by Simon Fraser.

        We insert positioned renderers into a static map (RenderBlock::gPositionedDescendantsMap) to keep track of them.
        This static map is at block level. A particular absolute positioned object is added to its closest ancestor that
        returns true for RenderElement::canContainAbsolutelyPositionedObjects().
        canContainAbsolutelyPositionedObjects() returns true if the ancestor is either positioned or has transform.
        If this container's style changes so that it's no longer positioned and it has no transform anymore,
        we need to clear its static map of positioned objects (they'll get re-inserted to another ancestor at next layout).

        This patch addresses the case when the renderer does not have transforms anymore.

        * fast/block/positioning/crash-when-transform-is-removed-expected.txt: Added.
        * fast/block/positioning/crash-when-transform-is-removed.html: Added.

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

        Marking fast/canvas/canvas-too-large-to-draw.html as flaky on ElCapitan Debug
        https://bugs.webkit.org/show_bug.cgi?id=152009

        Unreviewed test gardening.

        * platform/mac/TestExpectations:

2015-12-08  Skachkov Oleksandr  <gskachkov@gmail.com>

        [ES6] "super" and "this" should be lexically bound inside an arrow function and should live in a JSLexicalEnvironment
        https://bugs.webkit.org/show_bug.cgi?id=149338

        Reviewed by Saam Barati.

        * js/arrowfunction-supercall-expected.txt: Added.
        * js/arrowfunction-supercall.html: Added.
        * js/arrowfunction-tdz-expected.txt: Added new expectation.
        * js/script-tests/arrowfunction-supercall.js: Added.
        * js/script-tests/arrowfunction-tdz.js: Added new cases.

2015-12-08  Brady Eidson  <beidson@apple.com>

        Modern IDB: storage/indexeddb/index-cursor.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=151973

        Reviewed by Darin Adler.

        * platform/mac-wk1/TestExpectations:

2015-12-08  Csaba Osztrogonác  <ossy@webkit.org>

        [EFL] REGRESSION(r173394): MiniBrowser stucked in an infinite loop if NETWORK_CACHE is disabled
        https://bugs.webkit.org/show_bug.cgi?id=137692

        Reviewed by Darin Adler.

        * platform/efl/TestExpectations: Unskip now passing tests.

2015-12-08  Gyuyoung Kim  <gyuyoung.kim@webkit.org>

        [EFL][AX] Rebaseline failing AX tests since r185662
        https://bugs.webkit.org/show_bug.cgi?id=151991

        Unreviewed EFL rebaseline.

        * platform/efl/TestExpectations:
        * platform/efl/accessibility/image-link-expected.txt:
        * platform/efl/accessibility/image-map2-expected.txt:
        * platform/efl/accessibility/lists-expected.txt:
        * platform/efl/accessibility/table-attributes-expected.txt:
        * platform/efl/accessibility/table-cell-spans-expected.txt:
        * platform/efl/accessibility/table-cells-expected.txt:
        * platform/efl/accessibility/table-detection-expected.txt:
        * platform/efl/accessibility/table-one-cell-expected.txt:
        * platform/efl/accessibility/table-sections-expected.txt:
        * platform/efl/accessibility/table-with-rules-expected.txt:

2015-12-08  Joanmarie Diggs  <jdiggs@igalia.com>

        [EFL] some ax tests have been failed since r186692
        https://bugs.webkit.org/show_bug.cgi?id=146887

        Reviewed by Mario Sanchez Prada.

        * platform/efl/TestExpectations: Removed failing tests.

2015-12-08  Joanmarie Diggs  <jdiggs@igalia.com>

        [GTK] 15 accessibility tests fail since r186692.
        https://bugs.webkit.org/show_bug.cgi?id=148938

        Reviewed by Mario Sanchez Prada.

        * platform/gtk/TestExpectations: Removed failing tests.
        * platform/gtk/accessibility/roles-computedRoleString-expected.txt: Rebaselined.
        * platform/gtk/accessibility/table-attributes-expected.txt: Rebaselined.
        * platform/gtk/accessibility/table-cell-spans-expected.txt: Rebaselined.
        * platform/gtk/accessibility/table-cells-expected.txt: Rebaselined.
        * platform/gtk/accessibility/table-detection-expected.txt: Rebaselined.
        * platform/gtk/accessibility/table-sections-expected.txt: Rebaselined.
        * platform/gtk/accessibility/table-with-rules-expected.txt: Rebaselined.

2015-12-08  Frederic Wang  <fred.wang@free.fr>

        [cairo] Solid stroke of lines with thickness less than 1 pixel broken after r191658
        https://bugs.webkit.org/show_bug.cgi?id=151947

        Reviewed by Martin Robinson.

        Add a test to check that the radical overbar appears on the screen when it has thickness less than 1px.

        * mathml/presentation/radical-bar-visibility-expected-mismatch.html: Added.
        * mathml/presentation/radical-bar-visibility.html: Added.

2015-12-07  Brady Eidson  <beidson@apple.com>

        Move an IDB test from the "generic failure" section to the "fails because no workers" section.

        Rubberstamped by Andy Estes.

        * platform/mac-wk1/TestExpectations:

2015-12-07  Andy VanWagoner  <thetalecrafter@gmail.com>

        [INTL] Implement String.prototype.toLocaleUpperCase in ECMA-402
        https://bugs.webkit.org/show_bug.cgi?id=147609

        Reviewed by Benjamin Poulain.

        * js/script-tests/string-toLocaleUpperCase.js: Added.
        * js/string-toLocaleUpperCase-expected.txt: Added.
        * js/string-toLocaleUpperCase.html: Added.

2015-12-07  Myles C. Maxfield  <mmaxfield@apple.com>

        [Mac] Remove Mavericks-specific TestExpectations lines
        https://bugs.webkit.org/show_bug.cgi?id=151913

        Reviewed by Alexey Proskuryakov.

        Mavericks is no longer a supported OS.

        * platform/mac/TestExpectations:

2015-12-07  Brady Eidson  <beidson@apple.com>

        Modern IDB: Miscellaneous test cleanup.
        https://bugs.webkit.org/show_bug.cgi?id=151968

        Reviewed by Sam Weinig.

        - Reorganize TestExpectations a bit.
        - Remove two tests that primarily test features that have been removed from the spec.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/cursor-continueprimarykey-expected.txt: Removed.
        * storage/indexeddb/cursor-continueprimarykey.html: Removed.
        * storage/indexeddb/factory-basics-expected.txt: Removed.
        * storage/indexeddb/factory-basics.html: Removed.
        * storage/indexeddb/resources/cursor-continueprimarykey.js: Removed.
        * storage/indexeddb/resources/factory-basics.js: Removed.

2015-12-07  Brady Eidson  <beidson@apple.com>

        Modern IDB: storage/indexeddb/factory-deletedatabase.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=151966
        
        Reviewed by Sam Weinig.

        * platform/mac-wk1/TestExpectations:

2015-12-07  Brady Eidson  <beidson@apple.com>

        Modern IDB: storage/indexeddb/cursor-continue-validity.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=151961

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/cursor-finished-expected.txt:

2015-12-07  Xabier Rodriguez Calvar  <calvaris@igalia.com>

        [Streams API] pipeTo tests are failing
        https://bugs.webkit.org/show_bug.cgi?id=151949

        Unreviewed.

        * TestExpectations:
        * platform/mac/TestExpectations:
        * platform/win/TestExpectations: Moved the flag from Mac and Win to general as GTK+ is failing too.

2015-12-07  Brady Eidson  <beidson@apple.com>

        Modern IDB: Fix "old versions" when upgrading databases.
        https://bugs.webkit.org/show_bug.cgi?id=151948

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/database-basics-expected.txt:
        * storage/indexeddb/modern/deletedatabase-2-expected.txt:

2015-12-07  Xabier Rodriguez Calvar  <calvaris@igalia.com>

        Unreviewed.

        http://webkit.org/b/147933 and though count queuing strategy and writable stream abort tests are fixed, there
        are still issues with pipeTo. For that I created http://webkit.org/b/151949.

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

2015-12-07  Brady Eidson  <beidson@apple.com>

        Modern IDB: Add some more custom exception messages, passing some more tests..
        https://bugs.webkit.org/show_bug.cgi?id=151912

        Reviewed by Andy Estes.

        * platform/mac-wk1/TestExpectations:
        
        * storage/indexeddb/exceptions-expected.txt:
        * storage/indexeddb/get-keyrange-expected.txt:
        * storage/indexeddb/invalid-keys-expected.txt:
        * storage/indexeddb/keypath-edges-expected.txt:
        * storage/indexeddb/keyrange-expected.txt:
        * storage/indexeddb/transaction-active-flag-expected.txt:
        * storage/indexeddb/transaction-and-objectstore-calls-expected.txt:

        * storage/indexeddb/resources/exceptions.js:
        * storage/indexeddb/resources/transaction-and-objectstore-calls.js:

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

        Marking fast/dom/Window/property-access-on-cached-window-after-frame-removed.html as failing on Win
        https://bugs.webkit.org/show_bug.cgi?id=151759

        Unreviewed test gardening.

        * platform/win/TestExpectations:

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

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

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2015-12-07  Gyuyoung Kim  <gyuyoung.kim@webkit.org>

        Unreviewed EFL gardening. Mark some of blink tests to failure since r190629.

        * platform/efl/TestExpectations:

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

        Clipping along compositing borders in svg-edit
        https://bugs.webkit.org/show_bug.cgi?id=151791

        Reviewed by Zalan Bujtas.
        
        Ref test that triggers recomputation of overflow.

        * svg/overflow/visual-overflow-change-expected.html: Added.
        * svg/overflow/visual-overflow-change.html: Added.

2015-12-06  Andy VanWagoner  <thetalecrafter@gmail.com>

        [INTL] Implement String.prototype.toLocaleLowerCase in ECMA-402
        https://bugs.webkit.org/show_bug.cgi?id=147608

        Reviewed by Benjamin Poulain.

        * js/script-tests/string-toLocaleLowerCase.js: Added.
        * js/string-toLocaleLowerCase-expected.txt: Added.
        * js/string-toLocaleLowerCase.html: Added.

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

        REGRESSION (r187121): Can't get to the main content of the page at https://theintercept.com/drone-papers/
        https://bugs.webkit.org/show_bug.cgi?id=151849
        rdar://problem/23132828

        Reviewed by Zalan Bujtas.
        
        New ref test.
        
        The behavior of imported/blink/transitions/transition-not-interpolable.html changed
        with this patch, but that test is trying to determine if transitions run to/from
        'auto' values, and doing it wrong. The current patch doesn't change the user-visible
        behavior of transitions with 'auto' endpoints (covered by http://webkit.org/b/38243).

        * animations/fill-forwards-auto-height-expected.html: Added.
        * animations/fill-forwards-auto-height.html: Added.
        * imported/blink/transitions/transition-not-interpolable-expected.txt:

2015-12-06  David Kilzer  <ddkilzer@apple.com>

        REGRESSION(r193584): Causes heap use-after-free crashes in Web Inspector tests with AddressSanitizer (Requested by ddkilzer on #webkit).
        https://bugs.webkit.org/show_bug.cgi?id=151929

        Reverted changeset:

        "[ES6] "super" and "this" should be lexically bound inside an
        arrow function and should live in a JSLexicalEnvironment"
        https://bugs.webkit.org/show_bug.cgi?id=149338
        http://trac.webkit.org/changeset/193584

2015-12-06  Skachkov Oleksandr  <gskachkov@gmail.com>

        [ES6] "super" and "this" should be lexically bound inside an arrow function and should live in a JSLexicalEnvironment
        https://bugs.webkit.org/show_bug.cgi?id=149338

        Reviewed by Saam Barati.

        * js/arrowfunction-supercall-expected.txt: Added.
        * js/arrowfunction-supercall.html: Added.
        * js/arrowfunction-tdz-expected.txt: Added new expectation.
        * js/script-tests/arrowfunction-supercall.js: Added.
        * js/script-tests/arrowfunction-tdz.js: Added new cases.

2015-12-05  David Kilzer  <ddkilzer@apple.com>

        REGRESSION (r193487): Modern IDB: storage/indexeddb/index-multientry.html crashes

        * platform/mac-wk1/TestExpectations: Skip test that crashes
        on every run: storage/indexeddb/index-multientry.html.

2015-12-04  Zalan Bujtas  <zalan@apple.com>

        Garbage in page tiles when document is too long.
        https://bugs.webkit.org/show_bug.cgi?id=151906
        rdar://problem/23695858

        Reviewed by Simon Fraser.

        * platform/ios-simulator/fast/block/float/overhanging-tall-block-expected.txt:
        * platform/mac-mavericks/fast/block/float/overhanging-tall-block-expected.txt:
        * platform/mac/fast/block/float/overhanging-tall-block-expected.txt:

2015-12-04  Brady Eidson  <beidson@apple.com>

        Modern IDB: Add some more custom exception messages, passing some more tests.
        https://bugs.webkit.org/show_bug.cgi?id=151898

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/keypath-arrays-expected.txt:
        * storage/indexeddb/noblobs-expected.txt:
        * storage/indexeddb/object-lookups-in-versionchange-expected.txt:
        * storage/indexeddb/request-result-cache-expected.txt:
        * storage/indexeddb/transaction-after-close-expected.txt:
        * storage/indexeddb/transaction-and-objectstore-calls-expected.txt:
        * storage/indexeddb/transaction-read-only-expected.txt:

2015-12-04  Brady Eidson  <beidson@apple.com>

        Modern IDB: Add some more custom exception messages, passing some more tests.
        https://bugs.webkit.org/show_bug.cgi?id=151895

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/aborted-versionchange-closes-expected.txt:
        * storage/indexeddb/cursor-continue-dir-expected.txt:
        * storage/indexeddb/cursor-continue-expected.txt:
        * storage/indexeddb/deleteIndex-expected.txt:
        * storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt:

2015-12-04  Andy VanWagoner  <thetalecrafter@gmail.com>

        [INTL] Implement Number.prototype.toLocaleString in ECMA-402
        https://bugs.webkit.org/show_bug.cgi?id=147610

        Reviewed by Benjamin Poulain.

        Add tests for ECMA-402 Number.prototype.toLocaleString.
        Since NumberFormat is not fully implemented, don't test locale-specific behavior yet.

        * js/number-toLocaleString-expected.txt: Added.
        * js/number-toLocaleString.html: Added.
        * js/script-tests/number-toLocaleString.js: Added.

2015-12-04  Brady Eidson  <beidson@apple.com>

        Modern IDB: Flip test expectations around so we only list failures.
        https://bugs.webkit.org/show_bug.cgi?id=151880

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

2015-12-04  Brady Eidson  <beidson@apple.com>

        Modern IDB: storage/indexeddb/cursor-update.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=151879

        Reviewed by Oliver Hunt.

        * platform/mac-wk1/TestExpectations:

2015-12-04  Brady Eidson  <beidson@apple.com>

        Modern IDB: storage/indexeddb/version-change-exclusive.html fails
        https://bugs.webkit.org/show_bug.cgi?id=151870

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/modern/double-open-expected.txt: Added.
        * storage/indexeddb/modern/double-open.html: Added.
        * storage/indexeddb/version-change-exclusive-expected.txt:

2015-12-04  Brady Eidson  <beidson@apple.com>

        Modern IDB: storage/indexeddb/exceptions.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=151732

        Reviewed by Alex Christensen.

        Lots of new wk2-specific expectations to keep Legacy IDB passing for now.
        
        * platform/mac-wk1/TestExpectations:
        * platform/wk2/imported/w3c/indexeddb/idbcursor_continue_index5-expected.txt: Added.
        * platform/wk2/imported/w3c/indexeddb/idbcursor_continue_index6-expected.txt: Added.
        * platform/wk2/imported/w3c/indexeddb/idbcursor_continue_invalid-expected.txt: Added.
        * platform/wk2/imported/w3c/indexeddb/idbindex_get7-expected.txt: Added.
        * platform/wk2/imported/w3c/indexeddb/idbindex_getKey7-expected.txt: Added.
        * platform/wk2/imported/w3c/indexeddb/idbindex_openCursor2-expected.txt: Added.
        * platform/wk2/imported/w3c/indexeddb/idbindex_openKeyCursor3-expected.txt: Added.
        * platform/wk2/imported/w3c/indexeddb/keypath-expected.txt: Added.
        * platform/wk2/storage/indexeddb/aborted-versionchange-closes-expected.txt: Copied from LayoutTests/storage/indexeddb/aborted-versionchange-closes-expected.txt.
        * platform/wk2/storage/indexeddb/bad-keypath-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/bad-keypath-expected.txt.
        * platform/wk2/storage/indexeddb/basics-expected.txt: Copied from LayoutTests/storage/indexeddb/basics-expected.txt.
        * platform/wk2/storage/indexeddb/clear-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/clear-expected.txt.
        * platform/wk2/storage/indexeddb/create-and-remove-object-store-expected.txt: Copied from LayoutTests/storage/indexeddb/create-and-remove-object-store-expected.txt.
        * platform/wk2/storage/indexeddb/create-objectstore-basics-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/create-objectstore-basics-expected.txt.
        * platform/wk2/storage/indexeddb/cursor-continue-dir-expected.txt: Added.
        * platform/wk2/storage/indexeddb/cursor-continue-expected.txt: Added.
        * platform/wk2/storage/indexeddb/cursor-finished-expected.txt: Copied from LayoutTests/storage/indexeddb/cursor-finished-expected.txt.
        * platform/wk2/storage/indexeddb/cursors-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/cursors-expected.txt.
        * platform/wk2/storage/indexeddb/database-basics-expected.txt: Added.
        * platform/wk2/storage/indexeddb/deleteIndex-bug110792-expected.txt: Added.
        * platform/wk2/storage/indexeddb/index-count-expected.txt: Added.
        * platform/wk2/storage/indexeddb/intversion-close-in-oncomplete-expected.txt: Added.
        * platform/wk2/storage/indexeddb/intversion-close-in-upgradeneeded-expected.txt: Added.
        * platform/wk2/storage/indexeddb/invalid-keys-expected.txt: Added.
        * platform/wk2/storage/indexeddb/key-requirements-delete-null-key-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/key-requirements-delete-null-key-expected.txt.
        * platform/wk2/storage/indexeddb/key-requirements-inline-and-passed-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/key-requirements-inline-and-passed-expected.txt.
        * platform/wk2/storage/indexeddb/key-requirements-put-no-key-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/key-requirements-put-no-key-expected.txt.
        * platform/wk2/storage/indexeddb/key-requirements-put-null-key-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/key-requirements-put-null-key-expected.txt.
        * platform/wk2/storage/indexeddb/key-type-array-expected.txt: Added.
        * platform/wk2/storage/indexeddb/keypath-arrays-expected.txt: Added.
        * platform/wk2/storage/indexeddb/keypath-edges-expected.txt: Added.
        * platform/wk2/storage/indexeddb/keyrange-expected.txt: Added.
        * platform/wk2/storage/indexeddb/mozilla/clear-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/clear-expected.txt.
        * platform/wk2/storage/indexeddb/mozilla/create-objectstore-basics-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/create-objectstore-basics-expected.txt.
        * platform/wk2/storage/indexeddb/mozilla/cursors-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/cursors-expected.txt.
        * platform/wk2/storage/indexeddb/mozilla/key-requirements-delete-null-key-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/key-requirements-delete-null-key-expected.txt.
        * platform/wk2/storage/indexeddb/mozilla/readonly-transactions-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/readonly-transactions-expected.txt.
        * platform/wk2/storage/indexeddb/object-lookups-in-versionchange-expected.txt: Added.
        * platform/wk2/storage/indexeddb/objectstore-count-expected.txt: Added.
        * platform/wk2/storage/indexeddb/open-cursor-expected.txt: Added.
        * platform/wk2/storage/indexeddb/readonly-transactions-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/readonly-transactions-expected.txt.
        * platform/wk2/storage/indexeddb/removed-expected.txt: Added.
        * platform/wk2/storage/indexeddb/request-result-cache-expected.txt: Added.
        * platform/wk2/storage/indexeddb/transaction-abort-expected.txt: Copied from LayoutTests/storage/indexeddb/transaction-abort-expected.txt.
        * platform/wk2/storage/indexeddb/transaction-active-flag-expected.txt: Added.
        * platform/wk2/storage/indexeddb/transaction-after-close-expected.txt: Added.
        * platform/wk2/storage/indexeddb/transaction-read-only-expected.txt: Added.
        * platform/wk2/storage/indexeddb/version-change-exclusive-expected.txt: Added.
        * storage/indexeddb/aborted-versionchange-closes-expected.txt:
        * storage/indexeddb/basics-expected.txt:
        * storage/indexeddb/create-and-remove-object-store-expected.txt:
        * storage/indexeddb/cursor-finished-expected.txt:
        * storage/indexeddb/exceptions-expected.txt:
        * storage/indexeddb/modern/createobjectstore-failures-expected.txt:
        * storage/indexeddb/modern/double-abort-expected.txt:
        * storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures-expected.txt:
        * storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt:
        * storage/indexeddb/mozilla/bad-keypath-expected.txt:
        * storage/indexeddb/mozilla/clear-expected.txt:
        * storage/indexeddb/mozilla/create-objectstore-basics-expected.txt:
        * storage/indexeddb/mozilla/cursors-expected.txt:
        * storage/indexeddb/mozilla/key-requirements-delete-null-key-expected.txt:
        * storage/indexeddb/mozilla/key-requirements-inline-and-passed-expected.txt:
        * storage/indexeddb/mozilla/key-requirements-put-no-key-expected.txt:
        * storage/indexeddb/mozilla/key-requirements-put-null-key-expected.txt:
        * storage/indexeddb/mozilla/readonly-transactions-expected.txt:
        * storage/indexeddb/resources/exceptions.js:
        (testObjectStore):
        * storage/indexeddb/transaction-abort-expected.txt:

2015-12-04  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Unskip many inspector/debugger tests
        https://bugs.webkit.org/show_bug.cgi?id=151843

        Reviewed by Timothy Hatcher.

        * TestExpectations:
        * platform/mac/TestExpectations:
        Skip specific tests.

        * platform/mac-wk2/TestExpectations:
        Test no longer existed.

        * inspector/debugger/resources/exception.js:
        (exceptionDOM):
        Keep the code outputing a NotFoundException. This particular
        invocation was recently changed to throw a TypeError.

2015-12-04  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Remove untested and unused Worker inspection
        https://bugs.webkit.org/show_bug.cgi?id=151848

        Reviewed by Brian Burg.

        * inspector/debugger/pause-dedicated-worker-expected.txt: Removed.
        * inspector/debugger/pause-dedicated-worker.html: Removed.
        * inspector/debugger/resources/dedicated-worker.js: Removed.
        * inspector/debugger/terminate-dedicated-worker-while-paused-expected.txt: Removed.
        * inspector/debugger/terminate-dedicated-worker-while-paused.html: Removed.

2015-12-04  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Specifically Identify the Global Lexical Environment Scope
        https://bugs.webkit.org/show_bug.cgi?id=151828

        Reviewed by Brian Burg.

        * inspector/debugger/breakpoint-scope-expected.txt:
        * inspector/debugger/breakpoint-scope.html:
        * inspector/debugger/resources/scope.js:
        Update the test to include something in the global lexical
        environment and ensure it is identified as such.

2015-12-03  Sergio Villar Senin  <svillar@igalia.com>

        [css-grid] Fix height computation of grid items with borders inside fr tracks
        https://bugs.webkit.org/show_bug.cgi?id=151798

        Reviewed by Zalan Bujtas.

        * fast/css-grid-layout/grid-item-with-border-in-fr-expected.txt: Added.
        * fast/css-grid-layout/grid-item-with-border-in-fr.html: Added.

2015-12-03  Brady Eidson  <beidson@apple.com>

        Modern IDB: Fix up tests that refer to non-standard IDBVersionChangeEvent.dataLoss.
        https://bugs.webkit.org/show_bug.cgi?id=151850

        Reviewed by Andy Estes.

        * platform/mac-wk1/TestExpectations:
        
        * storage/indexeddb/data-corruption-expected.txt: Removed.
        * storage/indexeddb/data-corruption.html: Removed.
        * storage/indexeddb/resources/data-corruption.js: Removed.

        * storage/indexeddb/events-expected.txt:
        * storage/indexeddb/resources/events.js:

2015-12-03  Brady Eidson  <beidson@apple.com>

        Modern IDB: storage/indexeddb/cursor-index-delete.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=151847

        Reviewed by Andy Estes.

        * platform/mac-wk1/TestExpectations:

2015-12-03  Eric Carlson  <eric.carlson@apple.com>

        [MediaStream] Update MediaStreamTrack.getCapabilities
        https://bugs.webkit.org/show_bug.cgi?id=151728

        Reviewed by Jer Noble.

        * fast/mediastream/MediaStreamTrack-getCapabilities-expected.txt: Added.
        * fast/mediastream/MediaStreamTrack-getCapabilities.html: Added.
        * fast/mediastream/MediaStreamTrack-getSettings-expected.txt:
        * fast/mediastream/MediaStreamTrack-getSettings.html:

2015-12-03  Ryan Haddad  <ryanhaddad@apple.com>

        Removing deleted test storage/indexeddb/objectstore-keycursor.html from TestExpectations file
        https://bugs.webkit.org/show_bug.cgi?id=151772

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2015-12-03  Keith Rollin  <krollin@apple.com>

        [Win] fast/forms/HTMLOptionElement_label03.html failing on win7
        https://bugs.webkit.org/show_bug.cgi?id=150909
        rdar://problem/23539673

        Reviewed by Darin Adler.

        Mark fast/forms/HTMLOptionElement_label03.html as being expected to
        pass. Also update some text in HTMLOptionElement_label02.html and
        HTMLOptionElement_label03.html so that it no longer refers to our
        trying to match IE (which we are no longer doing).

        * fast/forms/HTMLOptionElement_label02.html:
        * fast/forms/HTMLOptionElement_label03.html:
        * platform/win/TestExpectations:

2015-12-03  Brady Eidson  <beidson@apple.com>

        Modern IDB: storage/indexeddb/cursor-advance.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=151731

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/cursor-advance-expected.txt:

2015-12-03  Brent Fulgham  <bfulgham@apple.com>

        Allow JavaScript to iterate over plugins for local files
        https://bugs.webkit.org/show_bug.cgi?id=151783
        <rdar://problem/23692113>

        Modify the existing 'local file' plugin tests so that they don't turn on the debugging
        flag to allow iterating over all plugins. Then create a new HTTP test (based on the
        existing plugin-javascript-access test) to make sure that plugin iteration is blocked
        for non-local-file access.

        Reviewed by Alexey Proskuryakov.

        * http/tests/plugins/plugin-javascript-access-expected.txt: Added.
        * http/tests/plugins/plugin-javascript-access.html: Added.
        * plugins/plugin-javascript-access.html: Remove unneeded 'internals.setShowAllPlugins' call.
        * plugins/script-tests/navigator-mimeTypes-length.js: Ditto.

2015-12-03  Brady Eidson  <beidson@apple.com>

        Modern IDB: storage/indexeddb/cursor-skip-deleted.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=151794

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

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

        Promise callbacks should be called at microtask checkpoints
        https://bugs.webkit.org/show_bug.cgi?id=147933

        Reviewed by Chris Dumez.

        * fast/dom/microtask-promise-mutation-observer-order-expected.txt: Added.
        * fast/dom/microtask-promise-mutation-observer-order.html: Added.

2015-12-03  Daniel Bates  <dabates@apple.com>

        ASSERT_WITH_SECURITY_IMPLICATION in WebCore::DocumentOrderedMap::add()
        https://bugs.webkit.org/show_bug.cgi?id=126662
        <rdar://problem/15775508>

        Reviewed by Brent Fulgham.

        Add test to ensure that we do not assert when inserting a subtree that has an element with
        a duplicate id before removing the original subtree.

        * svg/custom/insert-subtree-with-duplicate-id-before-removing-subtree-expected.txt: Added.
        * svg/custom/insert-subtree-with-duplicate-id-before-removing-subtree.svg: Added.

2015-12-03  Javier Fernandez  <jfernandez@igalia.com>

        [css-grid] margin-left:auto and margin-top:auto discards the margin on opposite side
        https://bugs.webkit.org/show_bug.cgi?id=151802

        Reviewed by Sergio Villar Senin.

        Tests to verify the specified margins account for determining the available space for
        auto-margins alignment.

        * fast/css-grid-layout/grid-item-auto-margins-must-respect-specified-margins-expected.txt: Added.
        * fast/css-grid-layout/grid-item-auto-margins-must-respect-specified-margins.html: Added.

2015-12-03  Ryan Haddad  <ryanhaddad@apple.com>

        Rebaselining svg/custom/bug78807.svg since actual results now match Mac expectations
        https://bugs.webkit.org/show_bug.cgi?id=151804

        Unreviewed test gardening.

        * platform/win/svg/custom/bug78807-expected.txt:

2015-12-03  Ryan Haddad  <ryanhaddad@apple.com>

        Skipping failing sputnik/Unicode/Unicode_510 tests pending further investigation
        https://bugs.webkit.org/show_bug.cgi?id=151505

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2015-12-03  Ryan Haddad  <ryanhaddad@apple.com>

        Marking fast/css/pseudo-visited-background-color-on-input.html as failing on win
        https://bugs.webkit.org/show_bug.cgi?id=151756

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2015-12-03  Ryan Haddad  <ryanhaddad@apple.com>

        fast/borders/hidpi-border-clipping-right-after-move.html
        https://bugs.webkit.org/show_bug.cgi?id=151754

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2015-12-03  Gyuyoung Kim  <gyuyoung.kim@webkit.org>

        Unreviewed EFL urgent gardening. Skip web-platform-tests
        because it has been timeout since r192796.

        * platform/efl/TestExpectations:

2015-12-02  Mark Lam  <mark.lam@apple.com>

        Polymorphic operand types for DFG and FTL mul.
        https://bugs.webkit.org/show_bug.cgi?id=151746

        Reviewed by Filip Pizlo.

        * js/regress/ftl-object-mul-expected.txt: Added.
        * js/regress/ftl-object-mul.html: Added.
        * js/regress/script-tests/ftl-object-mul.js: Added.
        (o1.valueOf):
        (foo):

2015-12-02  Myles C. Maxfield  <mmaxfield@apple.com>

        Unify font-variant-* with font-variant shorthand
        https://bugs.webkit.org/show_bug.cgi?id=149773

        Reviewed by Darin Adler.

        Update tests. Also temporarily skip existing font-features tests until
        https://bugs.webkit.org/show_bug.cgi?id=149774 is fixed.

        * css3/font-variant-parsing-expected.txt:
        * css3/font-variant-parsing.html:
        * fast/css/font-property-priority-expected.txt:
        * fast/css/font-shorthand-expected.txt:
        * fast/css/parsing-font-variant-ligatures-expected.txt:
        * fast/css/parsing-font-variant-ligatures.html:
        * fast/inspector-support/style-expected.txt:
        * fast/text/font-variant-shorthand-expected.txt: Added.
        * fast/text/font-variant-shorthand.html: Added.
        * platform/mac/TestExpectations:
        * platform/mac/fast/writing-mode/broken-ideograph-small-caps-expected.txt:

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

        Rebaselining fast/dom/adopt-attribute-crash-expected for win
        https://bugs.webkit.org/show_bug.cgi?id=151762

        Reviewed by Darin Adler.

        * platform/win/fast/dom/adopt-attribute-crash-expected.txt:

2015-12-02  Alex Christensen  <achristensen@webkit.org>

        Asynchronously call onerror when a content blocker blocks ascript element's load
        https://bugs.webkit.org/show_bug.cgi?id=151649

        Reviewed by Brady Eidson.

        * http/tests/contentextensions/script-onerror-expected.txt: Added.
        * http/tests/contentextensions/script-onerror.html: Added.
        * http/tests/contentextensions/script-onerror.html.json: Added.
        * http/tests/misc/unloadable-script-expected.txt:
        * http/tests/misc/unloadable-script.html:
        * http/tests/security/local-JavaScript-from-remote-expected.txt:
        * http/tests/security/local-JavaScript-from-remote.html:
        Added testRunner.waitUntilDone and testRunner.notifyDone to reflect the fact that onerror is no longer called synchronously.

2015-12-02  Eric Carlson  <eric.carlson@apple.com>

        Fix flaky test added with r192954.

        Unreviewed.

        * fast/mediastream/MediaStreamTrack-getSettings.html:

2015-12-02  Commit Queue  <commit-queue@webkit.org>

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

        A large number of the tests added with this change are failing
        on Windows (Requested by ryanhaddad on #webkit).

        Reverted changeset:

        "[css border] border-image doesn't honor border-style"
        https://bugs.webkit.org/show_bug.cgi?id=99922
        http://trac.webkit.org/changeset/192955

2015-12-02  Yoav Weiss  <yoav@yoav.ws>

        Fix preloader issue with srcdoc documents.
        https://bugs.webkit.org/show_bug.cgi?id=151744

        Reviewed by Ryosuke Niwa.

        Added a test that makes sure that srcdoc based subresources are properly preloaded.

        * fast/preloader/iframe-srcdoc-expected.txt: Added.
        * fast/preloader/iframe-srcdoc.html: Added.

2015-12-02  Jer Noble  <jer.noble@apple.com>

        Add a setting and restriction which will pause invisible autoplaying video
        https://bugs.webkit.org/show_bug.cgi?id=151412

        Reviewed by Eric Carlson.

        * media/video-restricted-invisible-autoplay-not-allowed-expected.txt: Added.
        * media/video-restricted-invisible-autoplay-not-allowed.html: Added.

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

        Rebaseline fast/parser/xml-declaration-missing-ending-mark.html, fast/parser/xml-colon-entity.html for Win
        https://bugs.webkit.org/show_bug.cgi?id=151763

        Reviewed by Brent Fulgham.

        * platform/win/fast/parser/xml-colon-entity-expected.txt:
        * platform/win/fast/parser/xml-declaration-missing-ending-mark-expected.txt:

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

        Rebaseline fast/dynamic/text-combine.html on win
        https://bugs.webkit.org/show_bug.cgi?id=151761

        Unreviewed test gardening.

        * platform/win/fast/dynamic/text-combine-expected.png:
        * platform/win/fast/dynamic/text-combine-expected.txt:

2015-12-02  Brady Eidson  <beidson@apple.com>

        Modern IDB: Remove all traces of IDBObjectStore::openKeyCursor from tests.
        https://bugs.webkit.org/show_bug.cgi?id=151772

        Reviewed by Alex Christensen.
        
        IDBObjectStore::openKeyCursor no longer exists, so testing it is inherently bogus.

        * platform/mac-wk1/TestExpectations: Two tests now pass with small expectations changes.
        * storage/indexeddb/cursor-basics-expected.txt:
        * storage/indexeddb/cursor-overloads-expected.txt:

        * storage/indexeddb/cursor-overloads.html:
        * storage/indexeddb/optional-arguments.html:
        * storage/indexeddb/resources/cursor-basics.js:
        * storage/indexeddb/resources/deleted-objects.js:
        * storage/indexeddb/resources/exceptions.js:
        * storage/indexeddb/resources/objectstore-basics.js:
        
        * storage/indexeddb/objectstore-keycursor-expected.txt: Removed.
        * storage/indexeddb/objectstore-keycursor.html: Removed.
        * storage/indexeddb/resources/objectstore-keycursor.js: Removed.

2015-12-02  David Hyatt  <hyatt@apple.com>

        Add some more picture element layout tests
        https://bugs.webkit.org/show_bug.cgi?id=151769

        Reviewed by Dean Jackson.

        * fast/picture/image-picture-invalid-expected.txt: Added.
        * fast/picture/image-picture-invalid.html: Added.
        * fast/picture/image-picture-nested-expected.txt: Added.
        * fast/picture/image-picture-nested.html: Added.

2015-12-02  Brady Eidson  <beidson@apple.com>

        Modern IDB: Enable a couple more passing tests.
        https://bugs.webkit.org/show_bug.cgi?id=151766

        Reviewed by Beth Dakin.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/create-object-store-options-expected.txt:

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

        Skipping tests on Win that fail due to unimplemented showModalDialog function.
        https://bugs.webkit.org/show_bug.cgi?id=151506

        Unreviewed test gardening.

        * platform/win/TestExpectations:

2015-12-02  Brady Eidson  <beidson@apple.com>

        Modern IDB: IDBTransaction::error is not exposed.
        https://bugs.webkit.org/show_bug.cgi?id=151752

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/modern/basic-add.html:
        * storage/indexeddb/modern/double-abort-expected.txt:
        * storage/indexeddb/modern/index-3.html:
        * storage/indexeddb/resources/transaction-error.js:
        * storage/indexeddb/transaction-error-expected.txt:

2015-12-02  Adenilson Cavalcanti  <cavalcantii@gmail.com>

        [css border] border-image doesn't honor border-style
        https://bugs.webkit.org/show_bug.cgi?id=99922

        Reviewed by Simon Fraser.

        Ensure that WebKit will be compliant to css-backgrounds spec where
        a border with an image will only be rendered if there is a style defined.

        Previous border image tests had to be edited (i.e. define border-style)
        to ensure that a decorated border would be rendered.

        * fast/borders/border-image-01.html:
        * fast/borders/border-image-border-radius.html:
        * fast/borders/border-image-fill-no-intrinsic-size.html:
        * fast/borders/border-image-longhand.html:
        * fast/borders/border-image-massive-scale.html:
        * fast/borders/border-image-omit-right-slice.html:
        * fast/borders/border-image-outset-in-shorthand.html:
        * fast/borders/border-image-outset-split-inline-expected.txt:
        * fast/borders/border-image-outset-split-inline-vertical-lr-expected.txt:
        * fast/borders/border-image-outset-split-inline-vertical-lr.html:
        * fast/borders/border-image-outset-split-inline.html:
        * fast/borders/border-image-outset.html:
        * fast/borders/border-image-repeat.html:
        * fast/borders/border-image-rotate-transform.html:
        * fast/borders/border-image-scale-transform.html:
        * fast/borders/border-image-scaled.html:
        * fast/borders/border-image-scrambled.html:
        * fast/borders/border-image-should-not-display-expected.html: Added.
        * fast/borders/border-image-should-not-display.html: Added.
        * fast/borders/border-image-side-reduction.html:
        * fast/borders/border-image-slice-constrained.html:
        * fast/borders/border-image-slice-missing-right.html:
        * fast/borders/border-image-slices.html:
        * fast/borders/border-image-source.html:
        * fast/borders/border-image-trumps-radius-expected.txt:
        * fast/borders/border-image-trumps-radius.html:
        * fast/borders/hidpi-border-image-gradient-on-subpixels.html:
        * fast/borders/resources/red.png: Added.
        * fast/borders/scaled-border-image.html:
        * fast/gradients/border-image-gradient-expected.txt:
        * fast/gradients/border-image-gradient.html:
        * fast/hidpi/image-set-border-image-comparison.html:
        * fast/hidpi/image-set-border-image-dynamic.html:
        * fast/hidpi/image-set-border-image-simple.html:
        * fast/writing-mode/border-image-horizontal-bt.html:
        * fast/writing-mode/border-image-vertical-lr.html:
        * fast/writing-mode/border-image-vertical-rl.html:
        * platform/mac/fast/borders/border-image-01-expected.txt:
        * platform/mac/fast/borders/border-image-border-radius-expected.txt:
        * platform/mac/fast/borders/border-image-longhand-expected.txt:
        * platform/mac/fast/borders/border-image-massive-scale-expected.txt:
        * platform/mac/fast/borders/border-image-omit-right-slice-expected.txt:
        * platform/mac/fast/borders/border-image-outset-expected.txt:
        * platform/mac/fast/borders/border-image-outset-in-shorthand-expected.txt:
        * platform/mac/fast/borders/border-image-repeat-expected.txt:
        * platform/mac/fast/borders/border-image-rotate-transform-expected.txt:
        * platform/mac/fast/borders/border-image-scale-transform-expected.txt:
        * platform/mac/fast/borders/border-image-scaled-expected.txt:
        * platform/mac/fast/borders/border-image-scrambled-expected.txt:
        * platform/mac/fast/borders/border-image-side-reduction-expected.txt:
        * platform/mac/fast/borders/border-image-slice-constrained-expected.txt:
        * platform/mac/fast/borders/border-image-slices-expected.txt:
        * platform/mac/fast/borders/border-image-source-expected.txt:
        * platform/mac/fast/borders/scaled-border-image-expected.txt:
        * platform/mac/fast/hidpi/image-set-border-image-comparison-expected.txt:
        * platform/mac/fast/hidpi/image-set-border-image-dynamic-expected.txt:
        * platform/mac/fast/hidpi/image-set-border-image-simple-expected.txt:
        * platform/mac/fast/writing-mode/border-image-horizontal-bt-expected.txt:
        * platform/mac/fast/writing-mode/border-image-vertical-lr-expected.txt:
        * platform/mac/fast/writing-mode/border-image-vertical-rl-expected.txt:

2015-12-02  Eric Carlson  <eric.carlson@apple.com>

        [MediaStream] Implement MediaStreamTrack.getSettings()
        https://bugs.webkit.org/show_bug.cgi?id=151727

        Reviewed by Jer Noble.

        * fast/mediastream/MediaStream-video-element-expected.txt:
        * fast/mediastream/MediaStream-video-element-track-stop-expected.txt:
        * fast/mediastream/MediaStream-video-element-track-stop.html:
        * fast/mediastream/MediaStream-video-element.html:
        * fast/mediastream/MediaStreamTrack-getSettings-expected.txt: Added.
        * fast/mediastream/MediaStreamTrack-getSettings.html: Added.

2015-12-01  David Hyatt  <hyatt@apple.com>

        Implement the picture element.
        https://bugs.webkit.org/show_bug.cgi?id=116963

        Reviewed by Dean Jackson.

        * fast/picture: Added.
        * fast/picture/image-picture-1x-expected.txt: Added.
        * fast/picture/image-picture-1x.html: Added.
        * fast/picture/resources: Added.
        * fast/picture/resources/blue_rect.jpg: Added.
        * fast/picture/resources/currentSrcHelper.js: Added.
        (fileName):
        (currentSrcFileName):
        (currentSrcFileNameNoParams):
        * fast/picture/resources/image-set-4x.png: Added.

2015-12-02  Jiewen Tan  <jiewen_tan@apple.com>

        Null dereference loading Blink layout test fast/loader/unload-mutation-crash.html
        https://bugs.webkit.org/show_bug.cgi?id=149305
        <rdar://problem/22747892>

        Reviewed by Brent Fulgham.

        This test case is from Blink r180918:
        https://codereview.chromium.org/495743003

        * fast/loader/unload-mutation-crash-expected.txt: Added.
        * fast/loader/unload-mutation-crash.html: Added.

2015-12-02  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Handle YieldExpressions in the ScriptSyntaxTree
        https://bugs.webkit.org/show_bug.cgi?id=151730

        Reviewed by Brian Burg.

        * inspector/model/parse-script-syntax-tree-expected.txt:
        * inspector/model/parse-script-syntax-tree.html:

2015-12-01  Myles C. Maxfield  <mmaxfield@apple.com>

        [Win] Test gardening after r192895

        Unreviewed.

        * fast/text/emoji-overlap-expected.html:
        * fast/text/emoji-overlap.html:

2015-12-01  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r192894 and r192904.
        https://bugs.webkit.org/show_bug.cgi?id=151738

        Crashes sometimes on Windows (Requested by litherum on
        #webkit).

        Reverted changesets:

        "[Win] Web fonts with small caps have excess whitespace with
        the complex text codepath"
        https://bugs.webkit.org/show_bug.cgi?id=151698
        http://trac.webkit.org/changeset/192894

        "Test gardening after r192894"
        http://trac.webkit.org/changeset/192904

2015-12-01  Myles C. Maxfield  <mmaxfield@apple.com>

        [SVG -> OTF Converter] Force UnitsPerEm to 1000
        https://bugs.webkit.org/show_bug.cgi?id=151650

        Reviewed by Antti Koivisto.

        Some tests have quantization differences.

        * fast/ruby/ruby-expansion-cjk-2-expected.html:
        * fast/ruby/ruby-expansion-cjk-3-expected.html:
        * fast/ruby/ruby-expansion-cjk-4-expected.html:
        * fast/ruby/ruby-expansion-cjk-5-expected.html:
        * fast/ruby/ruby-expansion-cjk-expected.html:
        * platform/mac-wk2/svg/W3C-SVG-1.1/fonts-elem-04-b-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-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/wicd/test-rightsizing-b-expected.txt:
        * svg/custom/acid3-test-77-expected.txt:

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

        Add updated test result missing from http://trac.webkit.org/changeset/192924
        https://bugs.webkit.org/show_bug.cgi?id=151725

        * storage/indexeddb/modern/opendatabase-request-event-expected.txt:

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

        Marking http/tests/xmlhttprequest/methods-async.html as flaky on Yosemite WK2
        https://bugs.webkit.org/show_bug.cgi?id=151729

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        Give a more detailed message for TypeErrors that result from EnforceRange.
        https://bugs.webkit.org/show_bug.cgi?id=151725

        Reviewed by Tim Horton.

        * crypto/subtle/aes-cbc-generate-key-expected.txt:
        * js/dom/webidl-type-mapping-expected.txt:
        * storage/indexeddb/intversion-bad-parameters-expected.txt:
        * storage/indexeddb/version-change-event-basic-expected.txt:

2015-12-01  Myles C. Maxfield  <mmaxfield@apple.com>

        Test gardening after r192894

        Unreviewed.

        * fast/text/small-caps-complex-expected.html:
        * fast/text/small-caps-complex.html:

2015-12-01  Myles C. Maxfield  <mmaxfield@apple.com>

        [iOS] Adjacent emoji overlap each other
        https://bugs.webkit.org/show_bug.cgi?id=151690
        <rdar://problem/23430453>

        Reviewed by Simon Fraser.

        * fast/text/emoji-overlap-expected.html: Added.
        * fast/text/emoji-overlap.html: Added.

2015-12-01  Myles C. Maxfield  <mmaxfield@apple.com>

        [Win] Web fonts with small caps have excess whitespace with the complex text codepath
        https://bugs.webkit.org/show_bug.cgi?id=151698

        Reviewed by Darin Adler.

        * fast/text/resources/tinyfont.svg: Added.
        * fast/text/small-caps-complex-expected.html: Added.
        * fast/text/small-caps-complex.html: Added.

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

        Marking http/tests/xmlhttprequest/workers/methods.html as flaky on Yosemite WK2
        https://bugs.webkit.org/show_bug.cgi?id=151709

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

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

        Skip some specific IDB tests in preparation for enabling the entire directory.

        Reviewed in person by Sam Weinig.

        * platform/mac-wk1/TestExpectations:

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

        Modern IDB: storage/indexeddb/create-and-remove-object-store.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=151704

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures-expected.txt:

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

        Modern IDB: storage/indexeddb/basics.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=151694

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/modern/deletedatabase-1.html:
        * storage/indexeddb/modern/opendatabase-versions.html:
        * storage/indexeddb/modern/versionchange-event.html:

2015-12-01  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed, rolling out r192876.

        It broke a lot of JSC and layout tests for GTK and EFL

        Reverted changeset:

        "[ES6] "super" and "this" should be lexically bound inside an
        arrow function and should live in a JSLexicalEnvironment"
        https://bugs.webkit.org/show_bug.cgi?id=149338
        http://trac.webkit.org/changeset/192876

2015-12-01  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        [Streams API] pull function of tee should call readFromReadableStreamReader directly
        https://bugs.webkit.org/show_bug.cgi?id=151497

        Unreviewed.

        Adding non regression test.

        * streams/streams-promises-expected.txt:
        * streams/streams-promises.html:

2015-12-01  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        [Streams API] teeReadableStream should not directly use stream.getReader()
        https://bugs.webkit.org/show_bug.cgi?id=151487

        Reviewed by Darin Adler.

        Adding non-regression test.

        * streams/streams-promises-expected.txt:
        * streams/streams-promises.html:

2015-12-01  Skachkov Oleksandr  <gskachkov@gmail.com>

        [ES6] "super" and "this" should be lexically bound inside an arrow function and should live in a JSLexicalEnvironment
        https://bugs.webkit.org/show_bug.cgi?id=149338

        Reviewed by Saam Barati.

        * js/arrowfunction-supercall-expected.txt: Added.
        * js/arrowfunction-supercall.html: Added.
        * js/arrowfunction-tdz-expected.txt: Added new expectation.
        * js/script-tests/arrowfunction-supercall.js: Added.
        * js/script-tests/arrowfunction-tdz.js: Added new cases.

2015-12-01  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        [Streams API] streams should not directly use Number and related methods
        https://bugs.webkit.org/show_bug.cgi?id=151499

        Reviewed by Darin Adler.

        Added a non-regression test.

        * streams/streams-promises-expected.txt:
        * streams/streams-promises.html:

2015-12-01  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        [Streams API] Remove use of @catch for exposed promises
        https://bugs.webkit.org/show_bug.cgi?id=151625

        Reviewed by Darin Adler.

        * streams/streams-promises.html: beefing up the catch test by also overwritting Promise.prototype.then.

2015-11-30  Brady Eidson  <beidson@apple.com>

        Modern IDB: Unskip "storage/indexeddb/mozilla" instead of each individual test inside of it.
        https://bugs.webkit.org/show_bug.cgi?id=151693

        Reviewed by Geoffrey Garen.

        * platform/mac-wk1/TestExpectations:

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

        Amazon.com Additional Information links aren't clickable
        https://bugs.webkit.org/show_bug.cgi?id=151401
        <rdar://problem/23454261>

        Reviewed by Darin Adler.

        * fast/block/float/hit-test-on-overlapping-floats-expected.txt: Added.
        * fast/block/float/hit-test-on-overlapping-floats.html: Added.

2015-11-30  Brady Eidson  <beidson@apple.com>

        Modern IDB: Iterating index cursors to a specific key is busted.
        https://bugs.webkit.org/show_bug.cgi?id=151684

        Reviewed by Darin Adler.

        * platform/mac-wk1/TestExpectations:

2015-11-30  Brady Eidson  <beidson@apple.com>

        Modern IDB: ObjectStore cursors should not be able to iterate out of their range.
        https://bugs.webkit.org/show_bug.cgi?id=151683

        Reviewed by Darin Adler.

        * platform/mac-wk1/TestExpectations:

2015-11-30  Brady Eidson  <beidson@apple.com>

        Modern IDB: "prevunique" cursors should point at the lowest primary key that matches, not the highest.
        https://bugs.webkit.org/show_bug.cgi?id=151675.

        Reviewed by Darin Adler.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/modern/index-cursor-1-expected.txt:
        * storage/indexeddb/modern/index-cursor-2-expected.txt:
        * storage/indexeddb/modern/index-cursor-3-expected.txt:

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

        Null dereference loading Blink layout test http/tests/misc/detach-during-notifyDone.html
        https://bugs.webkit.org/show_bug.cgi?id=149309
        <rdar://problem/22748363>

        Reviewed by Brent Fulgham.

        The test case is from Blink r175601:
        https://codereview.chromium.org/317513002
        The test case will generate a set of weird ordering events that affects the documentLoader:
        1. The subframe finishes loading, and since the frame’s testRunner is not set to wait until
        done, WebKitTestRunner stops the load (by calling WKBundlePageStopLoading()).
        2. This causes the in-progress XHR to be aborted, which causes its readyState to become DONE
        (this bug doesn’t always reproduce because sometimes the XHR has already finished before the
        frame finishes loading).
        3. The onreadystatechange callback is executed, which sets innerHTML on the parent frame.
        4. Setting innerHTML disconnects the subframe, nulling out its DocumentLoader.
        5. We return to WebFrameLoaderClient::dispatchDidFinishLoad() from step #1, but now the
        FrameLoader’s DocumentLoader is null. And WebKit crashes here.

        Note that steps 2-4 happen synchronously inside WebFrameLoaderClient::dispatchDidFinishLoad().

        * http/tests/misc/detach-during-notifyDone-expected.txt: Added.
        * http/tests/misc/detach-during-notifyDone.html: Added.
        * http/tests/misc/resources/detached-frame.html: Added.

2015-11-30  Commit Queue  <commit-queue@webkit.org>

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

        This change broke existing layout tests on Windows (Requested
        by ryanhaddad on #webkit).

        Reverted changeset:

        "Unify font-variant-* with font-variant shorthand"
        https://bugs.webkit.org/show_bug.cgi?id=149773
        http://trac.webkit.org/changeset/192819

2015-11-30  Brady Eidson  <beidson@apple.com>

        Modern IDB: Set the correct source on the IDBRequest for cursor updates
        https://bugs.webkit.org/show_bug.cgi?id=151665

        Reviewed by Andy Estes.

        * platform/mac-wk1/TestExpectations:

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

        Marking fast/forms/state-restore-per-form.html as a flaky timeout on mac-wk2
        https://bugs.webkit.org/show_bug.cgi?id=150542

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2015-11-30  Brady Eidson  <beidson@apple.com>

        Modern IDB: Correct handling of cursors finishing iteration.
        https://bugs.webkit.org/show_bug.cgi?id=151664

        Reviewed by Andy Estes.

        * platform/mac-wk1/TestExpectations:

2015-11-30  Myles C. Maxfield  <mmaxfield@apple.com>

        Unify font-variant-* with font-variant shorthand
        https://bugs.webkit.org/show_bug.cgi?id=149773

        Reviewed by Darin Adler.

        Update tests. Also temporarily skip existing font-features tests until
        https://bugs.webkit.org/show_bug.cgi?id=149774 is fixed.

        * css3/font-variant-parsing-expected.txt:
        * css3/font-variant-parsing.html:
        * fast/css/font-property-priority-expected.txt:
        * fast/css/font-shorthand-expected.txt:
        * fast/css/parsing-font-variant-ligatures-expected.txt:
        * fast/css/parsing-font-variant-ligatures.html:
        * fast/inspector-support/style-expected.txt:
        * fast/text/font-variant-shorthand-expected.txt: Added.
        * fast/text/font-variant-shorthand.html: Added.
        * platform/mac/TestExpectations:
        * platform/mac/fast/writing-mode/broken-ideograph-small-caps-expected.txt:

2015-11-30  Brady Eidson  <beidson@apple.com>

        Modern IDB: After versionchange transactions abort, fire onerror on the original IDBOpenDBRequest.
        https://bugs.webkit.org/show_bug.cgi?id=151648

        Reviewed by Andy Estes.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/modern/abort-requests-cancelled-expected.txt:
        * storage/indexeddb/modern/abort-requests-cancelled.html:
        * storage/indexeddb/modern/aborted-put-expected.txt:
        * storage/indexeddb/modern/aborted-put.html:
        * storage/indexeddb/modern/createobjectstore-basic-expected.txt:
        * storage/indexeddb/modern/createobjectstore-basic.html:
        * storage/indexeddb/modern/deleteindex-2-expected.txt:
        * storage/indexeddb/modern/deleteindex-2.html:
        * storage/indexeddb/modern/deleteobjectstore-1-expected.txt:
        * storage/indexeddb/modern/deleteobjectstore-1.html:
        * storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt:
        * storage/indexeddb/modern/versionchange-abort-then-reopen-expected.txt:
        * storage/indexeddb/modern/versionchange-abort-then-reopen.html:

2015-11-30  Chris Dumez  <cdumez@apple.com>

        location.origin is undefined in a web worker
        https://bugs.webkit.org/show_bug.cgi?id=151614

        Reviewed by Darin Adler.

        Update existing layout test to confirm the existence of location.origin when in a
        WorkerGlobalScope.

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

2015-11-30  Brady Eidson  <beidson@apple.com>

        Modern IDB: Support updating cursor values when the object store uses inline keys.
        https://bugs.webkit.org/show_bug.cgi?id=151647

        Reviewed by Andy Estes.

        * platform/mac-wk1/TestExpectations:

2015-11-30  Brady Eidson  <beidson@apple.com>

        Modern IDB: openCursor() fix resulting in at least 4 more passing tests.
        https://bugs.webkit.org/show_bug.cgi?id=151630

        Reviewed by Andy Estes.

        * platform/mac-wk1/TestExpectations:
        * storage/indexeddb/modern/cursor-2-expected.txt:
        * storage/indexeddb/modern/cursor-2.html:
        * storage/indexeddb/modern/cursor-3-expected.txt:
        * storage/indexeddb/modern/cursor-3.html:
        * storage/indexeddb/modern/cursor-4-expected.txt:
        * storage/indexeddb/modern/cursor-4.html:
        * storage/indexeddb/modern/deleteindex-1-expected.txt:
        * storage/indexeddb/modern/deleteindex-1.html:
        * storage/indexeddb/modern/deleteindex-2-expected.txt:
        * storage/indexeddb/modern/deleteindex-2.html:
        * storage/indexeddb/modern/index-4-expected.txt:
        * storage/indexeddb/modern/index-4.html:
        * storage/indexeddb/modern/index-cursor-1-expected.txt:
        * storage/indexeddb/modern/index-cursor-1.html:
        * storage/indexeddb/modern/index-cursor-2-expected.txt:
        * storage/indexeddb/modern/index-cursor-2.html:
        * storage/indexeddb/modern/index-cursor-3-expected.txt:
        * storage/indexeddb/modern/index-cursor-3.html:

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

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

        Unreviewed test gardening.

        * platform/mac-wk2/TestExpectations:

2015-11-30  Brady Eidson  <beidson@apple.com>

        Modern IDB: Support keyPath injection into object store records.
        https://bugs.webkit.org/show_bug.cgi?id=151640

        Reviewed by Andy Estes.

        * platform/mac-wk1/TestExpectations:

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

        Browser does not fall back to SVG attribute value when CSS style value is invalid or not supported
        https://bugs.webkit.org/show_bug.cgi?id=147932

        Reviewed by Dean Jackson.

        Testing that we correctly fall back to the presentation attribute for SVGPaint and SVGColor values
        specified with an invalid keyword in a `style` attribute. We also update the expected output for
        svg/css/svg-attribute-parser-mode.html which is now in line with values returned by Firefox and
        Chrome, where we correctly use the default value instead of null objects, which was definitely
        an error.

        * svg/css/invalid-color-cascade-expected.svg: Added.
        * svg/css/invalid-color-cascade.svg: Added.
        * svg/css/invalid-paint-cascade-expected.svg: Added.
        * svg/css/invalid-paint-cascade.svg: Added.
        * svg/css/script-tests/svg-attribute-parser-mode.js:
        * svg/css/svg-attribute-parser-mode-expected.txt:

2015-11-18  Andy Estes  <aestes@apple.com>

        [Content Filtering] Crash in DocumentLoader::notifyFinished() when allowing a media document to load
        https://bugs.webkit.org/show_bug.cgi?id=151433
        rdar://problem/23506594

        Reviewed by Alexey Proskuryakov.

        * contentfiltering/allow-media-document-expected.txt: Added.
        * contentfiltering/allow-media-document.html: Added.
        * contentfiltering/resources/test.mp4: Added.

2015-11-25  Pranjal Jumde  <pjumde@apple.com>

        Checks for buffer-overflows when reading characters from textRun
        https://bugs.webkit.org/show_bug.cgi?id=151055
        <rdar://problem/23251789>

        Reviewed by Myles C. Maxfield.

        * dom/html/level1/core/151055_asan.html:
        * dom/html/level1/core/151055_asan-expected.txt:

2015-11-24  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r192536, r192722, and r192743.
        https://bugs.webkit.org/show_bug.cgi?id=151593

        Still causing trouble. (Requested by kling on #webkit).

        Reverted changesets:

        "[JSC] JSPropertyNameEnumerator could be destructorless."
        https://bugs.webkit.org/show_bug.cgi?id=151242
        http://trac.webkit.org/changeset/192536

        "REGRESSION(r192536): Null pointer dereference in
        JSPropertyNameEnumerator::visitChildren()."
        https://bugs.webkit.org/show_bug.cgi?id=151495
        http://trac.webkit.org/changeset/192722

        "REGRESSION(r192536): Null pointer dereference in
        JSPropertyNameEnumerator::visitChildren()."
        https://bugs.webkit.org/show_bug.cgi?id=151495
        http://trac.webkit.org/changeset/192743

2015-11-24  Xabier Rodriguez Calvar  <calvaris@igalia.com>

        [Streams API] Implement pipeTo method in readable Stream
        https://bugs.webkit.org/show_bug.cgi?id=151588

        Reviewed by Darin Adler.

        Test "Piping to a writable stream that does not consume the writes fast enough exerts backpressure on the
        source" was moved to its own file because it causes timing issues.

        * streams/reference-implementation/pipe-to.html: Moved "Piping to a writable stream that does not consume the
        writes fast enough exerts backpressure on the source" test to its own file.
        * streams/pipe-to.html: Added with "Piping to a writable stream that does not consume the writes fast enough
        exerts backpressure on the source" test.
        * streams/reference-implementation/brand-checks.html: Fixed issue with the creation of a ReadableStreamReader.
        * streams/pipe-to-expected.txt:
        * streams/reference-implementation/brand-checks-expected.txt:
        * streams/reference-implementation/pipe-through-expected.txt:
        * streams/reference-implementation/pipe-to-expected.txt:
        * streams/reference-implementation/pipe-to-options-expected.txt:
        * streams/reference-implementation/readable-stream-templated-expected.txt: Expectations.
        * platform/mac/TestExpectations:
        * platform/win/TestExpectations: Flagged pipe-to test because of webkit.org/b/147933.

2015-11-24  Antti Koivisto  <antti@apple.com>

        REGRESSION (r190983): Non-element, non-text nodes should not be distributed to slots
        https://bugs.webkit.org/show_bug.cgi?id=151566
        rdar://problem/23430177

        Reviewed by Zalan Bujtas.

        * fast/html/details-comment-crash-expected.html: Added.
        * fast/html/details-comment-crash.html: Added.

2015-11-23  Brady Eidson  <beidson@apple.com>

        Modern IDB: Unskip all indexeddb/mozilla tests that pass.
        https://bugs.webkit.org/show_bug.cgi?id=151568

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

2015-11-23  Brady Eidson  <beidson@apple.com>

        Modern IDB: When a transaction is aborted, call onerror handlers for all in-progress requests.
        https://bugs.webkit.org/show_bug.cgi?id=151550

        Reviewed by Alex Christensen.

        * storage/indexeddb/modern/abort-requests-cancelled-expected.txt: Added.
        * storage/indexeddb/modern/abort-requests-cancelled.html: Added.
        * storage/indexeddb/modern/idbtransaction-objectstore-failures-expected.txt:
        * storage/indexeddb/modern/idbtransaction-objectstore-failures.html:
        * storage/indexeddb/modern/index-5-expected.txt:
        * storage/indexeddb/modern/index-5.html:

2015-11-23  Brady Eidson  <beidson@apple.com>

        Modern IDB: Unskip storage/indexeddb/mozilla/global-data.html.
        https://bugs.webkit.org/show_bug.cgi?id=151557

        Reviewed by Alex Christensen.

        * platform/mac-wk1/TestExpectations:

2015-11-17  Sergio Villar Senin  <svillar@igalia.com>

        ASSERTION FAILED: freeSpace >= 0 in WebCore::RenderGrid::computeTrackSizesForDirection
        https://bugs.webkit.org/show_bug.cgi?id=151254

        Reviewed by Darin Adler.

        * fast/css-grid-layout/grid-quirks-mode-huge-margin-crash-expected.txt: Added.
        * fast/css-grid-layout/grid-quirks-mode-huge-margin-crash.html: Added.

2015-11-22  Myles C. Maxfield  <mmaxfield@apple.com>

        Add a test to make sure that font-variant: inherit works correctly.

        Unreviewed.

        * fast/text/font-variant-inherit-expected.html: Added.
        * fast/text/font-variant-inherit.html: Added.

2015-11-22  Myles C. Maxfield  <mmaxfield@apple.com>

        Font selection should not consult font-variant property
        https://bugs.webkit.org/show_bug.cgi?id=151537

        Reviewed by Simon Fraser.

        * fast/text/font-selection-font-variant-expected.html: Added.
        * fast/text/font-selection-font-variant.html: Added.

== Rolled over to ChangeLog-2015-11-21 ==
