2010-01-29  Victor Wang  <victorw@chromium.org>

        Reviewed by darin@apple.com.

        Fix the issue that both main frome and iframe are
        focused if window.onblur calls window.focus.
        https://bugs.webkit.org/show_bug.cgi?id=31692

        The problem is caused by the focused frame in FocusController
        is messed up if window.onblur calls window.focus:
        When user clicks iframe to switch focus from main frame to iframe,
        FocusController::setFocusedFrame fires onblur event, which calls
        window.focus and then calls setFocusedFrame again to switch back.
        This messes up the old focused frame and new focused frame and
        leaves the FocusController confused. As a result, controlls
        in both main frame and iframe look like get focused.

        To fix it, add a flag to FocusController and do no switch the focused
        frame when FocusController is in the middle of changing the focused frame. 

        * fast/events/change-frame-focus-expected.txt: Added.
        * fast/events/change-frame-focus.html: Added.

2010-01-28  Jon Honeycutt  <jhoneycutt@apple.com>

        MSAA: Crash when posting a notification for a detached object

        https://bugs.webkit.org/show_bug.cgi?id=34309
        <rdar://problem/7409759>

        Reviewed by Darin Adler.

        * platform/win/accessibility/detached-object-notification-crash-expected.txt: Added.
        * platform/win/accessibility/detached-object-notification-crash.html: Added.

2010-01-29  Darin Fisher  <darin@chromium.org>

        Okayed by Oliver Hunt.

        Rollout r53949, r53951 and r54013 due to a Chromium regression that it
        causes.  Somehow this code change is triggering an endless repaint loop.

        https://bugs.webkit.org/show_bug.cgi?id=33808

        * platform/mac/fast/backgrounds/size/backgroundSize16-expected.checksum:
        * platform/mac/fast/backgrounds/size/backgroundSize16-expected.png:

2010-01-29  Philippe Normand  <pnormand@igalia.com>

        Unreviewed, build fix.

        http/tests/media/video-referer.html fails on mac
        https://bugs.webkit.org/show_bug.cgi?id=34331

        Skipping the failing test. Requires further investigation.

        * platform/mac-leopard/Skipped:
        * platform/mac-snowleopard/Skipped:
        * platform/mac-tiger/Skipped:
        * platform/mac/Skipped:

2010-01-29  Philippe Normand  <pnormand@igalia.com>

        Reviewed by Gustavo Noronha Silva.

        [Gtk] Vimeo HTML5 player doesn't work
        https://bugs.webkit.org/show_bug.cgi?id=34327

        Test for HTTP Referer checking when playing remote media.

        * http/tests/media/resources/setCookieAndReferer.cgi: Added.
        * http/tests/media/resources/video-referer-check-referer.php: Added.
        * http/tests/media/video-referer-expected.txt: Added.
        * http/tests/media/video-referer.html: Added.

2010-01-29  Andras Becsi  <abecsi@webkit.org>

        Unreviewed.

        [Qt] Remove disabled tests from Skiplist. The tests were disabled in r53701.

        * platform/qt/Skipped: 
          -css2.1/t1204-increment-00-c-o.html
          -css2.1/t1204-increment-01-c-o.html
          -css2.1/t1204-increment-02-c-o.html
          -css2.1/t1204-reset-00-c-o.html
          -css2.1/t1204-reset-01-c-o.html
          -css2.1/t1204-reset-02-c-o.html

2010-01-29  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Web Inspector: migrate to tokenizer-based highlighting in the Elements panel.

        https://bugs.webkit.org/show_bug.cgi?id=34273

        * inspector/syntax-highlight-css-expected.txt:
        * inspector/syntax-highlight-css.html:
        * inspector/syntax-highlight-javascript-expected.txt:
        * inspector/syntax-highlight-javascript.html:
        * inspector/syntax-highlight.js:
        (frontend_dumpSyntaxHighlight):

2010-01-28  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        MessageEvent.data should not be repeated deserialised
        https://bugs.webkit.org/show_bug.cgi?id=34311

        Add test to ensure we get the same value back when accessing event.data multiple times

        * fast/dom/Window/window-postmessage-clone.html:

2010-01-28  Hayato Ito  <hayato@chromium.org>

        Reviewed by Darin Adler.

        Change CSS 'page-break-inside' property from inherited one to non-inherited one because CSS specification defines so.

        Note: Currently, the 'page-break-inside' property is used only when parsing the CSS. That property is not used when rendering.

        https://bugs.webkit.org/show_bug.cgi?id=34195

        * fast/css/getComputedStyle/computed-style-page-break-inside-expected.txt: Added.
        * fast/css/getComputedStyle/computed-style-page-break-inside.html: Added.
        * fast/css/getComputedStyle/script-tests/computed-style-page-break-inside.js: Added.

2010-01-28  Michael Nordman  <michaeln@google.com>

        Reviewed by Alexey Proskuryakov.

        ApplicationCache events should be deferred until after Document onload has fired.
        https://bugs.webkit.org/show_bug.cgi?id=29690

        * http/tests/appcache/deferred-events-expected.txt: Added.
        * http/tests/appcache/deferred-events.html: Added.
        * http/tests/appcache/deferred-events-delete-while-raising-expected.txt: Added.
        * http/tests/appcache/deferred-events-delete-while-raising.html: Added.

2010-01-28  Alex Milowski  <alex@milowski.com>

        Reviewed by Eric Seidel.

        Updates from CSS change for mathml.css

        * platform/mac/mathml/presentation/sub-expected.txt:
        * platform/mac/mathml/presentation/sup-expected.txt:
        * platform/mac/mathml/presentation/tables-expected.checksum:
        * platform/mac/mathml/presentation/tables-expected.png:
        * platform/mac/mathml/presentation/tables-expected.txt:

2010-01-28  Gustavo Noronha Silva  <gns@gnome.org>

        Reviewed by Eric Carlson.

        [GTK] Pass cookies to GStreamer
        https://bugs.webkit.org/show_bug.cgi?id=34003

        Test that cookie is being sent by the media player.

        * http/tests/media/resources/setCookie.cgi: Added.
        * http/tests/media/resources/video-cookie-check-cookie.php: Added.
        * http/tests/media/video-cookie-expected.txt: Added.
        * http/tests/media/video-cookie.html: Added.

2010-01-28  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Incorrect small caps vs. normal text handling
        https://bugs.webkit.org/show_bug.cgi?id=34286

        * platform/qt/Skipped: css2.1/t1505-c524-font-var-00-b.html skipped

2010-01-27  Evan Martin  <evan@chromium.org>

        Reviewed by David Levin.

        [chromium] hebrew vowel marks incorrectly positioned
        https://bugs.webkit.org/show_bug.cgi?id=34234

        Add a layout test containing some Hebrew vowels.

        * fast/text/international/hebrew-vowels.html: Added.

2010-01-28  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, trivial baseline update.

        Update baseline for "Animated scaling of background-image is too slow"
        https://bugs.webkit.org/show_bug.cgi?id=33808

        * platform/mac/fast/backgrounds/size/backgroundSize16-expected.checksum:
        * platform/mac/fast/backgrounds/size/backgroundSize16-expected.png:

2010-01-28  Adam Barth  <abarth@webkit.org>

        Reviewed by David Levin.

        Remove XSSAuditor false positive for Google Translate
        https://bugs.webkit.org/show_bug.cgi?id=34242

        Add a test that we allow attackers to inject directly into the href
        property of the base tag.

        * http/tests/security/xssAuditor/base-href-direct-expected.txt: Added.
        * http/tests/security/xssAuditor/base-href-direct.html: Added.
        * http/tests/security/xssAuditor/resources/echo-head-base-href-direct.pl: Added.

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

        Reviewed by Dan Bernstein.

        Video can overlap position:fixed element when scrolling
        https://bugs.webkit.org/show_bug.cgi?id=32180
        
        Testcase for video overlapping a fixed position element on scroll.

        * compositing/geometry/video-fixed-scrolling.html: Added.
        * platform/mac/compositing/geometry/video-fixed-scrolling-expected.checksum: Added.
        * platform/mac/compositing/geometry/video-fixed-scrolling-expected.png: Added.
        * platform/mac/compositing/geometry/video-fixed-scrolling-expected.txt: Added.

2010-01-28  Anton Muhin  <antonm@google.com>

        Reviewed by Alexey Proskuryakov.

        Add layout tests to verify assignment to items of NodeList
        https://bugs.webkit.org/show_bug.cgi?id=34213

        * fast/dom/NodeList/nodelist-item-assignment-expected.txt: Added.
        * fast/dom/NodeList/nodelist-item-assignment.html: Added.

2010-01-28  Ben Murdoch  <benm@google.com>

        Reviewed by Simon Hausmann.

        [Android] [Qt] Touch event page co-ordinates are incorrect when touch is received in an iframe.
        https://bugs.webkit.org/show_bug.cgi?id=34162

        Update the existing iframe touch event test to also examine the page co-ordinates of the touch that is received.

        * fast/events/touch/resources/touch-inside-iframe2.html:
        * fast/events/touch/touch-inside-iframe-expected.txt:
        * fast/events/touch/touch-inside-iframe.html:

2010-01-28  Xan Lopez  <xlopez@igalia.com>

        [GTK] Can DnD files to our filechooser widget (<input type="file">)
        https://bugs.webkit.org/show_bug.cgi?id=34246

        Skip failing test because of this missing feature.

        * platform/gtk/Skipped:

2010-01-28  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Fisher.

        Remove tests for dates later than 275760-09-13T00:00Z.
        https://bugs.webkit.org/show_bug.cgi?id=34240

        Date.UTC() of V8 doesn't support such dates though Date.UTC() of
        JavaScriptCore does.

        * fast/forms/input-valueasnumber-date-expected.txt:
        * fast/forms/input-valueasnumber-datetime-expected.txt:
        * fast/forms/input-valueasnumber-datetimelocal-expected.txt:
        * fast/forms/input-valueasnumber-month-expected.txt:
        * fast/forms/script-tests/input-valueasnumber-date.js:
        * fast/forms/script-tests/input-valueasnumber-datetime.js:
        * fast/forms/script-tests/input-valueasnumber-datetimelocal.js:
        * fast/forms/script-tests/input-valueasnumber-month.js:
        * platform/win/fast/forms/input-valueasnumber-datetime-expected.txt: Removed.

2010-01-27  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        rangeOverflow/rangeUnderflow support for type=date
        https://bugs.webkit.org/show_bug.cgi?id=34209

        * fast/forms/ValidityState-rangeOverflow-date-expected.txt: Added.
        * fast/forms/ValidityState-rangeOverflow-date.html: Added.
        * fast/forms/ValidityState-rangeUnderflow-date-expected.txt: Added.
        * fast/forms/ValidityState-rangeUnderflow-date.html: Added.
        * fast/forms/script-tests/ValidityState-rangeOverflow-date.js: Added.
        * fast/forms/script-tests/ValidityState-rangeUnderflow-date.js: Added.

2010-01-27  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Skip test introduced in r53972 because of missing eventSender.beginDragWithFiles()

        * platform/qt/Skipped: fast/dom/Window/window-postmessage-clone-frames.html skipped.

2010-01-27  Oliver Hunt  <oliver@apple.com>

        Reviewed by Maciej Stachowiak.

        MessageEvent.data should deserialize in the context of the MessageEvent's global object
        https://bugs.webkit.org/show_bug.cgi?id=34227

        Test that the object returned from postMessage.data is created in the correct context

        * fast/dom/Window/resources/window-postmessage-clone-frames-frame.html: Added.
        * fast/dom/Window/window-postmessage-clone-frames-expected.txt: Added.
        * fast/dom/Window/window-postmessage-clone-frames.html: Added.

2010-01-27  John Abd-El-Malek  <jam@chromium.org>

        Reviewed by Dimitri Glazkov.

        Tests that when a page removes an iframe that sleeps in its unload handler and
        terminates its JS execution, the outer page's JS continues running.
        
        https://bugs.webkit.org/show_bug.cgi?id=34226

        * fast/dom/Window/slow-unload-handler-expected.txt: Copied from LayoutTests/fast/dom/Window/slow_unload_handler-expected.txt.
        * fast/dom/Window/slow-unload-handler-only-frame-is-stopped.html: Added.
        * fast/dom/Window/slow-unload-handler-only-frame-is-stopped-expected.txt: Added.
        * fast/dom/Window/slow-unload-handler.html: Copied from LayoutTests/fast/dom/Window/slow_unload_handler.html.
        * fast/dom/Window/slow_unload_handler-expected.txt: Removed.
        * fast/dom/Window/slow_unload_handler.html: Removed.
        * platform/gtk/Skipped:
        * platform/mac/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:

2010-01-27  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        Add valueAsNumber support for type=datetime-local.
        https://bugs.webkit.org/show_bug.cgi?id=34200

        The test data is equivalent to input-valueasnumber-datetime.html.
        The expectation contains two FAIL lines because they check
        unimplemented features.

        * fast/forms/input-valueasnumber-datetimelocal-expected.txt: Added.
        * fast/forms/input-valueasnumber-datetimelocal.html: Added.
        * fast/forms/script-tests/input-valueasnumber-datetimelocal.js: Added.

2010-01-27  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Adam Roben.

        Add platform specific failing Windows results for two recently
        added tests. I will comment on their originating bugs saying that
        failing results were landed for Windows.
        
        <https://bugs.webkit.org/show_bug.cgi?id=29564>
        <https://bugs.webkit.org/show_bug.cgi?id=32696>

        * platform/win/fast/css/button-height-expected.txt: Added.
        * platform/win/fast/forms/input-valueasnumber-datetime-expected.txt: Added.

2010-01-27  Diego Gonzalez  <diego.gonzalez@openbossa.org>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] DRT Provide worker thread ability to track counters
        https://bugs.webkit.org/show_bug.cgi?id=34221

        Implement workerThreadCount() in LayoutTestController of Qt DRT

        Tests:
        fast/workers/dedicated-worker-lifecycle.html
        fast/workers/shared-worker-frame-lifecycle.html
        fast/workers/shared-worker-lifecycle.html
        fast/workers/worker-lifecycle.html

        * platform/qt/Skipped:

2010-01-26  Darin Fisher  <darin@chromium.org>

        Reviewed by Brady Eidson and David Levin.

        Chains of history items representing same-document navigation need to
        always remember that association

        https://bugs.webkit.org/show_bug.cgi?id=33224

        * fast/dom/location-hash-expected.txt:
        * fast/dom/location-hash.html: Revert changes from r43274 since
        history.back to a reference fragment is now synchronous.

        * fast/history/back-forward-is-asynchronous-expected.txt: Removed.
        * fast/history/back-forward-is-asynchronous.html: Removed.
        This test is no longer valid (revert r43274).

        * fast/loader/stateobjects/document-destroyed-navigate-back-expected.txt:
        * fast/loader/stateobjects/document-destroyed-navigate-back.html: Revised
        test results to match corrected behavior.  Also removed the redundant
        history.back() call, which helps make the test a bit easier to understand.

2010-01-27  Yael Aharon  <yael.aharon@nokia.com>

        Reviewed by Laszlo Gombos.

        [Qt] Enable websockets support in QtWebKit
        https://bugs.webkit.org/show_bug.cgi?id=34180

        Remove websockets tests from skiplist.

        * platform/qt/Skipped:

2010-01-27  Mads Ager  <ager@chromium.org>

        Reviewed by Dimitri Glazkov.

        [V8] Support getting integer-named properties using indexing notation on document object
        https://bugs.webkit.org/show_bug.cgi?id=34211

        * fast/dom/HTMLDocument/get-iframe-with-integer-name-expected.txt: Added.
        * fast/dom/HTMLDocument/get-iframe-with-integer-name.html: Added.

2010-01-27  Kinuko Yasuda  <kinuko@chromium.org>

        Reviewed by Eric Seidel.

        Remove fast/events/keydown-numpad-keys.html from gtk's Skipped list.
        https://bugs.webkit.org/show_bug.cgi?id=28247

        * platform/gtk/Skipped:

2010-01-27  Tony Chang  <tony@chromium.org>

        Reviewed by Eric Seidel.

        Fix a crash when trying to indent a block element that was contained
        in a list.  This was happening because enclosingBlock() in
        htmlediting.cpp can return the current the same Node when a block
        element (like an <hr> or a <table>) is passed in.  This causes
        the indent command to think that it is not in a list item.

        Work around this by checking to see if enclosingBlock returned the
        same Node.

        https://bugs.webkit.org/show_bug.cgi?id=32390

        * editing/execCommand/indent-block-in-list-expected.txt: Added.
        * editing/execCommand/indent-block-in-list.html: Added.

2010-01-27  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Qt port doesn't need platform dependent expected file anymore
        for editing/pasteboard/paste-noscript-xhtml.html from r53873.

        * platform/qt/editing/pasteboard/paste-noscript-xhtml-expected.txt: Removed.

2010-01-27  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] fast/backgrounds/animated-svg-as-background.html make fast/backgrounds/svg-as-background-5.html crash.
        https://bugs.webkit.org/show_bug.cgi?id=34202

        * platform/qt/Skipped: fast/backgrounds/animated-svg-as-background.html enabled because bug rolled out by r53912.

2010-01-27  Matt Perry  <mpcomplete@chromium.org>

        Reviewed by Eric Seidel.

        Fix a bug where dispatchDocumentElementAvailable was fired for fragment parsing on XML documents.
        https://bugs.webkit.org/show_bug.cgi?id=33920

        * userscripts/resources: Added.
        * userscripts/resources/blank.xhtml: Added.
        * userscripts/script-not-run-for-fragments-expected.txt: Added.
        * userscripts/script-not-run-for-fragments.html: Added.
        * userscripts/script-run-at-start-expected.txt: Added.
        * userscripts/script-run-at-start.html: Added.

2010-01-27  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] fast/backgrounds/animated-svg-as-background.html make fast/backgrounds/svg-as-background-5.html crash.
        https://bugs.webkit.org/show_bug.cgi?id=34202

        * platform/qt/Skipped: fast/backgrounds/animated-svg-as-background.html skipped until fix.

2010-01-25  Philippe Normand  <pnormand@igalia.com>

        Reviewed by Eric Seidel.

        [Gtk] media/video-reverse-play-duration.html fails on and off on Gtk buildbots
        https://bugs.webkit.org/show_bug.cgi?id=34086

        * platform/gtk/Skipped: Unskip fixed test.

2010-01-26  Daniel Bates  <dbates@webkit.org>

        Unreviewed. Made a minor typo when I added the test case fast/css/button-height.html
        to the GTK Skipped file. In changeset 53900, I added test "fast/css/button-height.htm"
        to the GTK Skipped file instead of "fast/css/button-height.html". See bug #33936
        for more details.

        * platform/gtk/Skipped:

2010-01-26  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Failing tests after r53895 skipped.
        https://bugs.webkit.org/show_bug.cgi?id=34167

        * platform/qt/Skipped: 
         - http/tests/history/redirect-301.pl
         - http/tests/history/redirect-302.pl
         - http/tests/history/redirect-303.pl
         - http/tests/history/redirect-307.pl

2010-01-26  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed trivial fix.

        * platform/qt/editing/pasteboard/paste-noscript-xhtml-expected.txt: updated after r53873.

2010-01-26  Daniel Bates  <dbates@webkit.org>

        Unreviewed. Updated expected failing results for table-percent-height.html
        to reflect one pixel difference between the results generated by the Qt bot
        and my machine. Added failing test fast/css/button-height.html to GTK Skipped
        file as we need to look into this. See bug #33936 for more details.

        * platform/gtk/Skipped: Added failing test fast/css/button-height.html.
        * platform/qt/fast/replaced/table-percent-height-expected.txt: Updated result.

2010-01-26  Daniel Bates  <dbates@webkit.org>

        Reviewed by Tor Arne Vestbø.

        https://bugs.webkit.org/show_bug.cgi?id=29564

        Tests that the user-specified height for <button>- and <input type="button">-
        elements are honored, if appropriate for the platform and context.

        * fast/css/button-height-expected.txt: Added.
        * fast/css/button-height.html: Added.
        * fast/replaced/table-percent-height-expected.txt: Added notice about failing tests
        in Windows ports.
        * fast/replaced/table-percent-height.html: Ditto.
        * platform/qt/fast/replaced/table-percent-height-expected.txt: Added.

2010-01-26  Diego Gonzalez  <diego.gonzalez@openbossa.org>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] DRT WebHistory support
        https://bugs.webkit.org/show_bug.cgi?id=34167

        * platform/qt/Skipped:

2010-01-26  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        HTMLInputElement::valueAsNumber support except type=datetime-local.
        https://bugs.webkit.org/show_bug.cgi?id=32696

        input-valueasnumber-datetime-expected.txt and
        input-valueasnumber-time-expected.txt have FAIL lines because they
        test unimplemented features.

        * fast/forms/input-valueasnumber-date-expected.txt: Added.
        * fast/forms/input-valueasnumber-date.html: Added.
        * fast/forms/input-valueasnumber-datetime-expected.txt: Added.
        * fast/forms/input-valueasnumber-datetime.html: Added.
        * fast/forms/input-valueasnumber-month-expected.txt: Added.
        * fast/forms/input-valueasnumber-month.html: Added.
        * fast/forms/input-valueasnumber-number-expected.txt: Added.
        * fast/forms/input-valueasnumber-number.html: Added.
        * fast/forms/input-valueasnumber-range-expected.txt: Added.
        * fast/forms/input-valueasnumber-range.html: Added.
        * fast/forms/input-valueasnumber-time-expected.txt: Added.
        * fast/forms/input-valueasnumber-time.html: Added.
        * fast/forms/input-valueasnumber-unsupported-expected.txt: Added.
        * fast/forms/input-valueasnumber-unsupported.html: Added.
        * fast/forms/input-valueasnumber-week-expected.txt: Added.
        * fast/forms/input-valueasnumber-week.html: Added.
        * fast/forms/script-tests/input-valueasnumber-date.js: Added.
        * fast/forms/script-tests/input-valueasnumber-datetime.js: Added.
        * fast/forms/script-tests/input-valueasnumber-month.js: Added.
        * fast/forms/script-tests/input-valueasnumber-number.js: Added.
        * fast/forms/script-tests/input-valueasnumber-range.js: Added.
        * fast/forms/script-tests/input-valueasnumber-time.js: Added.
        * fast/forms/script-tests/input-valueasnumber-unsupported.js: Added.
        * fast/forms/script-tests/input-valueasnumber-week.js: Added.

2010-01-26  Kent Tamura  <tkent@chromium.org>

        Reviewed by Eric Seidel.

        [Win] Add modifiers parameter support to Windows DumpRenderTree
        https://bugs.webkit.org/show_bug.cgi?id=34068

        Remove listbox-deselect-scroll.html and listbox-selectio-2.html
        from Skipped. We improved their portability and Windows DRT now
        havs modifiers parameter of eventSender.mouseDown() and
        eventSender.mouseUp().

        * platform/win/Skipped:

2010-01-26  Adele Peterson  <adele@apple.com>

        Reviewed by Darin Adler.

        Test for <rdar://problem/7169464> REGRESSION (r47444): PLT is 1% slower due to implementation of :valid and :invalid CSS selectors
        https://bugs.webkit.org/show_bug.cgi?id=34029

        * fast/css/pseudo-valid-dynamic-expected.txt: Added.
        * fast/css/pseudo-valid-dynamic.html: Added.

2010-01-26  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by Alexey Proskuryakov.

        Fix url used in websocket-event-target.html
        https://bugs.webkit.org/show_bug.cgi?id=34066

        * websocket/tests/script-tests/websocket-event-target.js:

2010-01-26  Enrica Casucci  <enrica@apple.com>

        Reviewed by Jon Honeycutt.

        Fixing for failing test on qt.
        https://bugs.webkit.org/show_bug.cgi?id=34148
        
        Changed url in anchor tag to avoid the additional trailing slash.

        * editing/pasteboard/paste-noscript-xhtml-expected.txt:
        * editing/resources/htmlcontent.html:

2010-01-26  Dmitry Titov  <dimich@chromium.org>

        Reviewed by David Levin.

        Avoid reloading iframe on re-parenting between documents.
        https://bugs.webkit.org/show_bug.cgi?id=32848

        * fast/frames/iframe-reparenting-expected.txt: Added.
        * fast/frames/iframe-reparenting.html: Added.
        * fast/frames/resources/iframe-reparenting-frame1.html: Added.
        * fast/frames/resources/iframe-reparenting-frame2.html: Added.
        * fast/frames/resources/iframe-reparenting-iframe-content.html: Added.

2010-01-26  Adam Roben  <aroben@apple.com>

        No review, rolling out r53861.
        http://trac.webkit.org/changeset/53861
        https://bugs.webkit.org/show_bug.cgi?id=33224

        Caused 2 regression tests to fail.

        * fast/loader/stateobjects/document-destroyed-navigate-back-expected.txt:
        * fast/loader/stateobjects/document-destroyed-navigate-back.html:

2010-01-26  Dan Bernstein  <mitz@apple.com>

        Reviewed by Beth Dakin.

        <rdar://problem/7576663> Crash caused by anonymous list item
        https://bugs.webkit.org/show_bug.cgi?id=34183

        * fast/lists/anonymous-items.html: Added.
        * platform/mac/fast/lists/anonymous-items-expected.checksum: Added.
        * platform/mac/fast/lists/anonymous-items-expected.png: Added.
        * platform/mac/fast/lists/anonymous-items-expected.txt: Added.

2010-01-26  Chris Fleizach  <cfleizach@apple.com>

        Another attempt to get this test to pass for GTK.

        Add ability for image maps to be focused via tabbing
        https://bugs.webkit.org/show_bug.cgi?id=17513

        * fast/events/tab-imagemap-expected.txt:
        * fast/events/tab-imagemap.html:

2010-01-25  Darin Fisher  <darin@chromium.org>

        Reviewed by Brady Eidson.

        Chains of history items representing same-document navigation need to
        always remember that association

        https://bugs.webkit.org/show_bug.cgi?id=33224

        * fast/loader/stateobjects/document-destroyed-navigate-back-expected.txt:
        * fast/loader/stateobjects/document-destroyed-navigate-back.html: Revised
        test results to match corrected behavior.  Also removed the redundant
        history.back() call, which helps make the test a bit easier to understand.

2010-01-26  Chris Fleizach  <cfleizach@apple.com>

        One more attempt to get GTK version to pass.

        Add ability for image maps to be focused via tabbing
        https://bugs.webkit.org/show_bug.cgi?id=17513

        * fast/events/tab-imagemap-expected.txt:
        * fast/events/tab-imagemap.html:

2010-01-26  Chris Fleizach  <cfleizach@apple.com>

        Unreviewed.

        Attempt to make this test pass on GTK.

        Add ability for image maps to be focused via tabbing
        https://bugs.webkit.org/show_bug.cgi?id=17513

        * fast/events/tab-imagemap.html:

2010-01-26  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        Add ability for image maps to be focused via tabbing
        https://bugs.webkit.org/show_bug.cgi?id=17513

        * fast/events/resources/tabindex-focus-blur-all.js:
        (test):
        (testProgrammaticFocus):
        * fast/events/tab-imagemap-expected.txt: Added.
        * fast/events/tab-imagemap.html: Added.
        * fast/events/tabindex-focus-blur-all-expected.txt:

2010-01-26  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Holger Freyther.

        REGRESSION(r53835): Fix editing/pasteboard/paste-noscript-xhtml.xhtml
        https://bugs.webkit.org/show_bug.cgi?id=34157

        Add Qt specific result for this test that differs from the cross-platform
        result in only one character: In htmlcontent.html the href attribute value
        is http://www.cnn.com, which somehow becomes http://www.cnn.com/ in the cross
        platform result. With the Qt xml parser that attribute is somehow preserved
        and so our result does not have the trailing slash.

        * platform/qt/editing/pasteboard/paste-noscript-xhtml-expected.txt: Added.

2010-01-26  Kent Tamura  <tkent@chromium.org>

        Reviewed by Shinichiro Hamaji.

        Convert textarea-rows-cols.html to dumpAsText()
        https://bugs.webkit.org/show_bug.cgi?id=34074

        * fast/forms/script-tests/textarea-rows-cols.js: Added.
        * fast/forms/textarea-rows-cols-expected.txt: Added.
        * fast/forms/textarea-rows-cols.html:
        * platform/mac/fast/forms/textarea-rows-cols-expected.checksum: Removed.
        * platform/mac/fast/forms/textarea-rows-cols-expected.png: Removed.
        * platform/mac/fast/forms/textarea-rows-cols-expected.txt: Removed.
        * platform/qt/fast/forms/textarea-rows-cols-expected.txt: Removed.
        * platform/win/fast/forms/textarea-rows-cols-expected.txt: Removed.

2010-01-22  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Darin Adler.

        Make storage events match the spec.
        https://bugs.webkit.org/show_bug.cgi?id=30546

        This meat of the patch I just posted is very simple.  It's just making events
        asynchronous, not posting them to the frame that generated them, passing a null
        for the key when issuing a clear storage event, and making the events
        non-cancelable/non-bubbleable...all of which are clearly stated in the spec.

        The asynchronous and not posting to the frame that generated them forced me to
        re-write all the layout tests that dealt with storage events.  There's a lot of
        code there, but I tried to be fairly careful to ensure that test coverage did
        not shrink in any area.

        * storage/domstorage/complex-values-expected.txt:
        * storage/domstorage/documentURI-expected.txt: Removed.
        * storage/domstorage/documentURI.html: Removed.
        * storage/domstorage/events: Added.
        * storage/domstorage/events/basic-body-attribute-expected.txt: Added.
        * storage/domstorage/events/basic-body-attribute.html: Added.
        * storage/domstorage/events/basic-expected.txt: Added.
        * storage/domstorage/events/basic-setattribute-expected.txt: Added.
        * storage/domstorage/events/basic-setattribute.html: Added.
        * storage/domstorage/events/basic.html: Added.
        * storage/domstorage/events/case-sensitive-expected.txt: Added.
        * storage/domstorage/events/case-sensitive.html: Added.
        * storage/domstorage/events/documentURI-expected.txt: Added.
        * storage/domstorage/events/documentURI.html: Added.
        * storage/domstorage/events/resources: Added.
        * storage/domstorage/events/resources/body-event-handler.html: Added.
        * storage/domstorage/events/resources/eventTestHarness.js: Added.
        * storage/domstorage/events/resources/setattribute-event-handler.html: Added.
        * storage/domstorage/events/script-tests: Added.
        * storage/domstorage/events/script-tests/TEMPLATE.html: Copied from LayoutTests/storage/domstorage/script-tests/TEMPLATE.html.
        * storage/domstorage/events/script-tests/basic-body-attribute.js: Added.
        * storage/domstorage/events/script-tests/basic-setattribute.js: Added.
        * storage/domstorage/events/script-tests/basic.js: Added.
        * storage/domstorage/events/script-tests/case-sensitive.js: Added.
        * storage/domstorage/events/script-tests/documentURI.js: Added.
        * storage/domstorage/localstorage/iframe-events-expected.txt: Removed.
        * storage/domstorage/localstorage/iframe-events.html: Removed.
        * storage/domstorage/localstorage/index-get-and-set-expected.txt:
        * storage/domstorage/localstorage/index-get-and-set.html:
        * storage/domstorage/localstorage/onstorage-attribute-markup-expected.txt: Removed.
        * storage/domstorage/localstorage/onstorage-attribute-markup.html: Removed.
        * storage/domstorage/localstorage/onstorage-attribute-setattribute-expected.txt: Removed.
        * storage/domstorage/localstorage/onstorage-attribute-setattribute.html: Removed.
        * storage/domstorage/localstorage/onstorage-attribute-setwindow-expected.txt: Removed.
        * storage/domstorage/localstorage/onstorage-attribute-setwindow.html: Removed.
        * storage/domstorage/localstorage/simple-events-expected.txt: Removed.
        * storage/domstorage/localstorage/simple-events.html: Removed.
        * storage/domstorage/script-tests/complex-values.js:
        * storage/domstorage/script-tests/documentURI.js: Removed.
        * storage/domstorage/sessionstorage/iframe-events-expected.txt: Removed.
        * storage/domstorage/sessionstorage/iframe-events.html: Removed.
        * storage/domstorage/sessionstorage/index-get-and-set-expected.txt:
        * storage/domstorage/sessionstorage/index-get-and-set.html:
        * storage/domstorage/sessionstorage/onstorage-attribute-markup-expected.txt: Removed.
        * storage/domstorage/sessionstorage/onstorage-attribute-markup.html: Removed.
        * storage/domstorage/sessionstorage/onstorage-attribute-setattribute-expected.txt: Removed.
        * storage/domstorage/sessionstorage/onstorage-attribute-setattribute.html: Removed.
        * storage/domstorage/sessionstorage/onstorage-attribute-setwindow-expected.txt: Removed.
        * storage/domstorage/sessionstorage/onstorage-attribute-setwindow.html: Removed.
        * storage/domstorage/sessionstorage/simple-events-expected.txt: Removed.
        * storage/domstorage/sessionstorage/simple-events.html: Removed.
        * storage/domstorage/window-attributes-exist-expected.txt:
        * storage/domstorage/window-attributes-exist.html:

2010-01-25  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/7573493> Error with line break inside ?&raquo; pair of characters.
        https://bugs.webkit.org/show_bug.cgi?id=17475

        * fast/text/line-break-after-question-mark-expected.txt: Added.
        * fast/text/line-break-after-question-mark.html: Added.
        * fast/text/script-tests/line-break-after-question-mark.js: Added.
        ():
        * platform/mac/tables/mozilla/bugs/bug6674-expected.checksum: Updated.
        * platform/mac/tables/mozilla/bugs/bug6674-expected.png: Updated.
        * platform/mac/tables/mozilla/bugs/bug6674-expected.txt: Updated.

2010-01-25  Peter Kasting  <pkasting@google.com>

        Reviewed by Dan Bernstein.

        Rebaseline pixel tests affected by changes in scrollbar thumb size.
        https://bugs.webkit.org/show_bug.cgi?id=34049

        * platform/mac/compositing/overflow/overflow-scroll-expected.checksum:
        * platform/mac/compositing/overflow/overflow-scroll-expected.png:
        * platform/mac/fast/backgrounds/repeat/negative-offset-repeat-transformed-expected.checksum:
        * platform/mac/fast/backgrounds/repeat/negative-offset-repeat-transformed-expected.png:
        * platform/mac/fast/body-propagation/overflow/002-expected.checksum:
        * platform/mac/fast/body-propagation/overflow/002-expected.png:
        * platform/mac/fast/body-propagation/overflow/002-xhtml-expected.checksum:
        * platform/mac/fast/body-propagation/overflow/002-xhtml-expected.png:
        * platform/mac/fast/body-propagation/overflow/003-declarative-expected.checksum:
        * platform/mac/fast/body-propagation/overflow/003-declarative-expected.png:
        * platform/mac/fast/body-propagation/overflow/003-expected.checksum:
        * platform/mac/fast/body-propagation/overflow/003-expected.png:
        * platform/mac/fast/body-propagation/overflow/003-xhtml-expected.checksum:
        * platform/mac/fast/body-propagation/overflow/003-xhtml-expected.png:
        * platform/mac/fast/body-propagation/overflow/004-declarative-expected.checksum:
        * platform/mac/fast/body-propagation/overflow/004-declarative-expected.png:
        * platform/mac/fast/body-propagation/overflow/004-expected.checksum:
        * platform/mac/fast/body-propagation/overflow/004-expected.png:
        * platform/mac/fast/body-propagation/overflow/004-xhtml-expected.checksum:
        * platform/mac/fast/body-propagation/overflow/004-xhtml-expected.png:
        * platform/mac/fast/body-propagation/overflow/007-declarative-expected.checksum:
        * platform/mac/fast/body-propagation/overflow/007-declarative-expected.png:
        * platform/mac/fast/body-propagation/overflow/007-expected.checksum:
        * platform/mac/fast/body-propagation/overflow/007-expected.png:
        * platform/mac/fast/body-propagation/overflow/007-xhtml-expected.checksum:
        * platform/mac/fast/body-propagation/overflow/007-xhtml-expected.png:
        * platform/mac/fast/clip/014-expected.checksum:
        * platform/mac/fast/clip/014-expected.png:
        * platform/mac/fast/forms/basic-textareas-expected.checksum:
        * platform/mac/fast/forms/basic-textareas-expected.png:
        * platform/mac/fast/forms/form-element-geometry-expected.checksum:
        * platform/mac/fast/forms/form-element-geometry-expected.png:
        * platform/mac/fast/forms/listbox-hit-test-zoomed-expected.checksum:
        * platform/mac/fast/forms/listbox-hit-test-zoomed-expected.png:
        * platform/mac/fast/forms/textarea-scroll-height-expected.checksum:
        * platform/mac/fast/forms/textarea-scroll-height-expected.png:
        * platform/mac/fast/inline-block/tricky-baseline-expected.checksum:
        * platform/mac/fast/inline-block/tricky-baseline-expected.png:
        * platform/mac/fast/layers/scroll-rect-to-visible-expected.checksum:
        * platform/mac/fast/layers/scroll-rect-to-visible-expected.png:
        * platform/mac/fast/overflow/002-expected.checksum:
        * platform/mac/fast/overflow/002-expected.png:
        * platform/mac/fast/overflow/003-expected.checksum:
        * platform/mac/fast/overflow/003-expected.png:
        * platform/mac/fast/overflow/005-expected.checksum:
        * platform/mac/fast/overflow/005-expected.png:
        * platform/mac/fast/overflow/007-expected.checksum:
        * platform/mac/fast/overflow/007-expected.png:
        * platform/mac/fast/overflow/008-expected.checksum:
        * platform/mac/fast/overflow/008-expected.png:
        * platform/mac/fast/overflow/childFocusRingClip-expected.checksum:
        * platform/mac/fast/overflow/childFocusRingClip-expected.png:
        * platform/mac/fast/overflow/float-in-relpositioned-expected.checksum:
        * platform/mac/fast/overflow/float-in-relpositioned-expected.png:
        * platform/mac/fast/overflow/image-selection-highlight-expected.checksum:
        * platform/mac/fast/overflow/image-selection-highlight-expected.png:
        * platform/mac/fast/overflow/overflow-auto-position-absolute-expected.checksum:
        * platform/mac/fast/overflow/overflow-auto-position-absolute-expected.png:
        * platform/mac/fast/overflow/overflow-rtl-expected.checksum:
        * platform/mac/fast/overflow/overflow-rtl-expected.png:
        * platform/mac/fast/overflow/overflow-stacking-expected.checksum:
        * platform/mac/fast/overflow/overflow-stacking-expected.png:
        * platform/mac/fast/overflow/overflow-text-hit-testing-expected.checksum:
        * platform/mac/fast/overflow/overflow-text-hit-testing-expected.png:
        * platform/mac/fast/overflow/overflow-with-local-background-attachment-expected.checksum:
        * platform/mac/fast/overflow/overflow-with-local-background-attachment-expected.png:
        * platform/mac/fast/overflow/overflow-x-y-expected.checksum:
        * platform/mac/fast/overflow/overflow-x-y-expected.png:
        * platform/mac/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.checksum:
        * platform/mac/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.png:
        * platform/mac/fast/overflow/scrollbar-position-update-expected.checksum:
        * platform/mac/fast/overflow/scrollbar-position-update-expected.png:
        * platform/mac/fast/overflow/table-overflow-float-expected.checksum:
        * platform/mac/fast/overflow/table-overflow-float-expected.png:
        * platform/mac/fast/repaint/block-selection-gap-stale-cache-2-expected.checksum:
        * platform/mac/fast/repaint/block-selection-gap-stale-cache-2-expected.png:
        * platform/mac/fast/repaint/layout-state-only-positioned-expected.checksum:
        * platform/mac/fast/repaint/layout-state-only-positioned-expected.png:
        * platform/mac/fast/repaint/selection-gap-overflow-scroll-expected.checksum:
        * platform/mac/fast/repaint/selection-gap-overflow-scroll-expected.png:
        * platform/mac/fast/table/edge-offsets-expected.checksum:
        * platform/mac/fast/table/edge-offsets-expected.png:
        * platform/mac/scrollbars/key-window-not-first-responder-expected.checksum:
        * platform/mac/scrollbars/key-window-not-first-responder-expected.png:
        * platform/mac/svg/custom/invisible-text-after-scrolling-expected.checksum:
        * platform/mac/svg/custom/invisible-text-after-scrolling-expected.png:
        * platform/mac/tables/mozilla/bugs/bug149275-1-expected.checksum:
        * platform/mac/tables/mozilla/bugs/bug149275-1-expected.png:

2010-01-25  Enrica Casucci  <enrica@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=34148

        * editing/pasteboard/paste-noscript-xhtml-expected.txt: Added.
        * editing/pasteboard/paste-noscript-xhtml.xhtml: Added.
        * editing/resources/htmlcontent.html: Added.

2010-01-25  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        Improve portability of select-item-background-clip.html
        https://bugs.webkit.org/show_bug.cgi?id=34072

        * fast/forms/select-item-background-clip.html:
          Calculate the pixel height at runtime.

2010-01-25  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, trivial baseline updates.

        -webkit-gradient slows down scrolling when page has horizontal scrollbar
        https://bugs.webkit.org/show_bug.cgi?id=19650

        Update pixel baselines. They changed slightly after http://trac.webkit.org/changeset/53318/
        landed.

        * platform/mac/fast/gradients/border-image-gradient-expected.checksum:
        * platform/mac/fast/gradients/border-image-gradient-expected.png:
        * platform/mac/fast/gradients/border-image-gradient-sides-and-corners-expected.checksum:
        * platform/mac/fast/gradients/border-image-gradient-sides-and-corners-expected.png:
        * platform/mac/fast/gradients/simple-gradients-expected.checksum:
        * platform/mac/fast/gradients/simple-gradients-expected.png:

2010-01-25  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Geoffrey Garen.

        https://bugs.webkit.org/show_bug.cgi?id=34076
        An image remains accessible via form.property syntax after being removed from document.

        * fast/forms/removed-image-as-property-expected.txt: Added.
        * fast/forms/removed-image-as-property.html: Added.
        * fast/forms/reparented-image-as-property-expected.txt: Added.
        * fast/forms/reparented-image-as-property.html: Added.

2010-01-25  Yury Semikhatsky  <yurys@chromium.org>

        Unreviewed. Add new inspector test added in r53807 to skip
        list on qt platform.

        * platform/qt/Skipped:

2010-01-25  Yury Semikhatsky  <yurys@chromium.org>

        Reviewed by Timothy Hatcher.

        Test that Web Inspector doesn't change methods declared by the inspected
        page.
        https://bugs.webkit.org/show_bug.cgi?id=34089

        * inspector/inspected-objects-not-overriden-expected.txt: Added.
        * inspector/inspected-objects-not-overriden.html: Added.

2010-01-25  Philippe Normand  <pnormand@igalia.com>

        Rubber-stamped by Xan Lopez.

        [Gtk] media/video-reverse-play-duration.html fails on and off on Gtk buildbots
        https://bugs.webkit.org/show_bug.cgi?id=34086

        * platform/gtk/Skipped: Skipping the test, requires investigation
        on the failure.

2010-01-25  Yury Semikhatsky  <yurys@chromium.org>

        Reviewed by Pavel Feldman.

        Update inspector test expectations. Line number and source
        name are present only in Chromium when console message is
        logged before document load is completed.

        https://bugs.webkit.org/show_bug.cgi?id=34078

        * platform/chromium/inspector/console-log-before-inspector-open-expected.txt: Added.
        * platform/gtk/inspector/console-log-before-inspector-open-expected.txt: Copied from LayoutTests/inspector/console-log-before-inspector-open-expected.txt.
        * platform/mac/inspector/console-log-before-inspector-open-expected.txt: Copied from LayoutTests/inspector/console-log-before-inspector-open-expected.txt.
        * platform/win/inspector/console-log-before-inspector-open-expected.txt: Renamed from LayoutTests/inspector/console-log-before-inspector-open-expected.txt.

2010-01-24  Roland Steiner  <rolandsteiner@chromium.org>

        build fix: rubber-stamped by Eric Seidel.

        Fix expected baselines for ruby layout tests on Windows.

        * platform/win/fast/ruby/ruby-empty-rt-expected.txt:
        * platform/win/fast/ruby/ruby-length-expected.txt:
        * platform/win/fast/ruby/ruby-run-break-expected.txt:
        * platform/win/fast/ruby/ruby-runs-expected.txt:
        * platform/win/fast/ruby/ruby-runs-spans-expected.txt:
        * platform/win/fast/ruby/ruby-simple-expected.txt:
        * platform/win/fast/ruby/ruby-simple-rp-expected.txt:
        * platform/win/fast/ruby/ruby-trailing-expected.txt:
        * platform/win/fast/ruby/rubyDOM-insert-rt-expected.txt:
        * platform/win/fast/ruby/rubyDOM-insert-text1-expected.txt:
        * platform/win/fast/ruby/rubyDOM-insert-text2-expected.txt:
        * platform/win/fast/ruby/rubyDOM-insert-text3-expected.txt:
        * platform/win/fast/ruby/rubyDOM-remove-rt1-expected.txt:
        * platform/win/fast/ruby/rubyDOM-remove-rt2-expected.txt:
        * platform/win/fast/ruby/rubyDOM-remove-text1-expected.txt:
        * platform/win/fast/ruby/rubyDOM-remove-text2-expected.txt:

2010-01-24  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Dan Bernstein.

        Media element duration changes to zero after playing in reverse
        https://bugs.webkit.org/show_bug.cgi?id=34041

        * media/video-reverse-play-duration-expected.txt: Added.
        * media/video-reverse-play-duration.html: Added.

2010-01-25  Roland Steiner  <rolandsteiner@chromium.org>

        Reviewed by Maciej Stachowiak.

        Bug 28420 - Re-enable ruby Windows layout tests
        (https://bugs.webkit.org/show_bug.cgi?id=28420, patch 5b)

        After creating new Latin-character-only layout tests for ruby
        (https://bugs.webkit.org/show_bug.cgi?id=31865) and resolving the issue
        that caused layout tests to fail then due to the addition of the ruby
        layout tests (cf. https://bugs.webkit.org/show_bug.cgi?id=31200, problem
        not actually caused by ruby), the ruby layout tests should als be
        un-skipped for the Windows platform.

        * platform/win/Skipped:

2010-01-24  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Dan Bernstein.

        Content with heavily nested residual style is so slow, it seems like a hang
        https://bugs.webkit.org/show_bug.cgi?id=34059
        <rdar://problem/7292906>

        Test case for the above bug fix.

        * fast/parser/residual-style-hang-expected.txt: Added.
        * fast/parser/residual-style-hang.html: Added.

2010-01-24  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        Improve portability of listbox-selection-2.html
        https://bugs.webkit.org/show_bug.cgi?id=33994

        - Convert to dumpAsText().
        - Determine the height of an item at runtime

        * fast/forms/listbox-selection-2-expected.txt: Added.
        * fast/forms/listbox-selection-2.html:
        * fast/forms/script-tests/listbox-selection-2.js
        * platform/mac/fast/forms/listbox-selection-2-expected.checksum: Removed.
        * platform/mac/fast/forms/listbox-selection-2-expected.png: Removed.
        * platform/mac/fast/forms/listbox-selection-2-expected.txt: Removed.

2010-01-24  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        HTMLInputElement::valueAsDate setter support for type=week.
        https://bugs.webkit.org/show_bug.cgi?id=33986

        Add setter tests to input-valueasdate-datetime.js, and update the
        expectation.

        * fast/forms/input-valueasdate-week-expected.txt:
        * fast/forms/script-tests/input-valueasdate-week.js:

2010-01-24  Eric Carlson  <eric.carlson@apple.com>

        No review, build fix.

        Only log the first 'timeupdate' event from audio-delete-while-slider-thumb-clicked.html
        as the number fired can vary according to how long it takes to run the test.

        * media/audio-delete-while-slider-thumb-clicked.html:

2010-01-24  Eric Seidel  <eric@webkit.org>

        No review.

        Middle clicking the primary scroll bars on Chromium Linux triggers a paste event
        https://bugs.webkit.org/show_bug.cgi?id=33062

        * platform/gtk/Skipped:
         - This new test fails on Gtk for unknown reasons.
         - Skipping for now to make the bots green, until a Gtk person can look.

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

        No review.

        Fix incorrect layout test that I checked in earlier.

        * platform/mac/compositing/reflections/load-video-in-reflection-expected.checksum:
        * platform/mac/compositing/reflections/load-video-in-reflection-expected.png:
        * platform/mac/compositing/reflections/load-video-in-reflection-expected.txt:

2010-01-24  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Simon Fraser.

        https://bugs.webkit.org/show_bug.cgi?id=34047
        <rdar://problem/7573699>
        Media element "endedPlayback" logic doesn't match spec

        * media/video-timeupdate-reverse-play-expected.txt: Added.
        * media/video-timeupdate-reverse-play.html: Added.

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

        Reviewed by Darin Adler.

        Video that loads inside reflection doesn't get reflected
        https://bugs.webkit.org/show_bug.cgi?id=34046
        
        Testcase for a video loading inside a reflection.

        * compositing/reflections/load-video-in-reflection.html: Added.
        * platform/mac/compositing/reflections/load-video-in-reflection-expected.checksum: Added.
        * platform/mac/compositing/reflections/load-video-in-reflection-expected.png: Added.
        * platform/mac/compositing/reflections/load-video-in-reflection-expected.txt: Added.

2010-01-23  Oliver Hunt  <oliver@apple.com>

        Reviewed by Maciej Stachowiak.

        Implement support for FileList cloning in postMessage
        https://bugs.webkit.org/show_bug.cgi?id=34048

        Add test for passing a FileList through postMessage, and 
        correct testing already present to test what it was meant
        to be.

        * fast/dom/Window/window-postmessage-clone-expected.txt:
        * fast/dom/Window/window-postmessage-clone.html:

2010-01-23  Dan Bernstein  <mitz@apple.com>

        Reviewed by Maciej Stachowiak.

        <rdar://problem/7569820> svg/custom/text-zoom.xhtml fails on Windows
        https://bugs.webkit.org/show_bug.cgi?id=34006

        * platform/win/svg/custom/text-zoom-expected.txt: Removed.

2010-01-23  Robert Hogan  <robert@roberthogan.net>

        Reviewed by Kenneth Rohde Christiansen.

        Qt DRT: respect window.close() and window.closed()
        
        Qt DRT needs to maintain a correct count of open windows
        for windowCount(). It also needs to delete windows that
        have been closed by window.close().
        
        This fixes the following tests:
        
        plugins/destroy-during-npp-new.html
        fast/dom/Document/early-document-access.html
        fast/dom/Window/window-early-properties.html
        fast/events/open-window-from-another-frame.html
        fast/events/popup-blocking-click-in-iframe.html
        
        https://bugs.webkit.org/show_bug.cgi?id=32953

        * platform/qt/Skipped:

2010-01-23  Yury Semikhatsky  <yurys@chromium.org>

        Unreviewed. Add new inspector test added in r53766 to skipi
        list on qt platform.

        * platform/qt/Skipped:

2010-01-23  Yury Semikhatsky  <yurys@chromium.org>

        Reviewed by Pavel Feldman.

        Inject inspector script directly into the inspected context. All the
        communication between the script and the frontend is serialized into
        JSON strings. It allows to get rid of object quarantines in Web Inspector.

        Test that web inspector doesn't crash when opening if there are messages in
        the console. Refactor test case due to InjectedScriptAccess changes.

        https://bugs.webkit.org/show_bug.cgi?id=32554

        * inspector/console-log-before-inspector-open-expected.txt: Added.
        * inspector/console-log-before-inspector-open.html: Added.
        * inspector/styles-iframe.html:

2010-01-22  Alex Milowski  <alex@milowski.com>

        Reviewed by David Hyatt.

        Updated tests due to stylesheet changes.

        * platform/mac/mathml/presentation/sub-expected.checksum:
        * platform/mac/mathml/presentation/sub-expected.png:
        * platform/mac/mathml/presentation/sub-expected.txt:
        * platform/mac/mathml/presentation/sup-expected.checksum:
        * platform/mac/mathml/presentation/sup-expected.png:
        * platform/mac/mathml/presentation/sup-expected.txt:
        * platform/mac/mathml/presentation/tables-expected.checksum:
        * platform/mac/mathml/presentation/tables-expected.png:
        * platform/mac/mathml/presentation/tables-expected.txt:

2010-01-22  Garret Kelly  <gdk@chromium.org>

        Reviewed by David Levin.

        Fixing svg/custom/stroke-width-click.svg to not cause the double-click
        handler to fire on certain platforms (chromium, for one). Chromium,
        Leopard, and GTK all agree on the calculated extents of the shape, so I'm
        disabling this test on mac-tiger and re-enabling it on mac-leopard and
        updating the expected file to reflect the current state of the test.
        https://bugs.webkit.org/show_bug.cgi?id=33865

        * platform/mac-leopard/Skipped:
        * platform/mac-tiger/Skipped:
        * svg/custom/stroke-width-click-expected.txt:
        * svg/custom/stroke-width-click.svg:

2010-01-22  James Robinson  <jamesr@chromium.org>

        Reviewed by Alexey Proskuryakov.

        Adds tests for the 'selected' attribute of <option>s
        https://bugs.webkit.org/show_bug.cgi?id=32641

        HTMLOptionElement_selected2 checks that the selected attribute is up to date immediately after the <select>
        parsed.  HTMLOptionElement_selected3 does the same, but checks immediately prior to the </select>.

        Also changes the expectation for add-remove-option-modification-event to reflect that we now pass.

        * fast/forms/HTMLOptionElement_selected-expected.txt:
        * fast/forms/HTMLOptionElement_selected.html:
        * fast/forms/HTMLOptionElement_selected2-expected.txt: Added.
        * fast/forms/HTMLOptionElement_selected2.html: Added.
        * fast/forms/HTMLOptionElement_selected3-expected.txt: Added.
        * fast/forms/HTMLOptionElement_selected3.html: Added.
        * fast/forms/add-remove-option-modification-event-expected.txt:

2010-01-22  Steve VanDeBogart  <vandebo@chromium.org>

        Reviewed by David Levin.

        A new test to check that middle clicking on the primary scroll bars
        does not trigger a paste event.
        https://bugs.webkit.org/show_bug.cgi?id=33062

        * scrollbars/scrollbar-middleclick-nopaste-expected.txt: Added.
        * scrollbars/scrollbar-middleclick-nopaste.html: Added.

2010-01-22  Gustavo Noronha Silva  <gns@gnome.org>

        Unreviewed. Updated platform-specific result to account for
        changes done in r53722.

        * platform/gtk/fast/dom/Window/window-property-descriptors-expected.txt:

2010-01-22  Gustavo Noronha Silva  <gns@gnome.org>

        Reviewed by Simon Fraser.

        Checking in platform-specific results for test that is failing
        because of an additional single pixel in size - the test passes,
        when testing manually.

        * platform/gtk/svg/custom/text-zoom-expected.txt: Added.

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

        No review.

        Commit missing test result.

        * fast/dom/Window/webkitConvertPointUpdateLayout-expected.txt: Added.

2010-01-22  Dmitry Titov  <dimich@chromium.org>

        Fix tests, unreviewed. Adding expectations file missing from r53739

        * fast/dom/Window/webkitConvertPointUpdateLayout-expected.txt: Added.

2010-01-22  Steve Falkenburg  <sfalken@apple.com>

        Build fix. Add missing comma.

        * fast/dom/Window/window-properties.html:

2010-01-22  Steve Falkenburg  <sfalken@apple.com>

        Skip fast/dom/Window/window-properties-geolocation.html
        until https://bugs.webkit.org/show_bug.cgi?id=34025 is landed.

        * platform/mac/Skipped:
        * platform/win/Skipped:

2010-01-22  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=34024
        Layout tests don't easily allow Geolocation to be on in only a subset of platforms

        * fast/dom/Window/window-properties-geolocation-expected.txt: Added.
        * fast/dom/Window/window-properties-geolocation.html: Copied from fast/dom/Window/window-properties.html.
        Moved Geolocation property testing here.
        * fast/dom/Window/window-properties.html: Exclude Geolocation from testing. Moved to window-properties-geolocation.html.
        * fast/dom/navigator-detached-no-crash.html: Exclude Geolocation from output.
        * fast/dom/script-tests/prototype-inheritance-2.js: Exclude Geolocation.
        * platform/gtk/fast/dom/Window/window-properties-expected.txt: Removed Geolocation properties from expected results.
        * platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt: Removed. Gtk results now match baseline.
        * platform/gtk/fast/dom/prototype-inheritance-2-expected.txt: Removed Geolocation properties from expected results.
        * platform/qt/Skipped: Skip Geolocation tests. Not yet available in Qt.

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

        Reviewed by Dan Bernstein.

        REGRESSION (r53110): Find My iPhone message dialog is offset from original position once it gets focus
        https://bugs.webkit.org/show_bug.cgi?id=33821
        
        Testcase with various configurations of fixed position inside compositing layers.

        * compositing/geometry/fixed-in-composited.html: Added.
        * platform/mac/compositing/geometry/fixed-in-composited-expected.checksum: Added.
        * platform/mac/compositing/geometry/fixed-in-composited-expected.png: Added.
        * platform/mac/compositing/geometry/fixed-in-composited-expected.txt: Added.

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

        Reviewed by Dan Bernstein.

        webkitConvertPointFromNodeToPage doesn't take into account most recent transform style
        https://bugs.webkit.org/show_bug.cgi?id=34023
        
        Testcase that changes style just before calling webkitConvertPointFromNodeToPage.
        
        * fast/dom/Window/webkitConvertPointUpdateLayout.html: Added.

2010-01-22  Dmitry Titov  <dimich@chromium.org>

        Not reviewed, fixes one issue with window-property-descriptors test.

        * fast/dom/Window/script-tests/window-property-descriptors.js: Don't dump the property that only appears in debug build, it will fail tests in debug.

2010-01-22  Jian Li  <jianli@chromium.org>

        No review. Updated Qt layout tests due to r53722.

        * platform/qt/fast/dom/Window/window-properties-expected.txt:
        * platform/qt/fast/dom/Window/window-property-descriptors-expected.txt:
        * platform/qt/fast/dom/prototype-inheritance-expected.txt:
        * platform/qt/fast/js/global-constructors-expected.txt:

2010-01-22  Jian Li  <jianli@chromium.org>

        No review. Build fix.
        Updated the newly added test to count the change from r53722.

        * fast/dom/Window/window-property-descriptors-expected.txt:

2010-01-22  Csaba Osztrogonác  <ossy@webkit.org>

        Reviewed by Nikolas Zimmermann.

        [Qt] Platform dependent expected files added for tests introduced in r53656,
        because these tests pass. Compared to png files.

        * platform/qt/svg/custom/relative-sized-shadow-tree-content-with-symbol-expected.txt: Added.
        * platform/qt/svg/custom/relative-sized-use-on-symbol-expected.txt: Added.

2010-01-22  Peter Kasting  <pkasting@google.com>

        Not reviewed, test fix.

        Update a layout test for change in page scroll size.
        https://bugs.webkit.org/show_bug.cgi?id=32595

        * fast/events/scrollbar-double-click-expected.txt:

2010-01-22  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Fix comment in the a SVG <use> testcase, it should say "green rectangles" instead of "blue rectangles", as noticed by Csaba Osztrogonác.

        * platform/mac/svg/custom/relative-sized-shadow-tree-content-with-symbol-expected.checksum:
        * platform/mac/svg/custom/relative-sized-shadow-tree-content-with-symbol-expected.png:
        * platform/mac/svg/custom/relative-sized-shadow-tree-content-with-symbol-expected.txt:
        * svg/custom/relative-sized-shadow-tree-content-with-symbol.xhtml:

2010-01-22  Jian Li  <jianli@chromium.org>

        Reviewed by Darin Adler.

        Updated the affected tests due to adding BlobConstructor to DOMWindow.
        https://bugs.webkit.org/show_bug.cgi?id=33982

        * fast/dom/Window/window-properties-expected.txt:
        * fast/dom/prototype-inheritance-2-expected.txt:
        * fast/dom/prototype-inheritance-expected.txt:
        * fast/js/global-constructors-expected.txt:

2010-01-22  Jian Li  <jianli@chromium.org>

        Reviewed by Darin Adler.

        Add test for new attributes introduced in File and Blob interfaces.
        https://bugs.webkit.org/show_bug.cgi?id=33980

        * editing/pasteboard/file-input-files-access-expected.txt:
        * editing/pasteboard/script-tests/file-input-files-access.js:

2010-01-22  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=34008
        Assertion failure in KURL::setProtocol when running DOM Fuzzer

        * fast/dom/Window/invalid-protocol-expected.txt: Added.
        * fast/dom/Window/invalid-protocol.html: Added.
        * fast/dom/Window/script-tests/invalid-protocol.js: Added.

2010-01-22  Enrica Casucci  <enrica@apple.com>

        Reviewed by Adele Peterson.

        Fix for the failing test on qt buildbot.
        This tests had been added as part of the patch for https://bugs.webkit.org/show_bug.cgi?id=33970

        * editing/pasteboard/paste-noscript-svg-expected.txt:
        * editing/resources/svgcontent.xhtml:

2010-01-22  Adam Roben  <aroben@apple.com>

        Check in expected failure results for text-zoom.xhtml on Windows

        Fixing this test is covered by <http://webkit.org/b/34006>.

        Rubber-stamped by Dan Bernstein.

        * platform/win/svg/custom/text-zoom-expected.txt: Added.

2010-01-22  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] http/tests/misc/slow-loading-mask.html timed out.
        https://bugs.webkit.org/show_bug.cgi?id=34004

        * platform/qt/Skipped: http/tests/misc/slow-loading-mask.html skipped.

2010-01-22  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Darin Adler.

        incorrect results for css2.1 layout tests that use setTimeout in body onload event
        https://bugs.webkit.org/show_bug.cgi?id=17557

        * css2.1/README.txt: Added.
        * css2.1/t1204-increment-00-c-o.html-disabled: Renamed from LayoutTests/css2.1/t1204-increment-00-c-o.html.
        * css2.1/t1204-increment-01-c-o.html-disabled: Renamed from LayoutTests/css2.1/t1204-increment-01-c-o.html.
        * css2.1/t1204-increment-02-c-o.html-disabled: Renamed from LayoutTests/css2.1/t1204-increment-02-c-o.html.
        * css2.1/t1204-reset-00-c-o.html-disabled: Renamed from LayoutTests/css2.1/t1204-reset-00-c-o.html.
        * css2.1/t1204-reset-01-c-o.html-disabled: Renamed from LayoutTests/css2.1/t1204-reset-01-c-o.html.
        * css2.1/t1204-reset-02-c-o.html-disabled: Renamed from LayoutTests/css2.1/t1204-reset-02-c-o.html.
        * fast/css/counters/counter-increment-000-expected.txt: Renamed from LayoutTests/fast/css/counters/t1204-increment-00-c-o-expected.txt.
        * fast/css/counters/counter-increment-000.html: Renamed from LayoutTests/fast/css/counters/t1204-increment-00-c-o.html.
        * fast/css/counters/counter-increment-001-expected.txt: Renamed from LayoutTests/fast/css/counters/t1204-increment-01-c-o-expected.txt.
        * fast/css/counters/counter-increment-001.html: Renamed from LayoutTests/fast/css/counters/t1204-increment-01-c-o.html.
        * fast/css/counters/counter-reset-001-expected.txt: Added.
        * fast/css/counters/counter-reset-001.html: Added.
        * platform/mac/css2.1/t1204-increment-00-c-o-expected.checksum: Removed.
        * platform/mac/css2.1/t1204-increment-00-c-o-expected.png: Removed.
        * platform/mac/css2.1/t1204-increment-00-c-o-expected.txt: Removed.
        * platform/mac/css2.1/t1204-increment-01-c-o-expected.checksum: Removed.
        * platform/mac/css2.1/t1204-increment-01-c-o-expected.png: Removed.
        * platform/mac/css2.1/t1204-increment-01-c-o-expected.txt: Removed.
        * platform/mac/css2.1/t1204-increment-02-c-o-expected.checksum: Removed.
        * platform/mac/css2.1/t1204-increment-02-c-o-expected.png: Removed.
        * platform/mac/css2.1/t1204-increment-02-c-o-expected.txt: Removed.
        * platform/mac/css2.1/t1204-reset-00-c-o-expected.checksum: Removed.
        * platform/mac/css2.1/t1204-reset-00-c-o-expected.png: Removed.
        * platform/mac/css2.1/t1204-reset-00-c-o-expected.txt: Removed.
        * platform/mac/css2.1/t1204-reset-01-c-o-expected.checksum: Removed.
        * platform/mac/css2.1/t1204-reset-01-c-o-expected.png: Removed.
        * platform/mac/css2.1/t1204-reset-01-c-o-expected.txt: Removed.
        * platform/mac/css2.1/t1204-reset-02-c-o-expected.checksum: Removed.
        * platform/mac/css2.1/t1204-reset-02-c-o-expected.png: Removed.
        * platform/mac/css2.1/t1204-reset-02-c-o-expected.txt: Removed.
        * platform/qt/css2.1/t1204-increment-00-c-o-expected.txt: Removed.
        * platform/qt/css2.1/t1204-increment-01-c-o-expected.txt: Removed.
        * platform/qt/css2.1/t1204-increment-02-c-o-expected.txt: Removed.
        * platform/qt/css2.1/t1204-reset-00-c-o-expected.txt: Removed.
        * platform/qt/css2.1/t1204-reset-01-c-o-expected.txt: Removed.
        * platform/qt/css2.1/t1204-reset-02-c-o-expected.txt: Removed.

2010-01-22  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Skip test introduced in r53684 because of missing eventSender.textZoomIn()

        * platform/qt/Skipped: svg/custom/text-zoom.xhtml skipped.

2010-01-22  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed trivial fix.

        [Qt] css1_forward_compatible_parsing.html moved from css2.1 to fast/css by r53664.

        * platform/qt/Skipped: path fixed.

2010-01-22  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by Maciej Stachowiak.

        Split websocket/tests/bad-sub-protocol.html
        https://bugs.webkit.org/show_bug.cgi?id=33646

        * websocket/tests/bad-sub-protocol-control-chars-expected.txt: Added.
        * websocket/tests/bad-sub-protocol-control-chars.html: Added.
        * websocket/tests/bad-sub-protocol-empty-expected.txt: Added.
        * websocket/tests/bad-sub-protocol-empty.html: Added.
        * websocket/tests/bad-sub-protocol-expected.txt: Removed.
        * websocket/tests/bad-sub-protocol-non-ascii-expected.txt: Added.
        * websocket/tests/bad-sub-protocol-non-ascii.html: Added.
        * websocket/tests/bad-sub-protocol.html: Removed.
        * websocket/tests/script-tests/bad-sub-protocol-control-chars.js: Added.
        * websocket/tests/script-tests/bad-sub-protocol-empty.js: Added.
        * websocket/tests/script-tests/bad-sub-protocol-non-ascii.js: Added.
        * websocket/tests/script-tests/bad-sub-protocol.js: Removed.

2010-01-22  Kent Tamura  <tkent@chromium.org>

        Reviewed by Maciej Stachowiak.

        Improve portability of listbox-deselect-scroll.html
        https://bugs.webkit.org/show_bug.cgi?id=33989

        - Convert the test to dumpAsTest
        - Use eventSender.mouseDown(0, ['addSelectionKey'])
        - Avoid hard-coded line-heights.

        * fast/forms/listbox-deselect-scroll-expected.txt: Added.
        * fast/forms/listbox-deselect-scroll.html:
        * fast/forms/script-tests/listbox-deselect-scroll.js: Added.
        * platform/mac/fast/forms/listbox-deselect-scroll-expected.checksum: Removed.
        * platform/mac/fast/forms/listbox-deselect-scroll-expected.png: Removed.
        * platform/mac/fast/forms/listbox-deselect-scroll-expected.txt: Removed.

2010-01-22  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/7568696> Zoom applied to embedded SVG incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=33988

        * svg/custom/text-zoom-expected.checksum: Added.
        * svg/custom/text-zoom-expected.png: Added.
        * svg/custom/text-zoom-expected.txt: Added.
        * svg/custom/text-zoom.xhtml: Added.

2010-01-21  Tony Chang  <tony@chromium.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25501
        Remove empty font tags when applying a style to a content editable
        region.

        * editing/execCommand/change-font.html: Added.
        * editing/execCommand/change-font-expected.txt: Added.

2010-01-21  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by Shinichiro Hamaji.

        Move fast/websockets into websocket/tests
        https://bugs.webkit.org/show_bug.cgi?id=32258

        * fast/websockets: Removed.
        * websocket/tests/script-tests/websocket-event-target.js: Copied from LayoutTests/fast/websockets/script-tests/websocket-event-target.js.
        * websocket/tests/websocket-event-target-expected.txt: Copied from LayoutTests/fast/websockets/websocket-event-target-expected.txt.
        * websocket/tests/websocket-event-target.html: Copied from LayoutTests/fast/websockets/websocket-event-target.html.

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

        Reviewed by Maciej Stachowiak.

        history.back() for same-document history traversals isn't synchronous as the specification states.
        <rdar://problem/7535011> and https://bugs.webkit.org/show_bug.cgi?id=33538

        The change in loading behavior is well covered via modifications to these previous tests:

        * fast/loader/stateobjects/document-destroyed-navigate-back-with-fragment-scroll.html:
        * fast/loader/stateobjects/pushstate-with-fragment-urls-and-hashchange-expected.txt:
        * fast/loader/stateobjects/pushstate-with-fragment-urls-and-hashchange.html:
        * fast/loader/stateobjects/state-api-on-detached-frame-crash-expected.txt:
        * fast/loader/stateobjects/state-api-on-detached-frame-crash.html:

2010-01-21  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        HTMLInputElement::valueAsDate setter support for type=datetime.
        https://bugs.webkit.org/show_bug.cgi?id=33939

        Add setter tests to input-valueasdate-datetime.js, and update the
        expectation.

        Note: the expectation file contains some FAIL lines. They are
        intentional because they test a unimplemented feature.

        * fast/forms/input-valueasdate-datetime-expected.txt:
        * fast/forms/script-tests/input-valueasdate-datetime.js:

2010-01-21  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Darin Adler.

        3 tests for CSS are misplaced
        https://bugs.webkit.org/show_bug.cgi?id=33942

        * css2.1/atrule_longest_match-expected.txt: Removed.
        * css2.1/atrule_longest_match.html: Removed.
        * css2.1/bogus-color-span.html: Removed.
        * css2.1/css1_forward_compatible_parsing.html: Removed.
        * fast/css/atrule_longest_match-expected.txt: Copied from LayoutTests/css2.1/atrule_longest_match-expected.txt.
        * fast/css/atrule_longest_match.html: Copied from LayoutTests/css2.1/atrule_longest_match.html.
        * fast/css/bogus-color-span.html: Copied from LayoutTests/css2.1/bogus-color-span.html.
        * fast/css/css1_forward_compatible_parsing.html: Copied from LayoutTests/css2.1/css1_forward_compatible_parsing.html.
        * platform/mac/css2.1/bogus-color-span-expected.checksum: Removed.
        * platform/mac/css2.1/bogus-color-span-expected.png: Removed.
        * platform/mac/css2.1/bogus-color-span-expected.txt: Removed.
        * platform/mac/css2.1/css1_forward_compatible_parsing-expected.checksum: Removed.
        * platform/mac/css2.1/css1_forward_compatible_parsing-expected.png: Removed.
        * platform/mac/css2.1/css1_forward_compatible_parsing-expected.txt: Removed.
        * platform/mac/fast/css/bogus-color-span-expected.checksum: Copied from LayoutTests/platform/mac/css2.1/bogus-color-span-expected.checksum.
        * platform/mac/fast/css/bogus-color-span-expected.png: Copied from LayoutTests/platform/mac/css2.1/bogus-color-span-expected.png.
        * platform/mac/fast/css/bogus-color-span-expected.txt: Copied from LayoutTests/platform/mac/css2.1/bogus-color-span-expected.txt.
        * platform/mac/fast/css/css1_forward_compatible_parsing-expected.checksum: Copied from LayoutTests/platform/mac/css2.1/css1_forward_compatible_parsing-expected.checksum.
        * platform/mac/fast/css/css1_forward_compatible_parsing-expected.png: Copied from LayoutTests/platform/mac/css2.1/css1_forward_compatible_parsing-expected.png.
        * platform/mac/fast/css/css1_forward_compatible_parsing-expected.txt: Copied from LayoutTests/platform/mac/css2.1/css1_forward_compatible_parsing-expected.txt.
        * platform/qt/css2.1/bogus-color-span-expected.txt: Removed.
        * platform/qt/css2.1/css1_forward_compatible_parsing-expected.txt: Removed.
        * platform/qt/fast/css/bogus-color-span-expected.txt: Copied from LayoutTests/platform/qt/css2.1/bogus-color-span-expected.txt.
        * platform/qt/fast/css/css1_forward_compatible_parsing-expected.txt: Copied from LayoutTests/platform/qt/css2.1/css1_forward_compatible_parsing-expected.txt.

2010-01-21  Beth Dakin  <bdakin@apple.com>

        Rubber-stamped by Eric Seidel.

        Skipping this until issues mentioned in https://bugs.webkit.org/show_bug.cgi?id=33923 are resolved.

        * platform/mac/Skipped:

2010-01-21  Enrica Casucci  <enrica@apple.com>

        Reviewed by Darin Adler.

        Script tags are copied and pasted, making cross-domain attacks possible.
        https://bugs.webkit.org/show_bug.cgi?id=33970

        * editing/pasteboard/paste-noscript-svg-expected.txt: Added.
        * editing/pasteboard/paste-noscript-svg.html: Added.
        * editing/pasteboard/paste-visible-script-expected.txt: Added.
        * editing/pasteboard/paste-visible-script.html: Added.
        * editing/resources/svgcontent.xhtml: Added.

2010-01-21  Nikolas Zimmermann  <nzimmermann@rim.com>

        Reviewed by Dirk Schulze.

        <use> with % lengths does not update on window resize
        https://bugs.webkit.org/show_bug.cgi?id=14639

        Fix reaction on window size changes for relative sized elements within <symbol> elements.

        * platform/mac/svg/custom/relative-sized-shadow-tree-content-with-symbol-expected.checksum: Added.
        * platform/mac/svg/custom/relative-sized-shadow-tree-content-with-symbol-expected.png: Added.
        * platform/mac/svg/custom/relative-sized-shadow-tree-content-with-symbol-expected.txt: Added.
        * platform/mac/svg/custom/relative-sized-use-on-symbol-expected.checksum: Added.
        * platform/mac/svg/custom/relative-sized-use-on-symbol-expected.png: Added.
        * platform/mac/svg/custom/relative-sized-use-on-symbol-expected.txt: Added.
        * platform/mac/svg/custom/use-dynamic-append-expected.txt:
        * platform/mac/svg/custom/use-recursion-4-expected.txt:
        * platform/mac/svg/hixie/error/017-expected.txt:
        * svg/custom/relative-sized-shadow-tree-content-with-symbol.xhtml: Added.
        * svg/custom/relative-sized-use-on-symbol.xhtml: Added.
        * svg/custom/use-dynamic-append.svg: Fix bug in testcase, which prevents pixel tests to detect regressions.

2010-01-21  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Adam Roben.

        Added platform specific (incorrect) results for plugins/mouse-events* for Windows,
        and removed mouse-events from the Windows Skipped list. The landing of correct results
        for these tests is being tracked by <http://webkit.org/b/33973>.

        * platform/win/Skipped: Removed plugins/mouse-events from the Skipped List.
        * platform/win/plugins: Added.
        * platform/win/plugins/mouse-events-expected.txt: Added.
        * platform/win/plugins/mouse-events-fixedpos-expected.txt: Added.

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

        Reviewed by Dan Bernstein.

        -webkit-mask-box-image draws a box while loading
        https://bugs.webkit.org/show_bug.cgi?id=33979
        <rdar://problem/7378662>
        
        http test that uses a CGI to trickle in a mask image.

        * http/tests/misc/resources/slow-png-load.pl: Added.
        * http/tests/misc/resources/mask.png: Added.
        * http/tests/misc/slow-loading-mask.html: Added.
        * platform/mac/http/tests/misc/slow-loading-mask-expected.checksum: Added.
        * platform/mac/http/tests/misc/slow-loading-mask-expected.png: Added.
        * platform/mac/http/tests/misc/slow-loading-mask-expected.txt: Added.

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

        No review

        Skip plugins/mouse-events-fixedpos.html on gtk, since it requires a special test plugin.

        * platform/gtk/Skipped:

2010-01-21  Beth Dakin  <bdakin@apple.com>

        Reviewed by Oliver Hunt.

        Test for https://bugs.webkit.org/show_bug.cgi?id=33923 REGRESSION 
        (Safari 4): AXValueChanged no longer sent for text area scrollbars
        -and corresponding-
        <rdar://problem/6942686>

        * platform/mac/accessibility/change-notification-on-scroll-expected.txt: Added.
        * platform/mac/accessibility/change-notification-on-scroll.html: Added.

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

        No review

        Skip plugins/mouse-events-fixedpos.html on Qt, since it requires a special test plugin.

        * platform/qt/Skipped:

2010-01-21  Kenneth Russell  <kbr@google.com>

        Reviewed by Oliver Hunt.

        [Chromium] Implement texSubImage2D taking WebGLArray
        https://bugs.webkit.org/show_bug.cgi?id=33932

        * fast/canvas/webgl/tex-sub-image-2d-expected.txt: Added.
        * fast/canvas/webgl/tex-sub-image-2d.html: Added.

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

        Reviewed by Dave Hyatt.

        Hit testing on composited plugins is broken
        https://bugs.webkit.org/show_bug.cgi?id=33927
        <rdar://problem/7559069>

        Testcase for hit testing on a fixed-position plugin after scrolling.
        
        * plugins/mouse-events-fixedpos-expected.txt: Added.
        * plugins/mouse-events-fixedpos.html: Added.

2010-01-21  Diego Gonzalez  <diego.gonzalez@openbossa.org>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] add setDomainRelaxationForbiddenForURLScheme in Qt DRT
        https://bugs.webkit.org/show_bug.cgi?id=33945

        * platform/qt/Skipped:

2010-01-21  Philippe Normand  <pnormand@igalia.com>

        Rubber-stamped by Eric Carlson.

        Start the test when the video element loads, which is less prone
        to occasional cases where document.load is fired after video.load.

        * media/video-source-error-no-candidate.html:
        * media/video-source-error-no-candidate-expected.txt:

2010-01-21  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Darin Adler.

        Intermittent crash when media element is adopted by another document
        https://bugs.webkit.org/show_bug.cgi?id=33919
        rdar://problem/7557527

        This test does not always crash the un-patched version of WebKit because
        the crash is so timing-dependant.

        * media/adopt-node-crash-expected.txt: Added.
        * media/adopt-node-crash.html: Added.

2010-01-21  Simon Hausmann  <simon.hausmann@nokia.com>

        No review, rolling out 53615 as it causes two
        crashes on the bot.

        * platform/qt/Skipped:

2010-01-21  Robert Hogan  <robert@roberthogan.net>

        Reviewed by Simon Hausmann.

        Qt DRT: respect window.close() and window.closed()

        Qt DRT needs to maintain a correct count of open windows
        for windowCount(). It also needs to delete windows that
        have been closed by window.close().

        This fixes the following tests:

        plugins/destroy-during-npp-new.html
        fast/dom/Document/early-document-access.html
        fast/dom/Window/window-early-properties.html
        fast/events/open-window-from-another-frame.html
        fast/events/popup-blocking-click-in-iframe.html

        https://bugs.webkit.org/show_bug.cgi?id=32953

        * platform/qt/Skipped:

2010-01-20  Philippe Normand  <pnormand@igalia.com>

        Reviewed by Eric Carlson.

        [Gtk] media/video-currentTime-set.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=33897

        Refactored the test to use the "seeked" event.

        * media/video-currentTime-set-expected.txt:
        * media/video-currentTime-set.html:
        * platform/gtk/Skipped:

2010-01-21  Kent Tamura  <tkent@chromium.org>

        Unreviewed. Fix incorrect close tags.

        * fast/html/script-tests/article-element.js:
        * fast/html/script-tests/aside-element.js:
        * fast/html/script-tests/footer-element.js:
        * fast/html/script-tests/header-element.js:
        * fast/html/script-tests/section-element.js:

2010-01-20  Adam Barth  <abarth@webkit.org>

        Reviewed by Darin Adler.

        Stylesheet href property shows redirected URL unlike other browsers
        https://bugs.webkit.org/show_bug.cgi?id=33683

        Test whether the href property of style sheets contains the original or
        final URL of the redirect chain that lead to the style sheet.

        I couldn't figure out how to test the XSLStyleSheet parts of this
        change.  There didn't seem to be DOM bindings for the href property
        here.  If I missed it, please let me know.

        * http/tests/security/stylesheet-href-redirect-expected.txt: Added.
        * http/tests/security/stylesheet-href-redirect.html: Added.

2010-01-21  Kent Tamura  <tkent@chromium.org>

        Unreviewed. Fix a FAIL test by a wrong input.

        * fast/forms/input-valueasdate-date-expected.txt:
        * fast/forms/script-tests/input-valueasdate-date.js:

2010-01-21  Roland Steiner  <rolandsteiner@chromium.org>

        Reviewed by Eric Seidel.

        Bug 31865 - Re-do ruby layout tests to use only Latin characters
        (https://bugs.webkit.org/show_bug.cgi?id=31865, first patch)

        Re-did pixel layout tests for ruby since non-Latin scripts apparently
        cause issues on other platforms.
        
        * fast/ruby/ruby-empty-rt.html:
        * fast/ruby/ruby-length.html:
        * fast/ruby/ruby-run-break.html:
        * fast/ruby/ruby-runs-spans.html:
        * fast/ruby/ruby-runs.html:
        * fast/ruby/ruby-simple-rp.html:
        * fast/ruby/ruby-simple.html:
        * fast/ruby/ruby-trailing.html:
        * fast/ruby/rubyDOM-insert-rt.html:
        * fast/ruby/rubyDOM-insert-text1.html:
        * fast/ruby/rubyDOM-insert-text2.html:
        * fast/ruby/rubyDOM-insert-text3.html:
        * fast/ruby/rubyDOM-remove-rt1.html:
        * fast/ruby/rubyDOM-remove-rt2.html:
        * fast/ruby/rubyDOM-remove-text1.html:
        * fast/ruby/rubyDOM-remove-text2.html:

        * platform/mac/fast/ruby/ruby-empty-rt-expected.checksum:
        * platform/mac/fast/ruby/ruby-empty-rt-expected.png:
        * platform/mac/fast/ruby/ruby-empty-rt-expected.txt:
        * platform/mac/fast/ruby/ruby-length-expected.checksum:
        * platform/mac/fast/ruby/ruby-length-expected.png:
        * platform/mac/fast/ruby/ruby-length-expected.txt:
        * platform/mac/fast/ruby/ruby-run-break-expected.checksum:
        * platform/mac/fast/ruby/ruby-run-break-expected.png:
        * platform/mac/fast/ruby/ruby-run-break-expected.txt:
        * platform/mac/fast/ruby/ruby-runs-expected.checksum:
        * platform/mac/fast/ruby/ruby-runs-expected.png:
        * platform/mac/fast/ruby/ruby-runs-expected.txt:
        * platform/mac/fast/ruby/ruby-runs-spans-expected.checksum:
        * platform/mac/fast/ruby/ruby-runs-spans-expected.png:
        * platform/mac/fast/ruby/ruby-runs-spans-expected.txt:
        * platform/mac/fast/ruby/ruby-simple-expected.checksum:
        * platform/mac/fast/ruby/ruby-simple-expected.png:
        * platform/mac/fast/ruby/ruby-simple-expected.txt:
        * platform/mac/fast/ruby/ruby-simple-rp-expected.checksum:
        * platform/mac/fast/ruby/ruby-simple-rp-expected.png:
        * platform/mac/fast/ruby/ruby-simple-rp-expected.txt:
        * platform/mac/fast/ruby/ruby-trailing-expected.checksum:
        * platform/mac/fast/ruby/ruby-trailing-expected.png:
        * platform/mac/fast/ruby/ruby-trailing-expected.txt:
        * platform/mac/fast/ruby/rubyDOM-insert-rt-expected.checksum:
        * platform/mac/fast/ruby/rubyDOM-insert-rt-expected.png:
        * platform/mac/fast/ruby/rubyDOM-insert-rt-expected.txt:
        * platform/mac/fast/ruby/rubyDOM-insert-text1-expected.checksum:
        * platform/mac/fast/ruby/rubyDOM-insert-text1-expected.png:
        * platform/mac/fast/ruby/rubyDOM-insert-text1-expected.txt:
        * platform/mac/fast/ruby/rubyDOM-insert-text2-expected.checksum:
        * platform/mac/fast/ruby/rubyDOM-insert-text2-expected.png:
        * platform/mac/fast/ruby/rubyDOM-insert-text2-expected.txt:
        * platform/mac/fast/ruby/rubyDOM-insert-text3-expected.checksum:
        * platform/mac/fast/ruby/rubyDOM-insert-text3-expected.png:
        * platform/mac/fast/ruby/rubyDOM-insert-text3-expected.txt:
        * platform/mac/fast/ruby/rubyDOM-remove-rt1-expected.checksum:
        * platform/mac/fast/ruby/rubyDOM-remove-rt1-expected.png:
        * platform/mac/fast/ruby/rubyDOM-remove-rt1-expected.txt:
        * platform/mac/fast/ruby/rubyDOM-remove-rt2-expected.checksum:
        * platform/mac/fast/ruby/rubyDOM-remove-rt2-expected.png:
        * platform/mac/fast/ruby/rubyDOM-remove-rt2-expected.txt:
        * platform/mac/fast/ruby/rubyDOM-remove-text1-expected.checksum:
        * platform/mac/fast/ruby/rubyDOM-remove-text1-expected.png:
        * platform/mac/fast/ruby/rubyDOM-remove-text1-expected.txt:
        * platform/mac/fast/ruby/rubyDOM-remove-text2-expected.checksum:
        * platform/mac/fast/ruby/rubyDOM-remove-text2-expected.png:
        * platform/mac/fast/ruby/rubyDOM-remove-text2-expected.txt:

2010-01-20  Eric Seidel  <eric@webkit.org>

        Reviewed by David Levin.

        http/tests/xmlhttprequest/cross-origin-cookie-storage.html failed on Snow Leopard Intel Release Bot
        https://bugs.webkit.org/show_bug.cgi?id=33742

        * platform/mac-snowleopard/Skipped: Skip this for now to keep the bots green.

2010-01-20  Daniel Bates  <dbates@webkit.org>

        No review, rolling out 53591.
        http://trac.webkit.org/changeset/53591
        https://bugs.webkit.org/show_bug.cgi?id=29564

        Rolling out the change committed in change set 53591
        <http://trac.webkit.org/changeset/53591> because it caused
        a regression of test /fast/replaced/table-percent-height.html
        on the Qt bot.

        * fast/css/button-height-expected.txt: Removed.
        * fast/css/button-height.html: Removed.

2010-01-20  Daniel Bates  <dbates@webkit.org>

        No review, rolling out 53594.
        http://trac.webkit.org/changeset/53594
        https://bugs.webkit.org/show_bug.cgi?id=33936

        Note, there still is an issue on GTK related to the rendering of 
        button heights. But we are rolling out this change since
        we're going to rollout the change committed in change set 53591
        <http://trac.webkit.org/changeset/53591> because r53591 caused a
        regression.

        * platform/gtk/Skipped:

2010-01-20  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        HTMLInputElement::valueAsDate setter support for type=date.
        https://bugs.webkit.org/show_bug.cgi?id=33911

        Add setter tests to input-valueasdate-date.js, and update the
        expectation.

        * fast/forms/input-valueasdate-date-expected.txt:
        * fast/forms/script-tests/input-valueasdate-date.js:

2010-01-20  Ben Murdoch  <benm@google.com>

        Reviewed by Simon Hausmann.

        Touch Events are not sent to iframes
        https://bugs.webkit.org/show_bug.cgi?id=33894

        Testcase to verify that touch events are sent to iframes when the main frame document does not have any touch event listeners installed.

        * fast/events/touch/resources: Added.
        * fast/events/touch/resources/touch-inside-iframe2.html: Added.
        * fast/events/touch/touch-inside-iframe-expected.txt: Added.
        * fast/events/touch/touch-inside-iframe.html: Added.

2010-01-20  Michael Nordman  <michaeln@google.com>

        Reviewed by Alexey Proskuryakov.

        Remove an assertion that is not valid in some detached iframes cases.
        https://bugs.webkit.org/show_bug.cgi?id=33827

        * http/tests/appcache/detached-iframe-expected.txt: Added.
        * http/tests/appcache/detached-iframe.html: Added.

2010-01-20  Daniel Bates  <dbates@webkit.org>

        Unreviewed. Add failing test fast/css/button-height.html
        to GTK Skipped file as we need to look into this.
        See bug #33936 for more details.

        * platform/gtk/Skipped:

2010-01-20  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by Alexey Proskuryakov.

        WebSocket: Request-URI should not be empty when no tralling slash in host
        https://bugs.webkit.org/show_bug.cgi?id=33689

        * websocket/tests/handler_map.txt: Added.
          use websocket/tests/echo-location_wsh.py to handle request for
          ws://127.0.0.1:8880
        * websocket/tests/script-tests/url-no-trailing-slash.js: Added.
        * websocket/tests/url-no-trailing-slash-expected.txt: Added.
        * websocket/tests/url-no-trailing-slash.html: Added.

2010-01-20  Daniel Bates  <dbates@webkit.org>

        Reviewed by Tor Arne Vestbø.

        https://bugs.webkit.org/show_bug.cgi?id=29564
        
        Tests that the user-specified height for <button>- and <input type="button">-
        elements are honored, if appropriate for the platform and context.

        * fast/css/button-height-expected.txt: Added.
        * fast/css/button-height.html: Added.

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

        Reviewed by Sam Weinig.

        Crash in Page::backForwardList when using History object from a detached window
        <rdar://problem/7556252> and https://bugs.webkit.org/show_bug.cgi?id=33828

        * fast/loader/stateobjects/state-api-on-detached-frame-crash-expected.txt: Added.
        * fast/loader/stateobjects/state-api-on-detached-frame-crash.html: Added.

2010-01-20  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Sam Weinig.

        https://bugs.webkit.org/show_bug.cgi?id=33930
        Crash in JSDOMWindowBase::crossDomainAccessErrorMessage when accessing a detached sandboxed frame

        * http/tests/security/detached-sandboxed-frame-access-expected.txt: Added.
        * http/tests/security/detached-sandboxed-frame-access.html: Added.

2010-01-20  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Re-skip svg/custom/use-instanceRoot-event-bubbling.xhtml on Gtk bot, still fails. Though the other platforms are fixed.
        Reopened bug 33835.

        * platform/gtk/Skipped:

2010-01-20  Eric Seidel  <eric@webkit.org>

        Reviewed by Maciej Stachowiak.

        REGRESSION(r53514?): fast/canvas/webgl/texImage2DImageDataTest.html fails on Leopard Release Bot
        https://bugs.webkit.org/show_bug.cgi?id=33893

        * platform/mac-leopard/Skipped: Skip the test for now.

2010-01-20  Nikolas Zimmermann  <nzimmermann@rim.com>

        Rubber-stamped by Eric Seidel.

        Add Leopard specific pixel test results where needed, most just show marginal 1px diffs, or even invisible changes,
        only the filter test changed, but it visually looks the same - must be a Cg difference to the Snow Leopard baseline.
        Now the pixel tests pass again with --tolerance 0 on my Leopard machine.

        * platform/mac-leopard/svg/W3C-SVG-1.1/pservers-grad-17-b-expected.checksum:
        * platform/mac-leopard/svg/W3C-SVG-1.1/pservers-grad-17-b-expected.png:
        * platform/mac-leopard/svg/css/circle-in-mask-with-shadow-expected.checksum: Added.
        * platform/mac-leopard/svg/css/circle-in-mask-with-shadow-expected.png: Added.
        * platform/mac-leopard/svg/css/composite-shadow-example-expected.checksum:
        * platform/mac-leopard/svg/css/composite-shadow-example-expected.png:
        * platform/mac-leopard/svg/css/composite-shadow-with-opacity-expected.checksum: Added.
        * platform/mac-leopard/svg/css/composite-shadow-with-opacity-expected.png: Added.
        * platform/mac-leopard/svg/css/css-box-min-width-expected.checksum: Added.
        * platform/mac-leopard/svg/css/css-box-min-width-expected.png: Added.
        * platform/mac-leopard/svg/css/mask-with-shadow-expected.checksum: Added.
        * platform/mac-leopard/svg/css/mask-with-shadow-expected.png: Added.
        * platform/mac-leopard/svg/custom/container-opacity-clip-viewBox-expected.checksum: Added.
        * platform/mac-leopard/svg/custom/container-opacity-clip-viewBox-expected.png: Added.
        * platform/mac-leopard/svg/custom/js-update-bounce-expected.checksum: Added.
        * platform/mac-leopard/svg/custom/js-update-bounce-expected.png: Added.
        * platform/mac-leopard/svg/custom/svg-fonts-in-html-expected.checksum: Added.
        * platform/mac-leopard/svg/custom/svg-fonts-in-html-expected.png: Added.
        * platform/mac-leopard/svg/filters: Added.
        * platform/mac-leopard/svg/filters/shadow-on-rect-with-filter-expected.checksum: Added.
        * platform/mac-leopard/svg/filters/shadow-on-rect-with-filter-expected.png: Added.
        * platform/mac/svg/custom/transformedMaskFails-expected.checksum: Added.

2010-01-20  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Beth Dakin.

        WAI-ARIA popup buttons spoken as simply 'button'
        https://bugs.webkit.org/show_bug.cgi?id=33922

        * platform/mac/accessibility/aria-popup-expected.txt: Added.
        * platform/mac/accessibility/aria-popup.html: Added.

2010-01-20  Csaba Osztrogonác  <ossy@webkit.org>

        Reviewed by Nikolas Zimmermann.

        [Qt] Platform dependent expected files added for tests introduced in r53476,
        because these tests pass. Compared to png files.

        * platform/qt/fast/fast-mobile-scrolling/fixed-position-element-expected.txt: Added.
        * platform/qt/fast/fast-mobile-scrolling/no-fixed-position-elements-expected.txt: Added.

2010-01-20  Csaba Osztrogonác  <ossy@webkit.org>

        Reviewed by Nikolas Zimmermann.

        [Qt] Platform dependent expected files added for tests introduced in r53446,
        because these tests pass. Compared to png files.

        * platform/qt/svg/custom/relative-sized-deep-shadow-tree-content-expected.txt: Added.
        * platform/qt/svg/custom/relative-sized-shadow-tree-content-expected.txt: Added.

2010-01-20  Jon Honeycutt  <jhoneycutt@apple.com>

        MSAA: accSelect() is not implemented

        https://bugs.webkit.org/show_bug.cgi?id=33918
        <rdar://problem/7436861>

        Reviewed by Darin Adler.

        * platform/win/accessibility/selection-and-focus-expected.txt: Added.
        * platform/win/accessibility/selection-and-focus.html: Added.

2010-01-19  Nikolas Zimmermann  <nzimmermann@rim.com>

        Reviewed by Alexey Proskuryakov. 

        svg/custom/use-instanceRoot-event-bubbling.xhtml is flakey
        https://bugs.webkit.org/show_bug.cgi?id=33835

        mouseEvent fires mutiple times in svg/custom/use-instanceRoot-as-event-target.xhtml
        https://bugs.webkit.org/show_bug.cgi?id=32519

        Stabilize <use> scripting support - use tests are reliable now (tested using --repeach-each 50 --random -p)
        Reenable the tests in question on gtk / qt / win. mac was only affected from time to time (always reproducable using --repeat-each 50 though.)

        * platform/gtk/Skipped: Unskip use-instanceRoot-event-listeners.xhtml / use-instanceRoot-event-bubbling.xhtml / use-instanceRoot-as-event-target.xhtml
        * platform/qt/Skipped: Unskip use-instanceRoot-as-event-target.xhtml
        * platform/win/Skipped: Ditto.
        * svg/custom/resources/use-instanceRoot-event-bubbling.js:
        (eventHandler): No need anymore to rely on a 100ms timeout.
        * svg/custom/resources/use-instanceRoot-event-listeners.js:
        (eventHandler): Ditto.
        * svg/custom/use-instanceRoot-as-event-target-expected.txt:
        * svg/custom/use-instanceRoot-as-event-target.xhtml: Rewrote test - we don't need to work around shadow tree reclone issues anymore.
        * svg/custom/use-instanceRoot-event-listener-liveness-expected.txt: Added.
        * svg/custom/use-instanceRoot-event-listener-liveness.xhtml: Added.

2010-01-20  David Levin  <levin@chromium.org>

        No review, rolling out r53552.
        http://trac.webkit.org/changeset/53552
        https://bugs.webkit.org/show_bug.cgi?id=32554

        Caused lots of fast/profile test failures.

        * inspector/console-log-before-inspector-open-expected.txt: Removed.
        * inspector/console-log-before-inspector-open.html: Removed.
        * inspector/styles-iframe.html:

2010-01-20  Yury Semikhatsky  <yurys@chromium.org>

        Reviewed by Pavel Feldman.

        Inject inspector script directly into the inspected context. All the
        communication between the script and the frontend is serialized into
        JSON strings. It allows to get rid of object quarantines in Web Inspector.

        Test that web inspector doesn't crash when opening if there are messages in
        the console. Refactor test case due to InjectedScriptAccess changes.

        https://bugs.webkit.org/show_bug.cgi?id=32554

        * inspector/console-log-before-inspector-open-expected.txt: Added.
        * inspector/console-log-before-inspector-open.html: Added.
        * inspector/styles-iframe.html:

2010-01-20  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        HTMLInputElement::valueAsDate setter support for type=time.
        https://bugs.webkit.org/show_bug.cgi?id=33825

        Add setter tests to input-valueasdate-time.js, and update the
        expectation.

        Note: the expectation file contains some FAIL lines. They are
        intentional because they test a unimplemented feature.

        * fast/forms/input-valueasdate-time-expected.txt:
        * fast/forms/script-tests/input-valueasdate-time.js:

2010-01-20  Philippe Normand  <pnormand@igalia.com>

        Reviewed by Darin Adler.

        [Gtk] media/video-play-pause-exception.html is flacky
        https://bugs.webkit.org/show_bug.cgi?id=33900

        Refactored the test to use the pause event instead of a timer.
        * media/video-play-pause-exception.html:
        * platform/gtk/Skipped:

2010-01-20  Ben Murdoch  <benm@google.com>

        Reviewed by Simon Hausmann.

        The touchcancel event is not supported.
        https://bugs.webkit.org/show_bug.cgi?id=33598

        Test for the oncancel event.

        * fast/events/script-tests/send-oncancel-event.js: Added.
        (touchcancelHandler):
        * fast/events/touch/send-oncancel-event-expected.txt: Added.
        * fast/events/touch/send-oncancel-event.html: Added.
        * platform/qt/Skipped: Add send-oncancel-event to the Qt Skipped list as there is not support for that type of event on Qt yet.

2010-01-20  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] fast/frames/set-unloaded-frame-location.html timed out on Qt Linux Release Build Bot
        https://bugs.webkit.org/show_bug.cgi?id=33303

        It caused by the previously test, so skipped it until fix.

        * platform/qt/Skipped: fast/frames/sandboxed-iframe-navigation-windowopen.html skipped.

2010-01-20  Roland Steiner  <rolandsteiner@chromium.org>

        Reviewed by Darin Adler.

        Bug 28420 - Re-enable fast/ruby layout tests after the issue with mixedContent was fixed.
        (https://bugs.webkit.org/show_bug.cgi?id=28420, patch 5a)

        cf. https://bugs.webkit.org/show_bug.cgi?id=31200

        * platform/mac/Skipped:

2010-01-20  Roland Steiner  <rolandsteiner@chromium.org>

        Reviewed by Dan Bernstein.

        Bug 33266 - WebCore::InlineFlowBox::determineSpacingForFlowBoxes ReadAV@NULL (43c64e8abbda6766e5f5edbd254c2d57)
        (https://bugs.webkit.org/show_bug.cgi?id=33266)
        
        Layout tests for ruby with malformed HTML.
        Split up in individual tests, as well ass added a single combined test
        (whose resulting render tree is probably completely different from what
        you'd expect), since that combined test showed additional issues not
        covered by the individual tests.

        * fast/ruby/ruby-illegal-1-expected.txt: Added.
        * fast/ruby/ruby-illegal-1.html: Added.
        * fast/ruby/ruby-illegal-2-expected.txt: Added.
        * fast/ruby/ruby-illegal-2.html: Added.
        * fast/ruby/ruby-illegal-3-expected.txt: Added.
        * fast/ruby/ruby-illegal-3.html: Added.
        * fast/ruby/ruby-illegal-4-expected.txt: Added.
        * fast/ruby/ruby-illegal-4.html: Added.
        * fast/ruby/ruby-illegal-5-expected.txt: Added.
        * fast/ruby/ruby-illegal-5.html: Added.
        * fast/ruby/ruby-illegal-6-expected.txt: Added.
        * fast/ruby/ruby-illegal-6.html: Added.
        * fast/ruby/ruby-illegal-7-expected.txt: Added.
        * fast/ruby/ruby-illegal-7.html: Added.
        * fast/ruby/ruby-illegal-combined-expected.txt: Added.
        * fast/ruby/ruby-illegal-combined.html: Added.
        * fast/ruby/ruby-illegal-expected.txt: Removed.
        * fast/ruby/ruby-illegal.html: Removed.
        * fast/ruby/rubyDOM-insert-rt-block-1-expected.txt: Added.
        * fast/ruby/rubyDOM-insert-rt-block-1.html: Added.
        * fast/ruby/rubyDOM-insert-rt-block-2-expected.txt: Added.
        * fast/ruby/rubyDOM-insert-rt-block-2.html: Added.
        * fast/ruby/rubyDOM-insert-rt-block-3-expected.txt: Added.
        * fast/ruby/rubyDOM-insert-rt-block-3.html: Added.
        * fast/ruby/rubyDOM-remove-rt-block-1-expected.txt: Added.
        * fast/ruby/rubyDOM-remove-rt-block-1.html: Added.
        * fast/ruby/rubyDOM-remove-rt-block-2-expected.txt: Added.
        * fast/ruby/rubyDOM-remove-rt-block-2.html: Added.
        * fast/ruby/rubyDOM-remove-rt-block-3-expected.txt: Added.
        * fast/ruby/rubyDOM-remove-rt-block-3.html: Added.

2010-01-17  Jon Honeycutt  <jhoneycutt@apple.com>

        MSAA: The child <option> elements of a non-multiple <select> are not
        exposed

        https://bugs.webkit.org/show_bug.cgi?id=33773
        <rdar://problem/7550556>

        Reviewed by Alice Liu.

        * platform/win/accessibility/single-select-children-expected.txt: Added.
        * platform/win/accessibility/single-select-children.html: Added.

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

        Reviewed by Dan Bernstein.

        Support reflections on WebGL
        https://bugs.webkit.org/show_bug.cgi?id=33754

        Testcase for WebGL with a reflection.
        
        * compositing/webgl/webgl-reflection.html: Added.
        * platform/mac/compositing/webgl/webgl-reflection-expected.checksum: Added.
        * platform/mac/compositing/webgl/webgl-reflection-expected.png: Added.
        * platform/mac/compositing/webgl/webgl-reflection-expected.txt: Added.

2010-01-19  Carol Szabo  <carol.szabo@nokia.com>

        Reviewed by Darin Adler.

        Another crazy counters bug
        https://bugs.webkit.org/show_bug.cgi?id=11031
        Added tests for dynamic DOM changes affecting counters.

        * fast/css/counters/counter-increment-002.html: Added.
        * fast/css/counters/counter-reset-000.html: Added.
        * fast/css/counters/counter-reset-002.html: Added.
        * fast/css/counters/counter-increment-002-expected.txt: Added.
        * fast/css/counters/counter-reset-000-expected.txt: Added.
        * fast/css/counters/counter-reset-002-expected.txt: Added.

2010-01-19  Alexey Proskuryakov  <ap@apple.com>

        Land correct expected results - forgot to update them after changing test output.

        * fast/dom/Attr/child-nodes-cache-expected.txt:

2010-01-19  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Eric Seidel.

        More flaky animation/transitions tests
        https://bugs.webkit.org/show_bug.cgi?id=33872

        Undo my previous changes decreasing test times. This ended up
        increasing flakiness.

        * animations/change-one-anim-expected.txt:
        * animations/change-one-anim.html:
        * animations/combo-transform-translate+scale.html:
        * transitions/shorthand-border-transitions-expected.txt:
        * transitions/shorthand-border-transitions.html:

2010-01-19  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Oliver Hunt.

        https://bugs.webkit.org/show_bug.cgi?id=33850
        Attr.childNodes does not get updated after DOM mutations

        * fast/dom/Attr/child-nodes-cache-expected.txt: Added.
        * fast/dom/Attr/child-nodes-cache.html: Added.

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

        Reviewed by Dan Bernstein.

        Some composited reflections incorrectly positioned
        https://bugs.webkit.org/show_bug.cgi?id=33856
        
        New testcases for reflection positioning when adding outline, which affects the compositing
        layer geometry.

        * compositing/reflections/nested-reflection-transformed2.html: Added.
        * compositing/reflections/reflection-positioning2.html: Added.
        * platform/mac/compositing/reflections/nested-reflection-transformed2-expected.checksum: Added.
        * platform/mac/compositing/reflections/nested-reflection-transformed2-expected.png: Added.
        * platform/mac/compositing/reflections/nested-reflection-transformed2-expected.txt: Added.
        * platform/mac/compositing/reflections/reflection-positioning2-expected.checksum: Added.
        * platform/mac/compositing/reflections/reflection-positioning2-expected.png: Added.
        * platform/mac/compositing/reflections/reflection-positioning2-expected.txt: Added.

2010-01-19  Enrica Casucci  <enrica@apple.com>

        Reviewed by Simon Fraser.

        REGRESSION: Infinite recursion in Position::getInlineBoxAndOffset()
        https://bugs.webkit.org/show_bug.cgi?id=33864
        <rdar://problem/7552959>

        * editing/selection/selection-applet-expected.txt: Added.
        * editing/selection/selection-applet.html: Added.

2010-01-15  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Adam Barth.

        LayoutTests/animations/play-state.html and LayoutTests/transitions/cancel-transition.html are still flaky
        https://bugs.webkit.org/show_bug.cgi?id=33748

        * animations/play-state-expected.txt:
        * animations/play-state.html:
        Undo my previous change of decreasing the length of the test. I think that made it more flaky.
        Also increase the tolerance.

        * transitions/cancel-transition.html:
        Undo my previous change of moving the setTimeout. It was correct where it was.
        Added a comment to make it more clear. The tolerances were increased since then though,
        so this test should no longer be flaky after this.

2010-01-19  Jaime Yap  <jaimeyap@google.com>

        Reviewed by Pavel Feldman.

        Test changes to accomodate refactor of TimelineRecordFactory and InspectorTimelineAgent to
        support reporting data when closing a record.

        https://bugs.webkit.org/show_bug.cgi?id=33853

        * inspector/timeline-layout-expected.txt:
        * inspector/timeline-parse-html-expected.txt:
        * inspector/timeline-recalculate-styles-expected.txt:

2010-01-19  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Adam Roben.

        error events don't fire if no <source> elements passed to media engine
        https://bugs.webkit.org/show_bug.cgi?id=33855

        * media/video-source-error-no-candidate-expected.txt: Added.
        * media/video-source-error-no-candidate.html: Added.

2010-01-19  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Adam Roben.

        video.networkState remains NETWORK_LOADING indefinitely when no <source> element was able to be loaded
        https://bugs.webkit.org/show_bug.cgi?id=33744

        * media/video-source-none-supported-expected.txt: Added.
        * media/video-source-none-supported.html: Added.

2010-01-19  Daniel Bates  <dbates@rim.com>

        Reviewed by Adam Treat.

        https://bugs.webkit.org/show_bug.cgi?id=33408

        Tests that fixed background images are ignored when there are no
        fixed elements on a page and honored otherwise.

        Note, includes expected failure results for the test
        fast/fast-mobile-scrolling/no-fixed-position-elements.html, since
        the Mac and Windows ports do not support FAST_MOBILE_SCROLLING.

        * fast/fast-mobile-scrolling: Added.
        * fast/fast-mobile-scrolling/fixed-position-element.html: Added.
        * fast/fast-mobile-scrolling/no-fixed-position-elements.html: Added.
        * platform/mac/fast/fast-mobile-scrolling: Added.
        * platform/mac/fast/fast-mobile-scrolling/fixed-position-element-expected.checksum: Added.
        * platform/mac/fast/fast-mobile-scrolling/fixed-position-element-expected.png: Added.
        * platform/mac/fast/fast-mobile-scrolling/fixed-position-element-expected.txt: Added.
        * platform/mac/fast/fast-mobile-scrolling/no-fixed-position-elements-expected.checksum: Added.
        * platform/mac/fast/fast-mobile-scrolling/no-fixed-position-elements-expected.png: Added.
        Expected failure result since the Mac port does not enable FAST_MOBILE_SCROLLING.
        * platform/mac/fast/fast-mobile-scrolling/no-fixed-position-elements-expected.txt: Added.
        Expected failure result since the Mac port does not enable FAST_MOBILE_SCROLLING.

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

        Reviewed by Alexey Proskuryakov.

        Crash in Page::backForwardList when using History object from a detached window
        <rdar://problem/7556252> and https://bugs.webkit.org/show_bug.cgi?id=33828

        * fast/loader/stateobjects/state-api-on-detached-frame-crash-expected.txt: Added.
        * fast/loader/stateobjects/state-api-on-detached-frame-crash.html: Added.

2010-01-19  Yury Semikhatsky  <yurys@chromium.org>

        Reviewed by NOBODY (build fix).

        Revert r53467. Browser crashes on opening inspector if there
        are messages in console.

        * inspector/styles-iframe.html:

2010-01-19  Yury Semikhatsky  <yurys@chromium.org>

        Reviewed by Pavel Feldman.

        Inject inspector script directly into the inspected context. All the
        communication between the script and the frontend is serialized into
        JSON strings. It allows to get rid of object quarantines in Web Inspector.

        Refactor test case due to InjectedScriptAccess changes.

        https://bugs.webkit.org/show_bug.cgi?id=32554

        * inspector/styles-iframe.html:
 
2010-01-19  MORITA Hajime  <morrita@gmail.com>

        Reviewed by Shinichiro Hamaji.

        [Chromium] layout_test on linux fails on doubleclick-beside-cr-span.html
        
        Place larger margins before clicking position to grab certain words
        instead of clicking blank, whitespaces or tabs before that words. 
        Note that widths of rendered tab characters are hard to predict,
        So such margins are particularly helpful with them.
        
        https://bugs.webkit.org/show_bug.cgi?id=33769

        * editing/selection/doubleclick-beside-cr-span.html:
          Fix to compute click position using actual character width.

2010-01-19  Csaba Osztrogonác  <ossy@webkit.org>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] REGRESSION (r53450): 3 tests fail on Qt bot
        https://bugs.webkit.org/show_bug.cgi?id=33834

        * platform/qt/Skipped:
         - css1/box_properties/acid_test.html skipped.
         - fast/forms/textarea-scrollbar-height.html skipped.
        * platform/qt/css1/font_properties/font-expected.txt: updated.

2010-01-19  Xan Lopez  <xlopez@igalia.com>

        svg/custom/use-instanceRoot-event-bubbling.xhtml is flakey
        https://bugs.webkit.org/show_bug.cgi?id=33835

        Skip flakey test.

        * platform/gtk/Skipped:

2010-01-19  Xan Lopez  <xlopez@igalia.com>

        New baseline for failing test.

        * platform/gtk/fast/dynamic/float-in-trailing-whitespace-after-last-line-break-2-expected.txt: Copied from LayoutTests/platform/qt/fast/dynamic/float-in-trailing-whitespace-after-last-line-break-2-expected.txt.

2010-01-19  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Oliver Hunt.

        REGRESSION (52082): Crash on worker thread when reloading http://radnan.public.iastate.edu/procedural/
        https://bugs.webkit.org/show_bug.cgi?id=33826
        
        Added a test for this edge case.

        * fast/workers/resources/worker-gc2.js: Added.
        (Dummy):
        * fast/workers/worker-gc2.html: Added.

2010-01-19  Gavin Barraclough  <barraclough@apple.com>

        Reviewed by NOBODY (build fix).

        Reverting r53455, breaks 2 javascriptcore tests.

        * fast/workers/resources/worker-gc2.js: Removed.
        * fast/workers/worker-gc2.html: Removed.

2010-01-19  Geoffrey Garen  <ggaren@apple.com>

        Forgot to add this test result.

        * fast/workers/worker-gc2-expected.txt: Added.

2010-01-19  Xan Lopez  <xlopez@igalia.com>

        Skip tests generating new results.

        * platform/gtk/Skipped:

2010-01-18  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Oliver Hunt.

        REGRESSION (52082): Crash on worker thread when reloading http://radnan.public.iastate.edu/procedural/
        https://bugs.webkit.org/show_bug.cgi?id=33826
        
        Added a test for this edge case.

        * fast/workers/resources/worker-gc2.js: Added.
        (Dummy):
        * fast/workers/worker-gc2.html: Added.

2010-01-18  Daniel Bates  <dbates@webkit.org>

        https://bugs.webkit.org/show_bug.cgi?id=33089

        Unreviewed. Add expected results for Windows.

        * platform/win/fast/lists/w3-css3-list-styles-alphabetic-expected.txt: Added.

2010-01-18  Daniel Bates  <dbates@webkit.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=33089

        Tests that all of the alphabetic CSS3 list-style-types are supported.

        * fast/lists/w3-css3-list-styles-alphabetic.html: Added.
        * platform/mac/fast/lists/w3-css3-list-styles-alphabetic-expected.txt: Added.

2010-01-18  Dan Bernstein  <mitz@apple.com>

        Rubber-stamped by Sam Weinig.

        <rdar://problem/7476957> REGRESSION (r49567): Business widget list does not line up: too tall due to line height rounding change

        Reverted r49567, but left in the test added in that revision, now with a failing result.

        * css1/font_properties/font.html:
        * fast/css/line-height-rounding-expected.txt:
        * platform/mac/css1/font_properties/font-expected.txt:
        * platform/mac/css2.1/t090501-c414-flt-ln-00-d-expected.txt:
        * platform/mac/css2.1/t090501-c414-flt-ln-01-d-g-expected.txt:
        * platform/mac/css2.1/t090501-c414-flt-ln-02-d-expected.txt:
        * platform/mac/css2.1/t090501-c414-flt-ln-03-d-expected.txt:
        * platform/mac/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.checksum:
        * platform/mac/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.txt:
        * platform/mac/svg/custom/svg-fonts-in-html-expected.checksum:
        * platform/mac/svg/custom/svg-fonts-in-html-expected.txt:

2010-01-18  Yuzo Fujishima  <yuzo@google.com>

        Reviewed by Darin Adler.

        Skip an error after invalid blocks in a CSS expression.
        https://bugs.webkit.org/show_bug.cgi?id=33650

        * fast/css/parsing-error-recovery.html:

2010-01-18  Nikolas Zimmermann  <nzimmermann@rim.com>

        Reviewed by Dirk Schulze.

        Rewrite SVG <use> support in a modern-fashion
        https://bugs.webkit.org/show_bug.cgi?id=33776

        Update some test results, after rewriting <use> support.

        * platform/mac/svg/W3C-SVG-1.1/animate-elem-40-t-expected.txt:
        * platform/mac/svg/custom/relative-sized-deep-shadow-tree-content-expected.checksum: Added.
        * platform/mac/svg/custom/relative-sized-deep-shadow-tree-content-expected.png: Added.
        * platform/mac/svg/custom/relative-sized-deep-shadow-tree-content-expected.txt: Added.
        * platform/mac/svg/custom/relative-sized-shadow-tree-content-expected.checksum: Added.
        * platform/mac/svg/custom/relative-sized-shadow-tree-content-expected.png: Added.
        * platform/mac/svg/custom/relative-sized-shadow-tree-content-expected.txt: Added.
        * platform/mac/svg/custom/use-events-crash-expected.txt:
        * platform/mac/svg/custom/use-on-disallowed-foreign-object-1-expected.txt:
        * platform/mac/svg/custom/use-on-disallowed-foreign-object-3-expected.txt:
        * platform/mac/svg/custom/use-on-non-svg-namespaced-element-expected.txt:
        * platform/mac/svg/custom/use-recursion-1-expected.txt:
        * platform/mac/svg/custom/use-recursion-2-expected.txt:
        * platform/mac/svg/custom/use-recursion-3-expected.txt:
        * platform/mac/svg/custom/use-recursion-4-expected.txt:
        * platform/mac/svg/hixie/error/017-expected.txt:
        * platform/mac/svg/text/text-text-05-t-expected.checksum:
        * platform/mac/svg/text/text-text-05-t-expected.png:
        * svg/custom/relative-sized-deep-shadow-tree-content.xhtml: Added.
        * svg/custom/relative-sized-shadow-tree-content.xhtml: Added.
        * svg/text/text-text-05-t.svg: Remove possible race-condition, between selecting & dumping.

2010-01-18  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        HTMLInputElement::valueAsDate setter support for type=month.
        https://bugs.webkit.org/show_bug.cgi?id=33021

        Add setter tests to input-valueasdate-month.js, and update the
        expectation.

        * fast/forms/input-valueasdate-expected.txt:
        * fast/forms/input-valueasdate-month-expected.txt:
        * fast/forms/script-tests/input-valueasdate-month.js:
        * fast/forms/script-tests/input-valueasdate.js:

2010-01-18  Enrica Casucci  <enrica@apple.com>

        Reviewed by Darin Adler.

        Script attributes are copied and pasted, making cross-domain attacks possible (30019)
        <rdar://problem/6008809>
        https://bugs.webkit.org/show_bug.cgi?id=30019

        * editing/pasteboard/paste-noscript-expected.txt: Added.
        * editing/pasteboard/paste-noscript.html: Added.

2010-01-18  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=33815
        Crash when using DOMTimer from a detached frame

        * fast/dom/Window/timer-null-script-execution-context-expected.txt: Added.
        * fast/dom/Window/timer-null-script-execution-context.html: Added.

2010-01-18  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Tim Hatcher.

        Updated Windows results after r53424.

        * platform/win/fast/css/zoom-body-scroll-expected.txt: Added.

2010-01-18  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Geoffrey Garen.

        https://bugs.webkit.org/show_bug.cgi?id=33813
        <rdar://problem/7545104> Crash when using DOMApplicationCache from a destroyed frame

        * http/tests/appcache/destroyed-frame-expected.txt: Added.
        * http/tests/appcache/destroyed-frame.html: Added.

2010-01-18  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        REGRESSION (r53420): incomplete repaint of bottom of bugs.webkit.org comment field
        https://bugs.webkit.org/show_bug.cgi?id=33809

        * fast/repaint/trailing-floats-root-line-box-overflow-expected.checksum: Added.
        * fast/repaint/trailing-floats-root-line-box-overflow-expected.png: Added.
        * fast/repaint/trailing-floats-root-line-box-overflow-expected.txt: Added.
        * fast/repaint/trailing-floats-root-line-box-overflow.html: Added.

2010-01-18  Alexey Proskuryakov  <ap@apple.com>

        Rubber-stamped by Adam Roben.

        Change a newly added WebSocket test to work on Windows.

        * websocket/tests/multiple-connections.html: Decrease the number of simultaneous connections
        from 100 to 50. On Windows buildbot, only ~70 connections are allowed for some reason - but
        we only need much fewer to compare to HTTP simultaneous connection limit anyway.

2010-01-18  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Skip test introduced in r53423 because of missing layoutTestController.setDomainRelaxationForbiddenForURLScheme()

        * platform/qt/Skipped: http/tests/security/setDomainRelaxationForbiddenForURLScheme.html added.

2010-01-18  Csaba Osztrogonác  <ossy@webkit.org>

        Reviewed by Ariya Hidayat.

        [Qt] Add platform dependent expected file because of different font size.

        * platform/qt/fast/dynamic/float-in-trailing-whitespace-after-last-line-break-2-expected.txt: Copied from LayoutTests/fast/dynamic/float-in-trailing-whitespace-after-last-line-break-2-expected.txt.

2010-01-18  Timothy Hatcher  <timothy@apple.com>

        Updated results for scroll position while zoomed.

        <rdar://problem/6150099> Zooming should keep the page content in the same place

        Rubber-stamped by Sam Weinig.

        * fast/css/zoom-body-scroll-expected.txt:

2010-01-18  Adam Roben  <aroben@apple.com>

        Add tests for new WebKit SPI to disallow setting document.domain

        Tests for <http://webkit.org/b/33806> <rdar://problem/7552837> Would
        like API to disallow setting of document.domain for pages with certain
        URL schemes

        Reviewed by Sam Weinig.

        * http/tests/security/setDomainRelaxationForbiddenForURLScheme-expected.txt: Added.
        * http/tests/security/setDomainRelaxationForbiddenForURLScheme.html: Added.

        * platform/gtk/Skipped: Skip the new test since WebKitGtk doesn't have
        this API.

2010-01-18  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/6892207> REGRESSION (Safari 4): Menus at sciencedirect.com push the main article context down the page
        <rdar://problem/7546035> Second right floated image misplacment
        https://bugs.webkit.org/show_bug.cgi?id=33245

        * fast/dynamic/float-in-trailing-whitespace-after-last-line-break-2.html: Added.
        * fast/dynamic/float-in-trailing-whitespace-after-last-line-break-2-expected.checksum: Added.
        * fast/dynamic/float-in-trailing-whitespace-after-last-line-break-2-expected.png: Added.
        * fast/dynamic/float-in-trailing-whitespace-after-last-line-break-2-expected.txt: Added.

2010-01-18  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=33804
        Test that WebSocket is not subject to HTTP connection limit

        * websocket/tests/multiple-connections-expected.txt: Added.
        * websocket/tests/multiple-connections.html: Added.

2010-01-18  Daniel Cheng  <dcheng@google.com>

        Reviewed by Adam Roben

        DataTransfer interface broken on Windows--types member is always
        undefined, and getData() does not work.
        https://bugs.webkit.org/show_bug.cgi?id=30527

        * fast/events/drag-and-drop-dataTransfer-types-nocrash-expected.txt: Updated test expectations.
        * fast/events/drag-and-drop-dataTransfer-types-nocrash.html: Added test cases.
        * platform/win/Skipped: Re-enabled fast/events/drag-and-drop-dataTransfer-types-nocrash.html

2010-01-17  Csaba Osztrogonác  <ossy@webkit.org>

        Rubber-stamped by Eric Seidel.

        [Qt] Platform dependent expected file added for r53388. (similar to original one, only styles differ)
        https://bugs.webkit.org/show_bug.cgi?id=33784 (need to unify path dumping)

        * platform/qt/svg/custom/transformedMaskFails-expected.txt: Added.

2010-01-17  Oliver Hunt  <oliver@apple.com>

        Reviewed by Dan Bernstein.

        REGRESSION (r52449): SVG mask wrongly clipped when not at origin for recent nightly build
        https://bugs.webkit.org/show_bug.cgi?id=33782

        Testcase for a mask containing transformed elements

        * platform/mac/svg/custom/transformedMaskFails-expected.png: Added.
        * svg/custom/transformedMaskFails-expected.txt: Added.
        * svg/custom/transformedMaskFails.svg: Added.

2010-01-15  Jon Honeycutt  <jhoneycutt@apple.com>

        MSAA: Screen rect for <option> elements is always the zero rect

        https://bugs.webkit.org/show_bug.cgi?id=33758

        Reviewed by Oliver Hunt.

        * platform/win/accessibility/option-element-position-and-size-expected.txt: Added.
        * platform/win/accessibility/option-element-position-and-size.html: Added.

2010-01-15  Jon Honeycutt  <jhoneycutt@apple.com>

        get_accParent should try to retrieve parent AccessibilityObject, before
        calling upon window

        https://bugs.webkit.org/show_bug.cgi?id=22893

        Reviewed by Darin Adler.

        * platform/win/accessibility/parent-element-expected.txt: Added.
        * platform/win/accessibility/parent-element.html: Added.

2010-01-16  Darin Adler  <darin@apple.com>

        Reviewed by Oliver Hunt and Alexey Proskuryakov.

        ValidityState can hold a stale pointer to control
        https://bugs.webkit.org/show_bug.cgi?id=33729
        rdar://problem/7545114

        * fast/forms/ValidityState-removed-control-expected.txt: Added.
        * fast/forms/ValidityState-removed-control.html: Added.

2010-01-15  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=33752
        Assertion failure when getting a href attribute with prefix

        * fast/dom/bad-href-attribute-expected.txt: Added.
        * fast/dom/bad-href-attribute.html: Added.
        * fast/dom/node-prefix-setter-namespace-exception-expected.txt: Added.
        * fast/dom/node-prefix-setter-namespace-exception.html: Added.
        * fast/dom/script-tests/node-prefix-setter-namespace-exception.js: Added.

2010-01-16  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/7536748> and https://bugs.webkit.org/show_bug.cgi?id=33571
        History traversals to a new document do not get the popstate event

        Updated existing tests to match new correct behavior.

        * fast/loader/stateobjects/document-destroyed-navigate-back-expected.txt:
        * fast/loader/stateobjects/document-destroyed-navigate-back-with-fragment-scroll-expected.txt:
        * fast/loader/stateobjects/document-destroyed-navigate-back-with-fragment-scroll.html:
        * fast/loader/stateobjects/document-destroyed-navigate-back.html:

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

        Reviewed by Dan Bernstein and Adele Peterson.

        Support reflections on composited layers
        https://bugs.webkit.org/show_bug.cgi?id=31885
        
        Tests for reflections on compositing layers.

        * compositing/masks/direct-image-mask.html: Added.
        * compositing/reflections/animation-inside-reflection.html: Added.
        * compositing/reflections/compositing-change-inside-reflection.html: Added.
        * compositing/reflections/deeply-nested-reflections.html: Added.
        * compositing/reflections/masked-reflection-on-composited.html: Added.
        * compositing/reflections/nested-reflection-anchor-point.html: Added.
        * compositing/reflections/nested-reflection-animated.html: Added.
        * compositing/reflections/nested-reflection-mask-change.html: Added.
        * compositing/reflections/nested-reflection-on-overflow.html: Added.
        * compositing/reflections/nested-reflection-opacity.html: Added.
        * compositing/reflections/nested-reflection-size-change.html: Added.
        * compositing/reflections/nested-reflection-transformed.html: Added.
        * compositing/reflections/nested-reflection-transition.html: Added.
        * compositing/reflections/nested-reflection.html: Added.
        * compositing/reflections/reflection-opacity.html: Added.
        * compositing/reflections/reflection-ordering.html: Added.
        * compositing/reflections/reflection-positioning.html: Added.
        * compositing/reflections/transform-inside-reflection.html: Added.
        * platform/mac/compositing/masks/direct-image-mask-expected.checksum: Added.
        * platform/mac/compositing/masks/direct-image-mask-expected.png: Added.
        * platform/mac/compositing/masks/direct-image-mask-expected.txt: Copied from LayoutTests/platform/mac/compositing/reflections/simple-composited-reflections-expected.txt.
        * platform/mac/compositing/reflections/animation-inside-reflection-expected.checksum: Added.
        * platform/mac/compositing/reflections/animation-inside-reflection-expected.png: Added.
        * platform/mac/compositing/reflections/animation-inside-reflection-expected.txt: Added.
        * platform/mac/compositing/reflections/compositing-change-inside-reflection-expected.checksum: Added.
        * platform/mac/compositing/reflections/compositing-change-inside-reflection-expected.png: Added.
        * platform/mac/compositing/reflections/compositing-change-inside-reflection-expected.txt: Added.
        * platform/mac/compositing/reflections/deeply-nested-reflections-expected.checksum: Added.
        * platform/mac/compositing/reflections/deeply-nested-reflections-expected.png: Added.
        * platform/mac/compositing/reflections/deeply-nested-reflections-expected.txt: Added.
        * platform/mac/compositing/reflections/masked-reflection-on-composited-expected.checksum: Added.
        * platform/mac/compositing/reflections/masked-reflection-on-composited-expected.png: Added.
        * platform/mac/compositing/reflections/masked-reflection-on-composited-expected.txt: Added.
        * platform/mac/compositing/reflections/nested-reflection-anchor-point-expected.checksum: Added.
        * platform/mac/compositing/reflections/nested-reflection-anchor-point-expected.png: Added.
        * platform/mac/compositing/reflections/nested-reflection-anchor-point-expected.txt: Added.
        * platform/mac/compositing/reflections/nested-reflection-animated-expected.checksum: Added.
        * platform/mac/compositing/reflections/nested-reflection-animated-expected.png: Added.
        * platform/mac/compositing/reflections/nested-reflection-animated-expected.txt: Added.
        * platform/mac/compositing/reflections/nested-reflection-expected.checksum: Added.
        * platform/mac/compositing/reflections/nested-reflection-expected.png: Added.
        * platform/mac/compositing/reflections/nested-reflection-expected.txt: Added.
        * platform/mac/compositing/reflections/nested-reflection-mask-change-expected.checksum: Added.
        * platform/mac/compositing/reflections/nested-reflection-mask-change-expected.png: Added.
        * platform/mac/compositing/reflections/nested-reflection-mask-change-expected.txt: Added.
        * platform/mac/compositing/reflections/nested-reflection-on-overflow-expected.checksum: Added.
        * platform/mac/compositing/reflections/nested-reflection-on-overflow-expected.png: Added.
        * platform/mac/compositing/reflections/nested-reflection-on-overflow-expected.txt: Added.
        * platform/mac/compositing/reflections/nested-reflection-opacity-expected.checksum: Added.
        * platform/mac/compositing/reflections/nested-reflection-opacity-expected.png: Added.
        * platform/mac/compositing/reflections/nested-reflection-opacity-expected.txt: Added.
        * platform/mac/compositing/reflections/nested-reflection-size-change-expected.checksum: Added.
        * platform/mac/compositing/reflections/nested-reflection-size-change-expected.png: Added.
        * platform/mac/compositing/reflections/nested-reflection-size-change-expected.txt: Added.
        * platform/mac/compositing/reflections/nested-reflection-transformed-expected.checksum: Added.
        * platform/mac/compositing/reflections/nested-reflection-transformed-expected.png: Added.
        * platform/mac/compositing/reflections/nested-reflection-transformed-expected.txt: Added.
        * platform/mac/compositing/reflections/nested-reflection-transition-expected.checksum: Added.
        * platform/mac/compositing/reflections/nested-reflection-transition-expected.png: Added.
        * platform/mac/compositing/reflections/nested-reflection-transition-expected.txt: Added.
        * platform/mac/compositing/reflections/reflection-opacity-expected.checksum: Added.
        * platform/mac/compositing/reflections/reflection-opacity-expected.png: Added.
        * platform/mac/compositing/reflections/reflection-opacity-expected.txt: Added.
        * platform/mac/compositing/reflections/reflection-ordering-expected.checksum: Added.
        * platform/mac/compositing/reflections/reflection-ordering-expected.png: Added.
        * platform/mac/compositing/reflections/reflection-ordering-expected.txt: Added.
        * platform/mac/compositing/reflections/reflection-positioning-expected.checksum: Added.
        * platform/mac/compositing/reflections/reflection-positioning-expected.png: Added.
        * platform/mac/compositing/reflections/reflection-positioning-expected.txt: Added.
        * platform/mac/compositing/reflections/transform-inside-reflection-expected.checksum: Added.
        * platform/mac/compositing/reflections/transform-inside-reflection-expected.png: Added.
        * platform/mac/compositing/reflections/transform-inside-reflection-expected.txt: Added.

2010-01-15  Doug Muir  <dmuir@google.com>

        Fix some Layout Test timeouts when run under valgrind.
        
        * http/tests/history/redirect-js-form-submit-0-seconds.html:
        * http/tests/history/redirect-js-form-submit-2-seconds.html:
        * http/tests/misc/timer-vs-loading.html:

2010-01-15  Carol Szabo  <carol.szabo@nokia.com>

        Reviewed by Darin Adler.

        CSS2.1 Counters not updated when new elements are inserted in the DOM.
        https://bugs.webkit.org/show_bug.cgi?id=32884

        * fast/css/counters/adding-nodes-expected.txt: Added.
        * fast/css/counters/adding-nodes.html: Added.

2010-01-15  Darin Fisher  <darin@chromium.org>

        Fix flakey test.

        Add a call to clearBackForwardList.

        * fast/history/history-length.html:

2010-01-15  Darin Fisher  <darin@chromium.org>

        Reviewed by Dimitri Glazkov.

        Disable page cache and add diagnostic output in the failure case.
        https://bugs.webkit.org/show_bug.cgi?id=33749

        * fast/history/history-length-expected.txt:
        * fast/history/history-length.html: Copied from fast/history/history-length.html-disabled.
        * fast/history/history-length.html-disabled: Removed.

2010-01-15  Darin Fisher  <darin@chromium.org>

        Disable this test temporarily since it is failing on all of the
        builders.

        * fast/history/history-length.html: Removed.
        * fast/history/history-length.html-disabled: Copied from fast/history/history-length.html.

2010-01-15  Darin Fisher  <darin@chromium.org>

        Reviewed by Brady Eidson.

        history.length does not return number of elements in history list
        https://bugs.webkit.org/show_bug.cgi?id=24472

        * fast/history/history-length-expected.txt: Added.
        * fast/history/history-length.html: Added.
        * fast/loader/stateobjects/document-destroyed-navigate-back-expected.txt: fix up test expectations
        * fast/loader/stateobjects/document-destroyed-navigate-back-with-fragment-scroll-expected.txt: fix up test expectations

2010-01-15  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Oliver Hunt.

        REGRESISON: Google maps buttons not working properly
        https://bugs.webkit.org/show_bug.cgi?id=31871

        REGRESSION(r52948): JavaScript exceptions thrown on Google Maps when
        getting directions for a second time
        https://bugs.webkit.org/show_bug.cgi?id=33446
        
        Added a test for these bugs.

        * fast/js/pic/undictionary-expected.txt: Added.
        * fast/js/pic/undictionary.html: Added.

2010-01-15  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Eric Seidel.

        svg/custom/marker-changes.svg is flaky
        https://bugs.webkit.org/show_bug.cgi?id=33728

        removing gratuitous setTimeout.

        * svg/custom/marker-changes.svg:

2010-01-15  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Adam Barth.

        transitions/shorthand-border-transitions.html is still flaky on slower bots
        https://bugs.webkit.org/show_bug.cgi?id=33721

        Increase the tolerance. The test still tests what it was meant to.

        * transitions/shorthand-border-transitions.html:

2010-01-14  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Eric Seidel.

        animations/combo-transform-translate+scale.html failed on Snow Leopard Debug Bot
        https://bugs.webkit.org/show_bug.cgi?id=33461

        Make test half as long. Remove a setTimeout and tweak tolerances to
        reduce flakiness.

        * animations/combo-transform-translate+scale.html:

2010-01-14  Darin Fisher  <darin@chromium.org>

        Reviewed by Brady Eidson.

        history.pushState should clear the entire forward history
        https://bugs.webkit.org/show_bug.cgi?id=33160

        * fast/loader/stateobjects/pushstate-clears-forward-history-expected.txt: Added.
        * fast/loader/stateobjects/pushstate-clears-forward-history.html: Added.

2010-01-14  Csaba Osztrogonác  <ossy@webkit.org>

        Rubber-stamped by Kenneth Rohde Christiansen.

        REGRESSION: svg/css/circle-in-mask-with-shadow.svg failing pixel tests
        https://bugs.webkit.org/show_bug.cgi?id=33498

        After http://trac.webkit.org/changeset/53300 Qt expected files should be updated.

        * platform/qt/svg/css/arrow-with-shadow-expected.txt: updated.
        * platform/qt/svg/css/circle-in-mask-with-shadow-expected.txt: updated.
        * platform/qt/svg/css/mask-with-shadow-expected.txt: updated.
        * platform/qt/svg/css/path-with-shadow-expected.txt: updated.
        * platform/qt/svg/css/stars-with-shadow-expected.txt: updated.
        * platform/qt/svg/filters/shadow-on-rect-with-filter-expected.txt: updated.

2010-01-14  Roland Steiner  <rolandsteiner@chromium.org>

        Reviewed by David Levin.

        Bug 31865 - Re-do ruby layout tests to use only Latin characters
        (https://bugs.webkit.org/show_bug.cgi?id=31865)

        New base-lines for the Windows platform.

        * platform/win/fast/ruby/ruby-empty-rt-expected.checksum:
        * platform/win/fast/ruby/ruby-empty-rt-expected.png:
        * platform/win/fast/ruby/ruby-empty-rt-expected.txt:
        * platform/win/fast/ruby/ruby-length-expected.checksum:
        * platform/win/fast/ruby/ruby-length-expected.png:
        * platform/win/fast/ruby/ruby-length-expected.txt:
        * platform/win/fast/ruby/ruby-run-break-expected.checksum:
        * platform/win/fast/ruby/ruby-run-break-expected.png:
        * platform/win/fast/ruby/ruby-run-break-expected.txt:
        * platform/win/fast/ruby/ruby-runs-expected.checksum:
        * platform/win/fast/ruby/ruby-runs-expected.png:
        * platform/win/fast/ruby/ruby-runs-expected.txt:
        * platform/win/fast/ruby/ruby-runs-spans-expected.checksum:
        * platform/win/fast/ruby/ruby-runs-spans-expected.png:
        * platform/win/fast/ruby/ruby-runs-spans-expected.txt:
        * platform/win/fast/ruby/ruby-simple-expected.checksum:
        * platform/win/fast/ruby/ruby-simple-expected.png:
        * platform/win/fast/ruby/ruby-simple-expected.txt:
        * platform/win/fast/ruby/ruby-simple-rp-expected.checksum:
        * platform/win/fast/ruby/ruby-simple-rp-expected.png:
        * platform/win/fast/ruby/ruby-simple-rp-expected.txt:
        * platform/win/fast/ruby/ruby-trailing-expected.checksum:
        * platform/win/fast/ruby/ruby-trailing-expected.png:
        * platform/win/fast/ruby/ruby-trailing-expected.txt:
        * platform/win/fast/ruby/rubyDOM-insert-rt-expected.checksum:
        * platform/win/fast/ruby/rubyDOM-insert-rt-expected.png:
        * platform/win/fast/ruby/rubyDOM-insert-rt-expected.txt:
        * platform/win/fast/ruby/rubyDOM-insert-text1-expected.checksum:
        * platform/win/fast/ruby/rubyDOM-insert-text1-expected.png:
        * platform/win/fast/ruby/rubyDOM-insert-text1-expected.txt:
        * platform/win/fast/ruby/rubyDOM-insert-text2-expected.checksum:
        * platform/win/fast/ruby/rubyDOM-insert-text2-expected.png:
        * platform/win/fast/ruby/rubyDOM-insert-text2-expected.txt:
        * platform/win/fast/ruby/rubyDOM-insert-text3-expected.checksum:
        * platform/win/fast/ruby/rubyDOM-insert-text3-expected.png:
        * platform/win/fast/ruby/rubyDOM-insert-text3-expected.txt:
        * platform/win/fast/ruby/rubyDOM-remove-rt1-expected.checksum:
        * platform/win/fast/ruby/rubyDOM-remove-rt1-expected.png:
        * platform/win/fast/ruby/rubyDOM-remove-rt1-expected.txt:
        * platform/win/fast/ruby/rubyDOM-remove-rt2-expected.checksum:
        * platform/win/fast/ruby/rubyDOM-remove-rt2-expected.png:
        * platform/win/fast/ruby/rubyDOM-remove-rt2-expected.txt:
        * platform/win/fast/ruby/rubyDOM-remove-text1-expected.checksum:
        * platform/win/fast/ruby/rubyDOM-remove-text1-expected.png:
        * platform/win/fast/ruby/rubyDOM-remove-text1-expected.txt:
        * platform/win/fast/ruby/rubyDOM-remove-text2-expected.checksum:
        * platform/win/fast/ruby/rubyDOM-remove-text2-expected.png:
        * platform/win/fast/ruby/rubyDOM-remove-text2-expected.txt:

2010-01-14  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Eric Seidel.

        animations/change-keyframes.html failed on Tiger Bot
        https://bugs.webkit.org/show_bug.cgi?id=33370

        Increase tolerances. They're still testing the stated goal of the test.

        * animations/change-keyframes.html:
        * transitions/cancel-transition.html:

2010-01-14  Gustavo Noronha Silva  <gns@gnome.org>

        Skip new test that requires new functionality in
        DRT (layoutTestController.setWillSendRequestReturnsNull).

        * platform/gtk/Skipped:

2010-01-14  Gustavo Noronha Silva  <gns@gnome.org>

        Skipping test that fails intermitently - fix for the test being
        worked on; see https://bugs.webkit.org/show_bug.cgi?id=33671.

        * platform/gtk/Skipped:

2010-01-13  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Eric Seidel.

        LayoutTests/animations/play-state.html and LayoutTests/animations/3d/transform-origin-vs-functions.html are flaky
        https://bugs.webkit.org/show_bug.cgi?id=33626

        Speculative fixes.

        * animations/3d/transform-origin-vs-functions.html:
        Remove timeout for notifyDone and start measurement at
        webkitAnimationStart instead of body onload.
        * animations/play-state-expected.txt:
        * animations/play-state.html:
        Reduce test time in half, but keep the same tolerance level.

2010-01-13  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Eric Seidel.

        A few more flaky transitions/animations tests
        https://bugs.webkit.org/show_bug.cgi?id=33642

        Attempt to deflake a few more tests. Some of these are second
        attempts. The first attempt made it less flaky, but not 100%.
        Also, for a couple tests, make them shorter. They seemed
        unnecessarily long.

        * animations/change-one-anim-expected.txt:
        * animations/change-one-anim.html:
        * transitions/cancel-transition.html:
        * transitions/mask-transitions.html:
        * transitions/shorthand-border-transitions-expected.txt:
        * transitions/shorthand-border-transitions.html:

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

        Reviewed by Sam Weinig.

        Tests for https://bugs.webkit.org/show_bug.cgi?id=33498 REGRESSION: 
        svg/css/circle-in-mask-with-shadow.svg failing pixel tests
        -and corresponding-
        <rdar://problem/7544176>

        All of these tests just needed to be updated because of small 
        rounding differences. 

        * platform/mac/fast/repaint/moving-shadow-on-container-expected.checksum:
        * platform/mac/fast/repaint/moving-shadow-on-container-expected.png:
        * platform/mac/fast/repaint/moving-shadow-on-container-expected.txt:
        * platform/mac/fast/repaint/moving-shadow-on-path-expected.checksum:
        * platform/mac/fast/repaint/moving-shadow-on-path-expected.png:
        * platform/mac/fast/repaint/moving-shadow-on-path-expected.txt:
        * platform/mac/svg/css/arrow-with-shadow-expected.png:
        * platform/mac/svg/css/arrow-with-shadow-expected.txt:
        * platform/mac/svg/css/circle-in-mask-with-shadow-expected.checksum:
        * platform/mac/svg/css/circle-in-mask-with-shadow-expected.png:
        * platform/mac/svg/css/circle-in-mask-with-shadow-expected.txt:
        * platform/mac/svg/css/clippath-with-shadow-expected.png:
        * platform/mac/svg/css/composite-shadow-example-expected.checksum:
        * platform/mac/svg/css/composite-shadow-example-expected.png:
        * platform/mac/svg/css/composite-shadow-example-expected.txt:
        * platform/mac/svg/css/composite-shadow-with-opacity-expected.checksum:
        * platform/mac/svg/css/composite-shadow-with-opacity-expected.png:
        * platform/mac/svg/css/composite-shadow-with-opacity-expected.txt:
        * platform/mac/svg/css/css-box-min-width-expected.checksum:
        * platform/mac/svg/css/css-box-min-width-expected.png:
        * platform/mac/svg/css/group-with-shadow-expected.txt:
        * platform/mac/svg/css/mask-with-shadow-expected.txt:
        * platform/mac/svg/css/path-with-shadow-expected.png:
        * platform/mac/svg/css/path-with-shadow-expected.txt:
        * platform/mac/svg/css/shadow-and-opacity-expected.txt:
        * platform/mac/svg/css/shadow-with-large-radius-expected.txt:
        * platform/mac/svg/css/shadow-with-negative-offset-expected.txt:
        * platform/mac/svg/css/stars-with-shadow-expected.checksum:
        * platform/mac/svg/css/stars-with-shadow-expected.png:
        * platform/mac/svg/css/stars-with-shadow-expected.txt:
        * platform/mac/svg/filters/shadow-on-rect-with-filter-expected.checksum:
        * platform/mac/svg/filters/shadow-on-rect-with-filter-expected.png:
        * platform/mac/svg/filters/shadow-on-rect-with-filter-expected.txt:

2010-01-14  Adam Roben  <aroben@apple.com>

        Add a test that shows onload still fires if a load of a <script src>
        is cancelled by the resource load delegate

        Tests for <rdar://problem/7543406> <http://webkit.org/b/33687>
        window.onload never fires if page contains a <script src=foo> whose
        load is cancelled by resource load delegate returning null from
        willSendRequest

        Reviewed by Dave Hyatt.

        * fast/loader/onload-willSendRequest-null-for-script-expected.txt: Added.
        * fast/loader/onload-willSendRequest-null-for-script.html: Added.

        * platform/qt/Skipped: Added the new test since Qt doesn't have
        layoutTestController.setWillSendRequestReturnsNull.

2010-01-14  Stephen White  <senorblanco@chromium.org>

        Reviewed by mitz@webkit.org.

        New layout test added to exercise fix for bug
        http://bugs.webkit.org/show_bug.cgi?id=28426 

        * fast/gradients/crash-on-tr-expected.txt: Added.
        * fast/gradients/crash-on-tr.html: Added.

2010-01-14  Evan Stade  <estade@chromium.org>

        Reviewed by Eric Seidel.

        Chromium Linux: don't stretch checkboxes
        https://bugs.webkit.org/show_bug.cgi?id=28631

        * fast/css/non-standard-checkbox-size.html: Added.
        * platform/mac/fast/css/non-standard-checkbox-size-expected.checksum: Added.
        * platform/mac/fast/css/non-standard-checkbox-size-expected.png: Added.
        * platform/mac/fast/css/non-standard-checkbox-size-expected.txt: Added.
        * platform/gtk/Skipped: Skipping this new test so I don't break this bot.  Just needs new results.
        * platform/qt/Skipped: ditto
        * platform/win/Skipped: ditto

2010-01-14  Brian Weinstein  <bweinstein@apple.com>

        Reviewed by Oliver Hunt.

        [DnD] effectAllowed and dropEffect can be set to bogus values.
        Fixes <https://bugs.webkit.org/show_bug.cgi?id=33635>.
        
        Added a test to check the handling of setting effectAllowed and
        dropEffect to bogus values (that it gets ignored), and updated results
        to drag-and-drop because it uses a dummy value.
        
        Also, fixed a few tests that broke when the default dropEffect was set to
        none to match the spec.

        * fast/events/bogus-dropEffect-effectAllowed-expected.txt: Added.
        * fast/events/bogus-dropEffect-effectAllowed.html: Added.
        * platform/gtk/fast/events/bogus-dropEffect-effectAllowed-expected.txt: Added.
        * platform/qt/fast/events/bogus-dropEffect-effectAllowed.html: Added.

        * fast/events/drag-and-drop-expected.txt:
        * fast/events/drag-and-drop.html:
        * editing/pasteboard/script-tests/files-during-page-drags.js:
        * editing/pasteboard/get-data-text-plain-drop.html:
        * fast/events/resources/drag-in-frames-right.html:
        * http/tests/local/resources/send-dragged-file.js:
        * http/tests/misc/bubble-drag-events.html:

2010-01-14  Adam Roben  <aroben@apple.com>

        Add new test from r53277 to the GTK+ Skipped list

        * platform/gtk/Skipped:

2010-01-14  Kent Hansen  <kent.hansen@nokia.com>

        Reviewed by Darin Adler.

        Infinite recursion in RuntimeObjectImp::getOwnPropertyNames()
        https://bugs.webkit.org/show_bug.cgi?id=33371

        Test that Object.keys works on a plugin object.

        * plugins/netscape-enumerate.html:

2010-01-14  Adam Roben  <aroben@apple.com>

        Add new tests from r53277 to the Qt Skipped list

        * platform/qt/Skipped:

2010-01-13  Diego Gonzalez  <diego.gonzalez@openbossa.org>

        Reviewed by Kenneth Christiansen.

        [Qt] DRT missing setUserStyleSheetLocation and setUserStyleSheetEnabled in LayoutTestController
        https://bugs.webkit.org/show_bug.cgi?id=33617

        * platform/qt/Skipped:

2010-01-14  Adam Roben  <aroben@apple.com>

        Add tests that show that onload still fires in various situations with
        subframes

        Tests for <rdar://problem/7533333> <http://webkit.org/b/33533>
        window.onload never fires if page contains an <iframe> with a bad
        scheme or whose load is cancelled by returning null from resource load
        delegate's willSendRequest

        Reviewed by Brady Eidson.

        * fast/loader/onload-bad-scheme-for-frame-expected.txt: Added.
        * fast/loader/onload-bad-scheme-for-frame.html: Added.
        Tests that onload still fires when a subframe with an unrecognized
        scheme is in the page.

        * fast/loader/onload-policy-ignore-for-frame-expected.txt: Added.
        * fast/loader/onload-policy-ignore-for-frame.html: Added.
        Tests that onload still fires when the policy delegate says to ignore
        the initial load of a subframe.

        * fast/loader/onload-willSendRequest-null-for-frame-expected.txt: Added.
        * fast/loader/onload-willSendRequest-null-for-frame.html: Added.
        Tests that onload still fires when the resource load delegate returns
        null from willSendRequest for the initial load of a subframe.

        * http/tests/loading/bad-scheme-subframe-expected.txt: Updated result
        to show that we now fire onload for the main frame in this case. (This
        is essentially the same as onload-bad-scheme-for-frame.html, but it
        still seems useful to have that new, more explicit, test.)

2010-01-13  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Brady Eidson.

        https://bugs.webkit.org/show_bug.cgi?id=33652
        REGRESSION: Frames stop appearing after browsing for a while

        * fast/frames/cached-frame-counter-expected.txt: Added.
        * fast/frames/cached-frame-counter.html: Added.

2010-01-14  Adam Roben  <aroben@apple.com>

        Fix a typo in editing/selection/inactive-selection.html

        Fixes <http://webkit.org/b/33676> Exception when opening
        editing/selection/inactive-selection.html in a browser

        Reviewed by Dan Bernstein.

        * editing/selection/inactive-selection.html: Remove a semicolon that
        was making the if (window.layoutTestController) test ineffective.

2010-01-13  Philippe Normand  <pnormand@igalia.com>

        Reviewed by Xan Lopez.

        [GTK] Failing media/video-seek-past-end-playing.html
        https://bugs.webkit.org/show_bug.cgi?id=33015

        * media/video-seek-past-end-playing.html: Removed the last timer of this test.
        * platform/gtk/Skipped: Unskip test above.

2010-01-14  Eric Seidel  <eric@webkit.org>

        No review, rolling out r53249.
        http://trac.webkit.org/changeset/53249
        https://bugs.webkit.org/show_bug.cgi?id=33617

        This caused http/tests/security/local-user-CSS-from-
        remote.html to fail on the Qt Release Build Bot.

        * platform/qt/Skipped:

2010-01-14  Eric Seidel  <eric@webkit.org>

        No review, rolling out r53248.
        http://trac.webkit.org/changeset/53248
        https://bugs.webkit.org/show_bug.cgi?id=32641

        Caused 2 tests to crash on various bots:
        fast/dom/HTMLSelectElement/listbox-select-reset.html and
        fast/forms/listbox-typeahead-scroll.html

        * fast/forms/HTMLOptionElement_selected-expected.txt:
        * fast/forms/HTMLOptionElement_selected.html:
        * fast/forms/HTMLOptionElement_selected2-expected.txt: Removed.
        * fast/forms/HTMLOptionElement_selected2.html: Removed.
        * fast/forms/HTMLOptionElement_selected3-expected.txt: Removed.
        * fast/forms/HTMLOptionElement_selected3.html: Removed.
        * fast/forms/add-remove-option-modification-event-expected.txt:

2010-01-14  Ben Murdoch  <benm@google.com>

        Reviewed by Darin Adler.

        [Android] [Qt] The document.createEvent API does not support touch events.
        https://bugs.webkit.org/show_bug.cgi?id=33605

        * fast/events/script-tests/create-touch-event.js: Added. Ensures that document.createEvent("TouchEvent") can create a TouchEvent.
        * fast/events/touch/create-touch-event-expected.txt: Added.
        * fast/events/touch/create-touch-event.html: Added.

2010-01-14  Diego Gonzalez  <diego.gonzalez@openbossa.org>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] DRT missing setUserStyleSheetLocation and setUserStyleSheetEnabled in LayoutTestController
        https://bugs.webkit.org/show_bug.cgi?id=33617

        * platform/qt/Skipped:

2010-01-14  James Robinson  <jamesr@chromium.org>

        Reviewed by Alexey Proskuryakov.

        Adds tests for the 'selected' attribute of <option>s
        https://bugs.webkit.org/show_bug.cgi?id=32641

        HTMLOptionElement_selected2 checks that the selected attribute is up to date immediately after the <select>
        parsed.  HTMLOptionElement_selected3 does the same, but checks immediately prior to the </select>.

        Also changes the expectation for add-remove-option-modification-event to reflect that we now pass.

        * fast/forms/HTMLOptionElement_selected-expected.txt:
        * fast/forms/HTMLOptionElement_selected.html:
        * fast/forms/HTMLOptionElement_selected2-expected.txt: Added.
        * fast/forms/HTMLOptionElement_selected2.html: Added.
        * fast/forms/HTMLOptionElement_selected3-expected.txt: Added.
        * fast/forms/HTMLOptionElement_selected3.html: Added.
        * fast/forms/add-remove-option-modification-event-expected.txt:

2010-01-14  Csaba Osztrogonác  <ossy@webkit.org>

        Rubber-stamped by Simon Hausmann.

        [Qt] Add expected files for passing new tests.
        Compared to the mac expected files and png files.

        * platform/qt/fast/backgrounds/quirks-mode-line-box-backgrounds-expected.txt: Added.
        * platform/qt/fast/css/css3-space-in-nth-and-lang-expected.txt: Added.
        * platform/qt/svg/custom/marker-opacity-expected.txt: Added.
        * platform/qt/svg/custom/relative-sized-content-expected.txt: Added.
        * platform/qt/svg/custom/text-xy-updates-SVGList-expected.txt: Added.
        * platform/qt/svg/custom/use-on-symbol-inside-pattern-expected.txt: Added.
        * platform/qt/transforms/2d/transform-fixed-container-expected.txt: Added.

2010-01-13  Kent Hansen  <kent.hansen@nokia.com>

        Reviewed by Oliver Hunt.

        JSON.stringify and JSON.parse needlessly process properties in the prototype chain
        https://bugs.webkit.org/show_bug.cgi?id=33053

        Add tests that verify that properties in the prototype chain are ignored.

        * fast/js/JSON-parse-expected.txt:
        * fast/js/JSON-stringify-expected.txt:
        * fast/js/resources/JSON-parse.js:
        * fast/js/resources/JSON-stringify.js:

2010-01-13  Kenneth Russell  <kbr@google.com>

        Reviewed by Oliver Hunt.

        Need to implement WebGLContextAttributes
        https://bugs.webkit.org/show_bug.cgi?id=31169

        Added the WebGLContextAttributes class and custom JavaScript
        bindings to accept a native object as the second argument to
        getContext("experimental-webgl") per the WebGL specification.
        Added GraphicsContext3D::Attributes struct to isolate DOM and
        graphics layers. Added getContextAttributes() to
        WebGLRenderingContext. Added test case ensuring that context
        attributes can be passed down and returned. Tested in Safari and
        Chromium. The attributes will be hooked up to the creation of the
        OpenGL context in bug 33416.

        * fast/canvas/webgl/context-attributes-expected.txt: Added.
        * fast/canvas/webgl/context-attributes.html: Added.
        * fast/canvas/webgl/resources/webgl-test.js:
        (create3DContext):

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

        Reviewed by Dan Bernstein.

        Fix shadow drawing to do the correct computations using the base coordinate space
        https://bugs.webkit.org/show_bug.cgi?id=33629
        
        Testcase for box- and text-shadow drawing, both into the window, and into composited layers.

        * compositing/shadows/shadow-drawing.html: Added.
        * platform/mac/compositing/shadows/shadow-drawing-expected.checksum: Added.
        * platform/mac/compositing/shadows/shadow-drawing-expected.png: Added.
        * platform/mac/compositing/shadows/shadow-drawing-expected.txt: Added.

2010-01-13  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Update Qt slave result after last SVG commit.

        * platform/qt/svg/css/clippath-with-shadow-expected.txt:

2010-01-13  Nikolas Zimmermann  <nzimmermann@rim.com>

        Reviewed by Oliver Hunt.

        SVGClipPathElement shouldn't resolve style manually
        https://bugs.webkit.org/show_bug.cgi?id=33647

        Update baseline after introducing renderers for SVGClipPathElement.

        * platform/mac/svg/W3C-SVG-1.1/masking-intro-01-f-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/masking-path-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/masking-path-02-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/masking-path-04-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/masking-path-05-f-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/painting-marker-02-f-expected.txt:
        * platform/mac/svg/batik/text/textEffect2-expected.txt:
        * platform/mac/svg/batik/text/textProperties-expected.txt:
        * platform/mac/svg/css/clippath-with-shadow-expected.txt:
        * platform/mac/svg/custom/clip-path-child-changes-expected.txt:
        * platform/mac/svg/custom/clip-path-display-none-child-expected.txt:
        * platform/mac/svg/custom/clip-path-href-changes-expected.txt:
        * platform/mac/svg/custom/clip-path-referencing-use-expected.txt:
        * platform/mac/svg/custom/clip-path-referencing-use2-expected.txt:
        * platform/mac/svg/custom/clip-path-units-changes-expected.txt:
        * platform/mac/svg/custom/clip-path-with-transform-expected.txt:
        * platform/mac/svg/custom/empty-clip-path-expected.txt:
        * platform/mac/svg/custom/focus-ring-expected.txt:
        * platform/mac/svg/custom/image-with-transform-clip-filter-expected.txt:
        * platform/mac/svg/custom/invalid-css-expected.txt:
        * platform/mac/svg/custom/js-late-clipPath-and-object-creation-expected.txt:
        * platform/mac/svg/custom/js-late-clipPath-creation-expected.txt:
        * platform/mac/svg/custom/recursive-clippath-expected.txt:
        * platform/mac/svg/custom/resource-invalidate-on-target-update-expected.txt:
        * platform/mac/svg/custom/text-clip-expected.txt:
        * platform/mac/svg/custom/visibility-override-clip-expected.txt:
        * platform/mac/svg/filters/filter-clip-expected.txt:
        * svg/custom/use-clipped-transform-expected.txt:

2010-01-13  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Remove six old tiger specific results, that are equal to the SL baseline now. Update one result, showing a marginal difference between Tiger/SL.
        This is a follow-up commit for Dirks strokeBoundingBox() fixes -> should turn Tiger slave green again.

        * platform/mac-tiger/svg/W3C-SVG-1.1/animate-elem-06-t-expected.checksum: Removed.
        * platform/mac-tiger/svg/W3C-SVG-1.1/animate-elem-06-t-expected.png: Removed.
        * platform/mac-tiger/svg/W3C-SVG-1.1/animate-elem-06-t-expected.txt: Removed.
        * platform/mac-tiger/svg/W3C-SVG-1.1/animate-elem-07-t-expected.checksum: Removed.
        * platform/mac-tiger/svg/W3C-SVG-1.1/animate-elem-07-t-expected.png: Removed.
        * platform/mac-tiger/svg/W3C-SVG-1.1/animate-elem-07-t-expected.txt: Removed.
        * platform/mac-tiger/svg/W3C-SVG-1.1/metadata-example-01-b-expected.txt:
        * platform/mac-tiger/svg/W3C-SVG-1.1/paths-data-01-t-expected.checksum: Removed.
        * platform/mac-tiger/svg/W3C-SVG-1.1/paths-data-01-t-expected.png: Removed.
        * platform/mac-tiger/svg/W3C-SVG-1.1/paths-data-01-t-expected.txt: Removed.
        * platform/mac-tiger/svg/W3C-SVG-1.1/text-path-01-b-expected.checksum: Removed.
        * platform/mac-tiger/svg/W3C-SVG-1.1/text-path-01-b-expected.png: Removed.
        * platform/mac-tiger/svg/W3C-SVG-1.1/text-path-01-b-expected.txt: Removed.
        * platform/mac-tiger/svg/custom/control-points-for-S-and-T-expected.checksum: Removed.
        * platform/mac-tiger/svg/custom/control-points-for-S-and-T-expected.png: Removed.
        * platform/mac-tiger/svg/custom/control-points-for-S-and-T-expected.txt: Removed.
        * platform/mac-tiger/svg/text/text-path-01-b-expected.checksum: Removed.
        * platform/mac-tiger/svg/text/text-path-01-b-expected.png: Removed.
        * platform/mac-tiger/svg/text/text-path-01-b-expected.txt: Removed.

2010-01-13  Nikolas Zimmermann  <nzimmermann@rim.com>

        Reviewed by Oliver Hunt.

        Window size changes are not propagated down the render tree
        https://bugs.webkit.org/show_bug.cgi?id=33643

        Add svg/custom/relative-sized-content.xhtml, verifying that we're reacting on window size changes.
        Testcase realized by putting svg content in an absolute sized <div> and resizing that dynamically.
        The same code path is used when propagating window size changes - we can not test that directly.

        * platform/mac/svg/custom/relative-sized-content-expected.checksum: Added.
        * platform/mac/svg/custom/relative-sized-content-expected.png: Added.
        * platform/mac/svg/custom/relative-sized-content-expected.txt: Added.
        * svg/custom/relative-sized-content.xhtml: Added.
        * svg/custom/use-clipped-hit.svg: Small change to avoid a timing dependency.

2010-01-13  Fumitoshi Ukai  <ukai@chromium.org>

        Unreviewed.

        Enable websocket/tests/workers/worker-simple.html again.

        * platform/mac/Skipped: rm websocket/tests/workers/worker-simple.html

2010-01-13  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=33641
        Assertion failure in Lexer.cpp if input stream ends while in string escape

        * fast/js/end-in-string-escape-expected.txt: Added.
        * fast/js/end-in-string-escape.html: Added.
        * fast/js/script-tests/end-in-string-escape.js: Added.

2010-01-13  Jon Honeycutt  <jhoneycutt@apple.com>

        MSAA: selected, selectable, extended selectable, and multiple
        selectable states are not reported

        https://bugs.webkit.org/show_bug.cgi?id=33574
        <rdar://problem/7536826>

        Reviewed by Darin Adler.

        * accessibility/selection-states-expected.txt: Added.

        * accessibility/selection-states.html: Added.

        * platform/gtk/Skipped:
        Add new test to skipped list due to stubbed AccessibilityUIElement
        functions.

        * platform/mac/Skipped:
        Ditto.

2010-01-13  Dumitru Daniliuc  <dumi@chromium.org>

        Reviewed by Dimitri Glazkov.

        Cleaning up quota-tracking.html. Removing trailing whitespaces and
        fixing the errorFunction() to work correctly with both
        transaction() and executeSql().

        https://bugs.webkit.org/show_bug.cgi?id=33628

        * storage/quota-tracking.html:

2010-01-13  Dirk Schulze  <krit@webkit.org>

        Reviewed by Beth Dakin.

        Repaint bug dragging a star shape with a dash stroke
        https://bugs.webkit.org/show_bug.cgi?id=33406

        Calculation of repaint rects for RenderPath objects was fixed. We take the
        union of strokeBoundingBox and objectBoundingBox. Since DRT results depend
        on the repaint rect, many results needed an update.
        Added a new test, that makes the wrong calculation visible.
            * js-repaint-rect-on-path-with-stroke.svg

        * platform/mac/fast/repaint/moving-shadow-on-container-expected.checksum
        * platform/mac/fast/repaint/moving-shadow-on-container-expected.txt
        * platform/mac/fast/repaint/moving-shadow-on-path-expected.checksum
        * platform/mac/fast/repaint/moving-shadow-on-path-expected.txt
        * platform/mac/svg/W3C-SVG-1.1/animate-elem-06-t-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/animate-elem-07-t-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/animate-elem-08-t-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/animate-elem-83-t-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/metadata-example-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/paths-data-01-t-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/paths-data-02-t-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/paths-data-03-f-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/paths-data-12-t-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/text-path-01-b-expected.txt:
        * platform/mac/svg/batik/text/textGlyphOrientationHorizontal-expected.txt:
        * platform/mac/svg/batik/text/textOnPath-expected.txt:
        * platform/mac/svg/batik/text/textOnPathSpaces-expected.txt:
        * platform/mac/svg/batik/text/verticalText-expected.txt:
        * platform/mac/svg/batik/text/verticalTextOnPath-expected.txt:
        * platform/mac/svg/css/composite-shadow-example-expected.txt:
        * platform/mac/svg/css/composite-shadow-with-opacity-expected.txt:
        * platform/mac/svg/custom/animate-path-morphing-expected.txt:
        * platform/mac/svg/custom/control-points-for-S-and-T-expected.txt:
        * platform/mac/svg/custom/dasharrayOrigin-expected.txt:
        * platform/mac/svg/custom/js-repaint-rect-on-path-with-stroke-expected.checksum: Added.
        * platform/mac/svg/custom/js-repaint-rect-on-path-with-stroke-expected.png: Added.
        * platform/mac/svg/custom/js-repaint-rect-on-path-with-stroke-expected.txt: Added.
        * platform/mac/svg/custom/path-textPath-simulation-expected.txt:
        * platform/mac/svg/text/text-path-01-b-expected.txt:
        * svg/custom/js-repaint-rect-on-path-with-stroke.svg: Added.

2010-01-13  Brian Weinstein  <bweinstein@apple.com>

        Reviewed by Adam Roben.

        REGRESSION (r49268): DHTML drag not allowed unless event.dataTransfer.effectAllowed 
        is set (differs from HTML5).
        Fixes <https://bugs.webkit.org/show_bug.cgi?id=33607> and <rdar://7507114>.
        
        Updated the drag and drop test to test if effectAllowed isn't set, in addition
        to its other tests.

        * fast/events/drag-and-drop-expected.txt:
        * fast/events/drag-and-drop.html:

2010-01-13  Dirk Schulze  <krit@webkit.org>

        Reviewed by Beth Dakin.

        This tests don't pass on Leopard but on Snow Leopard with tolereance of 0.
        Created Leopard specific pixel test results since they do not fail.

        * platform/mac-leopard/svg/css: Added.
        * platform/mac-leopard/svg/css/composite-shadow-example-expected.checksum: Added.
        * platform/mac-leopard/svg/css/composite-shadow-example-expected.png: Added.
        * platform/mac-leopard/svg/css/group-with-shadow-expected.checksum: Added.
        * platform/mac-leopard/svg/css/group-with-shadow-expected.png: Added.

2010-01-13  Dirk Schulze  <krit@webkit.org>

        Reviewed by Beth Dakin.

        Add tests to check filter, mask, clip, opacity and marker ordering
        https://bugs.webkit.org/show_bug.cgi?id=14010

        This is a follow up. The order of filter and clipping was changes in bug 14010
        according to the Spec. Forgot to update this test.

        * platform/mac/svg/custom/image-with-transform-clip-filter-expected.checksum:
        * platform/mac/svg/custom/image-with-transform-clip-filter-expected.png:

2010-01-13  Dirk Schulze  <krit@webkit.org>

        Reviewed by Beth Dakin.

        Speed-up SVG Masking
        https://bugs.webkit.org/show_bug.cgi?id=32738

        This is a followup. The way how masks are created changed and caused
        some results to update. Forgot to update this one.

        * platform/mac/svg/custom/grayscale-gradient-mask-expected.checksum:
        * platform/mac/svg/custom/grayscale-gradient-mask-expected.png:

2010-01-13  Fumitoshi Ukai  <ukai@chromium.org>

        Unreviewed.

        Add websocket/tests/workers/worker-simple.html, because it starts
        crash after r53174

        * platform/mac/Skipped: Add websocket/tests/workers/worker-simple.html

2010-01-12  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by Darin Adler.

        Add a test of WebSockets for shared workers
        https://bugs.webkit.org/show_bug.cgi?id=33285

        * websocket/tests/workers/resources/worker-simple.js:
        * websocket/tests/workers/shared-worker-simple-expected.txt: Added.
        * websocket/tests/workers/shared-worker-simple.html: Added.

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

        Reviewed by Dan Bernstein.

        position:fixed and transform on same element breaks fixed behavior
        https://bugs.webkit.org/show_bug.cgi?id=31283

        Test for transforms combined with fixed positioning.

        * platform/mac/transforms/2d/transform-fixed-container-expected.checksum: Added.
        * platform/mac/transforms/2d/transform-fixed-container-expected.png: Added.
        * platform/mac/transforms/2d/transform-fixed-container-expected.txt: Added.
        * transforms/2d/transform-fixed-container.html: Added.

2010-01-12  Dumitru Daniliuc  <dumi@chromium.org>

        Reviewed by Adam Barth.

        Replacing RANDOMBLOB with ZEROBLOB, as RANDOMBLOB will soon be
        disallowed by the authorizer.

        https://bugs.webkit.org/show_bug.cgi?id=33396

        * storage/quota-tracking.html:

2010-01-12  Kent Hansen  <kent.hansen@nokia.com>

        Reviewed by Geoffrey Garen.

        [ES5] Implement Object.getOwnPropertyNames
        https://bugs.webkit.org/show_bug.cgi?id=32242

        Add tests for Object.getOwnPropertyNames(o), both standard usage and cross origin.

        * fast/js/Object-getOwnPropertyNames-expected.txt: Added.
        * fast/js/Object-getOwnPropertyNames.html: Added.
        * fast/js/script-tests/Object-getOwnPropertyNames.js: Added.
        * http/tests/security/cross-frame-access-enumeration-expected.txt:
        * http/tests/security/cross-frame-access-enumeration.html:

2010-01-12  Brian Weinstein  <bweinstein@apple.com>

        Add correct expected results after r53168 for GTK and Qt.

        * platform/gtk/fast/block: Added.
        * platform/gtk/fast/block/positioning: Added.
        * platform/gtk/fast/block/positioning/absolute-positioning-no-scrollbar-expected.txt: Added.
        * platform/qt/fast/block/positioning/absolute-positioning-no-scrollbar-expected.txt: Added.

2010-01-12  Brian Weinstein  <bweinstein@apple.com>

        Reviewed by Dave Hyatt.

        Safari shows an unneeded horizontal scrollbar on many websites.
        Fixes <rdar://6321041> and <http://webkit.org/b/33555>.
        
        Added a test that shows no scrollbar in the case where a div has no children
        and either a width or height of 0. Also updated results for a few tests which
        this patch causes progressions for.

        * fast/block/positioning/absolute-positioning-no-scrollbar-expected.txt: Added.
        * fast/block/positioning/absolute-positioning-no-scrollbar.html: Added.
        * fast/block/positioning/fixed-positioning-scrollbar-bug.html:
        * platform/mac/fast/backgrounds/repeat/negative-offset-repeat-transformed-expected.txt:
        * platform/mac/fast/block/positioning/fixed-positioning-scrollbar-bug-expected.txt:

2010-01-12  Beth Dakin  <bdakin@apple.com>

        Reviewed by Sam Weinig.

        Test for https://bugs.webkit.org/show_bug.cgi?id=33550 REGRESSION: 
        -webkit-svg-shadow with opacity still over-clipped

        * platform/mac/svg/css/shadow-and-opacity-expected.checksum: Added.
        * platform/mac/svg/css/shadow-and-opacity-expected.png: Added.
        * platform/mac/svg/css/shadow-and-opacity-expected.txt: Added.
        * svg/css/shadow-and-opacity.svg: Added.

2010-01-11  Jon Honeycutt  <jhoneycutt@apple.com>

        MSAA: Accessibility role of <select multiple> elements is wrong

        https://bugs.webkit.org/show_bug.cgi?id=33522

        Reviewed by Darin Adler.

        * platform/win/accessibility/multiple-select-element-role-expected.txt: Added.
        * platform/win/accessibility/multiple-select-element-role.html: Added.

2010-01-12  Beth Dakin  <bdakin@apple.com>

        Reviewed by Nikolas Zimmermann.

        Updated results for these tests which just have rounding errors.

        * platform/mac/svg/css/composite-shadow-example-expected.checksum:
        * platform/mac/svg/css/composite-shadow-example-expected.png:
        * platform/mac/svg/css/mask-with-shadow-expected.checksum:
        * platform/mac/svg/css/mask-with-shadow-expected.png:

2010-01-12  Beth Dakin  <bdakin@apple.com>

        This patch changes the name of -webkit-shadow to -webkit-svg-shadow 
        to avoid giving a custom property an overly-general name.
        <rdar://problem/7534590>

        * fast/repaint/moving-shadow-on-container.html:
        * fast/repaint/moving-shadow-on-path.html:
        * platform/gtk/svg/css/getComputedStyle-basic-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * svg/css/arrow-with-shadow.svg:
        * svg/css/circle-in-mask-with-shadow.svg:
        * svg/css/clippath-with-shadow.svg:
        * svg/css/composite-shadow-example.html:
        * svg/css/composite-shadow-with-opacity.html:
        * svg/css/getComputedStyle-basic-expected.txt:
        * svg/css/group-with-shadow.svg:
        * svg/css/mask-with-shadow.svg:
        * svg/css/path-with-shadow.svg:
        * svg/css/shadow-with-large-radius.svg:
        * svg/css/shadow-with-negative-offset.svg:
        * svg/css/stars-with-shadow.html:
        * svg/filters/shadow-on-filter.svg:
        * svg/filters/shadow-on-rect-with-filter.svg:

2010-01-12  Eric Carlson  <eric.carlson@apple.com>

        Unreviewed, build fix.

        Add media/video-poster-scale.html to GTK skipped list, it needs platform specific 
        results (https://bugs.webkit.org/show_bug.cgi?id=33541). Fix test results on
        OSX and Windows.

        * media/video-poster-scale-expected.txt:
        * media/video-poster-scale.html:
        * platform/gtk/Skipped:

2010-01-12  Eric Carlson  <eric.carlson@apple.com>

        Unreviewed, build fix.

        Update test and results after r53146.

        * http/tests/security/local-video-poster-from-remote-expected.txt:
        * http/tests/security/local-video-poster-from-remote.html:

2010-01-12  Philippe Normand  <pnormand@igalia.com>

        Rubber-stamped by Gustavo Noronha Silva.

        [GTK] Failing media/video-seek-past-end-playing.html
        https://bugs.webkit.org/show_bug.cgi?id=33015

        * platform/gtk/Skipped: Skipping the test again, we need to kill
        its last timer.

2010-01-12  Philippe Normand  <pnormand@igalia.com>

        Reviewed by Eric Carlson.

        [GTK] Failing media/video-seek-past-end-playing.html
        https://bugs.webkit.org/show_bug.cgi?id=33015

        Listen on timeupdate event instead of waiting a fixed amount of
        time, which is prone to test flackyness.

        * media/audio-mpeg-supported.html:
        * media/video-seek-past-end-playing.html:
        * platform/gtk/Skipped:

2010-01-12  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Darin Adler and Simon Fraser.

        rdar://problem/5684062
        https://bugs.webkit.org/show_bug.cgi?id=23094
        Flash of white when switching from poster image to video playback
        
        https://bugs.webkit.org/show_bug.cgi?id=23140
        <video> poster should scale like a video frame

        * media/video-poster-expected.txt: Remove blank line at beginning of test result present
        as a side effect of the media element using RenderImage to display the poster.
        * media/video-poster-scale.html: New.
        * media/video-poster-scale-expected.txt: New.

2010-01-12  Tony Chang  <tony@chromium.org>

        Reviewed by Maciej Stachowiak.

        Add a test for a Chromium crash when loading multipart/x-mixed-replace
        data.

        https://bugs.webkit.org/show_bug.cgi?id=31446

        * http/tests/multipart/multipart-wait-before-boundary-expected.txt: Added.
        * http/tests/multipart/multipart-wait-before-boundary.html: Added.
        * http/tests/multipart/resources/multipart-wait-before-boundary.php: Added.

2010-01-12  Petri Latvala  <petri.latvala@nomovok.com>

        Reviewed by Antti Koivisto.

        fast/events/touch-coords-in-zoom-and-scroll-pretty-diff.html failed on buildbot
        https://bugs.webkit.org/show_bug.cgi?id=33465

        A touchmove event is not dispatched if none of the touch points actually moved.
        Changed the test to use touchstart instead.

        * fast/events/touch/touch-coords-in-zoom-and-scroll.html:
        * platform/qt/Skipped:

2010-01-12  Eric Seidel  <eric@webkit.org>

        Reviewed by Gustavo Noronha Silva.

        [GTK] Threading problems with some of the tests
        https://bugs.webkit.org/show_bug.cgi?id=30814

        Skip another test which is hitting the SQLiteDatabase::sqliteHandle() threading ASSERT.

        * platform/gtk/Skipped:

2010-01-12  Csaba Osztrogonác  <ossy@webkit.org>

        Reviewed by Simon Hausmann.

        Touch event layout tests should be in their own subdirectory, so that they can be easily skipped
        https://bugs.webkit.org/show_bug.cgi?id=33526

        Tests moved from fast/events to fast/events/touch by r53125,
        relative resource paths should be adjuted to the new location.

        * fast/events/touch/basic-touch-events.html: relative paths fixed.
        * fast/events/touch/touch-coords-in-zoom-and-scroll.html: relative paths fixed.

2010-01-12  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        media/video-error-does-not-exist.html failed on Snow Leopard Release Bot
        https://bugs.webkit.org/show_bug.cgi?id=33434

        Add another media test to the skipped list.
        I expect these are all timing out for the same reason.
        We just don't know the reason yet.

        * platform/mac-snowleopard/Skipped:

2010-01-12  Jakub Wieczorek  <faw217@gmail.com>

        Reviewed by Adam Barth.

        [Qt] XSL stylesheets can load documents from a different origin

        https://bugs.webkit.org/show_bug.cgi?id=33423

        Add two expected results for Qt:
        QXmlQuery has a different behaviour with regard to loading failures
        comparing to libxslt.

        * platform/qt/http/tests/security/xss-DENIED-xsl-document-expected.txt:
        * platform/qt/http/tests/security/xss-DENIED-xsl-document-redirect-expected.txt:

2010-01-12  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Adam Barth.

        Touch event layout tests should be in their own subdirectory, so that they can be easily skipped
        https://bugs.webkit.org/show_bug.cgi?id=33526

        * fast/events/touch/basic-touch-events-expected.txt: Renamed from LayoutTests/fast/events/basic-touch-events-expected.txt.
        * fast/events/touch/basic-touch-events.html: Renamed from LayoutTests/fast/events/basic-touch-events.html.
        * fast/events/touch/touch-coords-in-zoom-and-scroll-expected.txt: Renamed from LayoutTests/fast/events/touch-coords-in-zoom-and-scroll-expected.txt.
        * fast/events/touch/touch-coords-in-zoom-and-scroll.html: Renamed from LayoutTests/fast/events/touch-coords-in-zoom-and-scroll.html.
        * platform/gtk/Skipped:
        * platform/mac/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:

2010-01-11  Kent Tamura  <tkent@chromium.org>

        Unreviewd. Remove a duplicated line in an expectation file.

        * platform/mac-leopard/fast/text/find-kana-expected.txt:

2010-01-11  Darin Adler  <darin@apple.com>

        Try to get find-kana tests passing on Qt, Leopard, and Tiger.

        * platform/mac-leopard/fast/text/find-kana-expected.txt: Expect more failures.
        * platform/qt/fast/text/find-kana-expected.txt: Ditto.

2010-01-11  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        Fix handling of unusual kana sequences in search
        https://bugs.webkit.org/show_bug.cgi?id=33506

        * fast/text/find-kana-expected.txt: Updated.
        * fast/text/script-tests/find-kana.js: Added new tests for sequences
        that do not have composed equivalents. This is needed to test the code
        that compares voice marks. The old test cases didn't cover the combining
        character code path because normalizing to NFC combined all the sequences.
        * platform/mac-leopard/fast/text/find-kana-expected.txt: Updated.
        * platform/qt/fast/text/find-kana-expected.txt: Updated.

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

        Reviewed by Kevin Decker.

        https://bugs.webkit.org/show_bug.cgi?id=33455
        Allows plugins to participate in accelerated compositing
        
        Change the testcase to make the embeds position: relative so that the behavior
        of the test is not affected by whether WebCore decides to put plugins into
        RenderLayers.

        * platform/mac/plugins/embed-attributes-style-expected.checksum:
        * platform/mac/plugins/embed-attributes-style-expected.png:
        * platform/mac/plugins/embed-attributes-style-expected.txt:
        * plugins/embed-attributes-style.html:

2010-01-11  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        SVG radialGradient example radial-gradient-with-outstanding-focalPoint.svg fails
        https://bugs.webkit.org/show_bug.cgi?id=32201

        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-13-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-13-b-expected.png:
        * platform/mac/svg/custom/radial-gradient-with-outstanding-focalPoint-expected.checksum:
        * platform/mac/svg/custom/radial-gradient-with-outstanding-focalPoint-expected.png:

2010-01-11  Beth Dakin  <bdakin@apple.com>

        Reviewed by Oliver Hunt.
        
        New tests for https://bugs.webkit.org/show_bug.cgi?id=33491 
        REGRESSION: Many SVG -webkit-shadow tests are currently failing (in 
        the pixel tests)
        -and-
        <rdar://problem/7501200>

        I would like to note that this change fixes some existing layout 
        tests as well.

        * platform/mac/svg/css/shadow-with-large-radius-expected.checksum: Added.
        * platform/mac/svg/css/shadow-with-large-radius-expected.png: Added.
        * platform/mac/svg/css/shadow-with-large-radius-expected.txt: Added.
        * platform/mac/svg/css/shadow-with-negative-offset-expected.checksum: Added.
        * platform/mac/svg/css/shadow-with-negative-offset-expected.png: Added.
        * platform/mac/svg/css/shadow-with-negative-offset-expected.txt: Added.
        * platform/mac/svg/css/stars-with-shadow-expected.checksum:
        * platform/mac/svg/css/stars-with-shadow-expected.png:
        * svg/css/shadow-with-large-radius.svg: Added.
        * svg/css/shadow-with-negative-offset.svg: Added.


2010-01-11  Eric Seidel  <eric@webkit.org>

        Rubber-stamped by Csaba Osztrogonac.

        Web Inspector: External resource relative URLs cannot be navigated to from the Elements panel
        https://bugs.webkit.org/show_bug.cgi?id=33024

        * platform/qt/Skipped: Skip this new test, Qt's DRT doesn't support evaluateInWebInspector()

2010-01-11  Enrica Casucci  <enrica@apple.com>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=33411
        
        Missing updated test result for gtk.

        * platform/gtk/editing/deleting/5115601-expected.txt:

2010-01-11  Alexander Pavlov  <apavlov@chromium.org>

        Reviewed by Pavel Feldman.

        Rewrite relative URLs in the ElementsTreeOutline to make them navigable

        Targets for "src" and "href" attribute values in the Elements outline tree
        are rewritten to full URLs whenever possible.
        https://bugs.webkit.org/show_bug.cgi?id=33024

        * inspector/elements-panel-rewrite-href-expected.txt: Added.
        * inspector/elements-panel-rewrite-href.html: Added.

2010-01-11  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed trivial fix.

        fast/text/international/japanese-kana-letters.html 
        removed by r53078, so it should be removed from skiplist.

        * platform/qt/Skipped: fast/text/international/japanese-kana-letters.html removed.

2010-01-11  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Simon Fraser.

        Deflake transitions and animations tests.
        https://bugs.webkit.org/show_bug.cgi?id=30029
        
        The transition-end-event tests all had arbitrary timeouts. Give a consistent
        timeout to all of them. Give a generous 1 second of buffer to avoid any possibility
        of flakiness. If all the transitionEnd events fire before then, the test still
        completes without waiting for the timeout.

        * animations/change-keyframes.html:
        Increase the wiggle room. It's infrequently flaky now, but it is still
        a tad bit flaky without this extra wiggle room.
        * transitions/repeated-firing-background-color.html:
        Remove a gratuitous setTimeout.
        * transitions/transition-end-event-all-properties.html:
        * transitions/transition-end-event-attributes.html:
        * transitions/transition-end-event-container.html:
        * transitions/transition-end-event-helpers.js:
        (runTransitionTest.startTest):
        (runTransitionTest):
        * transitions/transition-end-event-left.html:
        * transitions/transition-end-event-multiple-01.html:
        * transitions/transition-end-event-multiple-02.html:
        * transitions/transition-end-event-multiple-03.html:
        * transitions/transition-end-event-multiple-04.html:
        * transitions/transition-end-event-nested.html:
        * transitions/transition-end-event-set-none.html:
        * transitions/transition-end-event-transform.html:
        * transitions/transition-end-event-window.html:
        * transitions/zero-duration-with-non-zero-delay-end.html:

2010-01-11  Darin Adler  <darin@apple.com>

        Try to get find-kana and find-russian tests passing on Qt.

        * platform/qt/fast/text/find-kana-expected.txt: Copied from fast/text/find-kana-expected.txt.
        * platform/qt/fast/text/find-russian-expected.txt: Copied from fast/text/find-russian-expected.txt.
        Changed to expect failures because text searching does not use
        ICU's usearch on this platform, and the non-usearch code is much
        less capable.

2010-01-11  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Sam Weinig.

        https://bugs.webkit.org/show_bug.cgi?id=33482
        Add a test for Russian text search

        * fast/text/find-russian-expected.txt: Added.
        * fast/text/find-russian.html: Added.
        * fast/text/script-tests/find-russian.js: Added.

2010-01-11  Darin Adler  <darin@apple.com>

        Try to get find-kana test passing on Tiger and Leopard.

        * platform/mac-leopard/fast/text/find-kana-expected.txt: Copied from fast/text/find-kana-expected.txt.
        Changed to expect failures due to an older version of ICU on those platforms.

2010-01-11  Brian Weinstein  <bweinstein@apple.com>

        Updated Windows expected results after r53085.

        * platform/win/editing/selection/mixed-editability-10-expected.txt:

2010-01-11  Nikolas Zimmermann  <nzimmermann@rim.com>

        Reviewed by Adam Roben & Dirk Schulze.

        svg <text> fails to update when setting x/y
        https://bugs.webkit.org/show_bug.cgi?id=22384

        Add simple tests covering SVGLengthList & SVGNumberList updates.

        * platform/mac/svg/custom/text-xy-updates-SVGList-expected.checksum: Added.
        * platform/mac/svg/custom/text-xy-updates-SVGList-expected.png: Added.
        * platform/mac/svg/custom/text-xy-updates-SVGList-expected.txt: Added.
        * svg/custom/text-xy-updates-SVGList.xhtml: Added.
        * svg/dynamic-updates/SVGTextElement-svgdom-rotate-prop-expected.txt: Added.
        * svg/dynamic-updates/SVGTextElement-svgdom-rotate-prop.html: Added.
        * svg/dynamic-updates/script-tests/SVGTextElement-svgdom-rotate-prop.js: Added.
        (executeTest):

2010-01-08  Enrica Casucci  <enrica@apple.com>

        Reviewed by Darin Adler.

        Cannot focus on an empty editable span in a non editable div.
        https://bugs.webkit.org/show_bug.cgi?id=33411
        <rdar://problem/5982901>

        * editing/deleting/6026335-expected.txt: Updated to reflect the lack of extra break element.
        * editing/selection/mixed-editability-10-expected.txt: Updated to cover the new case.
        * editing/selection/mixed-editability-10.html: Updated to cover the new case.
        * platform/mac/editing/deleting/5115601-expected.txt: Updated to reflect the lack of extra break element.

2010-01-08  Nate Chapin  <japhet@chromium.org>

        Reviewed by Dimitri Glazkov.

        Test that document.referrer is properly preserved through a redirect.

        https://bugs.webkit.org/show_bug.cgi?id=33407

        * http/tests/navigation/redirect-preserves-referrer-expected.txt: Added.
        * http/tests/navigation/redirect-preserves-referrer.html: Added.
        * http/tests/navigation/resources/redirect-to-referrer-check.pl: Added.
        * http/tests/navigation/resources/referrer.html: Added.

2010-01-10  Darin Adler  <darin@apple.com>

        Reviewed by Alexey Proskuryakov.

        REGRESSION: Japanese text search ignores small vs. large and voicing mark differences
        https://bugs.webkit.org/show_bug.cgi?id=30437
        rdar://problem/7214058

        * fast/text/international/japanese-kana-letters-expected.txt: Removed.
        * fast/text/international/japanese-kana-letters.html: Removed.

        * fast/text/find-kana-expected.txt: Added.
        * fast/text/find-kana.html: Added.
        * fast/text/script-tests/find-kana.js: Added.
        This includes all the tests that were in the old test removed above, with three
        differences:
            1) Moved out of "international" directory because Mitz wants to phase that
               directory out.
            2) Added more tests to cover more cases involving things like decomposed
               characters and different voice marks.
            3) Used script-tests, so results list passing tests as well as failing tests.
        We could still test even more, but this should at least cover all the lines of
        code in the current bug fix patch.

2010-01-11  Andras Becsi  <abecsi@inf.u-szeged.hu>

        Rubber-stamped by Holger Hans Peter Freyther.

        [Qt] Add expected files for the following passing new tests.
        Compared to the mac expected files these only differ in svg dumping style and font metrics.

        * platform/qt/fast/repaint/block-no-inflow-children-expected.txt: Added.
        * platform/qt/fast/repaint/subtree-layoutstate-transform-expected.txt: Added.
        * platform/qt/svg/custom/marker-referencePoint-expected.txt: Added.
        * platform/qt/svg/custom/marker-strokeWidth-changes-expected.txt: Added.
        * platform/qt/svg/text/selection-background-color-expected.txt: Added.

2010-01-11  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed typo fix.

        * platform/qt/Skipped:

2010-01-11  Csaba Osztrogonác  <ossy@webkit.org>

        Rubber-stamped by Simon Hausmann.

        [Qt] fast/events/touch-coords-in-zoom-and-scroll.html fails on buildbot
        https://bugs.webkit.org/show_bug.cgi?id=33465

        * platform/qt/Skipped: fast/events/touch-coords-in-zoom-and-scroll.html skipped.

2010-01-11  Nikolas Zimmermann  <nzimmermann@rim.com>

        Rubber-stamped by Dirk Schulze.

        Update SVG test baseline, after the SVG text painting changes, a while ago.
        The differences are all below <0.1%, and only show up when running with --tolerance 0.

        * platform/mac/svg/W3C-SVG-1.1/text-deco-01-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/text-deco-01-b-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/text-path-01-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/text-path-01-b-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/text-text-03-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/text-text-03-b-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/text-text-07-t-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/text-text-07-t-expected.png:
        * platform/mac/svg/batik/text/textDecoration2-expected.checksum:
        * platform/mac/svg/batik/text/textDecoration2-expected.png:
        * platform/mac/svg/batik/text/textEffect3-expected.checksum:
        * platform/mac/svg/batik/text/textEffect3-expected.png:
        * platform/mac/svg/batik/text/textFeatures-expected.checksum:
        * platform/mac/svg/batik/text/textFeatures-expected.png:
        * platform/mac/svg/batik/text/textGlyphOrientationHorizontal-expected.checksum:
        * platform/mac/svg/batik/text/textGlyphOrientationHorizontal-expected.png:
        * platform/mac/svg/batik/text/textOnPathSpaces-expected.checksum:
        * platform/mac/svg/batik/text/textOnPathSpaces-expected.png:
        * platform/mac/svg/batik/text/textProperties-expected.checksum:
        * platform/mac/svg/batik/text/textProperties-expected.png:
        * platform/mac/svg/batik/text/textStyles-expected.checksum:
        * platform/mac/svg/batik/text/textStyles-expected.png:
        * platform/mac/svg/batik/text/verticalText-expected.checksum:
        * platform/mac/svg/batik/text/verticalText-expected.png:
        * platform/mac/svg/batik/text/verticalTextOnPath-expected.checksum:
        * platform/mac/svg/batik/text/verticalTextOnPath-expected.png:
        * platform/mac/svg/text/selection-background-color-expected.checksum:
        * platform/mac/svg/text/selection-background-color-expected.png:
        * platform/mac/svg/text/text-align-04-b-expected.checksum:
        * platform/mac/svg/text/text-align-04-b-expected.png:
        * platform/mac/svg/text/text-deco-01-b-expected.checksum:
        * platform/mac/svg/text/text-deco-01-b-expected.png:
        * platform/mac/svg/text/text-path-01-b-expected.checksum:
        * platform/mac/svg/text/text-path-01-b-expected.png:
        * platform/mac/svg/text/text-text-01-b-expected.checksum:
        * platform/mac/svg/text/text-text-01-b-expected.png:
        * platform/mac/svg/text/text-text-03-b-expected.checksum:
        * platform/mac/svg/text/text-text-03-b-expected.png:
        * platform/mac/svg/text/text-text-04-t-expected.checksum:
        * platform/mac/svg/text/text-text-04-t-expected.png:
        * platform/mac/svg/text/text-text-07-t-expected.checksum:
        * platform/mac/svg/text/text-text-07-t-expected.png:
        * platform/mac/svg/text/text-text-08-b-expected.checksum:
        * platform/mac/svg/text/text-text-08-b-expected.png:

2010-01-11  Kim Grönholm  <kim.gronholm@nomovok.com>

        Reviewed by Antti Koivisto.

        Touchevent coordinates are incorrect after page zoom and page scroll
        https://bugs.webkit.org/show_bug.cgi?id=32899

        * fast/events/touch-coords-in-zoom-and-scroll-expected.txt: Added.
        * fast/events/touch-coords-in-zoom-and-scroll.html: Added.
        * platform/gtk/Skipped:
        * platform/mac/Skipped:
        * platform/win/Skipped:

2010-01-11  Tony Chang  <tony@chromium.org>

        Reviewed by Eric Seidel.

        Have "Paste and Match Style" fire the dom paste event.
        https://bugs.webkit.org/show_bug.cgi?id=30639

        * editing/execCommand/paste-and-match-style-event.html: Added.

2010-01-10  Daniel Bates  <dbates@webkit.org>

        Unreviewed, fix typo.
        
        Fixed typo in test LayoutTests/fast/events/frame-programmatic-focus.html.
        The word "frame" should be "iframe" in the string "<input> in frame blurred"
        based on the context of the test. In particular, the line "<input> in iframe focused"
        and the use of an iframe in the test.

        * fast/events/frame-programmatic-focus-expected.txt: 
        * fast/events/frame-programmatic-focus.html:

2010-01-10  Daniel Bates  <dbates@webkit.org>

        Rubber-stamped by Eric Seidel.

        Adding XSSAuditor test http/tests/security/xssAuditor/malformed-HTML.html
        to the Qt Skipped file as it times out. We need to look into test further.
        See bug #33460 for more details.

        * platform/qt/Skipped:

2010-01-10  Kent Hansen  <kent.hansen@nokia.com>

        Reviewed by Darin Adler.

        RegExp.prototype.toString returns "//" for empty regular expressions
        https://bugs.webkit.org/show_bug.cgi?id=33319

        Add new test cases and adapt existing ones.

        * fast/js/kde/RegExp-expected.txt:
        * fast/js/kde/script-tests/RegExp.js:
        * fast/js/regexp-compile-expected.txt:
        * fast/js/script-tests/regexp-compile.js:
        * fast/regex/non-pattern-characters-expected.txt:

2010-01-10  Robert Hogan  <robert@roberthogan.net>

        Reviewed by Adam Barth.

        [Qt] Add enableXSSAuditor support to QWebSettings and DRT.

        https://bugs.webkit.org/show_bug.cgi?id=33419

        * platform/qt/Skipped:

2010-01-10  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        http/tests/messaging/cross-domain-message-event-dispatch.html failed on Gtk Linux 64-Bit Debug Bot
        https://bugs.webkit.org/show_bug.cgi?id=33458

        Fix flakey test.  If the machine is very slow, then more than 10ms
        might have elapsed between registering the timeout and calling
        postMessage.  We can't be sure which order they will be called in.
        Re-ordering the call guarantees the arrival order, even if it reduces
        our coverage slightly.

        * http/tests/messaging/cross-domain-message-event-dispatch.html:

2010-01-10  Adam Barth  <abarth@webkit.org>

        Reviewed by Darin Adler.

        Add defensive initialization of iframe sandbox flags
        https://bugs.webkit.org/show_bug.cgi?id=32368

        Test the mutating the allow-same-origin directive in the sandbox
        attribute does not affect the current document (but does affect the
        next document).

        * http/tests/security/resources/sandboxed-iframe-origin-add-step1.html: Added.
        * http/tests/security/resources/sandboxed-iframe-origin-add-step2.html: Added.
        * http/tests/security/resources/sandboxed-iframe-origin-remove-step1.html: Added.
        * http/tests/security/resources/sandboxed-iframe-origin-remove-step2.html: Added.
        * http/tests/security/sandboxed-iframe-origin-add-expected.txt: Added.
        * http/tests/security/sandboxed-iframe-origin-add.html: Added.
        * http/tests/security/sandboxed-iframe-origin-remove-expected.txt: Added.
        * http/tests/security/sandboxed-iframe-origin-remove.html: Added.

2010-01-10  Adam Barth  <abarth@webkit.org>

        Reviewed by Nikolas Zimmermann.

        http/tests/security/xss-DENIED-window-open-javascript-url.html timed out on Windows Debug Bot
        https://bugs.webkit.org/show_bug.cgi?id=33349

        Previously we were using JavaScript URLs to return to the main event
        loop, but that is potentially unreliable because there can be only one
        scheduled redirect in flight per frame.  Let's try using setTimeout
        instead.  Notice that there isn't a race condition here because the
        event loop will always dispatch the actions in the proper order.

        * http/tests/security/xss-DENIED-window-open-javascript-url.html:

2010-01-09  Daniel Bates  <dbates@webkit.org>

        No review, rolling out r53044.
        http://trac.webkit.org/changeset/53044
        https://bugs.webkit.org/show_bug.cgi?id=33419
        
        We need to look into this some more because the Qt
        bot is failing the XSSAuditor tests. See bug #33419
        for more details.

        * platform/qt/Skipped:

2010-01-09  Daniel Bates  <dbates@webkit.org>

        No review, rolling out r53045.
        http://trac.webkit.org/changeset/53045
        https://bugs.webkit.org/show_bug.cgi?id=33440

        This fix did not resolve the issue. That is, more XSSAuditor tests are
        failing on the Qt bot. So, we're going ultimately going to rollout the
        change committed in change set 53044 <http://trac.webkit.org/changeset/53044>,
        but we need to first rollout the attempted fix committed in change
        set 53045.

        * platform/qt/Skipped:

2010-01-09  Daniel Bates  <dbates@webkit.org>

        Rubber-stamped by Adam Barth.

        Adds failing XSSAuditor tests to the Qt Skipped file
        while we come up with a fix for them. See bug #33440
        for more details.

        * platform/qt/Skipped:

2010-01-09  Daniel Bates  <dbates@webkit.org>

        Reviewed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=33419

        Removes the XSSAuditor tests from the Qt Skipped file since
        we now can run these tests.

        * platform/qt/Skipped:

2010-01-09  Dan Bernstein  <mitz@apple.com>

        Reviewed by Nikolas Zimmermann.

        <rdar://problem/7525778> Font fallback kills SVG kerning
        https://bugs.webkit.org/show_bug.cgi?id=33400

        * platform/mac/fast/text/sticky-typesetting-features-expected.checksum: Added.
        * platform/mac/fast/text/sticky-typesetting-features-expected.png: Added.
        * platform/mac/fast/text/sticky-typesetting-features-expected.txt: Added.
        * platform/mac/fast/text/sticky-typesetting-features.html: Added.

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

        No review.
        
        Remove layout test that was committed by mistake.

        * compositing/webgl/webgl-blending.html: Removed.

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

        Reviewed by Dan Bernstein.

        WebGL canvas paints background color twice
        https://bugs.webkit.org/show_bug.cgi?id=33361
        
        New testcases for various kinds of "directly composited" elements: images, video, WebGL,
        with background colors.

        * compositing/images/direct-image-background-color.html: Added.
        * compositing/reflections/simple-composited-reflections.html: Added.
        * compositing/video/video-background-color.html: Added.
        * compositing/webgl/webgl-background-color.html: Added.
        * compositing/webgl/webgl-blending.html: Added.
        * platform/mac/compositing/images/direct-image-background-color-expected.txt: Added.
        * platform/mac/compositing/video/video-background-color-expected.txt: Added.
        * platform/mac/compositing/webgl/webgl-background-color-expected.txt: Added.

2010-01-08  Kenneth Russell  <kbr@google.com>

        Reviewed by Dimitri Glazkov.

        Passing array that is too large to set method of WebGLArrays does not throw an exception
        https://bugs.webkit.org/show_bug.cgi?id=33352

        Added needed range checks to JSC and V8 custom bindings. Expanded
        preexisting test suite for WebGLArrays and updated its expected
        results. Tested in WebKit and Chromium.

        * fast/canvas/webgl/array-set-out-of-bounds-expected.txt: Added.
        * fast/canvas/webgl/array-set-out-of-bounds.html: Added.
        * fast/canvas/webgl/array-unit-tests-expected.txt:
        * fast/canvas/webgl/array-unit-tests.html:

2010-01-08  Eric Seidel  <eric@webkit.org>

        Reviewed by Alexey Proskuryakov.

        http/tests/xmlhttprequest/logout.html failed on Tiger Bot
        https://bugs.webkit.org/show_bug.cgi?id=31412

        * platform/mac-tiger/Skipped: After talking with Alexey, we're just gonna skip the failing test on Tiger.

2010-01-08  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Dan Bernstein.

        https://bugs.webkit.org/show_bug.cgi?id=32962
        HTML tags are wrongfully parsed when setting innerHTML of a SCRIPT element

        * fast/dom/css-innerHTML-expected.txt: Added.
        * fast/dom/css-innerHTML.html: Added.
        * fast/dom/script-innerHTML-expected.txt: Added.
        * fast/dom/script-innerHTML-x-expected.txt: Added.
        * fast/dom/script-innerHTML-x.xhtml: Added.
        * fast/dom/script-innerHTML.html: Added.

2010-01-08  Dumitru Daniliuc  <dumi@chromium.org>

        Reviewed by Eric Seidel.

        Replacing all RANDOMBLOB calls with ZEROBLOB calls in preparation
        for denying RANDOMBLOB calls in HTML5 DB transactions.

        https://bugs.webkit.org/show_bug.cgi?id=33396

        * storage/open-database-while-transaction-in-progress.html:

2010-01-08  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=33279
        fast/websockets/websocket-event-target.html causes any test after it to fail

        * fast/websockets/script-tests/websocket-event-target.js: The test uses an HTTP server
        URL to create a WebSocket, so an error may be logged to console when detected (this is
        timing dependent).

        * platform/mac/Skipped: Removed the test from Skipped list.

2010-01-08  Beth Dakin  <bdakin@apple.com>

        Reviewed by Oliver Hunt.

        Tests for https://bugs.webkit.org/show_bug.cgi?id=32757 Repaint bug 
        with -webkit-shadow on svg shapes
        -and-
        <rdar://problem/7389149>

        * fast/repaint/moving-shadow-on-container.html: Added.
        * fast/repaint/moving-shadow-on-path.html: Added.
        * platform/mac/fast/repaint/moving-shadow-on-container-expected.checksum: Added.
        * platform/mac/fast/repaint/moving-shadow-on-container-expected.png: Added.
        * platform/mac/fast/repaint/moving-shadow-on-container-expected.txt: Added.
        * platform/mac/fast/repaint/moving-shadow-on-path-expected.checksum: Added.
        * platform/mac/fast/repaint/moving-shadow-on-path-expected.png: Added.
        * platform/mac/fast/repaint/moving-shadow-on-path-expected.txt: Added.

2010-01-08  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=32294
        http/tests/uri/escaped-entity.html affects the output of svg/W3C-SVG-1.1/filters-conv-01-f.svg

        Changed the test to not have any funky characters. Filed bug 33400 to track the underlying
        problem with kerning.

        * http/tests/uri/escaped-entity-expected.txt:
        * http/tests/uri/escaped-entity.html:
        * platform/mac/Skipped:

2010-01-08  James Robinson  <jamesr@chromium.org>

        Reviewed by Eric Seidel.

        New baselines to reflect the smaller repaint areas caused by r52839
        https://bugs.webkit.org/show_bug.cgi?id=33271

        * platform/mac/fast/repaint/background-misaligned-expected.checksum:
        * platform/mac/fast/repaint/background-misaligned-expected.png:
        * platform/mac/fast/repaint/block-selection-gap-in-composited-layer-expected.checksum:
        * platform/mac/fast/repaint/block-selection-gap-in-composited-layer-expected.png:
        * platform/mac/fast/repaint/float-in-new-block-with-layout-delta-expected.checksum:
        * platform/mac/fast/repaint/float-in-new-block-with-layout-delta-expected.png:
        * platform/mac/fast/repaint/float-new-in-block-expected.checksum:
        * platform/mac/fast/repaint/float-new-in-block-expected.png:
        * platform/mac/fast/repaint/line-flow-with-floats-1-expected.checksum:
        * platform/mac/fast/repaint/line-flow-with-floats-1-expected.png:
        * platform/mac/fast/repaint/selected-replaced-expected.checksum:
        * platform/mac/fast/repaint/selected-replaced-expected.png:
        * platform/mac/fast/repaint/transform-replaced-shadows-expected.checksum:
        * platform/mac/fast/repaint/transform-replaced-shadows-expected.png:

2010-01-08  Kenneth Russell  <kbr@google.com>

        Reviewed by Dimitri Glazkov.

        WebGLArray subclasses do the wrong conversion in indexSetter
        https://bugs.webkit.org/show_bug.cgi?id=33350

        * fast/canvas/webgl/array-setters-expected.txt: Added.
        * fast/canvas/webgl/array-setters.html: Added.
        * fast/canvas/webgl/array-unit-tests-expected.txt:
        * fast/canvas/webgl/array-unit-tests.html:

2010-01-08  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Darin Adler.

        transitions/cancel-transition.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=33398

        There's a race between the check() call and the final
        setTimeout. Just remove the final setTimeout and put
        its contents in the check call itself.

        * transitions/cancel-transition.html:

2010-01-08  Yuzo Fujishima  <yuzo@google.com>

        Reviewed by Darin Adler.

        Skip invalid blocks in CSS property declarations.
        https://bugs.webkit.org/show_bug.cgi?id=31231
        https://bugs.webkit.org/show_bug.cgi?id=26619

        This patch makes the CSS parser skip property declarations containing invalid blocks.

        * fast/css/parsing-error-recovery-expected.txt: Added.
        * fast/css/parsing-error-recovery.html: Added.

2010-01-08  Chris Marrin  <cmarrin@apple.com>

        Fixed media test failures caused by http://trac.webkit.org/changeset/52998.
        The media controller on Windows now has a full-screen button, which changes
        the layout and therefore the test results. I regenerated them for
        Windows.

        * platform/win/media/controls-after-reload-expected.txt:
        * platform/win/media/controls-drag-timebar-expected.txt:
        * platform/win/media/controls-strict-expected.txt:
        * platform/win/media/controls-styling-expected.txt:
        * platform/win/media/video-controls-rendering-expected.txt:
        * platform/win/media/video-display-toggle-expected.txt:
        * platform/win/media/video-no-audio-expected.txt:

2010-01-08  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Adam Roben.

        The Windows Release bots were having trouble with the xmlhttprequest tests, so
        they were skipped (r50280). They all currently pass on my machine, so unskipping them now.

        * platform/win/Skipped:

2010-01-08  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Beth Dakin.

        AX: CSS content not returned correctly in AX
        https://bugs.webkit.org/show_bug.cgi?id=33308

        * platform/mac/accessibility/css-content-attribute-expected.txt: Added.
        * platform/mac/accessibility/css-content-attribute.html: Added.

2010-01-06  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Eric Seidel.

        transitions/shorthand-border-transitions.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=33276

        Yet another transitions test that doesn't give consistent
        wiggle room. Make all the wiggle rooms account for >=200ms
        instead of some that were only giving 100ms wiggle room.

        * transitions/shorthand-border-transitions.html:

2010-01-08  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Eric Seidel.

        REGRESSION(52819?): AXLoadComplete and AXLayoutComplete causes 4 tests fail on Snow Leopard Debug bot
        https://bugs.webkit.org/show_bug.cgi?id=33300

        * platform/mac/Skipped:

2010-01-08  Csaba Osztrogonác  <ossy@webkit.org>

        Rubber-stamped by Kenneth Rohde Christiansen.

        r52976 revealed this failure by re-ordering tests.

        I do not have a Snow Leopard build to test with, so skipping this
        and filed bug https://bugs.webkit.org/show_bug.cgi?id=33372

        * platform/mac-snowleopard/Skipped: platform/mac/editing/input/devanagari-ligature.html skipped.

2010-01-08  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed trivial fix.

        LayoutTests/media/video-error-abort.html moved to LayoutTests/http/tests/media/video-error-abort.html
        by r52923, but wasn't renamed in this skiplist by this commit.

        * platform/win/Skipped:

2010-01-08  Csaba Osztrogonác  <ossy@webkit.org>

        Reviewed by Eric Seidel.

        r52976 revealed this failure by re-ordering tests.
        r52980 corrected the expected results file, but Windows still fails,
        presumably due to another test still affecting this one.

        I do not have a windows build to test with, so skipping this
        and filed bug https://bugs.webkit.org/show_bug.cgi?id=33374

        * platform/win/Skipped: svg/W3C-SVG-1.1/filters-conv-01-f.svg skipped.

2010-01-08  Alejandro G. Castro  <alex@igalia.com>

        Reviewed by Xan Lopez.

        [GTK] Threading problems with some of the tests
        https://bugs.webkit.org/show_bug.cgi?id=30814

        We are going to skip all the storage tests until we find the issue
        with the threading system in the gtk port.

        * platform/gtk/Skipped:

2010-01-08  Eric Seidel  <eric@webkit.org>

        No review, rolling out r52981.
        http://trac.webkit.org/changeset/52981
        https://bugs.webkit.org/show_bug.cgi?id=33319

        Caused two JS tests to start failing:
        ecma_2/RegExp/properties-001.js and js1_2/regexp/toString.js

        * fast/js/kde/RegExp-expected.txt:
        * fast/js/kde/script-tests/RegExp.js:
        * fast/js/regexp-compile-expected.txt:
        * fast/js/script-tests/regexp-compile.js:
        * fast/regex/non-pattern-characters-expected.txt:

2010-01-08  Eric Seidel  <eric@webkit.org>

        Reviewed by Tor Arne Vestbø.

        media/unsupported-tracks.html is failing on Snow Leopard Release bot
        https://bugs.webkit.org/show_bug.cgi?id=32339

        * platform/mac-snowleopard/Skipped: Add this to join a bunch of other skipped media tests which time out.

2010-01-08  Kent Hansen  <kent.hansen@nokia.com>

        Reviewed by Darin Adler.

        RegExp.prototype.toString returns "//" for empty regular expressions
        https://bugs.webkit.org/show_bug.cgi?id=33319

        Add new test cases and adapt existing ones.

        * fast/js/kde/RegExp-expected.txt:
        * fast/js/kde/script-tests/RegExp.js:
        * fast/js/script-tests/regexp-compile.js:
        * fast/regex/non-pattern-characters-expected.txt:

2010-01-08  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Hausmann.

        http/tests/uri/escaped-entity.html affects the output of svg/W3C-SVG-1.1/filters-conv-01-f.svg
        https://bugs.webkit.org/show_bug.cgi?id=32294

        * platform/mac/Skipped: Add http/tests/uri/escaped-entity.html to Skipped list since it affects later tests.
        * platform/mac/svg/W3C-SVG-1.1/filters-conv-01-f-expected.txt: Check in correct results.

2010-01-07  Eric Seidel  <eric@webkit.org>

        Reviewed by Darin Fisher.

        REGRESSION(52819?): AXLoadComplete and AXLayoutComplete causes 4 tests fail on Snow Leopard Debug bot
        https://bugs.webkit.org/show_bug.cgi?id=33300

        Skipping platform/mac/accessibility/aria-liveregions-notifications.html
        to make the bots green until Chris Fleizach can fix the AX Notification system
        to correctly unregister logging callbacks.

        * platform/mac/Skipped:

2010-01-07  Afonso R. Costa Jr.  <afonso.costa@openbossa.org>

        Reviewed by Darin Adler.

        As the bug https://bugs.webkit.org/show_bug.cgi?id=30034 is fixed,
        the zoomOrNot argument is unnecessary.

        * fast/dom/elementFromPoint-relative-to-viewport.html:

2010-01-07  Stephanie Lewis  <slewis@apple.com>

        Rollout http://trac.webkit.org/changeset/52756 due to a large performance regression.

        * fast/forms/selection-layout-reentry-strange-case-expected.txt: Removed.
        * fast/forms/selection-layout-reentry-strange-case.html: Removed.

2010-01-07  Nikolas Zimmermann  <nzimmermann@rim.com>

        Reviewed by Dirk Schulze.

        SVGTextElement & friends need to implement svgAttributeChanged
        https://bugs.webkit.org/show_bug.cgi?id=33284

        * svg/dynamic-updates/SVGTRefElement-dom-href-attr-expected.txt: Added.
        * svg/dynamic-updates/SVGTRefElement-dom-href-attr.html: Added.
        * svg/dynamic-updates/SVGTextElement-dom-transform-attr-expected.txt: Added.
        * svg/dynamic-updates/SVGTextElement-dom-transform-attr.html: Added.
        * svg/dynamic-updates/SVGTextElement-svgdom-transform-prop-expected.txt: Added.
        * svg/dynamic-updates/SVGTextElement-svgdom-transform-prop.html: Added.
        * svg/dynamic-updates/script-tests/SVGTRefElement-dom-href-attr.js: Added.
        (executeTest):
        * svg/dynamic-updates/script-tests/SVGTextElement-dom-transform-attr.js: Added.
        (executeTest):
        * svg/dynamic-updates/script-tests/SVGTextElement-svgdom-transform-prop.js: Added.
        (executeTest):

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

        Reviewed by Geoffrey Garen.

        https://bugs.webkit.org/show_bug.cgi?id=33057
        REGRESSION(r49365): typeof(xhr.responseText) != "string" in Windows

        <rdar://problem/7296920> REGRESSION: WebKit fails to start PeaceKeeper benchmark

        * fast/js/script-tests/webcore-string-comparison.js: Added.
        * fast/js/webcore-string-comparison-expected.txt: Added.
        * fast/js/webcore-string-comparison.html: Added.

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

        Reviewed by Kevin Decker, Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=33338
        Create a renderer for <object> and <embed>
        
        Change RenderPartObject to RenderEmbeddedObject in test results.

        * http/tests/misc/acid3-expected.txt:
        * platform/mac-tiger/svg/hixie/text/003-expected.txt:
        * platform/mac/editing/pasteboard/pasting-object-expected.txt:
        * platform/mac/fast/block/basic/013-expected.txt:
        * platform/mac/fast/block/float/4145535Crash-expected.txt:
        * platform/mac/fast/dom/HTMLObjectElement/vspace-hspace-as-number-expected.txt:
        * platform/mac/fast/dynamic/flash-replacement-test-expected.txt:
        * platform/mac/fast/frames/001-expected.txt:
        * platform/mac/fast/invalid/residual-style-expected.txt:
        * platform/mac/fast/parser/001-expected.txt:
        * platform/mac/fast/replaced/007-expected.txt:
        * platform/mac/fast/replaced/border-radius-clip-expected.txt:
        * platform/mac/fast/replaced/replaced-breaking-expected.txt:
        * platform/mac/plugins/embed-attributes-style-expected.txt:
        * platform/mac/plugins/netscape-dom-access-expected.txt:
        * platform/mac/plugins/qt-qwidget-plugin-expected.txt:
        * platform/mac/svg/custom/getsvgdocument-expected.txt:
        * platform/mac/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.txt:
        * platform/mac/svg/hixie/text/003-expected.txt:
        * platform/qt/editing/pasteboard/pasting-object-expected.txt:
        * platform/qt/fast/block/basic/013-expected.txt:
        * platform/qt/fast/block/float/4145535Crash-expected.txt:
        * platform/qt/fast/dom/HTMLObjectElement/vspace-hspace-as-number-expected.txt:
        * platform/qt/fast/dynamic/flash-replacement-test-expected.txt:
        * platform/qt/fast/frames/001-expected.txt:
        * platform/qt/fast/parser/001-expected.txt:
        * platform/qt/fast/replaced/007-expected.txt:
        * platform/qt/fast/replaced/replaced-breaking-expected.txt:
        * platform/qt/plugins/embed-attributes-style-expected.txt:
        * platform/qt/plugins/netscape-dom-access-expected.txt:
        * platform/qt/plugins/qt-qwidget-plugin-expected.txt:

2010-01-07  Christian Sejersen  <christian.webkit@gmail.com>

        Reviewed by Darin Adler.

        document.title does not replace or remove space characters
        https://bugs.webkit.org/show_bug.cgi?id=27032

        * fast/dom/Document/document-title-get-expected.txt: Added.
        * fast/dom/Document/document-title-get.html: Added.
        * fast/dom/Document/script-tests/document-title-get.js: Added.

2010-01-07  Yuzo Fujishima  <yuzo@google.com>

        Reviewed by Darin Adler.

        Allow leading/trailing space for CSS nth-*() and lang().
        https://bugs.webkit.org/show_bug.cgi?id=17248

        For pseudo-classes :nth-*() and :lang(), space must be allowed after '(' and before ')'.
        See the bug comments for why we don't allow space at other places.

        * fast/css/css3-space-in-nth-and-lang.html: Added.
        * platform/mac/fast/css/css3-space-in-nth-and-lang-expected.txt: Added.

2010-01-07  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Beth Dakin.

        AX: contentEditable DIVs are not AX accessible
        https://bugs.webkit.org/show_bug.cgi?id=33325

        * accessibility/contenteditable-hidden-div-expected.txt: Added.
        * accessibility/contenteditable-hidden-div.html: Added.

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

        Unreviewed, build fix.

        Skip LayoutTests/http/tests/media/video-error-abort.html

        * platform/gtk/Skipped:

2010-01-07  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed trivial fix.

        LayoutTests/media/video-error-abort.html moved to LayoutTests/http/tests/media/video-error-abort.html
        by r52923, but wasn't renamed in skiplist by this commit.

        * platform/mac/Skipped:

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

        Unreviewed, build fix.

        Add executable bit to video-throttled-load cgi.

        * http/tests/media/video-throttled-load.cgi: Added property svn:executable.

2010-01-07  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed typo fix.

        * platform/gtk/Skipped: missing "l" suffix added to fast/repaint/subtree-layoutstate-transform.html

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

        Unreviewed, build fix.

        https://bugs.webkit.org/show_bug.cgi?id=33323
        Skip new test on Tiger for now.

        * platform/mac-tiger/Skipped:

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

        Reviewed by Maciej Stachowiak.

        https://bugs.webkit.org/show_bug.cgi?id=33272
        'abort' event still fired as a progress event

        rdar://6710625
        Test media/video-error-abort.html doesn't work

        * http/tests/media/video-error-abort-expected.txt: Copied from LayoutTests/media/video-error-abort-expected.txt.
        * http/tests/media/video-error-abort.html: Copied from LayoutTests/media/video-error-abort.html.
            Modified to run with slow loading cgi, add test to ensure that 'abort' event is not a
            progress event.
        * media/video-error-abort-expected.txt: Removed.
        * media/video-error-abort.html: Removed.

2010-01-07  Kim Grönholm  <kim.gronholm@nomovok.com>

        Reviewed by Antti Koivisto.

        Wrong state and TouchLists in TouchEvents
        https://bugs.webkit.org/show_bug.cgi?id=32878

        Touch event tests changed to match the API and semantics of iPhone and
        Android. Each new touch point press dispatches a touchstart event with
        the pressed touch point(s) in the changedTouches list, and a release
        dispatches a touchend event with the released touch point(s) in
        changedTouches. Moved points dispatch a touchmove event, with the moved
        points in changedTouches. Old behaviour emitted only one touchstart when
        the first point was pressed and one touchend when the last point was
        released, and any events in between were touchmoves. New presses or
        releases could only be detected by comparing the lists touches and
        changedTouches.

        * fast/events/basic-touch-events-expected.txt:
        * fast/events/script-tests/basic-touch-events.js:
        (singleTouchSequence):
        (multiTouchSequence):

2010-01-06  MORITA Hajime  <morrita@gmail.com>

        Reviewed by Nikolas Zimmermann.

        SVG background color on selected text goes wrong when text has
        gradient stroke.
        https://bugs.webkit.org/show_bug.cgi?id=33069

        Introduced SVGTextPaintSubphase like as PaintPhase on html painting,
        and paint background and foreground in separate subphase.

        * svg/text/selection-background-color.xhtml: Added.        
        * platform/mac/svg/text/selection-background-color-expected.checksum: Added.
        * platform/mac/svg/text/selection-background-color-expected.png: Added.
        * platform/mac/svg/text/selection-background-color-expected.txt: Added.
        
        * platform/mac/svg/W3C-SVG-1.1/text-text-03-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/text-text-03-b-expected.png:
        * platform/mac/svg/batik/text/textDecoration2-expected.checksum:
        * platform/mac/svg/batik/text/textDecoration2-expected.png:
        * platform/mac/svg/text/text-deco-01-b-expected.checksum:
        * platform/mac/svg/text/text-deco-01-b-expected.png:
        * platform/mac/svg/text/text-spacing-01-b-expected.checksum:
        * platform/mac/svg/text/text-spacing-01-b-expected.png:
        * platform/mac/svg/text/text-text-03-b-expected.checksum:
        * platform/mac/svg/text/text-text-03-b-expected.png:
        * platform/mac/svg/text/text-text-08-b-expected.checksum:
        * platform/mac/svg/text/text-text-08-b-expected.png:
        Re-baselined due to painting algorithm change.

2010-01-06  Kinuko Yasuda  <kinuko@chromium.org>

        Reviewed by Eric Seidel.

        Remove fast/events/keydown-numpad-key.html from the Skipped list.
        https://bugs.webkit.org/show_bug.cgi?id=33250

        * platform/qt/Skipped:

2010-01-06  Diego Gonzalez  <diego.gonzalez@openbossa.org>

        Reviewed by Kenneth Christiansen.

        [Qt] Add page zooming support to Qt DumpRenderTree
        https://bugs.webkit.org/show_bug.cgi?id=32898

        Patch by Kim Grönholm  <kim.gronholm@nomovok.com>,
                 Diego Gonzalez <diego.gonzalez@openbossa.org> and
                 Afonso Costa <afonso.costa@openbossa.org>

        * platform/qt/Skipped:

2010-01-06  Jakub Wieczorek  <faw217@gmail.com>

        Reviewed by Adam Treat.

        [Qt] RenderTheme: Missing support for native sliders

        https://bugs.webkit.org/show_bug.cgi?id=33122

        Implement painting of native slider controls in RenderTheme
        and unskip a couple of layout tests that are passing after
        this change.

        * platform/qt/Skipped:

2010-01-06  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by David Levin

        Add WebSocket feature in Worker
        https://bugs.webkit.org/show_bug.cgi?id=32214

        * websocket/tests/workers/resources/simple_wsh.py: Copied from LayoutTests/websocket/tests/simple_wsh.py.
        * websocket/tests/workers/resources/worker-simple.js: Added.
        * websocket/tests/workers/worker-simple-expected.txt: Added.
        * websocket/tests/workers/worker-simple.html: Added.

2010-01-06  Adam Bergkvist  <adam.bergkvist@ericsson.com>

        Reviewed by Darin Adler.

        Modified EventSource event-stream parser to support a single CR as line ending.
        Updated test accordingly.
        https://bugs.webkit.org/show_bug.cgi?id=33207

        * http/tests/eventsource/eventsource-parse-event-stream-expected.txt:
        * http/tests/eventsource/eventsource-parse-event-stream.html:
        * http/tests/eventsource/resources/event-stream.php:

2010-01-06  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        <rdar://problem/7488126> With text-rendering: optimizelegibility, sometimes lines run too long
        https://bugs.webkit.org/show_bug.cgi?id=32794

        * platform/mac/fast/text/line-breaking-with-kerning-expected.checksum: Added.
        * platform/mac/fast/text/line-breaking-with-kerning-expected.png: Added.
        * platform/mac/fast/text/line-breaking-with-kerning-expected.txt: Added.
        * platform/mac/fast/text/line-breaking-with-kerning.html: Added.

2010-01-06  Eric Seidel  <eric@webkit.org>

        No review.

        REGRESSION(52854?) fast/workers/shared-worker-constructor.html failed on Leopard Build Bot
        https://bugs.webkit.org/show_bug.cgi?id=33256

        I am unable to reproduce this failure locally, so this fix is only speculative.
        Skip the test we believe is causing the log message which bleeds into fast/workers/shared-worker-constructor.html

        * platform/mac/Skipped:

2010-01-06  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Eric Seidel.

        LayoutTests/fast/css/transition-color-unspecified.html is still flaky
        https://bugs.webkit.org/show_bug.cgi?id=33282

        I think this setTimeout should be sufficient to deflake it.
        The other transitions tests have a timeout of 0 to 
        give time for hardware accelerated transitions.

        * fast/css/transition-color-unspecified.html:

2010-01-06  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Eric Carlson.

        media/video-seeking.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=33273

        Removed setTimeouts from this test. It kind of looks
        like they were intentional, but I don't see how they add
        anything to this test (other than race conditions).

        * media/video-seeking-expected.txt:
        * media/video-seeking.html:

2010-01-06  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Eric Seidel.

        fast/css/transition-color-unspecified.html and fast/dom/HTMLObjectElement/object-as-frame.html are flaky
        https://bugs.webkit.org/show_bug.cgi?id=33270

        These both rely on setTimeouts where they should be using events.

        * fast/css/transition-color-unspecified.html:
        * fast/dom/HTMLObjectElement/object-as-frame.html:

2010-01-06  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Eric Seidel.

        platform/chromium/fast/dom/interval.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=33274

        We're seeing the debug bots take >100000 microseconds to stop
        and Interval.

        * platform/chromium/fast/dom/interval.html:

2010-01-06  Nikolas Zimmermann  <nzimmermann@rim.com>

        Reviewed by Dirk Schulze.

        Marker code is buggy: referencePoint translation is off
        https://bugs.webkit.org/show_bug.cgi?id=33012

        Update SVG test baseline, after rewriting marker support.

        * platform/mac/svg/W3C-SVG-1.1/painting-marker-01-f-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/painting-marker-02-f-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/painting-marker-03-f-expected.txt:
        * platform/mac/svg/custom/circular-marker-reference-1-expected.txt:
        * platform/mac/svg/custom/circular-marker-reference-2-expected.txt:
        * platform/mac/svg/custom/circular-marker-reference-3-expected.txt:
        * platform/mac/svg/custom/circular-marker-reference-4-expected.txt:
        * platform/mac/svg/custom/js-late-marker-and-object-creation-expected.txt:
        * platform/mac/svg/custom/js-late-marker-creation-expected.txt:
        * platform/mac/svg/custom/marker-changes-expected.checksum:
        * platform/mac/svg/custom/marker-changes-expected.png:
        * platform/mac/svg/custom/marker-changes-expected.txt:
        * platform/mac/svg/custom/marker-child-changes-expected.checksum:
        * platform/mac/svg/custom/marker-child-changes-expected.png:
        * platform/mac/svg/custom/marker-child-changes-expected.txt:
        * platform/mac/svg/custom/marker-default-width-height-expected.txt:
        * platform/mac/svg/custom/marker-opacity-expected.checksum: Added.
        * platform/mac/svg/custom/marker-opacity-expected.png: Added.
        * platform/mac/svg/custom/marker-opacity-expected.txt: Added.
        * platform/mac/svg/custom/marker-referencePoint-expected.checksum: Added.
        * platform/mac/svg/custom/marker-referencePoint-expected.png: Added.
        * platform/mac/svg/custom/marker-referencePoint-expected.txt: Added.
        * platform/mac/svg/custom/marker-strokeWidth-changes-expected.checksum: Added.
        * platform/mac/svg/custom/marker-strokeWidth-changes-expected.png: Added.
        * platform/mac/svg/custom/marker-strokeWidth-changes-expected.txt: Added.
        * platform/mac/svg/custom/marker-viewBox-changes-expected.checksum:
        * platform/mac/svg/custom/marker-viewBox-changes-expected.png:
        * platform/mac/svg/custom/marker-viewBox-changes-expected.txt:
        * platform/mac/svg/custom/non-circular-marker-reference-expected.txt:
        * platform/mac/svg/custom/shapes-supporting-markers-expected.txt:
        * svg/custom/marker-opacity.svg: Added.
        * svg/custom/marker-referencePoint.svg: Added.
        * svg/custom/marker-strokeWidth-changes.svg: Added.

2010-01-06  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        SVG feImage support
        https://bugs.webkit.org/show_bug.cgi?id=31905

        The implementation of feImage requires pixel test result updates of the already
        available tests.

        There is also an update for svg/filters/feComposite.svg, since the patch also
        fixed a bug in feComposite.

        * platform/mac/svg/W3C-SVG-1.1/filters-composite-02-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/filters-composite-02-b-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/filters-displace-01-f-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/filters-displace-01-f-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/filters-image-01-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/filters-image-01-b-expected.png:
        * platform/mac/svg/custom/feDisplacementMap-01-expected.checksum:
        * platform/mac/svg/custom/feDisplacementMap-01-expected.png:
        * platform/mac/svg/filters/feComposite-expected.checksum:
        * platform/mac/svg/filters/feComposite-expected.png:
        * platform/mac/svg/webarchive/svg-feimage-subresources-expected.checksum:
        * platform/mac/svg/webarchive/svg-feimage-subresources-expected.png:

2010-01-06  Darin Adler  <darin@apple.com>

        Added file James Robinson provided to go with his fix for
        https://bugs.webkit.org/show_bug.cgi?id=32295

        * platform/mac/fast/repaint/block-no-inflow-children-expected.png: Added.

2010-01-06  Darin Adler  <darin@apple.com>

        Reviewed by Eric Seidel.

        Some script tests have wrappers that don't match their templates
        https://bugs.webkit.org/show_bug.cgi?id=33239

        * fast/dom/StyleSheet/get-stylesheet-byname.html: Updated to use
        a standard test wrapper instead of a custom one.
        * fast/dom/StyleSheet/script-tests/get-stylesheet-byname.js:
        Changed test to not depend on a non-standard wrapper.
        * fast/dom/StyleSheet/get-stylesheet-byname-expected.txt: Updated
        results since I changed the test around.

        * platform/mac/editing/selection/script-tests/TEMPLATE.html: Fix
        incorrect path in template that broke the test when we called
        make-script-test-wrappers.

2010-01-05  Kent Tamura  <tkent@chromium.org>

        Reviewed by Maciej Stachowiak.

        Implement HTML5 <header> and <footer> elements.
        https://bugs.webkit.org/show_bug.cgi?id=32943

        These test:
        - <p> closing,
        - No nesting restriction,
        - Residual style, and
        - FormatBlock.

        * fast/html/footer-element-expected.txt: Added.
        * fast/html/footer-element.html: Added.
        * fast/html/header-element-expected.txt: Added.
        * fast/html/header-element.html: Added.
        * fast/html/script-tests/footer-element.js: Added.
        * fast/html/script-tests/header-element.js: Added.

2010-01-05  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        CDATA sections are merged into Text nodes when normalize() is used
        https://bugs.webkit.org/show_bug.cgi?id=33191

        * fast/dom/Node/normalize-with-cdata-expected.txt: Added.
        * fast/dom/Node/normalize-with-cdata.html: Added.
        * fast/dom/Node/script-tests/normalize-with-cdata.js: Added.

2010-01-05  James Robinson  <jamesr@google.com>

        Reviewed by Eric Seidel.

        Typing in Google Wave repaints the whole screen
        https://bugs.webkit.org/show_bug.cgi?id=32295

        Add a repaint test to make sure that when mutations happen in a grandchild of a block element that has no in-flow children
        the entire block element is not unnecessarily repainted.
        The bug only shows up when running pixel tests.

        * fast/repaint/block-no-inflow-children.html: Added.
        * platform/mac/fast/repaint/block-no-inflow-children-expected.checksum: Added.
        * platform/mac/fast/repaint/block-no-inflow-children-expected.png: Added.
        * platform/mac/fast/repaint/block-no-inflow-children-expected.txt: Added.

2010-01-05  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Darin Adler.

        animations/animation-drt-api-multiple-keyframes.html and animations/animation-drt-api.html are flaky
        https://bugs.webkit.org/show_bug.cgi?id=33244

        Both these tests have a race condition. They start looking
        for the animation start after the node is already rendered.
        Instead, set the animation just before looking for the animation
        start.

        * animations/animation-drt-api-multiple-keyframes.html:
        * animations/animation-drt-api.html:

2010-01-05  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Darin Adler.

        LayoutTests/animations/change-keyframes-name.html and LayoutTests/animations/play-state.html are flaky
        https://bugs.webkit.org/show_bug.cgi?id=33240

        Increase the tolerances. They are infrequently flaky now.
        Since these are just linear animations, I think the tolerance
        is just too small.

        * animations/change-keyframes-name.html:
        * animations/play-state.html:

2010-01-05  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Darin Adler.

        animations/combo-transform-translate+scale.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=33237

        This test is rarely flaky, but sometimes the last value
        is outside the tolerance. Make the tolerance for the last
        value match the one before it. Specifically, since the
        transform is 0,0 to 100,200, the tolerance for the second
        part should be twice that of the first.

        * animations/combo-transform-translate+scale.html:

2010-01-05  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Darin Adler.

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

        As best I can tell, the animation is running faster than
        the timeout is firing. Increase the tolerance to give 200ms
        worth of wiggle room.

        As further indication that this is just a race condition,
        this test is considerably more flaky on debug bots.

        * animations/change-one-anim.html:

2010-01-05  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Darin Adler.

        LayoutTests/animations/change-keyframes.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=33233

        The timing calculation was just off. It was starting the
        second animation at 600ms and then checking to be half-way
        done with the 1 second animation at 1000ms. Instead, just
        modify the animation to run a bit earlier.

        * animations/change-keyframes.html:

2010-01-05  Chris Marrin  <cmarrin@apple.com>

        Fixed a bug in testcase. Passing an empty array to texImage2D
        now must be done with 'null' not '0'.

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

2010-01-05  Rachel Petterson  <rlp@google.com>

        Reviewed by Simon Fraser.

        With Chris Marrin  <cmarrin@apple.com>.

        New test for texImage2d and texSubImage2d cases 
        New test for texImage2d using ImageData which tests rendering.
        https://bugs.webkit.org/show_bug.cgi?id=31562
        Also bug: https://bugs.webkit.org/show_bug.cgi?id=31493

        * fast/canvas/webgl/script-tests/texImageTest.js: Added.
        * fast/canvas/webgl/texImage2DImageDataTest-expected.txt: Added.
        * fast/canvas/webgl/texImage2DImageDataTest.html: Added.
        * fast/canvas/webgl/texImageTest-expected.txt: Added.
        * fast/canvas/webgl/texImageTest.html: Added.

2010-01-05  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Eric Seidel.

        AX: need a way to get the progress of a webpage load
        https://bugs.webkit.org/show_bug.cgi?id=33221

        * platform/mac/accessibility/document-attributes-expected.txt:
        * platform/mac/accessibility/estimated-progress-expected.txt: Added.
        * platform/mac/accessibility/estimated-progress.html: Added.
        * platform/mac/accessibility/frame-with-title-expected.txt:
        * platform/mac/accessibility/frame-with-title.html:

2010-01-05  Gustavo Noronha Silva  <gns@gnome.org>

        Skipping three new tests.

        * platform/gtk/Skipped:

2010-01-05  Dominic Mazzoni  <dmazzoni@google.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=32571

        Added a test to make sure that ARIA checkboxes correctly handle the aria-checked attribute.

        * accessibility/aria-checkbox-checked-expected.txt: Added.
        * accessibility/aria-checkbox-checked.html: Added.

2010-01-04  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        Add ARIA "Live Region" support
        https://bugs.webkit.org/show_bug.cgi?id=33117

        * accessibility/aria-activedescendant-crash.html:
        * platform/mac/accessibility/aria-liveregions-attributes-expected.txt: Added.
        * platform/mac/accessibility/aria-liveregions-attributes.html: Added.
        * platform/mac/accessibility/aria-liveregions-notifications-expected.txt: Added.
        * platform/mac/accessibility/aria-liveregions-notifications.html: Added.
        * platform/mac/accessibility/aria-menu-role-descriptions.html:
        * platform/mac/accessibility/slider-supports-actions.html:

2010-01-04  Chris Evans  <cevans@chromium.org>

        Reviewed by Adam Barth.

        Test for https://bugs.webkit.org/show_bug.cgi?id=29820
        Adopt a more conservative approach for loading CSS cross-origin.

        * http/tests/security/cross-origin-css.html: Added.
        * http/tests/security/cross-origin-css-expected.txt: Added.
        * http/tests/security/cross-origin-css-in-xml.xml: Added.
        * http/tests/security/cross-origin-css-in-xml-expected.txt: Added.
        * http/tests/security/resources/xorigincss1.css: Added.
        * http/tests/security/resources/xorigincss2.css: Added.
        * http/tests/security/resources/xorigincss1.html: Added.
        * http/tests/security/resources/xorigincss2.html: Added.
        * http/tests/security/resources/xorigincss3.html: Added.
        * http/tests/security/resources/xorigincss4.html: Added.
        * http/tests/security/resources/xorigincss5.html: Added.
        * http/tests/security/resources/xorigincss6.html: Added.

2010-01-04  Dan Bernstein  <mitz@apple.com>

        Reviewed by Simon Fraser.

        <rdar://problem/6655695> REGRESSION: VoiceOver is not highlighting some web elements correctly
        <rdar://problem/7397558> REGRESSION: AXImages inside of AXLink cause AXLink to have wrong bounds

        * accessibility/dimensions-include-descendants-expected.txt: Added.
        * accessibility/dimensions-include-descendants.html: Added.

2010-01-04  Jon Honeycutt  <jhoneycutt@apple.com>

        MSAA: Accessibility role of <select> elements is wrong

        https://bugs.webkit.org/show_bug.cgi?id=33192

        Reviewed by Sam Weinig.

        * platform/win/accessibility/select-element-role-expected.txt: Added.
        * platform/win/accessibility/select-element-role.html: Added.

2010-01-04  Jon Honeycutt  <jhoneycutt@apple.com>

        MSAA: <select> elements should broadcast value change events

        https://bugs.webkit.org/show_bug.cgi?id=33088

        <rdar://problem/7332364>

        Reviewed by Darin Adler.

        * platform/win/accessibility/select-element-valuechange-event-expected.txt: Added.
        * platform/win/accessibility/select-element-valuechange-event.html: Added.

2010-01-04  Darin Adler  <darin@apple.com>

        Reviewed by Sam Weinig.

        Added test for use of BarInfo object after a frame is no longer
        associated with a web page.

        * fast/dom/Window/BarInfo-after-frame-removed-expected.txt: Added.
        * fast/dom/Window/BarInfo-after-frame-removed.html: Added.

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

        Reviewed by Dan Bernstein.

        Repaint issues in text input under a scale transform
        https://bugs.webkit.org/show_bug.cgi?id=32086
        
        Test for repaint after a subtree layout inside a transformed element.

        * fast/repaint/subtree-layoutstate-transform.html: Added.
        * platform/mac/fast/repaint/subtree-layoutstate-transform-expected.checksum: Added.
        * platform/mac/fast/repaint/subtree-layoutstate-transform-expected.png: Added.
        * platform/mac/fast/repaint/subtree-layoutstate-transform-expected.txt: Added.

2010-01-04  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        Reentrancy problem with selection in some edge cases. 
        https://bugs.webkit.org/show_bug.cgi?id=32842 
        rdar://problem/7449974 

        * fast/forms/selection-layout-reentry-strange-case-expected.txt: Added.
        * fast/forms/selection-layout-reentry-strange-case.html: Added.
        * platform/mac/accessibility/frame-with-title-expected.txt: Updated since 
        the number of layouts is now different. 

2010-01-04  Dmitry Titov  <dimich@chromium.org>

        Not reviewed, revert r52745 and r52746 on behalf of Nikolas Zimmermann, as discussed on IRC.
        Patch produced by 'git revert' and then reverting back ChangeLog files.

        * platform/mac/svg/W3C-SVG-1.1/painting-marker-01-f-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/painting-marker-02-f-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/painting-marker-03-f-expected.txt:
        * platform/mac/svg/custom/circular-marker-reference-1-expected.txt:
        * platform/mac/svg/custom/circular-marker-reference-2-expected.txt:
        * platform/mac/svg/custom/circular-marker-reference-3-expected.txt:
        * platform/mac/svg/custom/circular-marker-reference-4-expected.txt:
        * platform/mac/svg/custom/js-late-marker-and-object-creation-expected.txt:
        * platform/mac/svg/custom/js-late-marker-creation-expected.txt:
        * platform/mac/svg/custom/marker-changes-expected.checksum:
        * platform/mac/svg/custom/marker-changes-expected.png:
        * platform/mac/svg/custom/marker-changes-expected.txt:
        * platform/mac/svg/custom/marker-child-changes-expected.checksum:
        * platform/mac/svg/custom/marker-child-changes-expected.png:
        * platform/mac/svg/custom/marker-child-changes-expected.txt:
        * platform/mac/svg/custom/marker-default-width-height-expected.txt:
        * platform/mac/svg/custom/marker-opacity-expected.checksum: Removed.
        * platform/mac/svg/custom/marker-opacity-expected.png: Removed.
        * platform/mac/svg/custom/marker-opacity-expected.txt: Removed.
        * platform/mac/svg/custom/marker-referencePoint-expected.checksum: Removed.
        * platform/mac/svg/custom/marker-referencePoint-expected.png: Removed.
        * platform/mac/svg/custom/marker-referencePoint-expected.txt: Removed.
        * platform/mac/svg/custom/marker-viewBox-changes-expected.checksum:
        * platform/mac/svg/custom/marker-viewBox-changes-expected.png:
        * platform/mac/svg/custom/marker-viewBox-changes-expected.txt:
        * platform/mac/svg/custom/non-circular-marker-reference-expected.txt:
        * platform/mac/svg/custom/shapes-supporting-markers-expected.txt:
        * svg/custom/marker-opacity.svg: Removed.
        * svg/custom/marker-referencePoint.svg: Removed.

2010-01-04  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        AX: any DIV with an aria role should not be ignored
        https://bugs.webkit.org/show_bug.cgi?id=33090

        * platform/mac/accessibility/aria-divs-not-ignored-expected.txt: Added.
        * platform/mac/accessibility/aria-divs-not-ignored.html: Added.

2010-01-04  Nikolas Zimmermann  <nzimmermann@rim.com>

        Reviewed by Dirk Schulze.

        Marker code is buggy: referencePoint translation is off
        https://bugs.webkit.org/show_bug.cgi?id=33012

        Update SVG test baseline, after rewriting marker support.

        * platform/mac/svg/W3C-SVG-1.1/painting-marker-01-f-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/painting-marker-02-f-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/painting-marker-03-f-expected.txt:
        * platform/mac/svg/custom/circular-marker-reference-1-expected.txt:
        * platform/mac/svg/custom/circular-marker-reference-2-expected.txt:
        * platform/mac/svg/custom/circular-marker-reference-3-expected.txt:
        * platform/mac/svg/custom/circular-marker-reference-4-expected.txt:
        * platform/mac/svg/custom/js-late-marker-and-object-creation-expected.txt:
        * platform/mac/svg/custom/js-late-marker-creation-expected.txt:
        * platform/mac/svg/custom/marker-changes-expected.checksum:
        * platform/mac/svg/custom/marker-changes-expected.png:
        * platform/mac/svg/custom/marker-changes-expected.txt:
        * platform/mac/svg/custom/marker-child-changes-expected.checksum:
        * platform/mac/svg/custom/marker-child-changes-expected.png:
        * platform/mac/svg/custom/marker-child-changes-expected.txt:
        * platform/mac/svg/custom/marker-default-width-height-expected.txt:
        * platform/mac/svg/custom/marker-opacity-expected.checksum: Added.
        * platform/mac/svg/custom/marker-opacity-expected.png: Added.
        * platform/mac/svg/custom/marker-opacity-expected.txt: Added.
        * platform/mac/svg/custom/marker-referencePoint-expected.checksum: Added.
        * platform/mac/svg/custom/marker-referencePoint-expected.png: Added.
        * platform/mac/svg/custom/marker-referencePoint-expected.txt: Added.
        * platform/mac/svg/custom/marker-viewBox-changes-expected.checksum:
        * platform/mac/svg/custom/marker-viewBox-changes-expected.png:
        * platform/mac/svg/custom/marker-viewBox-changes-expected.txt:
        * platform/mac/svg/custom/non-circular-marker-reference-expected.txt:
        * platform/mac/svg/custom/shapes-supporting-markers-expected.txt:
        * svg/custom/marker-opacity.svg: Added.
        * svg/custom/marker-referencePoint.svg: Added.

2010-01-04  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Fix typo in test name.

        * platform/win/Skipped:

2010-01-04  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed.  Update two win-specific test results, that showed up on the Windows Release/Debug slave.
        Skip fast/frames/iframe-onload-remove-self-no-crash.html as it crashes the debug slave, filed bug.

        All bots except SnowLeopard Leaks & GTK Linux Debug (32-bit) should turn to green now!

        * platform/win/editing/selection/select-text-overflow-ellipsis-expected.txt:
        * platform/win/fast/forms/basic-selects-expected.txt: Added.
        * platform/win/Skipped:

2010-01-04  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Bring back Tiger bot to green: svg/custom/use-on-symbol-inside-pattern.svg exposes a bug on both Tiger & Win.
        Reopened bug 17393 and skipping this test for now, as it requires a larger rework of Path::debugString().

        * platform/mac-tiger/Skipped:
        * platform/win/Skipped:

2010-01-04  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Attempt to mark all Gtk bots green again, as discussed with Gustavo Noronha Silva.

        * platform/gtk/Skipped:

2010-01-04  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Skipping plugins/get-url-with-iframe-target.html, filed bug 33154, cc'ing the original author.

        * platform/mac-tiger/Skipped:

2010-01-04  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Skipping http/tests/navigation/*iframe* on Tiger, just like it has been done for win.

        * platform/mac-tiger/Skipped:

2010-01-04  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed trivial fix.

        [Qt] r52694 moved a test, but it isn't renamed in the skiplist.

        * platform/qt/Skipped: animations/transform-origin-vs-functions.html renamed.

2010-01-04  Alex Milowski  <alex@milowski.com>

        Reviewed by Eric Seidel.

        Added expected outputs for pixel tests that were missing.

        * platform/mac/mathml/presentation/sub-expected.checksum: Added.
        * platform/mac/mathml/presentation/sub-expected.png: Added.
        * platform/mac/mathml/presentation/sup-expected.checksum: Added.
        * platform/mac/mathml/presentation/sup-expected.png: Added.
        * platform/mac/mathml/presentation/tables-expected.checksum: Added.
        * platform/mac/mathml/presentation/tables-expected.png: Added.

2010-01-04  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        SVGResources don't invalidate if target object changes attributes
        https://bugs.webkit.org/show_bug.cgi?id=33091

        Check if SVG resources are invalidated, if target object changes
        attributes.

        * platform/mac/svg/custom/resource-invalidate-on-target-update-expected.checksum: Added.
        * platform/mac/svg/custom/resource-invalidate-on-target-update-expected.png: Added.
        * platform/mac/svg/custom/resource-invalidate-on-target-update-expected.txt: Added.
        * svg/custom/resource-invalidate-on-target-update.svg: Added.

2010-01-03  Kenneth Russell  <kbr@google.com>

        Reviewed by Maciej Stachowiak.

        Index validation code must always copy client data
        https://bugs.webkit.org/show_bug.cgi?id=32748

        Client data must always be copied during bufferData and
        bufferSubData calls, because otherwise the data the GL uses to
        draw may differ from that checked by the index validation code.

        * fast/canvas/webgl/index-validation-copies-indices-expected.txt: Added.
        * fast/canvas/webgl/index-validation-copies-indices.html: Added.

2010-01-03  Jakub Wieczorek  <faw217@gmail.com>

        Reviewed by Eric Seidel.

        [Qt] EventSender: add support for Enter key events
        https://bugs.webkit.org/show_bug.cgi?id=33064

        Unskip 5 tests that are fixed now.

        * platform/qt/Skipped:

2010-01-03  Mario Bensi  <mbensi@pleyo.com>

        Reviewed by Simon Fraser.

        create 3d directory and move tests dependent of 3D Rendering in this
        directory.

        https://bugs.webkit.org/show_bug.cgi?id=33081

        * animations/3d: Added.
        * animations/3d/change-transform-in-end-event.html: Copied from LayoutTests/animations/change-transform-in-end-event.html.
        * animations/3d/state-at-end-event-transform.html: Copied from LayoutTests/animations/state-at-end-event-transform.html.
        * animations/3d/transform-origin-vs-functions-expected.txt: Copied from LayoutTests/animations/transform-origin-vs-functions-expected.txt.
        * animations/3d/transform-origin-vs-functions.html: Copied from LayoutTests/animations/transform-origin-vs-functions.html.
        * animations/change-transform-in-end-event.html: Removed.
        * animations/state-at-end-event-transform.html: Removed.
        * animations/transform-origin-vs-functions-expected.txt: Removed.
        * animations/transform-origin-vs-functions.html: Removed.

2010-01-03  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Skip test that fails on and off on the release bot.

        * platform/gtk/Skipped:

2010-01-02  Daniel Bates  <dbates@webkit.org>

        Reviewed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=33109

        Cleans up the XSSAuditor test directory by removing unnecessary test scripts.

        The patch for bug #33107 added notifyDone() functionality to the script
        echo-intertag.pl. So, we can substitute this script for scripts echo-intertag-and-notify.php,
        echo-intertag-post-and-notify.pl, and echo-intertag-post.pl.

        * http/tests/security/xssAuditor/link-opens-new-window.html: Modified to call script echo-intertag.pl.
        * http/tests/security/xssAuditor/resources/echo-intertag-and-notify.php: Removed.
        * http/tests/security/xssAuditor/resources/echo-intertag-post-and-notify.pl: Removed.
        * http/tests/security/xssAuditor/resources/echo-intertag-post.pl: Removed.
        * http/tests/security/xssAuditor/script-tag-post-control-char.html: Modified to call script echo-intertag.pl.
        * http/tests/security/xssAuditor/script-tag-post-null-char.html: Modified to call script echo-intertag.pl.
        * http/tests/security/xssAuditor/script-tag-post.html: Modified to call script echo-intertag.pl.

2010-01-02  Daniel Bates  <dbates@webkit.org>

        Reviewed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=33107

        Removes the use of window.setTimeout from the XSSAuditor tests:
        get-from-iframe.html and post-from-iframe.html by having the
        script echo-intertag.pl (called by these tests) call
        layoutTestController.notifyDone().

        * http/tests/security/xssAuditor/get-from-iframe.html: Removes call of window.setTimeout.
        * http/tests/security/xssAuditor/post-from-iframe.html: Ditto.
        * http/tests/security/xssAuditor/resources/echo-intertag.pl: If the query argument
        notifyDone is found, then the script will generate a JavaScript script to call
        layoutTestController.notifyDone().

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

        Reviewed by Dan Bernstein.

        Scrollbar of overflow:scroll div in compositing layer fails to render
        https://bugs.webkit.org/show_bug.cgi?id=32439

        Test for compositing layers with scrollbars, and a resize control.
        
        * compositing/overflow/scrollbar-painting.html: Added.
        * platform/mac/compositing/overflow/scrollbar-painting-expected.checksum: Added.
        * platform/mac/compositing/overflow/scrollbar-painting-expected.png: Added.
        * platform/mac/compositing/overflow/scrollbar-painting-expected.txt: Added.

2009-12-31  Dan Bernstein  <mitz@apple.com>

        Reviewed by Simon Fraser.

        <rdar://problem/7503279> REGRESSION (r47440): Incomplete repaint at macworldexpo.com
        https://bugs.webkit.org/show_bug.cgi?id=33067

        * fast/repaint/table-cell-overflow-expected.checksum: Added.
        * fast/repaint/table-cell-overflow-expected.png: Added.
        * fast/repaint/table-cell-overflow-expected.txt: Added.
        * fast/repaint/table-cell-overflow.html: Added.

2009-12-30  Dirk Schulze  <krit@webkit.org>

        Reviewed by Anders Carlsson.

        svg/custom/use-on-symbol-inside-pattern.svg is failing
        https://bugs.webkit.org/show_bug.cgi?id=17393

        Reenable the test. It isn't failing anymore.

        * platform/mac/svg/custom/use-on-symbol-inside-pattern-expected.checksum:
        * platform/mac/svg/custom/use-on-symbol-inside-pattern-expected.png:
        * platform/mac/svg/custom/use-on-symbol-inside-pattern-expected.txt:
        * svg/custom/use-on-symbol-inside-pattern.svg: Copied from LayoutTests/svg/custom/use-on-symbol-inside-pattern.svg-disabled.
        * svg/custom/use-on-symbol-inside-pattern.svg-disabled: Removed.

2009-12-30  Dirk Schulze  <krit@webkit.org>

        Reviewed by Eric Seidel.

        SVGResourceClipper needs to invalidate content
        https://bugs.webkit.org/show_bug.cgi?id=33054

        Drawing area should change after attribute changes in clipPath or
        it's childs.

        * platform/mac/svg/custom/clip-path-child-changes-expected.txt:
        * platform/mac/svg/custom/clip-path-units-changes-expected.txt:

2009-12-30  Jakub Wieczorek  <faw217@gmail.com>

        Reviewed by Simon Hausmann.

        [Qt] Fix PluginView::handlePostReadFile().
        https://bugs.webkit.org/show_bug.cgi?id=33052

        The function should actually rewrite the given file to the buffer.

        This change fixes http/tests/plugins/post-url-file.html, which can be unskipped
        now along with other passing http/plugins tests.

        * platform/qt/Skipped:

2009-12-30  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Skipping isolatedWorld test - we still do not support that.

        * platform/gtk/Skipped:

2009-12-30  Andras Becsi  <abecsi@inf.u-szeged.hu>

        Rubber-stamped by Holger Hans Peter Freyther.

        [Qt] Add expected files for the following new passing tests.

        * platform/qt/editing/selection/select-text-overflow-ellipsis-expected.txt: Added.
        * platform/qt/fast/block/float/in-margin-expected.txt: Copied from LayoutTests/platform/mac/fast/block/float/in-margin-expected.txt.
        * platform/qt/fast/text/fake-italic-expected.txt: Added.
        * platform/qt/svg/custom/empty-mask-expected.txt: Added.
        * platform/qt/svg/filters/filter-source-position-expected.txt: Added.

2009-12-30  Csaba Osztrogonác  <ossy@webkit.org>

        Reviewed by Dirk Schulze.

        [Qt] Expected files updated after r52647.

        * platform/qt/svg/css/clippath-with-shadow-expected.txt:
        * platform/qt/svg/filters/feGaussianBlur-expected.txt:
        * platform/qt/svg/filters/feMerge-expected.txt:
        * platform/qt/svg/filters/feOffset-expected.txt:
        * platform/qt/svg/filters/feTile-expected.txt:
        * platform/qt/svg/filters/shadow-on-filter-expected.txt:
        * platform/qt/svg/filters/shadow-on-rect-with-filter-expected.txt:
        * platform/qt/svg/filters/sourceAlpha-expected.txt:
        * platform/qt/svg/filters/subRegion-in-userSpace-expected.txt:
        * platform/qt/svg/filters/subRegion-one-effect-expected.txt:
        * platform/qt/svg/filters/subRegion-two-effects-expected.txt:

2009-12-30  Csaba Osztrogonác  <ossy@webkit.org>

        Rubber-stamped by Simon Hausmann.

        [Qt] DataGrid support turned off by r52648. Expected files updated.

        * platform/qt/fast/dom/Window/window-properties-expected.txt: updated.
        * platform/qt/fast/dom/prototype-inheritance-expected.txt: updated.
        * platform/qt/fast/js/global-constructors-expected.txt: updated.

2009-12-30  Dirk Schulze  <krit@webkit.org>

        Unreviewed test result fix.

        Detailed boundingBoxes in SVG Renderer
        https://bugs.webkit.org/show_bug.cgi?id=32815

        Forgot to update this test.

        * platform/mac/svg/W3C-SVG-1.1/masking-path-05-f-expected.txt:

2009-12-30  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmmermann.

        Detailed boundingBoxes in SVG Renderer
        https://bugs.webkit.org/show_bug.cgi?id=32815

        Mainly Filter and Masker tests need new test results.
        repaintRectInLocalCoordinates changed to calculate the smallest
        repaint area considering the bounding bo of masker, filter and
        clipper as well as the stroke and marker boundaries.            

        * platform/mac/svg/W3C-SVG-1.1/filters-color-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/filters-example-01-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/filters-example-01-b-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/filters-example-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/filters-felem-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/filters-image-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/filters-morph-01-f-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/filters-offset-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/masking-intro-01-f-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/masking-mask-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/masking-path-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/masking-path-02-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/painting-marker-02-f-expected.txt:
        * platform/mac/svg/batik/filters/feTile-expected.txt:
        * platform/mac/svg/batik/filters/filterRegions-expected.txt:
        * platform/mac/svg/batik/masking/maskRegions-expected.txt:
        * platform/mac/svg/batik/text/textEffect-expected.txt:
        * platform/mac/svg/batik/text/textEffect3-expected.txt:
        * platform/mac/svg/css/clippath-with-shadow-expected.txt:
        * platform/mac/svg/custom/clip-path-display-none-child-expected.txt:
        * platform/mac/svg/custom/clip-path-href-changes-expected.txt:
        * platform/mac/svg/custom/clip-path-referencing-use-expected.txt:
        * platform/mac/svg/custom/clip-path-referencing-use2-expected.txt:
        * platform/mac/svg/custom/clip-path-with-transform-expected.txt:
        * platform/mac/svg/custom/empty-merge-expected.txt:
        * platform/mac/svg/custom/feDisplacementMap-01-expected.txt:
        * platform/mac/svg/custom/focus-ring-expected.checksum:
        * platform/mac/svg/custom/focus-ring-expected.png:
        * platform/mac/svg/custom/focus-ring-expected.txt:
        * platform/mac/svg/custom/image-with-transform-clip-filter-expected.txt:
        * platform/mac/svg/custom/js-late-clipPath-and-object-creation-expected.txt:
        * platform/mac/svg/custom/js-late-clipPath-creation-expected.txt:
        * platform/mac/svg/custom/mask-excessive-malloc-expected.checksum:
        * platform/mac/svg/custom/mask-excessive-malloc-expected.png:
        * platform/mac/svg/custom/mask-with-all-units-expected.txt:
        * platform/mac/svg/custom/non-opaque-filters-expected.txt:
        * platform/mac/svg/custom/recursive-clippath-expected.txt:
        * platform/mac/svg/custom/text-clip-expected.txt:
        * platform/mac/svg/custom/visibility-override-clip-expected.txt:
        * platform/mac/svg/filters/big-sized-filter-2-expected.txt:
        * platform/mac/svg/filters/big-sized-filter-expected.txt:
        * platform/mac/svg/filters/feDisplacementMap-expected.txt:
        * platform/mac/svg/filters/feMerge-expected.txt:
        * platform/mac/svg/filters/feOffset-expected.txt:
        * platform/mac/svg/filters/feTile-expected.txt:
        * platform/mac/svg/filters/filter-source-position-expected.txt:
        * platform/mac/svg/filters/filterRes-expected.txt:
        * platform/mac/svg/filters/shadow-on-filter-expected.txt:
        * platform/mac/svg/filters/shadow-on-rect-with-filter-expected.txt:
        * platform/mac/svg/filters/subRegion-one-effect-expected.txt:
        * platform/mac/svg/filters/subRegion-two-effects-expected.txt:
        * svg/custom/use-clipped-transform-expected.txt:

2009-12-29  Adam Barth  <abarth@webkit.org>

        Reviewed by Sam Weinig.

        Add a test for window.top and isolated worlds
        https://bugs.webkit.org/show_bug.cgi?id=33030

        I wrote this test to investigate an issue that turns out is working
        properly.  No sense wasting a perfectly good test, so we should add it.

        * http/tests/security/isolatedWorld/top-properties-expected.txt: Added.
        * http/tests/security/isolatedWorld/top-properties.html: Added.

2009-12-29  Csaba Osztrogonác  <ossy@webkit.org>

        Rubber-stamped by Simon Hausmann.

        [Qt] Remove a bunch of now passing tests from skiplist.

        * platform/qt/Skipped:

2009-12-29  Eric Seidel  <eric@webkit.org>

        No review, rolling out r52630.
        https://bugs.webkit.org/show_bug.cgi?id=33012
        http://trac.webkit.org/changeset/52630

        This caused 2 layout test failures, and 2 layout test crashes on Leopard bots.

        * platform/mac/svg/W3C-SVG-1.1/painting-marker-02-f-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/painting-marker-03-f-expected.txt:
        * platform/mac/svg/custom/circular-marker-reference-1-expected.txt:
        * platform/mac/svg/custom/circular-marker-reference-2-expected.txt:
        * platform/mac/svg/custom/circular-marker-reference-3-expected.txt:
        * platform/mac/svg/custom/circular-marker-reference-4-expected.txt:
        * platform/mac/svg/custom/js-late-marker-and-object-creation-expected.txt:
        * platform/mac/svg/custom/js-late-marker-creation-expected.txt:
        * platform/mac/svg/custom/marker-changes-expected.checksum:
        * platform/mac/svg/custom/marker-changes-expected.png:
        * platform/mac/svg/custom/marker-changes-expected.txt:
        * platform/mac/svg/custom/marker-child-changes-expected.checksum:
        * platform/mac/svg/custom/marker-child-changes-expected.png:
        * platform/mac/svg/custom/marker-child-changes-expected.txt:
        * platform/mac/svg/custom/marker-default-width-height-expected.txt:
        * platform/mac/svg/custom/marker-overflow-clip-expected.txt:
        * platform/mac/svg/custom/marker-referencePoint-expected.checksum: Removed.
        * platform/mac/svg/custom/marker-referencePoint-expected.png: Removed.
        * platform/mac/svg/custom/marker-referencePoint-expected.txt: Removed.
        * platform/mac/svg/custom/marker-viewBox-changes-expected.checksum:
        * platform/mac/svg/custom/marker-viewBox-changes-expected.png:
        * platform/mac/svg/custom/marker-viewBox-changes-expected.txt:
        * platform/mac/svg/custom/non-circular-marker-reference-expected.txt:
        * platform/mac/svg/custom/shapes-supporting-markers-expected.txt:
        * svg/custom/marker-referencePoint.svg: Removed.

2009-12-29  Nikolas Zimmermann  <nzimmermann@rim.com>

        Reviewed by Dirk Schulze.

        Marker code is buggy: referencePoint translation is off
        https://bugs.webkit.org/show_bug.cgi?id=33012

        Update SVG test baseline, after rewriting marker support.

        * platform/mac/svg/W3C-SVG-1.1/painting-marker-02-f-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/painting-marker-03-f-expected.txt:
        * platform/mac/svg/custom/circular-marker-reference-1-expected.txt:
        * platform/mac/svg/custom/circular-marker-reference-2-expected.txt:
        * platform/mac/svg/custom/circular-marker-reference-3-expected.txt:
        * platform/mac/svg/custom/circular-marker-reference-4-expected.txt:
        * platform/mac/svg/custom/js-late-marker-and-object-creation-expected.txt:
        * platform/mac/svg/custom/js-late-marker-creation-expected.txt:
        * platform/mac/svg/custom/marker-changes-expected.checksum:
        * platform/mac/svg/custom/marker-changes-expected.png:
        * platform/mac/svg/custom/marker-changes-expected.txt:
        * platform/mac/svg/custom/marker-child-changes-expected.checksum:
        * platform/mac/svg/custom/marker-child-changes-expected.png:
        * platform/mac/svg/custom/marker-child-changes-expected.txt:
        * platform/mac/svg/custom/marker-default-width-height-expected.txt:
        * platform/mac/svg/custom/marker-overflow-clip-expected.txt:
        * platform/mac/svg/custom/marker-referencePoint-expected.checksum: Added.
        * platform/mac/svg/custom/marker-referencePoint-expected.png: Added.
        * platform/mac/svg/custom/marker-referencePoint-expected.txt: Added.
        * platform/mac/svg/custom/marker-viewBox-changes-expected.checksum:
        * platform/mac/svg/custom/marker-viewBox-changes-expected.png:
        * platform/mac/svg/custom/marker-viewBox-changes-expected.txt:
        * platform/mac/svg/custom/non-circular-marker-reference-expected.txt:
        * platform/mac/svg/custom/shapes-supporting-markers-expected.txt:
        * svg/custom/marker-referencePoint.svg: Added.

2009-12-29  Johnny Ding  <jnd@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=32863
        Make NodeList support call-as-function.

        * fast/dom/NodeList/nodelist-item-call-as-function-expected.txt: Added.
        * fast/dom/NodeList/nodelist-item-call-as-function.html: Added.
        * fast/dom/NodeList/script-tests: Added.
        * fast/dom/NodeList/script-tests/TEMPLATE.html: Added.
        * fast/dom/NodeList/script-tests/nodelist-item-call-as-function.js: Added.

2009-12-29  Robert Hogan  <robert@roberthogan.net>

        Reviewed by Eric Seidel.

        [Qt] Fix crash on LayoutTests/fast/loader/empty-embed-src-attribute.html
        
        Related to https://bugs.webkit.org/show_bug.cgi?id=23806
        
        If an embedded document is loaded within a page and it has an empty
        URL, use a blank URL for the load request.
        
        https://bugs.webkit.org/show_bug.cgi?id=33017

        * platform/qt/Skipped:

2009-12-29  Kent Tamura  <tkent@chromium.org>

        Reviewed by Maciej Stachowiak.

        Implement HTML5 <aside> element.
        https://bugs.webkit.org/show_bug.cgi?id=32943

        The new test file tests:
        - <p> closing,
        - Residual style, and
        - FormatBlock.

        * fast/html/aside-element-expected.txt: Added.
        * fast/html/aside-element.html: Added.
        * fast/html/script-tests/aside-element.js: Added.

2009-12-29  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        [GTK] Failing media/video-seek-past-end-playing.html
        https://bugs.webkit.org/show_bug.cgi?id=33015

        Skip test that fails on and off locally, but always on the release
        bot, until we figure out what is wrong.

        * platform/gtk/Skipped:

2009-12-29  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        [GTK] Fails fast/dom/prototype-inheritance-2.html after r52559
        https://bugs.webkit.org/show_bug.cgi?id=33014

        Skipping test that is failing after r52559 until we figure out why
        the constructors are not showing up for us.

        * platform/gtk/Skipped:

2009-12-29  Jakub Wieczorek  <faw217@gmail.com>

        Reviewed by Eric Seidel.

        [Qt] DRT: Frame loader callbacks differ from the Mac port
        https://bugs.webkit.org/show_bug.cgi?id=32989

        Remove messages from the callbacks that should not dump them to match
        the expected results for the http/loading tests.

        Unskip some http/loading tests which succeed now.

        * platform/qt/Skipped:

2009-12-29  Robert Hogan  <robert@roberthogan.net>

        Reviewed by Eric Seidel.

        [Qt] fix fast/dom/Window/window-onFocus.html
        
        Add support for layouttestcontroller.windowIsKey to Qt DRT and fix issue where
        window.onblur was getting dispatched twice from QtWebKit.
        
        https://bugs.webkit.org/show_bug.cgi?id=32990

        * platform/qt/Skipped:

2009-12-28  Charles Wei  <charles.wei@torchmobile.com.cn>

        Reviewed by Maciej Stachowiak.

        Add test cases for <noscript> with both Javascript enabled and disabled
        https://bugs.webkit.org/show_bug.cgi?id=32706


        * fast/parser/noscript-with-javascript-disabled-expected.txt: Added.
        * fast/parser/noscript-with-javascript-disabled.html: Added.
        * fast/parser/noscript-with-javascript-enabled-expected.txt: Added.
        * fast/parser/noscript-with-javascript-enabled.html: Added.

2009-12-28  Kinuko Yasuda  <kinuko@chromium.org>

        Reviewed by Maciej Stachowiak.

        Added a layout-test that tests if numeric pad arrow key
        events are correctly reported with keyLocation as
        DOM_KEY_LOCATION_NUMPAD.  Currently this test only passes on Mac.
        https://bugs.webkit.org/show_bug.cgi?id=28247

        * fast/events/keydown-numpad-keys-expected.txt: Added.
        * fast/events/keydown-numpad-keys.html: Added.
        * fast/events/script-tests/keydown-numpad-keys.js: Added.
        (recordKeyEvent):
        (testKeyEventWithLocation):

        * platform/gtk/Skipped: fast/events/keydown-numpad-keys.html added.
        * platform/qt/Skipped: fast/events/keydown-numpad-keys.html added.
        * platform/win/Skipped: fast/events/keydown-numpad-keys.html added.

2009-12-28  Mike Moretti  <webkit9@mordent.com>

        Reviewed by Darin Adler.

        Fix bug 28245 - problem with inserting a span into a long text block causing a crash because of a null string

        * fast/dom/insert-span-into-long-text-bug-28245-expected.txt: Added.
        * fast/dom/insert-span-into-long-text-bug-28245.html: Added.

2009-12-28  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Skip test that is failing since it was checked in, and some tests
        that need results.

        * platform/gtk/Skipped:

2009-12-28  Kent Tamura  <tkent@chromium.org>

        Reviewed by Maciej Stachowiak.

        Implement HTML5 <article> element.
        https://bugs.webkit.org/show_bug.cgi?id=32942

        The new test file tests:
        - <p> closing,
        - Residual style, and
        - FormatBlock.

        * fast/html/article-element-expected.txt: Added.
        * fast/html/article-element.html: Added.
        * fast/html/script-tests/article-element.js: Added.

2009-12-27  Maciej Stachowiak  <mjs@apple.com>

        Rubber stamped by Adam Barth.

        Put media/audio-delete-while-step-button-clicked.html back in the mac skipped list because
        I think it's making other media tests fail sporadically.

        * platform/mac-tiger/Skipped:
        * platform/mac/Skipped:

2009-12-27  Jakub Wieczorek  <faw217@gmail.com>

        Reviewed by Eric Seidel.

        [Qt] Support upload progress events in XMLHttpRequest
        https://bugs.webkit.org/show_bug.cgi?id=32969

        Make QNetworkReplyHandler report the upload progress to the client.

        Already covered by tests:
        http/tests/xmlhttprequest/upload-onload-event.html
        http/tests/xmlhttprequest/upload-onloadstart-event.html
        http/tests/xmlhttprequest/upload-progress-events.html
        http/tests/xmlhttprequest/upload-onprogress-event.html

        which have been unskipped.

        * platform/qt/Skipped:

2009-12-27  Maciej Stachowiak  <mjs@apple.com>

        Rubber stamped by Adam Barth.

        Add media/audio-delete-while-step-button-clicked.html back to the Tiger skipped list.

        * platform/mac-tiger/Skipped:

2009-12-27  Maciej Stachowiak  <mjs@apple.com>

        Rubber stamped by Adam Barth.

        Removed some tests from the skipped list that are not failing on my system.

        * platform/mac-snowleopard/Skipped:
        * platform/mac/Skipped:
        * platform/mac/fast/forms/menulist-style-color-expected.checksum: Added.
        * platform/mac/fast/forms/menulist-style-color-expected.png: Added.
        * platform/mac/fast/forms/menulist-style-color-expected.txt: Added.
        * platform/mac/plugins/qt-qwidget-plugin-expected.checksum: Added.
        * platform/mac/plugins/qt-qwidget-plugin-expected.png: Added.
        * platform/mac/plugins/qt-qwidget-plugin-expected.txt: Added.

2009-12-27  Maciej Stachowiak  <mjs@apple.com>

        Rubber stamped by Cameron Zwarich.

        Skip fast/images/size-failure.html on SnowLeopard because it
        tickles a CG bug that makes it time out.

        * platform/mac-snowleopard/Skipped:

2009-12-27  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Dan Bernstein.

        fast/forms/basic-selects.html is failing on SnowLeopard
        https://bugs.webkit.org/show_bug.cgi?id=32960

        The recently added fast/forms/basic-selects.html is failing on SnowLeopard; the
        result checked in is only valid for Leopard and earlier, because SnowLeopard
        slightly changed the disabled text color.
        
        Move the pre-SL result to platform/mac-leopard and generate new
        SnowLeopard results in platform/mac.
        
        * platform/mac-leopard/fast/forms/basic-selects-expected.checksum: Copied from platform/mac/fast/forms/basic-selects-expected.checksum.
        * platform/mac-leopard/fast/forms/basic-selects-expected.png: Copied from platform/mac/fast/forms/basic-selects-expected.png.
        * platform/mac-leopard/fast/forms/basic-selects-expected.txt: Copied from platform/mac/fast/forms/basic-selects-expected.txt.
        * platform/mac/fast/forms/basic-selects-expected.checksum:
        * platform/mac/fast/forms/basic-selects-expected.png:
        * platform/mac/fast/forms/basic-selects-expected.txt:

2009-12-27  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        SVG: Stop rendering of objects with empty mask and filter content
        https://bugs.webkit.org/show_bug.cgi?id=32968

        Check if the content is not drawn, if the mask clips the complete
        content away.
        mask-excessive-malloc needed an update. This patch stops rendering
        if there is no content in mask. But it's intention is to test
        big masking images.

        * platform/mac/svg/custom/empty-mask-expected.checksum: Added.
        * platform/mac/svg/custom/empty-mask-expected.png: Added.
        * platform/mac/svg/custom/empty-mask-expected.txt: Added.
        * platform/mac/svg/custom/mask-excessive-malloc-expected.checksum:
        * platform/mac/svg/custom/mask-excessive-malloc-expected.png:
        * platform/mac/svg/custom/mask-excessive-malloc-expected.txt:
        * svg/custom/empty-mask.svg: Added.
        * svg/custom/mask-excessive-malloc.svg:

2009-12-27  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        SVG Mask result wrong, if two different objects call the same mask id
        https://bugs.webkit.org/show_bug.cgi?id=32787

        Two rects with different sizes and positions call the same mask id. Both
        rects should be masked to two circles, dependent on the properties of the
        rects.

        * platform/mac/svg/custom/mask-on-multiple-objects-expected.checksum: Added.
        * platform/mac/svg/custom/mask-on-multiple-objects-expected.png: Added.
        * platform/mac/svg/custom/mask-on-multiple-objects-expected.txt: Added.
        * svg/custom/mask-on-multiple-objects.svg: Added.

2009-12-27  Csaba Osztrogonác  <ossy@webkit.org>

        Rubber-stamped by Simon Hausmann.

        [Qt] DRT sideeffect (authentication)
        https://bugs.webkit.org/show_bug.cgi?id=32961

        * platform/qt/Skipped: http/tests/xmlhttprequest/failed-auth.html added temorarily (until fix).

2009-12-27  Robert Hogan  <robert@roberthogan.net>

        Rubber-stamped by Simon Hausmann.

        Remove successful tests from qt skipped list

        https://bugs.webkit.org/show_bug.cgi?id=32948

        * platform/qt/Skipped:

2009-12-27  Robert Hogan  <robert@roberthogan.net>

        Rubber-stamped by Simon Hausmann.

        Remove duplicate entries from Qt skipped list

        https://bugs.webkit.org/show_bug.cgi?id=32947

        * platform/qt/Skipped:

2009-12-26  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        <rdar://problem/7483622> REGRESSION (r47255): Extra Large Amount of Empty Space
        https://bugs.webkit.org/show_bug.cgi?id=32690

        * fast/block/float/clear-to-fit-expected.checksum: Added.
        * fast/block/float/clear-to-fit-expected.png: Added.
        * fast/block/float/clear-to-fit-expected.txt: Added.
        * fast/block/float/clear-to-fit.html: Added.

2009-12-26  Csaba Osztrogonác  <ossy@webkit.org>

        Rubber-stamped by Simon Hausmann.

        [Qt] Skipping some flakey tests.
        https://bugs.webkit.org/show_bug.cgi?id=32946

        * platform/qt/Skipped:
         - http/tests/cookies/simple-cookies-expired.html added.
         - storage/database-lock-after-reload.html added.
         - storage/empty-statement.html added.
         - storage/execute-sql-args.html added.
         - storage/hash-change-with-xhr.html added.

2009-12-25  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        Implement HTML5 section element.
        https://bugs.webkit.org/show_bug.cgi?id=32936

        The new test file tests:
        - <p> closing,
        - Residual style, and
        - FormatBlock.

        * fast/html/script-tests/TEMPLATE.html: Added.
        * fast/html/script-tests/section-element.js: Added.
        * fast/html/section-element-expected.txt: Added.
        * fast/html/section-element.html: Added.

2009-12-25  Csaba Osztrogonác  <ossy@webkit.org>

        Rubber-stamped by Simon Hausmann.

        [Qt] svg/custom/global-constructors.html skipped 
        temporarily (until fix) because of missing variables.
        Platform dependent expected files updated after r52559.

        https://bugs.webkit.org/show_bug.cgi?id=32941

        * platform/qt/Skipped: svg/custom/global-constructors.html added until fix.
        * platform/qt/fast/dom/Window/window-properties-expected.txt: updated.
        * platform/qt/fast/dom/prototype-inheritance-expected.txt: updated.
        * platform/qt/fast/js/global-constructors-expected.txt: updated.

2009-12-25  Nikolas Zimmermann  <nzimmermann@rim.com>

        Reviewed by Dirk Schulze.

        DOMWindow is missing lots of SVG* constructor objects
        https://bugs.webkit.org/show_bug.cgi?id=20430

        Update LayoutTests after exposing several new SVG* constructor objects.

        * fast/dom/Window/window-properties-expected.txt:
        * fast/dom/prototype-inheritance-2-expected.txt:
        * fast/dom/prototype-inheritance-expected.txt:
        * fast/js/global-constructors-expected.txt:
        * svg/custom/global-constructors-expected.txt: Added.
        * svg/custom/global-constructors.html: Added.
        * svg/custom/script-tests/global-constructors.js: Added.
        (shouldBeDefined):

2009-12-25  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed trivial fix.

        LayoutTests/inspector/settings-set-get.html removed 
        by r52547, it should be removed from skiplist.

        * platform/qt/Skipped: inspector/settings-set-get.html removed.

2009-12-24  Robert Hogan  <robert@roberthogan.net>

        Reviewed by Eric Seidel.

        Remove LayoutTests/storage/change-version.html from Qt Skipped list
        
        LayoutTests/storage/change-version.html now passes.
        Probably related to the fix in https://bugs.webkit.org/show_bug.cgi?id=32437.
        
        https://bugs.webkit.org/show_bug.cgi?id=32917

        * platform/qt/Skipped:

2009-12-24  Andras Becsi  <abecsi@inf.u-szeged.hu>

        Rubber-stamped by Simon Hausmann.

        [Qt] Skip failing test until a solution for layoutTestController.notifyDone() is found.
        https://bugs.webkit.org/show_bug.cgi?id=31626

        * platform/qt/Skipped: inspector/console-clear.html skipped

2009-12-24  Jessie Berlin  <jberlin@webkit.org>

        Reviewed by Dan Bernstein.

        Fix for WebKit bug 29968 - Selecting text with text-overflow ellipsis
        should not show cut off text
        https://bugs.webkit.org/show_bug.cgi?id=29968
        
        Also fixes the issue on both Mac OS X and Windows where the highlight
        would extend only partway into the ellipsis based on the size of the
        characters being truncated.
        
        Places the expected results under the mac and win platforms separately
        because they are pixel test results and also the size of the
        RenderBlocks are showing up as slightly different between mac and win.

        * editing/selection/select-text-overflow-ellipsis.html: Added.
        * platform/mac/editing/selection/select-text-overflow-ellipsis-expected.checksum: Added.
        * platform/mac/editing/selection/select-text-overflow-ellipsis-expected.png: Added.
        * platform/mac/editing/selection/select-text-overflow-ellipsis-expected.txt: Added.
        * platform/win/editing/selection/select-text-overflow-ellipsis-expected.checksum: Added.
        * platform/win/editing/selection/select-text-overflow-ellipsis-expected.png: Added.
        * platform/win/editing/selection/select-text-overflow-ellipsis-expected.txt: Added.

2009-12-21  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Web Inspector: add Settings.js class that would manage
        frontend settings.

        This change:
        - Splits preferences and settings
        - Pushes settings to the frontend on load
        - Stores settings on each change
        - Stores showInheritedStyles as setting.

        https://bugs.webkit.org/show_bug.cgi?id=32832

        * inspector/settings-set-get-expected.txt: Removed.
        * inspector/settings-set-get.html: Removed.

2009-12-24  Pavel Feldman  <pfeldman@chromium.org>

        Not reviewed: follow up to r52545, adding missing tests.

        * inspector/console-clear-expected.txt: Added.
        * inspector/console-clear.html: Added.

2009-12-23  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Web Inspector: [REGRESSION] console's clear command does not work.

        https://bugs.webkit.org/show_bug.cgi?id=32897

        * inspector/console-clear-expected.txt: Added.
        * inspector/console-clear.html: Added.
        * inspector/console-tests.js:
        (dumpConsoleMessages.callback):
        (dumpConsoleMessages):

2009-12-23  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Web Inspector: Console dumps strings in escaped form.

        https://bugs.webkit.org/show_bug.cgi?id=32488

        * inspector/console-format-expected.txt:

2009-12-23  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=32905
        With Pinyin Simplified IM, a wrong character is deleted from google.com suggestion

        * platform/mac/editing/input/selection-change-closes-typing-expected.txt: Added.
        * platform/mac/editing/input/selection-change-closes-typing.html: Added.

2009-12-23  David Levin  <levin@chromium.org>

        REGRESSION (r52494): Assertion failure in Frame::caretBlinkTimerFired() (selection()->isCaret())
        https://bugs.webkit.org/show_bug.cgi?id=32903

        No review but ok'ed by Darin Adler. Rolling out r52494 due to above regression.

        * fast/forms/selection-layout-reentry-strange-case-expected.txt: Removed.
        * fast/forms/selection-layout-reentry-strange-case.html: Removed.
        * platform/mac/accessibility/frame-with-title-expected.txt:

2009-12-23  Nikolas Zimmermann  <nzimmermann@rim.com>

        Reviewed by Eric Seidel.

        Reverse JS GenerateConstructor logic
        https://bugs.webkit.org/show_bug.cgi?id=32910

        HTMLOptionsCollection correctly exposes its JS constructor now, thus fixing its test in fast/dom/wrapper-classes.html

        * fast/dom/wrapper-classes-expected.txt:

2009-12-23  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Eric Seidel.

        Added Windows specific results for a test that was committed in r52505.

        * platform/win/fast/forms/basic-textareas-quirks-expected.txt: Added.

2009-12-23  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        "Refused to execute a JavaScript script" error when embedding SWF with
        a URL that is also a query parameter
        https://bugs.webkit.org/show_bug.cgi?id=32908

        Update expected results to show that we don't raise an alarm in this case.

        * http/tests/security/xssAuditor/object-src-inject-expected.txt:

2009-12-23  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/7487164> First line of text cannot be selected
        https://bugs.webkit.org/show_bug.cgi?id=32749

        * fast/text/remove-zero-length-run-expected.txt: Added.
        * fast/text/remove-zero-length-run.html: Added.

2009-12-18  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Reviewed by Darin Adler.

        Fix for newlines turning into missing-gyphs when using SVG fonts

        https://bugs.webkit.org/show_bug.cgi?id=32710

        Font::drawText() has three code paths:

          - drawTextUsingSVGFont()
          - drawSimpleText()
          - drawComplexText()

        The latter two both have logic to replace newlines and tabs, as well
        as a few other control characters that are considered spaces, with
        spaces, before actually drawing the text. Previously the SVG font
        path did not have this kind of logic.

        This change introduces two helper functions in Font to do this space
        replacement, which are then used for the simple path, the SVG path,
        and the Qt implementation of the complex path.

        Test: svg/custom/svg-fonts-in-html-linebreaks.html

        * svg/custom/resources/ABCFont.svg: Added. Font for test case
        * svg/custom/svg-fonts-in-html-linebreaks-expected.txt: Added.
        * svg/custom/svg-fonts-in-html-linebreaks.html: New test case

2009-12-23  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        HTMLInputElement::valueAsDate getter support.
        https://bugs.webkit.org/show_bug.cgi?id=32876

        Tests for the valueAsDate getter with various types.

        * fast/forms/input-valueasdate-date-expected.txt: Added.
        * fast/forms/input-valueasdate-date.html: Added.
        * fast/forms/input-valueasdate-datetime-expected.txt: Added.
        * fast/forms/input-valueasdate-datetime.html: Added.
        * fast/forms/input-valueasdate-datetimelocal-expected.txt: Added.
        * fast/forms/input-valueasdate-datetimelocal.html: Added.
        * fast/forms/input-valueasdate-month-expected.txt: Added.
        * fast/forms/input-valueasdate-month.html: Added.
        * fast/forms/input-valueasdate-time-expected.txt: Added.
        * fast/forms/input-valueasdate-time.html: Added.
        * fast/forms/input-valueasdate-week-expected.txt: Added.
        * fast/forms/input-valueasdate-week.html: Added.
        * fast/forms/script-tests/input-valueasdate-date.js: Added.
        * fast/forms/script-tests/input-valueasdate-datetime.js: Added.
        * fast/forms/script-tests/input-valueasdate-datetimelocal.js: Added.
        * fast/forms/script-tests/input-valueasdate-month.js: Added.
        * fast/forms/script-tests/input-valueasdate-time.js: Added.
        * fast/forms/script-tests/input-valueasdate-week.js: Added.

2009-12-22  Kenneth Russell  <kbr@google.com>

        Reviewed by Eric Seidel.

        [Chromium] Garbage in transparent regions of images uploaded as textures
        https://bugs.webkit.org/show_bug.cgi?id=32888

        * fast/canvas/webgl/bug-32888-expected.txt: Added.
        * fast/canvas/webgl/bug-32888.html: Added.
        * fast/canvas/webgl/resources/bug-32888-texture.png: Added.

2009-12-22  Darin Adler  <darin@apple.com>

        Removed DataGrid from results.

        * fast/dom/Window/window-properties-expected.txt: Removed DataGrid classes.
        * fast/dom/prototype-inheritance-2-expected.txt: Ditto.
        * fast/dom/prototype-inheritance-expected.txt: Ditto.
        * fast/js/global-constructors-expected.txt: Ditto.

2009-12-22  Darin Adler  <darin@apple.com>

        Disabled DataGrid tests.

        * fast/dom/HTMLDataGridElement/DataGridColumns-basic.html: Removed.
        * fast/dom/HTMLDataGridElement/DataGridColumns-basic.html-disabled: Copied from fast/dom/HTMLDataGridElement/DataGridColumns-basic.html.
        * fast/dom/HTMLDataGridElement/DataGridColumns-dom-attributes.html: Removed.
        * fast/dom/HTMLDataGridElement/DataGridColumns-dom-attributes.html-disabled: Copied from fast/dom/HTMLDataGridElement/DataGridColumns-dom-attributes.html.
        * fast/dom/HTMLDataGridElement/DataGridColumns-dom.html: Removed.
        * fast/dom/HTMLDataGridElement/DataGridColumns-dom.html-disabled: Copied from fast/dom/HTMLDataGridElement/DataGridColumns-dom.html.
        * fast/dom/HTMLDataGridElement/DataGridDataSource-basic.html: Removed.
        * fast/dom/HTMLDataGridElement/DataGridDataSource-basic.html-disabled: Copied from fast/dom/HTMLDataGridElement/DataGridDataSource-basic.html.

2009-12-22  Darin Adler  <darin@apple.com>

        Reviewed by Sam Weinig.

        ASSERTION FAILED: m_numNodeListCaches
        https://bugs.webkit.org/show_bug.cgi?id=19526
        <rdar://problem/7431572>

        * fast/dom/NodeList/adoptNode-node-list-cache-expected.txt: Added.
        * fast/dom/NodeList/adoptNode-node-list-cache.html: Added.
        * fast/dom/NodeList/resources: Added.
        * fast/dom/NodeList/resources/adoptNode-node-list-cache-subframe.html: Added.

2009-12-22  Dirk Pranke  <dpranke@chromium.org>

        Reviewed by Eric Seidel.

        Upstream platform-specific variant of
        plugins/get-url-with-blank-target.html . There is some uncertainty
        over which behavior is correct - Chromium's and Safari/Win in this
        test, or Safari/Mac in the generic test. See 
        https://bugs.webkit.org/show_bug.cgi?id=32886 for the bug to converge
        the two.
        This patch is bug https://bugs.webkit.org/show_bug.cgi?32762 .

        * platform/chromium/plugins/get-url-with-blank-target-expected.txt: Added.
        * platform/chromium/plugins/get-url-with-blank-target.html: Added.

2009-12-22  Dirk Pranke  <dpranke@chromium.org>

        Reviewed by Eric Seidel.

        Upstream a bunch of forms tests from chromium.org.
        https://bugs.webkit.org/show_bug.cgi?id=32755

        * fast/forms/basic-selects.html: Added.
        * fast/forms/basic-textareas-quirks.html: Added.
        * fast/forms/document-write-empty-expected.txt: Added.
        * fast/forms/document-write-empty.html: Added.
        * fast/forms/form-action-expected.txt: Added.
        * fast/forms/form-action.html: Added.
        * fast/forms/lazy-event-listener-scope-chain-expected.txt: Added.
        * fast/forms/lazy-event-listener-scope-chain.html: Added.
        * fast/forms/resources/logo.gif: Added.
        * fast/forms/selected-index-value-expected.txt: Added.
        * fast/forms/selected-index-value.html: Added.
        * fast/forms/style-display-none-expected.txt: Added.
        * fast/forms/style-display-none.html: Added.
        * platform/mac/fast/forms/basic-selects-expected.checksum: Added.
        * platform/mac/fast/forms/basic-selects-expected.png: Added.
        * platform/mac/fast/forms/basic-selects-expected.txt: Added.
        * platform/mac/fast/forms/basic-textareas-quirks-expected.checksum:
        * platform/mac/fast/forms/basic-textareas-quirks-expected.png:
        * platform/mac/fast/forms/basic-textareas-quirks-expected.txt:


2009-12-22  Dirk Pranke  <dpranke@chromium.org>

        Reviewed by Eric Seidel.

        Fix ordering of entries in this ChangeLog file
        https://bugs.webkit.org/show_bug.cgi?id=32883

2009-12-22  Dirk Pranke  <dpranke@chromium.org>

        Reviewed by Eric Seidel.

        Add platform-specific chromium test.
        https://bugs.webkit.org/show_bug.cgi?id=32741

        * platform/chromium/fast/dom/interval-expected.txt: Added.
        * platform/chromium/fast/dom/interval.html: Added.

2009-12-22  Dirk Pranke  <dpranke@chromium.org>

        Reviewed by Adam Barth.

        Attempting to upstream xss-inactive-closure test from the Chromium
        test suite. https://bugs.webkit.org/show_bug.cgi?id=32691 .

        * http/tests/security/listener/resources/xss-inactive-closure-child-2.html: Added.
        * http/tests/security/listener/resources/xss-inactive-closure-child.html: Added.
        * http/tests/security/listener/xss-inactive-closure-expected.txt: Added.
        * http/tests/security/listener/xss-inactive-closure.html: Added.

2009-12-22  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Web Inspector: simplify highlighter definition.

        https://bugs.webkit.org/show_bug.cgi?id=32869

        * inspector/syntax-highlight-css-expected.txt:
        * inspector/syntax-highlight-javascript-expected.txt:
        * inspector/syntax-highlight.js:
        (frontend_dumpSyntaxHighlight):

2009-12-21  Darin Adler  <darin@apple.com>

        Reviewed by Sam Weinig.

        Reentrancy problem with selection in some edge cases.
        https://bugs.webkit.org/show_bug.cgi?id=32842
        rdar://problem/7449974

        * fast/forms/selection-layout-reentry-strange-case-expected.txt: Added.
        * fast/forms/selection-layout-reentry-strange-case.html: Added.

        * platform/mac/accessibility/frame-with-title-expected.txt: Updated since
        the number of layouts is now different.

2009-12-21  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Skip layoutTestController.notifyDone() related test until fix.
        https://bugs.webkit.org/show_bug.cgi?id=31626

        * platform/qt/Skipped: http/tests/misc/set-window-opener-to-null.html added.

2009-12-22  Dirk Pranke  <dpranke@chromium.org>

        Reviewed by Eric Seidel.

        Upstream a bunch of forms tests from chromium.org.
        https://bugs.webkit.org/show_bug.cgi?id=32755

        * fast/forms/basic-selects.html: Added.
        * fast/forms/basic-textareas-quirks.html: Added.
        * fast/forms/document-write-empty-expected.txt: Added.
        * fast/forms/document-write-empty.html: Added.
        * fast/forms/form-action-expected.txt: Added.
        * fast/forms/form-action.html: Added.
        * fast/forms/lazy-event-listener-scope-chain-expected.txt: Added.
        * fast/forms/lazy-event-listener-scope-chain.html: Added.
        * fast/forms/resources/logo.gif: Added.
        * fast/forms/selected-index-value-expected.txt: Added.
        * fast/forms/selected-index-value.html: Added.
        * fast/forms/style-display-none-expected.txt: Added.
        * fast/forms/style-display-none.html: Added.
        * platform/mac/fast/forms/basic-selects-expected.checksum: Added.
        * platform/mac/fast/forms/basic-selects-expected.png: Added.
        * platform/mac/fast/forms/basic-selects-expected.txt: Added.
        * platform/mac/fast/forms/basic-textareas-quirks-expected.checksum:
        * platform/mac/fast/forms/basic-textareas-quirks-expected.png:
        * platform/mac/fast/forms/basic-textareas-quirks-expected.txt:


2009-12-21  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by Alexey Proskuryakov.

        Invalid url should raise SYNTAX_ERR exception.
        https://bugs.webkit.org/show_bug.cgi?id=32700

        * websocket/tests/bad-sub-protocol-expected.txt: add CONSOLE MESSAGEs
        * websocket/tests/script-tests/url-parsing.js: add invalid url tests.
          Also changed url from ws://127.0.0.1/ to ws://127.0.0.1:8880/websocket/tests/simple to make it sure no errors on console message for these tests by not receiving unexpected response from 127.0.0.1:80
        * websocket/tests/url-parsing-expected.txt:

2009-12-21  Dirk Pranke  <dpranke@chromium.org>

        Reviewed by Adam Barth.

        Upstream a test from chromium.org.
        https://bugs.webkit.org/show_bug.cgi?id=32761

        * http/tests/misc/resources/content-iframe.html: Added.
        * http/tests/misc/set-window-opener-to-null-expected.txt: Added.
        * http/tests/misc/set-window-opener-to-null.html: Added.

2009-12-21  Enrica Casucci  <enrica@apple.com>

        Reviewed by Maciej Stachowiak.

        REGRESSION(4.0.4-ToT): Indent deletes non highlighted text in gmail.
        <rdar://problem/7489326>
        https://bugs.webkit.org/show_bug.cgi?id=32843

        The fix for 7442387 did not handle the case where the end of paragraph
        is not a descendant of the computed outer block.
        Updated editing/execCommand/indent-with-style2.html to cover this case too.

        * editing/execCommand/indent-with-style2-expected.txt:
        * editing/execCommand/indent-with-style2.html:

2009-12-21  Dirk Pranke  <dpranke@chromium.org>

        Reviewed by Adam Barth.

        Upstream a bunch of platform-specific Chromium plugin tests.
        https://bugs.webkit.org/show_bug.cgi?id=32751

        * platform/chromium/plugins/call-as-function-expected.txt: Added.
        * platform/chromium/plugins/call-as-function.html: Added.
        * platform/chromium/plugins/get-url-with-iframe-target-no-crash-expected.txt: Added.
        * platform/chromium/plugins/get-url-with-iframe-target-no-crash.html: Added.
        * platform/chromium/plugins/multiple-plugins-expected.txt: Added.
        * platform/chromium/plugins/multiple-plugins.html: Added.
        * platform/chromium/plugins/nested-plugin-objects-expected.txt: Added.
        * platform/chromium/plugins/nested-plugin-objects.html: Added.
        * platform/chromium/plugins/refcount-leaks-expected.txt: Added.
        * platform/chromium/plugins/refcount-leaks.html: Added.
        * platform/chromium/plugins/return-npobject-expected.txt: Added.
        * platform/chromium/plugins/return-npobject.html: Added.
        * platform/chromium/plugins/script-object-invoke-expected.txt: Added.
        * platform/chromium/plugins/script-object-invoke.html: Added.

2009-12-21  Dirk Pranke  <dpranke@chromium.org>

        Reviewed by Darin Adler.

        Upstream a test to ensure we handle variations on "javascript:" URL
        correctly.

        https://bugs.webkit.org/show_bug.cgi?id=32740

        * fast/dom/xss-DENIED-javascript-variations-expected.txt: Added.
        * fast/dom/xss-DENIED-javascript-variations.html: Added.

2009-12-21  Nate Chapin  <japhet@chromium.org>

        Unreviewed, build fix.

        Cleared instead of deleted some layout test files, making them fail. Delete them for real.

        * http/tests/navigation/image-load-in-beforeunload-handler-expected.txt: Removed.
        * http/tests/navigation/image-load-in-beforeunload-handler.html: Removed.
        * http/tests/navigation/image-load-in-unload-handler-expected.txt: Removed.
        * http/tests/navigation/image-load-in-unload-handler.html: Removed.
        * http/tests/navigation/resources/wait-then-notify-done.html: Removed.

2009-12-21  Nate Chapin  <japhet@chromium.org>

        Rubber-stamped by Darin Adler.

        Revert r52446 due to crashiness.

        https://bugs.webkit.org/show_bug.cgi?id=32839

        * http/tests/navigation/image-load-in-beforeunload-handler-expected.txt:
        * http/tests/navigation/image-load-in-beforeunload-handler.html:
        * http/tests/navigation/image-load-in-unload-handler-expected.txt:
        * http/tests/navigation/image-load-in-unload-handler.html:
        * http/tests/navigation/resources/wait-then-notify-done.html:

2009-12-21  Dirk Schulze  <krit@webkit.org>

        Reviewed by Darin Adler and Nikolas Zimmermann.

        Speed-up SVG Masking
        https://bugs.webkit.org/show_bug.cgi?id=32738

        Update pixel test results for two SVG masking operations. They don't fail
        and there is no noticable difference between the old and new results. But
        Masking uses smaller ImageBuffers now and that changed the checksum.

        * platform/mac/svg/W3C-SVG-1.1/masking-intro-01-f-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/masking-intro-01-f-expected.png:
        * platform/mac/svg/batik/masking/maskRegions-expected.checksum:
        * platform/mac/svg/batik/masking/maskRegions-expected.png:

2009-12-21  Andreas Kling  <andreas.kling@nokia.com>

        Reviewed by Darin Adler.

        Test that dragging an SVG as <img> doesn't crash the browser.
        Note that this only works in debug mode as it's a failing assert.

        https://bugs.webkit.org/show_bug.cgi?id=32511

        * fast/images/drag-svg-as-image.html: Added.
        * platform/qt/Skipped: fast/images/drag-svg-as-image.html added.

2009-12-21  Nate Chapin  <japhet@chromium.org>

        Reviewed by Darin Adler.

        Tests for https://bugs.webkit.org/show_bug.cgi?id=30457.

        * http/tests/navigation/image-load-in-beforeunload-handler-expected.txt: Added.
        * http/tests/navigation/image-load-in-beforeunload-handler.html: Added.
        * http/tests/navigation/image-load-in-unload-handler-expected.txt: Added.
        * http/tests/navigation/image-load-in-unload-handler.html: Added.
        * http/tests/navigation/resources/wait-then-notify-done.html: Added.

2009-12-21  Philippe Normand  <pnormand@igalia.com>

        Rubber-stamped by Xan Lopez.

        * platform/gtk/Skipped: Unskip test fixed by patch from Bug 24001.

2009-12-20  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        A test for Date binding.
        https://bugs.webkit.org/show_bug.cgi?id=32698

        * fast/forms/input-valueasdate-expected.txt: Added.
        * fast/forms/input-valueasdate.html: Added.
        * fast/forms/script-tests/input-valueasdate.js: Added.

2009-12-20  Alejandro G. Castro  <alex@igalia.com>

        Reviewed by Gustavo Noronha Silva.

        [GTK] Failing test platform/gtk/editing/pasteboard/middle-button-paste.html
        https://bugs.webkit.org/show_bug.cgi?id=32788

        Avoid using fixed values when moving mouse.

        * platform/gtk/editing/pasteboard/middle-button-paste-expected.txt:
        * platform/gtk/editing/pasteboard/middle-button-paste.html:

2009-12-20  Alejandro G. Castro  <alex@igalia.com>

        Reviewed by Gustavo Noronha Silva.

        * platform/gtk/editing/pasteboard/middle-button-paste-expected.txt:
        * platform/gtk/editing/pasteboard/middle-button-paste.html:

2009-12-20  Dirk Pranke  <dpranke@chromium.org>

        Reviewed by Darin Adler.

        Upstreaming two plugin tests from chromium.org.
        https://bugs.webkit.org/show_bug.cgi?id=32750

        * plugins/get-file-url-expected.txt: Added.
        * plugins/get-file-url.html: Added.
        * plugins/get-url-with-iframe-target-expected.txt: Added.
        * plugins/get-url-with-iframe-target.html: Added.
        * plugins/resources/get-file-url-subframe.html: Added.

2009-12-20  Dirk Pranke  <dpranke@chromium.org>

        Reviewed by Darin Adler.

        Upstream a test from chromium.org that verifies that calling
        document.clear() from an external script doesn't crash the browser.
        https://bugs.webkit.org/show_bug.cgi?id=32743

        * fast/dom/document-clear-expected.txt: Added.
        * fast/dom/document-clear.html: Added.
        * fast/dom/resources/document-clear.js: Added.

2009-12-20  Dirk Pranke  <dpranke@chromium.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=32735

        Upstream a test from chromium.org - ensure that creating a 
        new Image is actually creating an HTML image element, regardless
        of the doctype.

        * svg/custom/new-image-is-html-element-expected.txt: Added.
        * svg/custom/new-image-is-html-element.svg: Added.

2009-12-20  Dirk Pranke  <dpranke@fila-macpro.mtv.corp.google.com>

        Reviewed by Darin Adler.

        upstream test from chromium.org - this tests simulating italic
        on glyphs that don't have an italic version.

        https://bugs.webkit.org/show_bug.cgi?id=32693

        * fast/text/fake-italic.html: Added.
        * platform/mac/fast/text/fake-italic-expected.checksum: Added.
        * platform/mac/fast/text/fake-italic-expected.png: Added.
        * platform/mac/fast/text/fake-italic-expected.txt: Added.

2009-12-19  Adam Barth  <abarth@webkit.org>

        No review, rolling out r52399.
        http://trac.webkit.org/changeset/52399

        * websocket/tests/bad-sub-protocol-expected.txt:
        * websocket/tests/script-tests/url-parsing.js:
        * websocket/tests/url-parsing-expected.txt:

2009-12-19  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        Add a test for window.open and JavaScript URLs.

        * http/tests/security/xss-DENIED-window-open-javascript-url-expected.txt: Added.
        * http/tests/security/xss-DENIED-window-open-javascript-url.html: Added.

2009-12-19  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by Alexey Proskuryakov.

        Invalid url should raise SYNTAX_ERR exception.
        https://bugs.wbekit.org/show_bug.cgi?id=32700

        * websocket/tests/bad-sub-protocol-expected.txt: add CONSOLE MESSAGEs
        * websocket/tests/script-tests/url-parsing.js: add invalid url tests.
          Also changed url from ws://127.0.0.1/ to ws://127.0.0.1:8880/websocket/tests/simple to make it sure no errors on console message for these tests by not receiving unexpected response from 127.0.0.1:80.
        * websocket/tests/url-parsing-expected.txt:

2009-12-19  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        Add tests to check filter, mask, clip, opacity and marker ordering
        https://bugs.webkit.org/show_bug.cgi?id=14010

        Tests the right order of filter and clipper/masker aplied to a SVG
        object.

        * platform/mac/svg/filters/filter-clip-expected.checksum: Added.
        * platform/mac/svg/filters/filter-clip-expected.png: Added.
        * platform/mac/svg/filters/filter-clip-expected.txt: Added.
        * svg/filters/filter-clip.svg: Added.

2009-12-19  Benjamin Otte  <otte@gnome.org>

        Reviewed by Gustavo Noronha.

        Rebaselined test after revision 52335.

        * platform/gtk/svg/css/getComputedStyle-basic-expected.txt: Added.

2009-12-19  Alejandro G. Castro  <alex@igalia.com>

        Reviewed by Xan Lopez.

        Tests for https://bugs.webkit.org/show_bug.cgi?id=28153
        can't middle-button paste within a single window

        * LayoutTests/platform/gtk/editing/pasteboard/middle-button-paste-expected.txt: Added
        * LayoutTests/platform/gtk/editing/pasteboard/middle-button-paste.html: Adeed

2009-12-19  MORITA Hajime  <morrita@gmail.com>

        Reviewed by Darin Adler.

        WebCore::Range::surroundContents NULL pointer crash.

        https://bugs.webkit.org/show_bug.cgi?id=31684

        * fast/dom/Range/31684-expected.txt: Added.
        * fast/dom/Range/31684.html: Added.
        * fast/dom/Range/script-tests/31684.js: Added.

2009-12-18  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Darin Adler.

        Crash when accessing webkitTransition property after setting webkitTransitionProperty with invalid value.
        https://bugs.webkit.org/show_bug.cgi?id=31559
        
        Test accessing shorthand property after setting an individual property to a longer or shorter list.

        * fast/css/shorthand-mismatched-list-crash-expected.txt: Added.
        * fast/css/shorthand-mismatched-list-crash.html: Added.

2009-12-18  Jon Honeycutt  <jhoneycutt@apple.com>

        REGRESSION(r52233): MSAA: Accessibility role of lists is wrong

        https://bugs.webkit.org/show_bug.cgi?id=32736

        Reviewed by Adam Roben.

        * platform/win/accessibility/list-role-expected.txt: Added.
        * platform/win/accessibility/list-role.html: Added.
        Verify that lists return the "list" role.

2009-12-17  Jon Honeycutt  <jhoneycutt@apple.com>

        MSAA: Accessibility role of list items is wrong

        https://bugs.webkit.org/show_bug.cgi?id=32688

        Reviewed by Adam Roben.

        * platform/win/accessibility/list-item-role-expected.txt: Added.
        * platform/win/accessibility/list-item-role.html: Added.
        Verify that the list item role is "list item".

2009-12-17  Jon Honeycutt  <jhoneycutt@apple.com>

        MSAA: Accessibility role of list markers is wrong

        https://bugs.webkit.org/show_bug.cgi?id=32687

        Reviewed by Adam Roben.

        * platform/win/accessibility/list-marker-role-expected.txt: Added.
        * platform/win/accessibility/list-marker-role.html: Added.
        Verify that the list marker role is "text".

2009-12-18  Brian Weinstein  <bweinstein@apple.com>

        Reviewed by Adam Roben.
        
        Fixes <http://webkit.org/b/32613>.
        REGRESSION (r52008): Middle-clicking on a linked image starts a pan scroll,
        but should follow the link instead.

        Added tests that test pan scrolling behavior when you middle click on images with
        links, and if you click on parts on image maps that are links, and that aren't.

        * platform/win/fast/events/panScroll-image-no-scroll-expected.txt: Added.
        * platform/win/fast/events/panScroll-image-no-scroll.html: Added.
        * platform/win/fast/events/panScroll-imageMap-href-no-scroll-expected.txt: Added.
        * platform/win/fast/events/panScroll-imageMap-href-no-scroll.html: Added.
        * platform/win/fast/events/panScroll-imageMap-noHref-scroll-expected.txt: Added.
        * platform/win/fast/events/panScroll-imageMap-noHref-scroll.html: Added.

2009-12-18  Kenneth Russell  <kbr@google.com>

        Reviewed by Darin Fisher.

        Index validation for drawElements examines too many indices
        https://bugs.webkit.org/show_bug.cgi?id=32692

        * fast/canvas/webgl/bug-32692-expected.txt: Added.
        * fast/canvas/webgl/bug-32692.html: Added.

2009-12-18  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Rubber-stamped by Xan Lopez.

        Unskip test that should now pass.

        * platform/gtk/Skipped:

2009-12-18  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Adam Roben.

        Add expected failing results for fast/dom/Element/id-in-deleteutton.html.
        The progress of fixing the failure is being tracked by:
        <https://bugs.webkit.org/show_bug.cgi?id=32727>.

        * platform/win/fast/dom/Element: Added.
        * platform/win/fast/dom/Element/id-in-deletebutton-expected.txt: Added.

2009-12-18  Shu Chang  <Chang.Shu@nokia.com>

        Reviewed by Darin Adler.

        New test cases for isId support.
        https://bugs.webkit.org/show_bug.cgi?id=5578

        * dom/xhtml/level3/core/attrisid04-expected.txt:
        * dom/xhtml/level3/core/attrisid04.js:
        (setUpPage):
        * dom/xhtml/level3/core/attrisid05-expected.txt:
        * dom/xhtml/level3/core/attrisid05.js:
        (setUpPage):
        * fast/dom/Element/attrisid-extra01-expected.txt: Added.
        * fast/dom/Element/attrisid-extra01.html: Added.
        * fast/dom/Element/id-in-applet-expected.txt: Added.
        * fast/dom/Element/id-in-applet.html: Added.
        * fast/dom/Element/id-in-deletebutton-expected.txt: Added.
        * fast/dom/Element/id-in-deletebutton.html: Added.
        * fast/dom/Element/id-in-formcollection-expected.txt: Added.
        * fast/dom/Element/id-in-formcollection.html: Added.
        * fast/dom/Element/id-in-frame-expected.txt: Added.
        * fast/dom/Element/id-in-frame.html: Added.
        * fast/dom/Element/id-in-frameset-expected.txt: Added.
        * fast/dom/Element/id-in-frameset.html: Added.
        * fast/dom/Element/id-in-getelement01-expected.txt: Added.
        * fast/dom/Element/id-in-getelement01.html: Added.
        * fast/dom/Element/id-in-insert-hr-expected.txt: Added.
        * fast/dom/Element/id-in-insert-hr.html: Added.
        * fast/dom/Element/id-in-map-expected.txt: Added.
        * fast/dom/Element/id-in-map.html: Added.
        * fast/dom/Element/id-in-param-expected.txt: Added.
        * fast/dom/Element/id-in-param.html: Added.

2009-12-18  Alejandro G. Castro  <alex@igalia.com>

        Reviewed by Darin Adler.

        REGRESSION (r38898): Using the up arrow in a textarea gets "stuck"
        at the beginning.
        https://bugs.webkit.org/show_bug.cgi?id=31920

        Added test showing the problem described in the bug.

        * editing/selection/wrapped-line-caret-3.html:
        * editing/selection/wrapped-line-caret-3-expected.txt:

2009-12-17  Dirk Pranke  <dpranke@chromium.org>

        Reviewed by Adam Barth.

        Upstreaming an XSS test from chromium.org.
        https://bugs.webkit.org/show_bug.cgi?id=32685

        * http/tests/security/xss-DENIED-assign-location-href-javascript-expected.txt: Added.
        * http/tests/security/xss-DENIED-assign-location-href-javascript.html: Added.

2009-12-17  Justin Schuh  <jschuh@chromium.org>

        Reviewed by Dan Bernstein.

        Bug 32357: SVG test case crashes WebKit (invalid font URL)
        https://bugs.webkit.org/show_bug.cgi?id=32357

        Added check for NULL return value from DocLoader::requestFont()

        * svg/text/text-font-uri-invalid-expected.txt: Added.
        * svg/text/text-font-uri-invalid.svg: Added.

2009-12-17  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Dan Bernstein.

        marquee with display:inline causes crash
        https://bugs.webkit.org/show_bug.cgi?id=32374

        * fast/inline/inline-marquee-crash-expected.txt: Added.
        * fast/inline/inline-marquee-crash.html: Added.

2009-12-17  Fumitoshi Ukai  <ukai@chromium.org>

        Unreviewed. Unskip websocket tests

        New pywebsocket (0.4.5) landed at WebKit r52296, so
        sub-protocol-with-space.html should pass.

        * platform/mac/Skipped: delete websocket/tests/sub-protocol-with-space.html
        * platform/win/Skipped: delete websocket/tests/sub-protocol-with-space.html

2009-12-17  Pavel Feldman  <pfeldman@dhcp-172-28-174-220.spb.corp.google.com>

        Reviewed by Timothy Hatcher.

        Web Inspector: Incorrect Doctype.

        REGRESSION(4.0.4-TOT):Web Inspector: Incorrect Doctype
        https://bugs.webkit.org/show_bug.cgi?id=32671

        * inspector/elements-panel-structure-expected.txt:
        * inspector/elements-panel-structure.html:

2009-12-17  Chris Fleizach  <cfleizach@apple.com>

        Unreviewed layout test fix.

        WAI-ARIA: implement treegrid
        https://bugs.webkit.org/show_bug.cgi?id=31299

        The test for this patch shouldn't be run on Tiger.

        * platform/mac-tiger/Skipped:

2009-12-07  Philippe Normand  <pnormand@igalia.com>

        Reviewed by Xan Lopez.

        [GTK] Add controls for playing html5 video.
        https://bugs.webkit.org/show_bug.cgi?id=26304

        Unskip some of the media tests related to the controls
        UI. Generated results for the new ones, it will likely be needed
        again when we add new features in the controls UI.

        * platform/gtk/Skipped:
        * platform/gtk/media/controls-after-reload-expected.txt: Added.
        * platform/gtk/media/controls-drag-timebar-expected.txt: Added.
        * platform/gtk/media/controls-strict-expected.txt: Added.
        * platform/gtk/media/controls-styling-expected.txt: Added.
        * platform/gtk/media/video-controls-rendering-expected.txt: Added.
        * platform/gtk/media/video-controls-visible-audio-only-expected.txt: Copied from LayoutTests/platform/mac/media/video-controls-visible-audio-only-expected.txt.

2009-12-17  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Skipping one test that needs overriding of standard preferences,
        and a new one.

        * platform/gtk/Skipped:

2009-12-16  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Put test into skiplist because of missing layoutTestController.setSmartInsertDeleteEnabled().

        * platform/qt/Skipped: editing/selection/doubleclick-beside-cr-span.html added.

2009-12-16  MORITA Hajime <morrita@gmail.com>

        Reviewed by Eric Seidel.

        Bug 28306: double-clicking a word inside <b> beside newline select two words
        https://bugs.webkit.org/show_bug.cgi?id=28306

        SimplifiedBackwardsTextIterator missed trailing whitespaces just
        before folding line-break, which is used to detect word
        boundaries. This fix checks strings on RenderText and expand text
        range on SimplifiedBackwardsTextIterator to include trailing
        whitespaces if availble.

        * editing/selection/doubleclick-beside-cr-span-expected.txt: Added.
        * editing/selection/doubleclick-beside-cr-span.html: Added.

2009-12-16  Jon Honeycutt  <jhoneycutt@apple.com>

        MSAA: Accessibility role of text nodes is wrong

        https://bugs.webkit.org/show_bug.cgi?id=32631
        <rdar://problem/7369084>

        Reviewed by Alice Liu.

        * platform/win/accessibility/text-role-expected.txt: Added.
        * platform/win/accessibility/text-role.html: Added.
        Check that the role of the text node that is the first child of the
        <a> tag has the "editable text" role.

2009-12-16  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by Darin Adler.

        Fix LayoutTests/websocket/tests/url-with-query-for-no-query.html
        https://bugs.webkit.org/show_bug.cgi?id=32606

        It should test with /websocket/tests/no-query

        * websocket/tests/script-tests/url-with-query-for-no-query.js:
        * websocket/tests/url-with-query-for-no-query-expected.txt:

2009-12-16  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] editing/selection/empty-cell-right-click.html introduced in r52220 failed.
        https://bugs.webkit.org/show_bug.cgi?id=32639

        Test was refactored by r52226, and now it passes.

        * platform/qt/Skipped: unskip editing/selection/empty-cell-right-click.html.

2009-12-16  Enrica Casucci  <enrica@apple.com>

        Reviewed by Adele Peterson.

        Revised version of the test for:
        <rdar://problem/5565465
        https://bugs.webkit.org/show_bug.cgi?id=32622

        * editing/selection/empty-cell-right-click-expected.txt:
        * editing/selection/empty-cell-right-click.html:

2009-12-16  Csaba Osztrogonác  <ossy@webkit.org>

        Rubber-stamped by Simon Hausmann.

        [Qt] editing/selection/empty-cell-right-click.html introduced in r52220 failed.
        https://bugs.webkit.org/show_bug.cgi?id=32639

        * platform/qt/Skipped: editing/selection/empty-cell-right-click.html added until fix.

2009-12-16  Enrica Casucci  <enrica@apple.com>

        Reviewed by Eric Seidel.

        Right clicking in a table cell creates a selection that extends into the next cell.
        <rdar://problem/5565465>
        https://bugs.webkit.org/show_bug.cgi?id=32622

        * editing/selection/empty-cell-right-click-expected.txt: Added.
        * editing/selection/empty-cell-right-click.html: Added.

2009-12-16  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        feMerge crahses if feMergeNodes attribute in is empty
        https://bugs.webkit.org/show_bug.cgi?id=32489

        The previous test only checked if feMerge works on empty node
        without a last effect. In this case we get a source image and 
        everything works fine. This test also covers the case if there
        is a last effect.

        * platform/mac/svg/custom/empty-merge-expected.checksum:
        * platform/mac/svg/custom/empty-merge-expected.png:
        * platform/mac/svg/custom/empty-merge-expected.txt:
        * svg/custom/empty-merge.svg:

2009-12-16  Dirk Schulze  <krit@webkit.org>

        Reviewed by Darin Adler.

        sourceGraphic wrong if positive x,y is >0 and objectBB is selected on Filter
        https://bugs.webkit.org/show_bug.cgi?id=32575

        Check if the GraphicsContex get adjusted, if the source rect is clipped
        to the filter rect.

        * platform/mac/svg/filters/filter-source-position-expected.checksum: Added.
        * platform/mac/svg/filters/filter-source-position-expected.png: Added.
        * platform/mac/svg/filters/filter-source-position-expected.txt: Added.
        * svg/filters/filter-source-position.svg: Added.

2009-12-16  Enrica Casucci  <enrica@apple.com>

        Reviewed by Adele Peterson.

        CrashTracer: [USER] 1 crash in Safari at com.apple.WebCore: WebCore::endsOfNodeAreVisuallyDistinctPositions + 115
        <rdar://problem/7467108>
        https://bugs.webkit.org/show_bug.cgi?id=32590

        * editing/selection/button-right-click-expected.txt: Added.
        * editing/selection/button-right-click.html: Added.

2009-12-16  Csaba Osztrogonác  <ossy@webkit.org>

        Rubber-stamped by Kenneth Rohde Christiansen.

        https://bugs.webkit.org/show_bug.cgi?id=31332

        [Qt] After http://trac.webkit.org/changeset/52192
        there are a failing and a timeouter test.

        * platform/qt/Skipped: http/tests/misc/drag-over-iframe-invalid-source-crash.html added until fix.
        * platform/qt/fast/text/international/khmer-selection-expected.txt: update outdated expected.

2009-12-16  Csaba Osztrogonác  <ossy@webkit.org>

        Rubber-stamped by Simon Hausmann.

        [Qt] http://trac.webkit.org/changeset/52194 fixed a side-effect
        of DumpRenderTree. The previously wrong expected file updated.

        * platform/qt/css2.1/t1505-c524-font-var-00-b-expected.txt: updated.

2009-12-16  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Skipping a new test, and a test that fails only on the release
        bot, apparently because of rouding errors.

        * platform/gtk/Skipped:

2009-12-16  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Holger Freyther.

        [Qt] Unskip fast/css/font-face-multiple-families.html.

        * platform/qt/Skipped:

2009-12-16  Csaba Osztrogonác  <ossy@webkit.org>

        Reviewed by Simon Hausmann.

        [Qt] fast/css/font-face-unused-source-loaded.html crashes
        https://bugs.webkit.org/show_bug.cgi?id=32600

        The crash caused by fast/css/font-face-multiple-families.html, added to skiplist until fix.

        * platform/qt/Skipped: fast/css/font-face-multiple-families.html added.

2009-12-13  Roland Steiner  <rolandsteiner@chromium.org>

        Reviewed by Adam Barth.

        Fix crash when encountering illegal HTML within a continuation inside <ruby>.
        (https://bugs.webkit.org/show_bug.cgi?id=32316)

        Avoid having the anonymous blocks utilized in the ruby renderers being
        re-used as continuation blocks.
        Avoid having ruby runs collected as "leftover blocks".

        * fast/ruby/ruby-illegal-expected.txt: Added.
        * fast/ruby/ruby-illegal.html: Added.

2009-12-15  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/7470452> Safari/Chromium crashes on complicated @font-face rule
        https://bugs.webkit.org/show_bug.cgi?id=32257

        * fast/css/font-face-unused-source-loaded-expected.txt: Added.
        * fast/css/font-face-unused-source-loaded.html: Added.

2009-12-15  Kenneth Russell  <kbr@google.com>

        Reviewed by Darin Fisher.

        Don't allow default framebuffer to be mutated
        https://bugs.webkit.org/show_bug.cgi?id=32391

        * fast/canvas/webgl/error-reporting-expected.txt:
        * fast/canvas/webgl/null-object-behaviour-expected.txt:
        * fast/canvas/webgl/script-tests/error-reporting.js:
        * fast/canvas/webgl/script-tests/null-object-behaviour.js:

2009-12-15  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        WAI-ARIA: implement treegrid
        https://bugs.webkit.org/show_bug.cgi?id=31299

        * platform/mac-leopard/Skipped:
        * platform/mac/accessibility/aria-treegrid-expected.txt: Added.
        * platform/mac/accessibility/aria-treegrid.html: Added.

2009-12-15  Eric Seidel  <eric@webkit.org>

        No review, rolling out r52140.
        http://trac.webkit.org/changeset/52140
        https://bugs.webkit.org/show_bug.cgi?id=31299

        The commit broke the Leopard bots and unfortunately
        Chris wasn't around to fix them, so I'm rolling the change
        out after 3 hours so that the bots can roll green again. :)

        * platform/mac/accessibility/aria-treegrid-expected.txt: Removed.
        * platform/mac/accessibility/aria-treegrid.html: Removed.

2009-12-14  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        WAI-ARIA: implement treegrid
        https://bugs.webkit.org/show_bug.cgi?id=31299

        * platform/mac/accessibility/aria-treegrid-expected.txt: Added.
        * platform/mac/accessibility/aria-treegrid.html: Added.

2009-12-14  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/7460655> REGRESSION (r47255): Content shifted down at software.opensuse.org
        https://bugs.webkit.org/show_bug.cgi?id=32382

        * fast/block/float/in-margin.html: Added.
        * platform/mac/fast/block/float/in-margin-expected.checksum: Added.
        * platform/mac/fast/block/float/in-margin-expected.png: Added.
        * platform/mac/fast/block/float/in-margin-expected.txt: Added.

2009-12-14  Enrica Casucci  <enrica@apple.com>

        Reviewed by John Sullivan.

        Pressing backspace inside a table cell erases all empty rows below it.
        <rdar://problem/5565461>
        https://bugs.webkit.org/show_bug.cgi?id=32526

        * editing/deleting/delete-empty-table-expected.txt: Added.
        * editing/deleting/delete-empty-table.html: Added.

2009-12-14  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Brady Eidson.

        Add two http iFrame dynamic form tests to the Windows Skipped
        list.

        * platform/win/Skipped:

2009-12-14  Kinuko Yasuda  <kinuko@chromium.com>

        Reviewed by Darin Fisher.

        Make changing-frame-hierarchy-in-onload.html less flaky and
        platform-independent.
        https://bugs.webkit.org/show_bug.cgi?id=32319

        * http/tests/navigation/changing-frame-hierarchy-in-onload.html:

2009-12-14  Robert Hogan  <robert@roberthogan.net>

        Reviewed by Eric Seidel.

        [Qt] Fix https://bugs.webkit.org/show_bug.cgi?id=32437
        
        Amend the behaviour of DRT::notifyDone to dump only when
        the page has finished loading.
        
        This fix permits removal of the following tests from the Qt skipped list:
        fast/forms/textarea-linewrap-dynamic.html
        fast/forms/textarea-setvalue-submit.html
        fast/forms/textarea-hard-linewrap-empty.html
        fast/forms/submit-to-url-fragment.html
        http/tests/misc/percent-sign-in-form-field-name.html
        http/tests/security/escape-form-data-field-names.html
        
        However it also requires the following two to be added to the skipped list:
        
        http/tests/xmlhttprequest/access-control-basic-denied-preflight-cache.html
        svg/custom/use-instanceRoot-as-event-target.xhtml
        
        It appears the behaviour of notifyDone was masking problems with these two
        tests.

        * platform/qt/Skipped:

2009-12-14  Robert Hogan  <robert@roberthogan.net>

        Reviewed by Eric Seidel.

        Bug 32519 -  mouseEvent fires mutiple times in
        LayoutTests/svg/custom/use-instanceRoot-as-event-target.xhtml
        
        Add test to Qt skipped list (was passing due to bug in DRT, see
        https://bugs.webkit.org/show_bug.cgi?id=32437). Updated detail on bug
        in gtk and win skipped lists.
        
        https://bugs.webkit.org/show_bug.cgi?id=32519

        * platform/gtk/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:

2009-12-14  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Dave Hyatt.

        https://bugs.webkit.org/show_bug.cgi?id=31660
        REGRESSION (r49394): Image load event fires before the document fragment is attached.

        * fast/images/image-load-event-in-fragment-expected.txt: Added.
        * fast/images/image-load-event-in-fragment.html: Added.

2009-12-14  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Adam Roben.

        Add two XSS tests that intermittently time out to the Windows
        Skipped list.

        * platform/win/Skipped:

2009-12-14  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Holger Freyther.

        [Qt] Extend basic touch event test with a simple keyboard modifier test.

        https://bugs.webkit.org/show_bug.cgi?id=32482

        * fast/events/basic-touch-events-expected.txt:
        * fast/events/script-tests/basic-touch-events.js:
        (singleTouchSequence):

2009-12-14  Robert Hogan  <robert@roberthogan.net>

        Reviewed by Eric Seidel.

        access-control-basic-denied-preflight-cache.html fails manual testing.
        
        LayoutTests/http/tests/xmlhttprequest/access-control-basic-denied-preflight-cache.html
        fails manual testing. It passes the automatic layout tests in Qt due to a bug with
        notifyDone (see https://bugs.webkit.org/show_bug.cgi?id=32437).
        
        Performing the test manually in QtLauncher shows that an exception is received.
        
        Add access-control-basic-denied-preflight-cache.html to the Qt skipped list.
        
        https://bugs.webkit.org/show_bug.cgi?id=32521

        * platform/qt/Skipped:

2009-12-14  Eric Carlson  <eric.carlson@apple.com>

        Not reviewed, build fix.

        Add missing newline at end of test result.

        * platform/mac-tiger/media/video-no-audio-expected.txt:

2009-12-14  Adam Langley  <agl@google.com>

        Reviewed by Darin Adler.

        Test that an image's size is valid before reading it.

        Previously, an image that failed to load (m_failed == true) would
        trigger an assertion failure when WebKit tried to get its size.

        https://bugs.webkit.org/show_bug.cgi?id=32176
        http://code.google.com/p/chromium/issues/detail?id=28566

        * fast/images/resources/size-failure.gif: Added.
        * fast/images/size-failure-expected.txt: Added.
        * fast/images/size-failure.html: Added.

2009-12-14  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/7458272> REGRESSION (r50470) Reproducible ASSERT in
        RenderWidget::setWidgetGeometry()

        * fast/forms/defer-updateFromElement-expected.txt: Added.
        * fast/forms/defer-updateFromElement.html: Added.

2009-12-14  Eric Carlson  <eric.carlson@apple.com>

        Not reviewed, build fix.

        Update Tiger media test results after r52094.

        * platform/mac-tiger/accessibility: Added.
        * platform/mac-tiger/accessibility/media-element-expected.txt: Added.
        * platform/mac-tiger/media/audio-controls-rendering-expected.txt: Added.
        * platform/mac-tiger/media/controls-after-reload-expected.txt: Added.
        * platform/mac-tiger/media/controls-drag-timebar-expected.txt: Added.
        * platform/mac-tiger/media/controls-strict-expected.txt: Added.
        * platform/mac-tiger/media/controls-styling-expected.txt: Added.
        * platform/mac-tiger/media/video-controls-rendering-expected.txt: Added.
        * platform/mac-tiger/media/video-display-toggle-expected.txt: Added.
        * platform/mac-tiger/media/video-no-audio-expected.txt: Added.
        * platform/mac-tiger/media/video-zoom-controls-expected.txt: Added.

2009-12-14  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Adele Peterson.

        AX: there's an infinite loop going on for some webpages - facebook.com
        https://bugs.webkit.org/show_bug.cgi?id=32501

        * accessibility/hang-in-isignored-expected.txt: Added.
        * accessibility/hang-in-isignored.html: Added.

2009-12-14  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Dan Bernstein.

        <rdar://problem/6293979> Adopt shared control drawing for <video> controls on Leopard and Windows

        Regenerate layout and pixel test results for the new UI.

        * platform/mac-leopard/Skipped:
        * platform/mac-leopard/accessibility/media-element-expected.txt:
        * platform/mac-leopard/media/audio-controls-rendering-expected.checksum:
        * platform/mac-leopard/media/audio-controls-rendering-expected.txt:
        * platform/mac-leopard/media/controls-after-reload-expected.checksum: Added.
        * platform/mac-leopard/media/controls-after-reload-expected.png: Added.
        * platform/mac-leopard/media/controls-after-reload-expected.txt:
        * platform/mac-leopard/media/controls-drag-timebar-expected.txt:
        * platform/mac-leopard/media/controls-strict-expected.checksum: Added.
        * platform/mac-leopard/media/controls-strict-expected.png: Added.
        * platform/mac-leopard/media/controls-strict-expected.txt:
        * platform/mac-leopard/media/controls-strict-mode-expected.txt: Added.
        * platform/mac-leopard/media/controls-styling-expected.checksum: Added.
        * platform/mac-leopard/media/controls-styling-expected.png: Added.
        * platform/mac-leopard/media/controls-styling-expected.txt:
        * platform/mac-leopard/media/video-controls-rendering-expected.checksum:
        * platform/mac-leopard/media/video-controls-rendering-expected.txt:
        * platform/mac-leopard/media/video-display-toggle-expected.checksum:
        * platform/mac-leopard/media/video-display-toggle-expected.txt:
        * platform/mac-leopard/media/video-no-audio-expected.checksum: Added.
        * platform/mac-leopard/media/video-no-audio-expected.png: Added.
        * platform/mac-leopard/media/video-no-audio-expected.txt:
        * platform/mac-leopard/media/video-zoom-controls-expected.checksum:
        * platform/mac-leopard/media/video-zoom-controls-expected.txt:

2009-12-14  Philippe Normand  <pnormand@igalia.com>

        Rubber-stamped by Gustavo Noronha Silva.

        media/video-played-collapse.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=31434

        * platform/gtk/Skipped: Give this test another chance, we believe
        the bug above has been fixed in a previous commit.

2009-12-14  Adele Peterson  <adele@apple.com>

        RS by Maciej Stachowiak.

        Adding platform specific results for these test as part of reverting changes from http://trac.webkit.org/changeset/49585 to fix:
        <rdar://problem/7382815> REGRESSION (4.0.4-TOT): Home photo slider is too narrow at http://www.ziprealty.com/
        https://bugs.webkit.org/show_bug.cgi?id=32078

        * platform/win/fast/css/large-number-round-trip-expected.txt: Added.
        * platform/win/fast/css/opacity-float-expected.txt: Added.

2009-12-13  Adele Peterson  <adele@apple.com>

        RS by Maciej Stachowiak.

        Readding platform specific results for this test as part of reverting changes from http://trac.webkit.org/changeset/49585 to fix:
        <rdar://problem/7382815> REGRESSION (4.0.4-TOT): Home photo slider is too narrow at http://www.ziprealty.com/
        https://bugs.webkit.org/show_bug.cgi?id=32078

        * platform/mac/fast/css/opacity-float-expected.txt: Added.

2009-12-13  Dan Bernstein  <mitz@apple.com>

        Reviewed by Simon Fraser.

        <rdar://problem/7341364> Crash at HTMLParser::popOneBlockCommon() after
        handling misnested residual style tags

        * fast/parser/residual-style-close-ref-clone-expected.txt: Added.
        * fast/parser/residual-style-close-ref-clone.html: Added.

2009-12-13  Adele Peterson  <adele@apple.com>

        Reviewed by Sam Weinig.

        Reverting changes from http://trac.webkit.org/changeset/49585 to fix:
        <rdar://problem/7382815> REGRESSION (4.0.4-TOT): Home photo slider is too narrow at http://www.ziprealty.com/
        https://bugs.webkit.org/show_bug.cgi?id=32078

        * fast/css/large-number-round-trip-expected.txt:
        * fast/css/large-number-round-trip.html: Updated to run in Firefox.
        * fast/css/opacity-float-expected.txt:
        * fast/css/opacity-float.html:
        * transforms/2d/compound-2d-transforms-expected.txt:
        * transforms/2d/compound-2d-transforms.html:

2009-12-13  Eric Carlson  <eric.carlson@apple.com>

        No review, rolling out r52059 until I can generate new Tiger test
        results.

        * platform/mac-leopard/Skipped:
        * platform/mac-leopard/media/controls-after-reload-expected.txt:
        * platform/mac-leopard/media/controls-drag-timebar-expected.txt:
        * platform/mac-leopard/media/controls-strict-expected.txt:
        * platform/mac-leopard/media/controls-styling-expected.txt:
        * platform/mac-leopard/media/video-controls-rendering-expected.checksum:
        * platform/mac-leopard/media/video-controls-rendering-expected.txt:
        * platform/mac-leopard/media/video-display-toggle-expected.checksum:
        * platform/mac-leopard/media/video-display-toggle-expected.txt:
        * platform/mac-leopard/media/video-no-audio-expected.txt:
        * platform/mac-leopard/media/video-zoom-controls-expected.checksum:
        * platform/mac-leopard/media/video-zoom-controls-expected.txt:
        * platform/mac/media/audio-controls-rendering-expected.checksum:
        * platform/mac/media/video-zoom-expected.checksum:

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

        Reviewed by Dan Bernstein.

        <rdar://problem/6293979> Adopt shared control drawing for <video> controls on Leopard and Windows

        Regenerate layout and pixel test results for the new UI.

        * platform/mac-leopard/Skipped:
        * platform/mac-leopard/media/controls-after-reload-expected.txt:
        * platform/mac-leopard/media/controls-drag-timebar-expected.txt:
        * platform/mac-leopard/media/controls-strict-expected.txt:
        * platform/mac-leopard/media/controls-styling-expected.txt:
        * platform/mac-leopard/media/video-controls-rendering-expected.checksum:
        * platform/mac-leopard/media/video-controls-rendering-expected.png:
        * platform/mac-leopard/media/video-controls-rendering-expected.txt:
        * platform/mac-leopard/media/video-display-toggle-expected.checksum:
        * platform/mac-leopard/media/video-display-toggle-expected.png:
        * platform/mac-leopard/media/video-display-toggle-expected.txt:
        * platform/mac-leopard/media/video-no-audio-expected.txt:
        * platform/mac-leopard/media/video-zoom-controls-expected.checksum:
        * platform/mac-leopard/media/video-zoom-controls-expected.png:
        * platform/mac-leopard/media/video-zoom-controls-expected.txt:
        * platform/mac/media/audio-controls-rendering-expected.checksum:
        * platform/mac/media/audio-controls-rendering-expected.png:
        * platform/mac/media/video-zoom-expected.checksum:
        * platform/mac/media/video-zoom-expected.png:

2009-12-12  Kenneth Russell  <kbr@google.com>

        Reviewed by Oliver Hunt.

        Errors in WebGL[T]Array set() and get() methods
        https://bugs.webkit.org/show_bug.cgi?id=32456

        Test: fast/canvas/webgl/bug-32456.html

        * fast/canvas/webgl/array-unit-tests.html:
        * fast/canvas/webgl/bug-32456-expected.txt: Added.
        * fast/canvas/webgl/bug-32456.html: Added.

2009-12-12  Kenneth Russell  <kbr@google.com>

        Reviewed by Oliver Hunt.

        Update WebGL tests to released versions
        https://bugs.webkit.org/show_bug.cgi?id=32457

        * fast/canvas/webgl/resources/utils3d.js:
        (initWebGL.gl.console.window.console.log):
        (initWebGL):
        (loadShader):
        (makeBox):
        (makeSphere):
        (processLoadObj):
        (doLoadObj):
        (doLoadImageTexture):

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

        Reviewed by Darin Adler.

       <rdar://problem/7453726> Pull shared UI code into WebKit

       Update media tests for small change in timeline slider thumb position

        * platform/mac/media/audio-controls-rendering-expected.txt:
        * platform/mac/media/controls-after-reload-expected.txt:
        * platform/mac/media/controls-styling-expected.txt:
        * platform/mac/media/video-no-audio-expected.txt:
        * platform/mac/media/video-zoom-controls-expected.txt:

2009-12-12  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Missing forward entries when dumping back/forward list
        https://bugs.webkit.org/show_bug.cgi?id=32470

        Failing tests added to skiplist until bug fixed.

        * platform/qt/Skipped: 
        - http/tests/navigation/dynamic-iframe-dynamic-form-back-entry.html added
        - http/tests/navigation/parsed-iframe-dynamic-form-back-entry.html added

2009-12-11  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Darin Adler.

        body with display:inline causes crash
        https://bugs.webkit.org/show_bug.cgi?id=32371

        * fast/inline/inline-body-crash-expected.txt: Copied from LayoutTests/fast/css-generated-content/absolute-position-inside-inline-expected.txt.
        * fast/inline/inline-body-crash.html: Added.
        * fast/inline/inline-body-with-scrollbar-crash-expected.txt: Copied from LayoutTests/fast/css-generated-content/absolute-position-inside-inline-expected.txt.
        * fast/inline/inline-body-with-scrollbar-crash.html: Added.

2009-12-11  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/7342725> and https://webkit.org/b/32383
        Selecting article text at sfgate.com results in spurious back/forward entries

        * http/tests/navigation/dynamic-iframe-dynamic-form-back-entry-expected.txt: Added.
        * http/tests/navigation/dynamic-iframe-dynamic-form-back-entry.html: Added.
        * http/tests/navigation/parsed-iframe-dynamic-form-back-entry-expected.txt: Added.
        * http/tests/navigation/parsed-iframe-dynamic-form-back-entry.html: Added.
        * http/tests/navigation/resources/notify-done.html: Added.

        * http/tests/navigation/onload-navigation-iframe-timeout-expected.txt: Updated.

2009-12-11  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Darin Adler.

        Negative values for animation-delay are ignored (treated as zero)
        https://bugs.webkit.org/show_bug.cgi?id=26150
        
        Tests for software and accelerated animations and transitions with negative delay.

        * animations/negative-delay-expected.txt: Added.
        * animations/negative-delay.html: Added.
        * transitions/negative-delay-expected.txt: Added.
        * transitions/negative-delay.html: Added.

2009-12-11  Drew Wilson  <atwilson@chromium.org>

        Reviewed by Darin Adler.

        REGRESSION: fast/workers/dedicated-worker-lifecycle.html failing intermittently on leopard bot
        https://bugs.webkit.org/show_bug.cgi?id=29344

        dedicated-worker-lifecycle.html relies on a Worker object getting GC'd, which is never guaranteed (due to conservative GC)
        but is especially unreliable on Leopard, so disabling on that platform.

        * platform/mac-leopard/Skipped:
        disabled dedicated-worker-lifecycle.html.

2009-12-11  Brian Weinstein  <bweinstein@apple.com>

        Reviewed by Darin Adler.

        Fixes <http://webkit.org/b/32399>.
        Pan Scrolling Jumps out of frames if the initial location is in a frame that can't be scrolled.
        
        Added a test to make sure that we don't pan scroll if we start to scroll in an empty
        iFrame that has a scrollable owner document.

        * platform/win/fast/events/panScroll-no-iframe-jump-expected.txt: Added.
        * platform/win/fast/events/panScroll-no-iframe-jump.html: Added.

2009-12-11  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Skip test that is failing because script is not executed after the
        view it is on is destroyed.
        See https://bugs.webkit.org/show_bug.cgi?id=32441

        * platform/gtk/Skipped:

2009-12-11  Brian Weinstein  <bweinstein@apple.com>

        Reviewed by Adam Roben.

        Fixes <http://webkit.org/b/32303>.
        Middle-mouse button not firing mousedown DOM event when autoscroll happens.
        
        Added tests to show that middle mousedown DOM events are fired when panscrolling happens, and
        that when event.preventDefault is called, pan scrolling doesn't happen.

        * platform/win/fast/events/panScroll-event-fired-expected.txt: Added.
        * platform/win/fast/events/panScroll-event-fired.html: Added.
        * platform/win/fast/events/panScroll-preventDefault-expected.txt: Added.
        * platform/win/fast/events/panScroll-preventDefault.html: Added.

2009-12-11  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt][LayoutTestController] Output of document.write() is vanished by waitUntilDone()/notifyDone()
        https://bugs.webkit.org/show_bug.cgi?id=32437

        * platform/qt/Skipped: http/tests/misc/percent-sign-in-form-field-name.html added until bug fixed.

2009-12-11  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Skip two tests that require infrastructure our DRT doesn't have,
        or functionality our port does not implement.

        * platform/gtk/Skipped:

2009-12-11  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed. Skip a timeouter flakey test.

        * platform/qt/Skipped: fast/frames/sandboxed-iframe-storage.html added.

2009-12-11  Csaba Osztrogonác  <ossy@webkit.org>

        Rubber-stamped by Simon Hausmann.

        [Qt] TouchEvent related tests have platform dependent results until all platform implement it.

        * platform/qt/fast/dom/Window/window-properties-expected.txt: TouchEvent related output added.
        * platform/qt/fast/dom/prototype-inheritance-expected.txt: TouchEvent related output added.
        * platform/qt/fast/dom/prototype-inheritance.html: Removed. (added by mistake previously)
        * platform/qt/fast/js/global-constructors-expected.txt: TouchEvent related output added.

2009-12-11  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Fixed typo in test result.

        * platform/gtk/editing/execCommand/toggle-compound-styles-expected.txt:

2009-12-11  Csaba Osztrogonác  <ossy@webkit.org>

        Rubber-stamped by Simon Hausmann.

        [Qt] TouchEvent related tests have platform dependent results until all platform implement it.
        Original expected files copied.

        * platform/qt/fast/dom/Window/window-properties-expected.txt: Copied from LayoutTests/fast/dom/Window/window-properties-expected.txt.
        * platform/qt/fast/dom/prototype-inheritance-expected.txt: Copied from LayoutTests/fast/dom/prototype-inheritance-expected.txt.
        * platform/qt/fast/dom/prototype-inheritance.html: Copied from LayoutTests/fast/dom/prototype-inheritance.html.
        * platform/qt/fast/js/global-constructors-expected.txt: Copied from LayoutTests/fast/js/global-constructors-expected.txt.

2009-12-11  Simon Hausmann  <simon.hausmann@nokia.com>

        Skip the touch tests on Windows (somehow that hunk got lost).

        * platform/win/Skipped:

2009-12-11  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        Fix a problem that JSC::gregorianDateTimeToMS() returns a negative
        value for a huge year value.
        https://bugs.webkit.org/show_bug.cgi?id=32304

        * fast/js/date-daysfrom1970-overflow-expected.txt: Added.
        * fast/js/date-daysfrom1970-overflow.html: Added.
        * fast/js/script-tests/date-daysfrom1970-overflow.js: Added.

2009-12-11  Benjamin Poulain  <benjamin.poulain@nokia.com>

        Reviewed by Darin Adler.

        The values of RuntimeArray are not enumerable
        https://bugs.webkit.org/show_bug.cgi?id=29005

        The indices of RuntimeArray should be enumerated like for a regular array.

        * platform/mac/fast/dom/wrapper-classes-objc-expected.txt:
        * platform/mac/fast/dom/wrapper-classes-objc.html:

2009-12-11  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Antti Koivisto.

        Added basic layout test for DOM touch events.

        https://bugs.webkit.org/show_bug.cgi?id=32114

        * fast/events/basic-touch-events-expected.txt: Added.
        * fast/events/basic-touch-events.html: Added.
        * fast/events/script-tests/basic-touch-events.js: Added.
        (appendEventLog):
        (verifyTouchEvent):
        (verifyTouchPoint):
        (singleTouchSequence):
        (multiTouchSequence):
        (touchTargets):
        * platform/gtk/Skipped:
        * platform/mac/Skipped:
        * platform/win/Skipped:

2009-12-11  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by Pavel Feldman.

        Log WebSocket error to Web Inspector console.
        https://bugs.webkit.org/show_bug.cgi?id=32165

        * websocket/tests/handshake-error-expected.txt:
        * websocket/tests/handshake-fail-by-cross-origin-expected.txt:
        * websocket/tests/handshake-fail-by-sub-protocol-mismatch-expected.txt:

2009-12-10  Adam Barth  <abarth@webkit.org>

        Reviewed by Darin Adler.

        Mixed content shouldn't trigger for plug-ins without URLs
        https://bugs.webkit.org/show_bug.cgi?id=32384

        * http/tests/security/mixedContent/empty-url-plugin-in-frame-expected.txt: Added.
        * http/tests/security/mixedContent/empty-url-plugin-in-frame.html: Added.
        * http/tests/security/mixedContent/resources/frame-with-empty-url-plugin.html: Added.

2009-12-10  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        Incorrect caching of prototype lookup with dictionary base
        https://bugs.webkit.org/show_bug.cgi?id=32402

        Adding test for prototype caching through a dictionary

        * fast/js/dictionary-prototype-caching-expected.txt:
        * fast/js/script-tests/dictionary-prototype-caching.js:
        (testFunction):

2009-12-10  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=32140
        REGRESSION(r50072): Mailman administrative functionality is broken

        * http/tests/misc/percent-sign-in-form-field-name-expected.txt: Added.
        * http/tests/misc/percent-sign-in-form-field-name.html: Added.
        * http/tests/misc/resources/percent-sign-in-form-data-field-name.cgi: Added.

2009-12-10  Kenneth Russell  <kbr@google.com>

        Reviewed by Oliver Hunt.

        Changed WebGLRenderingContext to synthesize GL errors rather than
        raising JavaScript exceptions. Removed internal getError() calls
        after each graphics call. The GraphicsContext3D maintains the
        synthetic exceptions because only it has complete information
        about certain conditions requiring them to be raised.

        Based on idea from Ilmari Heikkinen, added create3DDebugContext()
        to webgl-test.js and changed the WebGL layout tests expecting
        error conditions to use it. Updated expected.txt files, which now
        implicitly test the OpenGL error as it is part of the exception's
        message.

        Added new targeted test covering aspects of synthetic errors as
        well as regression tests for bugs uncovered during its development.

        Test: fast/canvas/webgl/error-reporting.html

        * fast/canvas/webgl/drawArraysOutOfBounds-expected.txt:
        * fast/canvas/webgl/drawArraysOutOfBounds.html:
        * fast/canvas/webgl/drawElementssOutOfBounds-expected.txt:
        * fast/canvas/webgl/drawElementssOutOfBounds.html:
        * fast/canvas/webgl/error-reporting-expected.txt: Added.
        * fast/canvas/webgl/error-reporting.html: Added.
        * fast/canvas/webgl/getActiveTest-expected.txt:
        * fast/canvas/webgl/incorrect-context-object-behaviour-expected.txt:
        * fast/canvas/webgl/invalidPassedParams-expected.txt:
        * fast/canvas/webgl/invalidPassedParams.html:
        * fast/canvas/webgl/null-object-behaviour-expected.txt:
        * fast/canvas/webgl/resources/webgl-test.js:
        (create3DDebugContext.wrap.getError):
        (create3DDebugContext):
        * fast/canvas/webgl/script-tests/error-reporting.js: Added.
        * fast/canvas/webgl/script-tests/getActiveTest.js:
        * fast/canvas/webgl/script-tests/incorrect-context-object-behaviour.js:
        * fast/canvas/webgl/script-tests/null-object-behaviour.js:
        * fast/canvas/webgl/script-tests/uniform-location.js:
        * fast/canvas/webgl/uniform-location-expected.txt:

2009-12-10  Alpha Lam  <hclam@chromium.org>

        Reviewed by Eric Carlson.

        Layout test for video element on HTTP
        https://bugs.webkit.org/show_bug.cgi?id=32333

        Added a new layout test that tests video element on HTTP protocol.
        This test load the same video file twice. The first load will cache
        the video file if caching is supported. The second load ensure
        the cache works correctly.

        * http/tests/media/resources/test.mp4: Copied from LayoutTests/media/content/test.mp4.
        * http/tests/media/resources/test.ogv: Copied from LayoutTests/media/content/test.ogv.
        The above two files are copied from LayoutTests/media/content because the HTTP
        server is rooted at LayoutTests/http/tests. And we don't want to serve these
        files with cgi because that will ruin the HTTP headers.
        * http/tests/media/video-load-twice-expected.txt: Added.
        * http/tests/media/video-load-twice.html: Added.

2009-12-10  Enrica Casucci  <enrica@apple.com>

        Reviewed by Darin Adler.

        REGRESSION(4.0.4-42a12): With 2 highlighted lines of text in gmail/hotmail selecting Bold selects other 2 edit buttons automatically.
        <rdar://problem/7442065>
        https://bugs.webkit.org/show_bug.cgi?id=32285

        * editing/execCommand/queryCommandState-02-expected.txt: Added.
        * editing/execCommand/queryCommandState-02.html: Added.
        * editing/execCommand/script-tests/toggle-compound-styles.js: Fixed typo in text.
        * platform/mac/editing/execCommand/toggle-compound-styles-expected.txt: Fixed typo in text.
        * platform/qt/editing/execCommand/toggle-compound-styles-expected.txt: Fixed typo in text.
        * platform/win/editing/execCommand/toggle-compound-styles-expected.txt: Fixed typo in text.

2009-12-10  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, fixing layout test mishap.

        Add a newline to the layout test.

        * http/tests/security/isolatedWorld/events-expected.txt: Added a newline at the end of the file.

2009-12-10  Oliver Hunt  <oliver@apple.com>

        Reviewed by Alexey Proskuryakov.

        Crash in XMLTokenizer::popCurrentNode if window.close() is called during parsing
        https://bugs.webkit.org/show_bug.cgi?id=31576

        Add test of window.close() during XML parsing.

        * fast/parser/resources/xhtml-close-while-parsing-target.xhtml: Added.
        * fast/parser/xhtml-close-while-parsing-expected.txt: Added.
        * fast/parser/xhtml-close-while-parsing.xhtml: Added.

2009-12-10  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Adam Barth.

        [V8] Events created in isolated worlds may fire in main world.
        https://bugs.webkit.org/show_bug.cgi?id=32386

        This test is relevant to both JSC and V8 isolated world implementation,
        ensuring that events are fired in the right worlds.

        * http/tests/security/isolatedWorld/events.html: Added.
        * http/tests/security/isolatedWorld/events-expected.txt: Added.

2009-12-10  Patrik Persson  <patrik.j.persson@ericsson.com>

        Reviewed by Adam Barth.

        Test case to verify that sandboxing 'about:blank' does not make
        the containing frame sandboxed.

        https://bugs.webkit.org/show_bug.cgi?id=21288#c28

        * fast/frames/resources/sandboxed-iframe-about-blank.html: Added.
        * fast/frames/sandboxed-iframe-about-blank-expected.txt: Added.
        * fast/frames/sandboxed-iframe-about-blank.html: Added.

2009-12-10  Eric Z. Ayers  <zundel@google.com>

        Reviewed by Pavel Feldman.

        DumpRenderTree has been patched so that the timeline-paint.html 
        unit test now runs under GTK+.

        https://bugs.webkit.org/show_bug.cgi?id=31729

        * platform/gtk/Skipped:

2009-12-10  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Skip two tests on gtk/qt that generate new results.

        * platform/gtk/Skipped:
        * platform/qt/Skipped:

2009-12-10  Kenneth Russell  <kbr@google.com>

        Reviewed by Oliver Hunt.

        [Chromium] SporeViewer demo doesn't work in Chromium
        https://bugs.webkit.org/show_bug.cgi?id=32364

        Test: fast/canvas/webgl/bug-32364.html

        * fast/canvas/webgl/bug-32364-expected.txt: Added.
        * fast/canvas/webgl/bug-32364.html: Added.

2009-12-09  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Oliver Hunt.

        Test for: Google reader gets stuck in the "Loading..." state and does not complete
        https://bugs.webkit.org/show_bug.cgi?id=32256

        * fast/js/codegen-jless-expected.txt: Added.
        * fast/js/codegen-jless.html: Added.
        * fast/js/script-tests/codegen-jless.js: Added.

2009-12-09  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed. Skip a timeouter flakey test.

        * platform/qt/Skipped: fast/frames/sandboxed-iframe-scripting.html added.

2009-12-09  Beth Dakin  <bdakin@apple.com>

        Reviewed by Oliver Hunt.

        Tests for https://bugs.webkit.org/show_bug.cgi?id=32346 SVG 
        property -webkit-shadow should apply shadow on the result after 
        compositing
        -and corresponding-
        <rdar://problem/7389404>

        New tests:
        * platform/mac/svg/css/composite-shadow-example-expected.checksum: Added.
        * platform/mac/svg/css/composite-shadow-example-expected.png: Added.
        * platform/mac/svg/css/composite-shadow-example-expected.txt: Added.
        * platform/mac/svg/css/composite-shadow-with-opacity-expected.checksum: Added.
        * platform/mac/svg/css/composite-shadow-with-opacity-expected.png: Added.
        * platform/mac/svg/css/composite-shadow-with-opacity-expected.txt: Added.
        * svg/css/composite-shadow-example.html: Added.
        * svg/css/composite-shadow-with-opacity.html: Added.

        New and improved results:
        * platform/mac/svg/css/group-with-shadow-expected.checksum:
        * platform/mac/svg/css/group-with-shadow-expected.png:

2009-12-09  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=32332
        WebSocket events should be dispatched synchronously

        * websocket/tests/script-tests/simple.js:
        * websocket/tests/simple-expected.txt:
        It's after all guaranteed that readyState is 1 in open and message event handlers.

2009-12-09  Gavin Barraclough  <barraclough@apple.com>

        Reviewed by Oliver Hunt.

        https://bugs.webkit.org/show_bug.cgi?id=32228
        Reenabling tests.

        * platform/win/Skipped:

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

        Skip a failing test that needs DRT support to override standard
        preferences.

        * platform/gtk/Skipped:

2009-12-09  Csaba Osztrogonác  <ossy@webkit.org>

       [Qt] Skip a failing test introduced in r51877.

        * platform/qt/Skipped: fast/loader/input-element-page-cache-crash.html added.

2009-12-09  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Fix typo in the Skipped list s/.htm/.html/ in the last test I added.

        * platform/mac-snowleopard/Skipped:

2009-12-08  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by Darin Adler.

        WebSocket allow space (U+0020) in sub protocol name.
        https://bugs.webkit.org/show_bug.cgi?id=32266

        Skipped sub-protocol-with-space.html for now until new pywebsocket is
        landed.

        * websocket/tests/bad-sub-protocol-expected.txt:
        * websocket/tests/script-tests/bad-sub-protocol.js:
        * websocket/tests/script-tests/sub-protocol-with-space.js: Added.
        * websocket/tests/sub-protocol-with-space-expected.txt: Added.
        * websocket/tests/sub-protocol-with-space.html: Added.

2009-12-08  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by Darin Adler.

        Add tests that WebSocket-Protocol: is ignored if protocol was not specified.
        https://bugs.webkit.org/show_bug.cgi?id=32267

        * websocket/tests/script-tests/websocket-protocol-ignored.js: Added.
        * websocket/tests/websocket-protocol-ignored-expected.txt: Added.
        * websocket/tests/websocket-protocol-ignored.html: Added.

2009-12-08  Peterson Trethewey  <petersont@google.com>

        Reviewed by Oliver Hunt.

        Implement WebGLUniformLocation and change API to use it.
        https://bugs.webkit.org/show_bug.cgi?id=31173

        * fast/canvas/webgl/resources/structUniformShader.vert: Added.
        * fast/canvas/webgl/script-tests/uniform-location.js: Added.
        * fast/canvas/webgl/uniform-location-expected.txt: Added.
        * fast/canvas/webgl/uniform-location.html: Added.

2009-12-08  Adam Langley  <agl@google.com>

        Reviewed by Darin Adler.

        Fix assertion failure in WebCore::RenderBlock::startDelayUpdateScrollInfo

        startDelayUpdateScrollInfo calls a function that can end up calling
        startDelayUpdateScrollInfo again. However, it's static state is
        inconsistent when this happens leading to an assertion failure (or
        probably a memory leak if assertions are off).

        Thanks to Robert Swiecki for the test case.

        https://bugs.webkit.org/show_bug.cgi?id=32172
        http://code.google.com/p/chromium/issues/detail?id=28880


        * fast/css/recursive-delay-update-scroll.html: Added.
        * fast/css/recursive-delay-update-scroll-expected.txt: Added.

2009-12-08  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Skip another failing media test, that I already mentioned in the bug report.

        * platform/mac-snowleopard/Skipped:

2009-12-08  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin Adler.

        Navigating to a cached page can result in accessing a destroyed HTMLInputElement.
        <rdar://problem/6856662> and https://webkit.org/b/32293

        * fast/loader/input-element-page-cache-crash-expected.txt: Added.
        * fast/loader/input-element-page-cache-crash.html: Added.

2009-12-08  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Skip fast/repaint/block-selection-gap-in-table-cell.html (generates new result) to turn Qt/Gtk builds green again.

        * platform/gtk/Skipped:
        * platform/qt/Skipped:

2009-12-08  John Gregg  <johnnyg@google.com>

        Reviewed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=31886

        Test for accessing the notificationCenter of a window after it's closed.

        * fast/notifications/notification-after-close-expected.txt: Added.
        * fast/notifications/notification-after-close.html: Added.

2009-12-08  Dan Bernstein  <mitz@apple.com>

        Reviewed by John Sullivan.

        Added a test of block selection gap repainting in table cells

        * fast/repaint/block-selection-gap-in-table-cell.html: Added.
        * platform/mac/fast/repaint/block-selection-gap-in-table-cell-expected.checksum: Added.
        * platform/mac/fast/repaint/block-selection-gap-in-table-cell-expected.png: Added.
        * platform/mac/fast/repaint/block-selection-gap-in-table-cell-expected.txt: Added.

2009-12-08  Nikolas Zimmermann  <nzimmermann@rim.com>

        Rubber-stamped by Maciej Stachowiak.

        Turn on (SVG) Filters for Win.
        https://bugs.webkit.org/show_bug.cgi?id=32224

        * platform/win/Skipped:

2009-12-08  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        These test results should not have platform-dependent pixel values.
        https://bugs.webkit.org/show_bug.cgi?id=32265

        Change is75PercentOf() so that it doesn't show pixel values when
        the check is passed.

        * fast/replaced/table-percent-height-expected.txt:
        * fast/replaced/table-percent-height-text-controls-expected.txt:
        * fast/replaced/table-percent-height-text-controls.html:
        * fast/replaced/table-percent-height.html:

2009-12-08  Carol Szabo  <carol.szabo@nokia.com>

        Reviewed by Darin Adler.

        CSS Counter Nesting still does not work according to the spec.
        https://bugs.webkit.org/show_bug.cgi?id=31723

        * fast/css/counters/nesting-expected.txt: Added.
        * fast/css/counters/nesting.html: Added.
        This test tests compliance with the CSS2.1 counter scoping and nesting rules.

2009-12-08  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Put test into skiplist because of missing layoutTestController.evaluateInWebInspector().

        * platform/qt/Skipped: inspector/cookie-resource-match.html added.

2009-12-08  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Update Gtk's custom prototype-inheritance-2-expected.txt, after enabling filters
        (As gtk builds with geolocation, unlike the other platforms, it needs its own results)

        This turns the Gtk slave to green again.

        * platform/gtk/fast/dom/prototype-inheritance-2-expected.txt:

2009-12-08  Alexander Pavlov  <apavlov@chromium.org>

        Reviewed by Pavel Feldman.

        Change the way cookies are retrieved in the WebInspector frontend.

        Moved the cookie filtering from the native code into the frontend so that
        all cookies can be retrieved regardless of the associated domain
        (required for certain audits to run.)
        https://bugs.webkit.org/show_bug.cgi?id=32160

        * inspector/cookie-resource-match-expected.txt: Added.
        * inspector/cookie-resource-match.html: Added.

2009-12-08  Nikolas Zimmermann  <nzimmermann@rim.com>

        Rubber-stamped by Maciej Stachowiak.

        Turn on (SVG) Filters for Gtk.
        https://bugs.webkit.org/show_bug.cgi?id=32224

        * platform/gtk/Skipped:

2009-12-08  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Skip some tests that fail for a longer period on the SnowLeopard bot. Filed two bugs, notifying the authors.

        * platform/mac-snowleopard/Skipped:

2009-12-08  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Oops forgot to update three results -> Qt slave green again.

        * platform/qt/svg/filters/feGaussianBlur-expected.txt:
        * platform/qt/svg/filters/feMerge-wrong-input-expected.txt:
        * platform/qt/svg/filters/feOffset-expected.txt:

2009-12-08  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Now that the Qt slave has been rebuilt, reenable all tests that failed
        because of the build problems (Qt slave didn't rebuild all files with ENABLE_FILTERS set).

        Update some Qt specfic filter test results.

        * platform/qt/Skipped:
        * platform/qt/svg/filters/feComposite-expected.txt:
        * platform/qt/svg/filters/feMerge-expected.txt:
        * platform/qt/svg/filters/feTile-expected.txt:
        * platform/qt/svg/filters/shadow-on-filter-expected.txt:
        * platform/qt/svg/filters/shadow-on-rect-with-filter-expected.txt:
        * platform/qt/svg/filters/sourceAlpha-expected.txt:
        * platform/qt/svg/filters/subRegion-in-userSpace-expected.txt:
        * platform/qt/svg/filters/subRegion-one-effect-expected.txt:
        * platform/qt/svg/filters/subRegion-two-effects-expected.txt:

2009-12-08  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by Darin Adler.

        Add tests that WebSocket protocol argument works.
        https://bugs.webkit.org/show_bug.cgi?id=3178

        * websocket/tests/bad-sub-protocol-expected.txt: Added.
        * websocket/tests/bad-sub-protocol.html: Added.
        * websocket/tests/handshake-fail-by-sub-protocol-mismatch-expected.txt: Added.
        * websocket/tests/handshake-fail-by-sub-protocol-mismatch.html: Added.
        * websocket/tests/protocol-test_wsh.py: Added.
        * websocket/tests/script-tests/bad-sub-protocol.js: Added.
        * websocket/tests/script-tests/handshake-fail-by-sub-protocol-mismatch.js: Added.
        * websocket/tests/script-tests/sub-protocol.js: Added.
        * websocket/tests/sub-protocol-expected.txt: Added.
        * websocket/tests/sub-protocol.html: Added.

2009-12-07  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed fix to make QtBuildBot green.
        Skip failing tests caused by r51828 (Turn on (SVG) Filters for Qt.)
        https://bugs.webkit.org/show_bug.cgi?id=32224
        http://build.webkit.org/results/Qt%20Linux%20Release/r51828%20(4620)/results.html

        * platform/qt/Skipped:

2009-12-07  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Darin Adler.

        editing/selection/last-empty-inline is failing in Windows
        https://bugs.webkit.org/show_bug.cgi?id=31985

        * editing/selection/last-empty-inline-expected.txt:
        * editing/selection/last-empty-inline.html:
        * platform/qt/Skipped:
        * platform/win/Skipped:

2009-12-07  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by Alexey Proskuryakov.

        Fragments now make WebSocket URL parsing fail.
        https://bugs.webkit.org/show_bug.cgi?id=32144

        * websocket/tests/script-tests/url-parsing.js:
        * websocket/tests/script-tests/url-with-fragment.js: Removed.
        * websocket/tests/url-parsing-expected.txt:
        * websocket/tests/url-with-fragment-expected.txt: Removed.
        * websocket/tests/url-with-fragment.html: Removed.

2009-12-07  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by Darin Adler.

        Fix wrong length parsing in WebSocket.
        https://bugs.webkit.org/show_bug.cgi?id=32203

        These two tests assumed wrong length encoding in frame: it parsed
        length from bytes with 8th bit on.  But spec says length is encoded
        as a series of 7-bit bytes stored in octests with the 8th bit on
        *but the last byte*.
        These tests encodes a frame that has 129 length, so it must be
        \x81\0x01 instead of \x81\0x81.

        * websocket/tests/frame-length-longer-than-buffer_wsh.py:
        * websocket/tests/frame-length-skip_wsh.py:

2009-12-07  Nikolas Zimmermann  <nzimmermann@rim.com>

        Rubber-stamped by Maciej Stachowiak.

        Turn on (SVG) Filters for Qt.
        https://bugs.webkit.org/show_bug.cgi?id=32224

        * platform/qt/Skipped:

2009-12-07  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Reverting problematic patch, causing errors.

        Revert r51789 (Avoid zero division during SVGPaintServerPattern::setup()). Crashes on all Windows slaves.
        Reopen bug https://bugs.webkit.org/show_bug.cgi?id=29912.

        * svg/custom/script-tests/small-pattern.js: Removed.
        * svg/custom/small-pattern-expected.txt: Removed.
        * svg/custom/small-pattern.html: Removed.

2009-12-07  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        Add tests for HTMLInputElement::stepUp() and stepDown().
        https://bugs.webkit.org/show_bug.cgi?id=27451

        * fast/forms/input-step-number-expected.txt: Added.
        * fast/forms/input-step-number.html: Added.
        * fast/forms/input-step-range-expected.txt: Added.
        * fast/forms/input-step-range.html: Added.
        * fast/forms/input-step-unsupported-expected.txt: Added.
        * fast/forms/input-step-unsupported.html: Added.
        * fast/forms/script-tests/input-step-number.js: Added.
        * fast/forms/script-tests/input-step-range.js: Added.
        * fast/forms/script-tests/input-step-unsupported.js: Added.

2009-12-07  Enrica Casucci  <enrica@apple.com>

        Reviewed by Darin Adler.

        REGRESSION(4.0.4-42a12): Indent does not work for twice modified with background text in gmail.
        <rdar://problem/7442387>
        https://bugs.webkit.org/show_bug.cgi?id=32233

        * editing/execCommand/indent-with-style2-expected.txt: Added.
        * editing/execCommand/indent-with-style2.html: Added.

2009-12-07  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Add some missing files that depend on SVG Filters support, only mac supports it for now.

        * platform/win/Skipped:

2009-12-07  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed. Skip a timeouter flakey test.

        * platform/qt/Skipped: fast/frames/sandboxed-iframe-plugins.html added.

2009-12-07  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Skip yet another test, what a journey...

        * platform/gtk/Skipped:

2009-12-07  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Adjust one layout test to the results of the Leopard Intel slave.

        * platform/mac/svg/W3C-SVG-1.1/filters-conv-01-f-expected.txt:

2009-12-07  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Turn Qt slave green again, after landing filters.

        * platform/qt/Skipped:

2009-12-07  Dan Bernstein  <mitz@apple.com>

        Corrected expected results

        * platform/mac/fast/repaint/block-selection-gap-stale-cache-2-expected.checksum:
        * platform/mac/fast/repaint/block-selection-gap-stale-cache-2-expected.png:
        * platform/mac/fast/repaint/block-selection-gap-stale-cache-expected.checksum:
        * platform/mac/fast/repaint/block-selection-gap-stale-cache-expected.png:

2009-12-07  Dan Bernstein  <mitz@apple.com>

        Rubber-stamped by Simon Fraser.

        Re-enabled this test now that <rdar://problem/7450481> is fixed

        * fast/repaint/block-selection-gap-in-composited-layer.html: Copied from LayoutTests/fast/repaint/block-selection-gap-in-composited-layer.html.disabled.
        * fast/repaint/block-selection-gap-in-composited-layer.html.disabled: Removed.

2009-12-07  Nikolas Zimmermann  <nzimmermann@rim.com>

        Reviewed by Holger Hans Peter Freyther.

        Turn on (SVG) Filters support, by default.
        https://bugs.webkit.org/show_bug.cgi?id=32224

        Recreate SVG test baseline, after enabling filters support on mac.
        Add affected tests, that are not yet skipped, to the Skipped list of every other
        platform, until building with filters support is enabled on those platforms as well.

        * fast/dom/Window/window-properties-expected.txt:
        * fast/dom/prototype-inheritance-2-expected.txt:
        * fast/dom/prototype-inheritance-expected.txt:
        * fast/js/global-constructors-expected.txt:
        * platform/gtk/Skipped:
        * platform/mac-leopard/svg/text/text-intro-05-t-expected.checksum:
        * platform/mac-leopard/svg/text/text-intro-05-t-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/filters-blend-01-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/filters-blend-01-b-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/filters-blend-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/filters-color-01-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/filters-color-01-b-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/filters-color-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/filters-composite-02-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/filters-composite-02-b-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/filters-composite-02-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/filters-comptran-01-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/filters-comptran-01-b-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/filters-comptran-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/filters-conv-01-f-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/filters-conv-01-f-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/filters-conv-01-f-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/filters-diffuse-01-f-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/filters-diffuse-01-f-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/filters-diffuse-01-f-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/filters-displace-01-f-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/filters-displace-01-f-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/filters-displace-01-f-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/filters-example-01-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/filters-example-01-b-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/filters-example-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/filters-felem-01-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/filters-felem-01-b-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/filters-felem-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/filters-gauss-01-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/filters-gauss-01-b-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/filters-gauss-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/filters-image-01-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/filters-image-01-b-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/filters-image-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/filters-light-01-f-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/filters-light-01-f-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/filters-light-01-f-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/filters-morph-01-f-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/filters-morph-01-f-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/filters-morph-01-f-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/filters-offset-01-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/filters-offset-01-b-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/filters-offset-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/filters-specular-01-f-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/filters-specular-01-f-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/filters-specular-01-f-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/filters-tile-01-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/filters-tile-01-b-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/filters-tile-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/filters-turb-01-f-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/filters-turb-01-f-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/filters-turb-01-f-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-06-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-06-b-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-08-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-08-b-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-13-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-13-b-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/struct-cond-03-t-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/struct-cond-03-t-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/struct-cond-03-t-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/struct-frag-02-t-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/struct-frag-02-t-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/struct-image-02-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/struct-image-02-b-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/struct-image-02-b-expected.txt:
        * platform/mac/svg/batik/filters/feTile-expected.checksum:
        * platform/mac/svg/batik/filters/feTile-expected.png:
        * platform/mac/svg/batik/filters/feTile-expected.txt:
        * platform/mac/svg/batik/filters/filterRegions-expected.checksum:
        * platform/mac/svg/batik/filters/filterRegions-expected.png:
        * platform/mac/svg/batik/filters/filterRegions-expected.txt:
        * platform/mac/svg/batik/paints/patternRegions-expected.checksum:
        * platform/mac/svg/batik/paints/patternRegions-expected.png:
        * platform/mac/svg/batik/text/textEffect-expected.checksum:
        * platform/mac/svg/batik/text/textEffect-expected.png:
        * platform/mac/svg/batik/text/textEffect-expected.txt:
        * platform/mac/svg/batik/text/textEffect3-expected.checksum:
        * platform/mac/svg/batik/text/textEffect3-expected.png:
        * platform/mac/svg/batik/text/textEffect3-expected.txt:
        * platform/mac/svg/batik/text/textFeatures-expected.checksum:
        * platform/mac/svg/batik/text/textFeatures-expected.png:
        * platform/mac/svg/batik/text/textFeatures-expected.txt:
        * platform/mac/svg/batik/text/textOnPath-expected.checksum:
        * platform/mac/svg/batik/text/textOnPath-expected.png:
        * platform/mac/svg/batik/text/textPosition-expected.checksum:
        * platform/mac/svg/batik/text/textPosition-expected.png:
        * platform/mac/svg/batik/text/textProperties-expected.checksum:
        * platform/mac/svg/batik/text/textProperties-expected.png:
        * platform/mac/svg/batik/text/textProperties-expected.txt:
        * platform/mac/svg/batik/text/verticalText-expected.checksum:
        * platform/mac/svg/batik/text/verticalText-expected.png:
        * platform/mac/svg/batik/text/verticalTextOnPath-expected.checksum:
        * platform/mac/svg/batik/text/verticalTextOnPath-expected.png:
        * platform/mac/svg/batik/text/xmlSpace-expected.checksum:
        * platform/mac/svg/batik/text/xmlSpace-expected.png:
        * platform/mac/svg/carto.net/window-expected.checksum:
        * platform/mac/svg/carto.net/window-expected.png:
        * platform/mac/svg/css/arrow-with-shadow-expected.png:
        * platform/mac/svg/css/circle-in-mask-with-shadow-expected.checksum:
        * platform/mac/svg/css/circle-in-mask-with-shadow-expected.png:
        * platform/mac/svg/css/clippath-with-shadow-expected.png:
        * platform/mac/svg/css/group-with-shadow-expected.checksum:
        * platform/mac/svg/css/group-with-shadow-expected.png:
        * platform/mac/svg/css/mask-with-shadow-expected.checksum:
        * platform/mac/svg/css/mask-with-shadow-expected.png:
        * platform/mac/svg/css/path-with-shadow-expected.png:
        * platform/mac/svg/css/stars-with-shadow-expected.checksum:
        * platform/mac/svg/css/stars-with-shadow-expected.png:
        * platform/mac/svg/custom/circular-marker-reference-2-expected.checksum:
        * platform/mac/svg/custom/circular-marker-reference-2-expected.png:
        * platform/mac/svg/custom/dominant-baseline-hanging-expected.checksum:
        * platform/mac/svg/custom/dominant-baseline-hanging-expected.png:
        * platform/mac/svg/custom/empty-merge-expected.checksum:
        * platform/mac/svg/custom/empty-merge-expected.png:
        * platform/mac/svg/custom/empty-merge-expected.txt:
        * platform/mac/svg/custom/feComponentTransfer-Discrete-expected.checksum:
        * platform/mac/svg/custom/feComponentTransfer-Discrete-expected.png:
        * platform/mac/svg/custom/feComponentTransfer-Discrete-expected.txt:
        * platform/mac/svg/custom/feComponentTransfer-Gamma-expected.checksum:
        * platform/mac/svg/custom/feComponentTransfer-Gamma-expected.png:
        * platform/mac/svg/custom/feComponentTransfer-Gamma-expected.txt:
        * platform/mac/svg/custom/feComponentTransfer-Linear-expected.checksum:
        * platform/mac/svg/custom/feComponentTransfer-Linear-expected.png:
        * platform/mac/svg/custom/feComponentTransfer-Linear-expected.txt:
        * platform/mac/svg/custom/feComponentTransfer-Table-expected.checksum:
        * platform/mac/svg/custom/feComponentTransfer-Table-expected.png:
        * platform/mac/svg/custom/feComponentTransfer-Table-expected.txt:
        * platform/mac/svg/custom/feDisplacementMap-01-expected.checksum:
        * platform/mac/svg/custom/feDisplacementMap-01-expected.png:
        * platform/mac/svg/custom/feDisplacementMap-01-expected.txt:
        * platform/mac/svg/custom/gradient-rotated-bbox-expected.checksum:
        * platform/mac/svg/custom/gradient-rotated-bbox-expected.png:
        * platform/mac/svg/custom/gradient-stop-corner-cases-expected.checksum:
        * platform/mac/svg/custom/gradient-stop-corner-cases-expected.png:
        * platform/mac/svg/custom/gradient-stroke-width-expected.checksum:
        * platform/mac/svg/custom/gradient-stroke-width-expected.png:
        * platform/mac/svg/custom/image-with-transform-clip-filter-expected.checksum:
        * platform/mac/svg/custom/image-with-transform-clip-filter-expected.png:
        * platform/mac/svg/custom/image-with-transform-clip-filter-expected.txt:
        * platform/mac/svg/custom/invalid-css-expected.txt:
        * platform/mac/svg/custom/js-late-marker-and-object-creation-expected.checksum:
        * platform/mac/svg/custom/js-late-marker-and-object-creation-expected.png:
        * platform/mac/svg/custom/js-late-marker-creation-expected.checksum:
        * platform/mac/svg/custom/js-late-marker-creation-expected.png:
        * platform/mac/svg/custom/linking-a-03-b-all-expected.checksum:
        * platform/mac/svg/custom/linking-a-03-b-all-expected.png:
        * platform/mac/svg/custom/linking-a-03-b-viewBox-transform-expected.checksum:
        * platform/mac/svg/custom/linking-a-03-b-viewBox-transform-expected.png:
        * platform/mac/svg/custom/marker-changes-expected.checksum:
        * platform/mac/svg/custom/marker-changes-expected.png:
        * platform/mac/svg/custom/marker-child-changes-expected.checksum:
        * platform/mac/svg/custom/marker-child-changes-expected.png:
        * platform/mac/svg/custom/marker-viewBox-changes-expected.checksum:
        * platform/mac/svg/custom/marker-viewBox-changes-expected.png:
        * platform/mac/svg/custom/non-circular-marker-reference-expected.checksum:
        * platform/mac/svg/custom/non-circular-marker-reference-expected.png:
        * platform/mac/svg/custom/non-opaque-filters-expected.checksum:
        * platform/mac/svg/custom/non-opaque-filters-expected.png:
        * platform/mac/svg/custom/non-opaque-filters-expected.txt:
        * platform/mac/svg/custom/path-bad-data-expected.checksum:
        * platform/mac/svg/custom/path-bad-data-expected.png:
        * platform/mac/svg/custom/pattern-rotate-expected.checksum:
        * platform/mac/svg/custom/pattern-rotate-expected.png:
        * platform/mac/svg/custom/pointer-events-path-expected.checksum:
        * platform/mac/svg/custom/pointer-events-path-expected.png:
        * platform/mac/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.png:
        * platform/mac/svg/custom/svg-fonts-in-html-expected.png:
        * platform/mac/svg/custom/text-filter-expected.checksum:
        * platform/mac/svg/custom/text-filter-expected.png:
        * platform/mac/svg/custom/text-filter-expected.txt:
        * platform/mac/svg/custom/use-css-no-effect-on-shadow-tree-expected.checksum:
        * platform/mac/svg/custom/use-css-no-effect-on-shadow-tree-expected.png:
        * platform/mac/svg/custom/use-elementInstance-event-target-expected.checksum:
        * platform/mac/svg/custom/use-elementInstance-event-target-expected.png:
        * platform/mac/svg/custom/visibility-override-filter-expected.checksum:
        * platform/mac/svg/custom/visibility-override-filter-expected.png:
        * platform/mac/svg/custom/visibility-override-filter-expected.txt:
        * platform/mac/svg/filters/big-sized-filter-2-expected.checksum: Added.
        * platform/mac/svg/filters/big-sized-filter-2-expected.png: Added.
        * platform/mac/svg/filters/big-sized-filter-2-expected.txt:
        * platform/mac/svg/filters/big-sized-filter-expected.checksum:
        * platform/mac/svg/filters/big-sized-filter-expected.png:
        * platform/mac/svg/filters/big-sized-filter-expected.txt:
        * platform/mac/svg/filters/feComposite-expected.checksum:
        * platform/mac/svg/filters/feComposite-expected.png:
        * platform/mac/svg/filters/feComposite-expected.txt:
        * platform/mac/svg/filters/feDisplacementMap-expected.checksum:
        * platform/mac/svg/filters/feDisplacementMap-expected.png:
        * platform/mac/svg/filters/feDisplacementMap-expected.txt:
        * platform/mac/svg/filters/feGaussianBlur-expected.checksum:
        * platform/mac/svg/filters/feGaussianBlur-expected.png:
        * platform/mac/svg/filters/feGaussianBlur-expected.txt:
        * platform/mac/svg/filters/feMerge-expected.checksum:
        * platform/mac/svg/filters/feMerge-expected.png:
        * platform/mac/svg/filters/feMerge-expected.txt:
        * platform/mac/svg/filters/feMerge-wrong-input-expected.txt:
        * platform/mac/svg/filters/feOffset-expected.checksum:
        * platform/mac/svg/filters/feOffset-expected.png:
        * platform/mac/svg/filters/feOffset-expected.txt:
        * platform/mac/svg/filters/feTile-expected.checksum:
        * platform/mac/svg/filters/feTile-expected.png:
        * platform/mac/svg/filters/feTile-expected.txt:
        * platform/mac/svg/filters/filterRes-expected.checksum:
        * platform/mac/svg/filters/filterRes-expected.png:
        * platform/mac/svg/filters/filterRes-expected.txt:
        * platform/mac/svg/filters/shadow-on-filter-expected.checksum:
        * platform/mac/svg/filters/shadow-on-filter-expected.png:
        * platform/mac/svg/filters/shadow-on-filter-expected.txt:
        * platform/mac/svg/filters/shadow-on-rect-with-filter-expected.checksum:
        * platform/mac/svg/filters/shadow-on-rect-with-filter-expected.png:
        * platform/mac/svg/filters/shadow-on-rect-with-filter-expected.txt:
        * platform/mac/svg/filters/sourceAlpha-expected.txt:
        * platform/mac/svg/filters/subRegion-in-userSpace-expected.checksum:
        * platform/mac/svg/filters/subRegion-in-userSpace-expected.png:
        * platform/mac/svg/filters/subRegion-in-userSpace-expected.txt:
        * platform/mac/svg/filters/subRegion-one-effect-expected.checksum:
        * platform/mac/svg/filters/subRegion-one-effect-expected.png:
        * platform/mac/svg/filters/subRegion-one-effect-expected.txt:
        * platform/mac/svg/filters/subRegion-two-effects-expected.checksum:
        * platform/mac/svg/filters/subRegion-two-effects-expected.png:
        * platform/mac/svg/filters/subRegion-two-effects-expected.txt:
        * platform/mac/svg/text/text-path-01-b-expected.checksum:
        * platform/mac/svg/text/text-path-01-b-expected.png:
        * platform/mac/svg/text/text-text-05-t-expected.png:
        * platform/mac/svg/text/text-text-07-t-expected.checksum:
        * platform/mac/svg/text/text-text-07-t-expected.png:
        * platform/mac/svg/webarchive/svg-cursor-subresources-expected.png:
        * platform/mac/svg/webarchive/svg-feimage-subresources-expected.checksum:
        * platform/mac/svg/webarchive/svg-feimage-subresources-expected.png:
        * platform/qt/Skipped:
        * platform/win/Skipped:
        * svg/custom/js-svg-constructors-expected.txt:
        * svg/custom/svg-features-expected.txt:
        * svg/dom/operatorAttribute-expected.txt:
        * svg/webarchive/svg-feimage-subresources-expected.webarchive:

2009-12-07  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        Some changes to ValidityState-typeMismatch-url.html.
        https://bugs.webkit.org/show_bug.cgi?id=29913

        - Add more test cases
          Username, IPv6 address, mailto:, file:, tel:, fragment, and IDN.
        - Handle difference between KURL and KURLGoogle

        * fast/forms/ValidityState-typeMismatch-url-expected.txt:
        * fast/forms/script-tests/ValidityState-typeMismatch-url.js:

2009-12-07  Darin Fisher  <darin@chromium.org>

        Reviewed by Darin Adler.

        http/tests/cache/subresource-failover-to-network.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=32038

        Rewrite test to avoid dumpResourceLoadCallbacks, which do not
        interleave predictably with the output of dumpFrameLoadCallbacks.
        Other things besides resource loading can delay onload.

        The newly written test uses a cookie to determine if the test has
        passed.

        Unskip this test for platform/win.

        * http/tests/cache/resources/subresource-failover-to-network.cgi:
        * http/tests/cache/subresource-failover-to-network-expected.txt:
        * http/tests/cache/subresource-failover-to-network.html:
        * platform/win/Skipped:

2009-12-07  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=32244
        Test sending and receiving small WebSocket messages of different lengths

        * websocket/tests/frame-lengths-expected.txt: Added.
        * websocket/tests/frame-lengths.html: Added.

2009-12-07  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Add two tests generating new results to gtks collection of tests doing so.

        * platform/gtk/Skipped:

2009-12-07  Dirk Schulze  <krit@webkit.org>

        Reviewed by Adam Barth.

        If the tile of a pattern is bigger than the pattern and the
        pattern size is < 0.5, the SVGPaintServer produced a division
        by zero. This also only happens, if the attribute overflow is
        set to visible.
        This is a test with a pattern size of 0.1 and a tile size of 1. 

        * svg/custom/script-tests/small-pattern.js: Added.
        * svg/custom/small-pattern-expected.txt: Added.
        * svg/custom/small-pattern.html: Added.

2009-12-07  Kenneth Russell  <kbr@google.com>

        Reviewed by Dimitri Glazkov.

        [v8] WebCore::WebGLArrayBufferInternal::byteLengthAttrGetter NULL pointer
        https://bugs.webkit.org/show_bug.cgi?id=31889

        Fixed bug in handling of zero-argument constructor call.

        Test: fast/canvas/webgl/bug-31889.html

        * fast/canvas/webgl/bug-31889-expected.txt: Added.
        * fast/canvas/webgl/bug-31889.html: Added.

2009-12-07  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Unreviewed. Landing files I forgot to add to my working copy
        before committing r51734.

        * media/media-can-play-ogg-expected.txt: Added.
        * media/media-can-play-ogg.html: Added.

2009-12-07  Alexey Proskuryakov  <ap@apple.com>

        Don't skip websocket/tests/url-with-credential.html, it's one of earlier tests that is
        to blame.

        * platform/mac/Skipped:

2009-12-07  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Steve Falkenburg.

        Add one more fast/js test to the Skipped list - also due to:
        https://bugs.webkit.org/show_bug.cgi?id=32228.

        * platform/win/Skipped:

2009-12-07  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Cleaning up Skipped files in order to make more bots green, as I plan to land changes, that affect all bots (svg filters support).

        Remove non-existant animations/3d directory in qt&win Skipped lists.
        Skip one more test on windows (see bug #32228, already in radar, just guessing - not yet sure if it's a random crash issue though)
        Skip 19 (!) tests on the Qt slave, failing since a longer time. Qt developers: Please investigate.

        * platform/qt/Skipped: Also remove some duplicates I spotted.
        * platform/win/Skipped:

2009-12-07  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Disable two flaky SnowLeopard tests, filed bug and notified author.

        Tests "plugins/document-open.html" and "plugins/mouse-events.html" are flaky on SnowLeopard
        https://bugs.webkit.org/show_bug.cgi?id=32229

        * platform/mac-snowleopard/Skipped:

2009-12-07  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        Tests for <rdar://problem/7437820> Weird selection artifacts

        * fast/repaint/block-selection-gap-stale-cache-2.html: Added.
        * fast/repaint/block-selection-gap-stale-cache.html: Added.
        * platform/mac/fast/repaint/block-selection-gap-stale-cache-2-expected.checksum: Added.
        * platform/mac/fast/repaint/block-selection-gap-stale-cache-2-expected.png: Added.
        * platform/mac/fast/repaint/block-selection-gap-stale-cache-2-expected.txt: Added.
        * platform/mac/fast/repaint/block-selection-gap-stale-cache-expected.checksum: Added.
        * platform/mac/fast/repaint/block-selection-gap-stale-cache-expected.png: Added.
        * platform/mac/fast/repaint/block-selection-gap-stale-cache-expected.txt: Added.

2009-12-07  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed.

        REGRESSION: fast/js/excessive-comma-usage.html and fast/js/math-transforms.html fail on win
        https://bugs.webkit.org/show_bug.cgi?id=32228

        Adding above two tests to the Skipped list on win, attempting to turn the win slave green again.

        * platform/win/Skipped:

2009-12-07  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Remove non-existant files in gtk/Skipped list, and exclude a printing test, without results. Should turn the gtk slave green again.

        * platform/gtk/Skipped:

2009-12-07  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Attempt to get all mac build slaves to green again. Disable crashing test, and notify the author of it to fix it.

        New test "websocket/tests/url-with-credential.html" crashes in debug builds
        https://bugs.webkit.org/show_bug.cgi?id=32226

        * platform/mac/Skipped:

2009-12-07  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Add missing layout test result.

        * http/tests/security/cross-frame-access-getOwnPropertyDescriptor-expected.txt: Added.

2009-12-07  Joanmarie Diggs  <joanmarie.diggs@gmail.com>

        Reviewed by Xan Lopez.

        https://bugs.webkit.org/show_bug.cgi?id=25524
        [Gtk] Expose the title attribute to assistive technologies

        * platform/gtk/accessibility/title-and-alt.html: Added.
        * platform/gtk/accessibility/title-and-alt-expected.txt: Added.

2009-12-07  Oliver Hunt  <oliver@apple.com>

        Reviewed by Maciej Stachowiak.

        Object.create fails if properties on the descriptor are getters
        https://bugs.webkit.org/show_bug.cgi?id=32219

        Add tests for descriptors using getters instead of raw values

        * fast/js/Object-create-expected.txt:
        * fast/js/script-tests/Object-create.js:
        (valueGet):
        (get var):
        (get var.DescriptorWithGetGetter.foo.Object.create.):
        (get var.DescriptorWithSetGetter.foo.Object.create.):

2009-12-06  Oliver Hunt  <oliver@apple.com>

        Reviewed by Maciej Stachowiak.

        Object.getOwnPropertyDescriptor() allows cross-frame access
        https://bugs.webkit.org/show_bug.cgi?id=32119

        Add cross domain tests for getOwnPropertyDescriptor

        * http/tests/security/cross-frame-access-getOwnPropertyDescriptor.html: Added.
        * http/tests/security/resources/cross-frame-access.js:
        (canGetDescriptor.set get catch):
        (canGetDescriptor):
        * http/tests/security/resources/cross-frame-iframe-for-get-test.html:
        * http/tests/security/xss-DENIED-defineProperty.html:

2009-12-06  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        Improve portability and readability of table-percent-height* tests.
        https://bugs.webkit.org/show_bug.cgi?id=31858

        The purpose of these tests is to confirm that an element with
        height:N% inside a table cell has non-zero height. We don't need
        to check concrete pixel sizes of form controls.

        This updates the tests so that they check heights are non-zero and
        75% heights are same as corresponding 100% heights or actually 75%.

        * fast/replaced/table-percent-height-expected.txt:
        * fast/replaced/table-percent-height-text-controls-expected.txt:
        * fast/replaced/table-percent-height-text-controls.html:
        * fast/replaced/table-percent-height.html:

2009-12-06  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by Alexey Proskuryakov.

        Add tests for cross-origin WebSocket usage
        https://bugs.webkit.org/show_bug.cgi?id=32055

        * websocket/tests/cross-origin-expected.txt: Added.
        * websocket/tests/cross-origin.html: Added.
        * websocket/tests/fixed-origin_wsh.py: Added.
        * websocket/tests/handshake-fail-by-cross-origin-expected.txt: Added.
        * websocket/tests/handshake-fail-by-cross-origin.html: Added.
        * websocket/tests/origin-test_wsh.py: Added.
        * websocket/tests/script-tests/cross-origin.js: Added.
        * websocket/tests/script-tests/frame-length-longer-than-buffer.js:
        * websocket/tests/script-tests/frame-length-skip.js:
        * websocket/tests/script-tests/handshake-error.js:
        * websocket/tests/script-tests/handshake-fail-by-cross-origin.js: Added.
        * websocket/tests/script-tests/simple.js:
        * websocket/tests/simple-expected.txt:

2009-12-05  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Oliver Hunt.

        conway benchmark spends half it's time in op_less (jump fusion fails)
        https://bugs.webkit.org/show_bug.cgi?id=32190

        * fast/js/codegen-loops-logical-nodes-expected.txt:
        * fast/js/script-tests/codegen-loops-logical-nodes.js: Update to test some newly
        sensitive cases of codegen that were not already covered.

2009-12-05  Philippe Normand  <pnormand@igalia.com>

        Reviewed by Gustavo Noronha.

        New test for video.canPlayType and ogg containers.

        [GTK] Recognize oga as audio/ogg
        https://bugs.webkit.org/show_bug.cgi?id=31990

        * media/media-can-play-ogg-expected.txt: Added.
        * media/media-can-play-ogg.html: Added.
        * platform/mac-leopard/Skipped:
        * platform/mac-snowleopard/Skipped:
        * platform/mac-tiger/Skipped:
        * platform/mac/Skipped:
        * platform/qt-mac/Skipped:
        * platform/qt-win/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:

2009-12-05  Dan Bernstein  <mitz@apple.com>

        Rubber-stamped by Mark Rowe.

        Disabled a test because it puts the WebView into compositing mode,
        which remains in effect for all subsequent repaint tests, causing them
        to fail because DumpRenderTree always forces a full repaint when
        generating the image of a WebView that is in compositing mode.

        * fast/repaint/block-selection-gap-in-composited-layer.html: Removed.
        * fast/repaint/block-selection-gap-in-composited-layer.html.disabled: Copied from LayoutTests/fast/repaint/block-selection-gap-in-composited-layer.html.

2009-12-05  Adam Langley  <agl@google.com>

        Reviewed by Adam Barth.

        Check that a CSS format() argument is of a valid type.

        https://bugs.webkit.org/show_bug.cgi?id=31815
        http://code.google.com/p/chromium/issues/detail?id=28582

        * fast/css/url-format-non-string-expected.txt: Added
        * fast/css/url-format-non-string.html: Added.

2009-12-04  Kent Hansen  <kent.hansen@nokia.com>

        Reviewed by Darin Adler.

        Add test for JavaScript string property deletion
        https://bugs.webkit.org/show_bug.cgi?id=32012

        * fast/js/script-tests/string-property-deletion.js: Added.
        * fast/js/string-property-deletion-expected.txt: Added.
        * fast/js/string-property-deletion.html: Added.

2009-12-04  Yuzo Fujishima  <yuzo@google.com>

        Reviewed by Alexey Proskuryakov.

        Add test for web socket send.

        https://bugs.webkit.org/show_bug.cgi?id=31337

        * websocket/tests/script-tests/send.js: Added.
        (endTest):
        (ws.onopen):
        (ws.onmessage.ws.onmessage):
        (ws.onmessage):
        (ws.onclose):
        (timeOutCallback):
        * websocket/tests/send-expected.txt: Added.
        * websocket/tests/send.html: Added.
        * websocket/tests/send_wsh.py: Added.

2009-12-04  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        <rdar://problem/7441571> Hardware-backed layers are skipped when printing
        
        Testcase for printing with a compositing layer.

        * printing/compositing-layer-printing-expected.pdf: Added.
        * printing/compositing-layer-printing.html: Added.

2009-12-04  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Skip test that is failing because of new behaviour enforced by
        libsoup. Bug reported.

        * platform/gtk/Skipped:

2009-12-04  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Skip tests that require support for frame loader callbacks
        reporting, and a new test.

        * platform/gtk/Skipped:

2009-12-04  Dirk Schulze  <krit@webkit.org>

        Reviewed by Gustavo Noronha Silva.

        Move the render result to svg/custom as a cross platform render result.

        * platform/mac/svg/custom/radial-gradient-with-outstanding-focalPoint-expected.txt: Removed.
        * svg/custom/radial-gradient-with-outstanding-focalPoint-expected.txt: Added.

2009-12-04  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Reviewed by Adam Treat.

        Remove test that works after adding setAllowUniversalAccessFromFileURLs
        to Qt's version of the LayoutTestController.

        * platform/qt/Skipped:

2009-12-04  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        Gradient SVG animation demonstrates tearing at animation extremes
        https://bugs.webkit.org/show_bug.cgi?id=11929

        In SVG a focalPoint must be inside the radius of a radial gradient.
        It this isn't the case, we have to move the focalPoint into the radius.
        This checks the correct behavior of WebKit on false values for fx, fy.

        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-13-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-13-b-expected.png:
        * platform/mac/svg/custom/radial-gradient-with-outstanding-focalPoint-expected.checksum: Added.
        * platform/mac/svg/custom/radial-gradient-with-outstanding-focalPoint-expected.png: Added.
        * platform/mac/svg/custom/radial-gradient-with-outstanding-focalPoint-expected.txt: Added.
        * svg/custom/radial-gradient-with-outstanding-focalPoint.svg: Added.

2009-12-04  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        REGRESSION: AX: buttons now extremely repetitive
        https://bugs.webkit.org/show_bug.cgi?id=32164

        * platform/mac-leopard/accessibility/table-with-aria-role-expected.txt:
        * platform/mac/accessibility/button-shouldnot-have-axvalue-expected.txt: Added.
        * platform/mac/accessibility/button-shouldnot-have-axvalue.html: Added.
        * platform/mac/accessibility/table-with-aria-role-expected.txt:

2009-12-04  Enrica Casucci  <enrica@apple.com>

        Reviewed by John Sullivan.

        Mail.app crashes when indenting table pasted from Numbers.app.
        <rdar://problem/7209507>
        https://bugs.webkit.org/show_bug.cgi?id=32166

        * editing/execCommand/indent-partial-table-expected.txt: Added.
        * editing/execCommand/indent-partial-table.html: Added.

2009-12-04  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=32085
        WebSocket should block the same ports that are blocked for resource loading

        Added some tests for URL parsing (one of them expects current WebKit behavior, not what the
        spec says).

        * websocket/tests/script-tests/url-parsing.js: Added.
        * websocket/tests/url-parsing-expected.txt: Added.
        * websocket/tests/url-parsing.html: Added.

2009-12-04  Benjamin Poulain  <benjamin.poulain@nokia.com>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] WebKit crashes when loading certain SVG images
        https://bugs.webkit.org/show_bug.cgi?id=29443

        Update the test results for the new FontCache implementation.

        * platform/qt/css1/box_properties/float_elements_in_series-expected.txt:
        * platform/qt/css1/font_properties/font_variant-expected.txt:
        * platform/qt/css1/pseudo/firstline-expected.txt:
        * platform/qt/css1/pseudo/multiple_pseudo_elements-expected.txt:
        * platform/qt/css2.1/t1505-c524-font-var-00-b-expected.txt:

2009-12-04  Steve Block  <steveblock@google.com>

        Reviewed by Darin Adler.

        Fixes a crashing bug in Geolocation when a watch is cleared from some callbacks. 
        https://bugs.webkit.org/show_bug.cgi?id=32111

        * fast/dom/Geolocation/resources/permission-denied-already-clear-watch.js: Added. Tests clearing the watch from the error callback after a permission denied message when permissions have already been denied.
        * fast/dom/Geolocation/permission-denied-already-clear-watch.html: Added. HTML wrapper for above test.
        * fast/dom/Geolocation/permission-denied-already-clear-watch-expected.txt: Added. Expected result for above test.

        * fast/dom/Geolocation/resources/timeout-clear-watch.js: Added. Tests clearing the watch from the error callback due to a timeout.
        * fast/dom/Geolocation/timeout-clear-watch.html: Added. HTML wrapper for above test.
        * fast/dom/Geolocation/timeout-clear-watch-expected.txt: Added. Expected result for above test.

        * platform/gtk/Skipped: Modified. Skips new tests.

2009-12-04  Csaba Osztrogonác  <ossy@webkit.org>

        Reviewed by Simon Hausmann.

        [Qt] Re-enable audio/video tests after updated buildbot's Qt
        to Phonon supported one, and put 2 bad tests into skiplist.

        * platform/qt/Skipped:

2009-12-04  Yuzo Fujishima  <yuzo@google.com>

        Reviewed by Darin Fisher.

        Add test to see if unicode messages can be sent over web socket.

        https://bugs.webkit.org/show_bug.cgi?id=31341

        * websocket/tests/script-tests/unicode.js: Added.
        (endTest):
        (ws.onopen):
        (ws.onmessage):
        (ws.onclose):
        (timeOutCallback):
        * websocket/tests/unicode-expected.txt: Added.
        * websocket/tests/unicode.html: Added.
        * websocket/tests/unicode_wsh.py: Added.

2009-12-03  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Beth Dakin.

        WAI-ARIA: aria-activedescendant doesn't work as intended
        https://bugs.webkit.org/show_bug.cgi?id=32100

        * platform/mac/accessibility/aria-tree-activedescendant-expected.txt: Added.
        * platform/mac/accessibility/aria-tree-activedescendant.html: Added.
        * platform/mac/accessibility/aria-tree-index-of-items-expected.txt: Added.
        * platform/mac/accessibility/aria-tree-index-of-items.html: Added.

2009-12-03  Chris Fleizach  <cfleizach@apple.com>

        Fixing layout test bustage on platforms.

        AX: VO just says "term" on many web sites
        https://bugs.webkit.org/show_bug.cgi?id=32139

        * platform/mac-leopard/accessibility/lists-expected.txt:
        * platform/mac/accessibility/radio-button-group-members-expected.txt:

2009-12-03  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Eric Seidel.

        AX: VO just says "term" on many web sites
        https://bugs.webkit.org/show_bug.cgi?id=32139

        * platform/mac/accessibility/aria-grouping-roles-expected.txt:
        * platform/mac/accessibility/aria-grouping-roles.html:
        * platform/mac/accessibility/definition-list-term-expected.txt: Added.
        * platform/mac/accessibility/definition-list-term.html: Added.
        * platform/mac/accessibility/lists-expected.txt:

2009-12-03  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Beth Dakin.

        Implement WAI-ARIA scrollbar role and related property aria-orientation
        https://bugs.webkit.org/show_bug.cgi?id=32126

        * accessibility/aria-scrollbar-role-expected.txt: Added.
        * accessibility/aria-scrollbar-role.html: Added.
        * platform/gtk/Skipped:
        * platform/win/Skipped:

2009-12-03  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=32132
        websocket/tests/simple.html fails on Windows

        * websocket/tests/script-tests/simple.js:
        * websocket/tests/simple-expected.txt:
        Make the test weaker - readyState could already grow by the time a posted event gets dispatched.

        * platform/win/Skipped: Un-skip the test.

2009-12-03  Julie Parent  <jparent@chromium.org>

        Reviewed by Eric Seidel.

        Make shorthand-transitions.html less flaky.
        The test currently allows for timing related differences by using a tolerance, but the tolerance
        is inconsistent in the test, even for values read at the same time (some values are allowed a 100ms 
        difference, others are only allowed 50ms).  This change makes all values have a 100ms tolerance.
        (open question: is 100ms enough?  I've looked through a bunch of logs of failures and it seems to be,
        so this should definitely help reduce but this may not entirely eliminate flakiness).
        
        https://bugs.webkit.org/show_bug.cgi?id=32134

        * transitions/shorthand-transitions.html:

2009-12-03  Csaba Osztrogonác  <ossy@webkit.org>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=32135

        [Qt] Add expected files for new tests we pass.
        Compared to the Mac expected png files.

        * platform/qt/fast/css/namespaces/namespaces-escapes-expected.txt: Added.
        * platform/qt/fast/css/namespaces/namespaces-invalid-at-expected.txt: Added.

2009-12-03  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Alexey Proskuryakov.

        Skip failing WebSocket test on Windows.

        * platform/win/Skipped:

2009-12-03  Brady Eidson  <beidson@apple.com>

        Rubberstamped by Oliver Hunt.

        Fix layout tests by removing the full outputting of the Date object and just outputting the milliseconds since the epoch.

        * fast/loader/stateobjects/pushstate-object-types-expected.txt:
        * fast/loader/stateobjects/pushstate-object-types.html:

2009-12-03  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=32130
        Add a test for sending non-trivial amount of data over WebSocket

        * websocket/tests/echo_wsh.py: Copied from WebKitTools/pywebsocket/example/echo_wsh.py.
        * websocket/tests/simple-stress-expected.txt: Added.
        * websocket/tests/simple-stress.html: Added.

2009-12-03  Brady Eidson  <beidson@apple.com>

        Rubberstamped by Sam Weinig.

        Fix my absolute URL snafu by outputting only the last path component for these URLs, 
        which is all that is relevant.

        * fast/loader/stateobjects/document-destroyed-navigate-back-expected.txt:
        * fast/loader/stateobjects/document-destroyed-navigate-back-with-fragment-scroll-expected.txt:
        * fast/loader/stateobjects/document-destroyed-navigate-back-with-fragment-scroll.html:
        * fast/loader/stateobjects/document-destroyed-navigate-back.html:
        * fast/loader/stateobjects/pushstate-with-fragment-urls-and-hashchange-expected.txt:
        * fast/loader/stateobjects/pushstate-with-fragment-urls-and-hashchange.html:

2009-12-03  Oliver Hunt  <oliver@apple.com>

        Reviewed by Dan Bernstein.

        REGRESSION (r51627): 3 SVG tests are failing
        https://bugs.webkit.org/show_bug.cgi?id=32117

        Improve testing of svglist.

        * svg/dom/svglist-exception-on-out-bounds-error-expected.txt:
        * svg/dom/svglist-exception-on-out-bounds-error.html:

2009-12-03  Enrica Casucci  <enrica@apple.com>

        Reviewed by Adele Peterson.

        Multiple Undos removes the last posted comment and/or the ones before it.
        <rdar://problem/6557066>
        https://bugs.webkit.org/show_bug.cgi?id=32079

        Added test to verify that undo has no effect when an element is
        no longer editable.
        
        * editing/undo/undo-indent-noneditable-expected.txt: Added.
        * editing/undo/undo-indent-noneditable.html: Added.

2009-12-03  Brady Eidson  <beidson@apple.com>

        Reviewed by Sam Weinig.

        <rdar://problem/7214236> and http://webkit.org/b/32052 - Implement HTML5 state object history API

        Update expected results of old tests:
        * fast/dom/Window/window-appendages-cleared-expected.txt:
        * fast/dom/Window/window-properties-expected.txt:
        * http/tests/security/cross-frame-access-enumeration-expected.txt:

        New tests:
        * fast/loader/stateobjects: Added.
        * fast/loader/stateobjects/document-destroyed-navigate-back-expected.txt: Added.
        * fast/loader/stateobjects/document-destroyed-navigate-back-with-fragment-scroll-expected.txt: Added.
        * fast/loader/stateobjects/document-destroyed-navigate-back-with-fragment-scroll.html: Added.
        * fast/loader/stateobjects/document-destroyed-navigate-back.html: Added.
        * fast/loader/stateobjects/popstate-after-load-complete-addeventlistener-expected.txt: Added.
        * fast/loader/stateobjects/popstate-after-load-complete-addeventlistener.html: Added.
        * fast/loader/stateobjects/popstate-after-load-complete-body-attribute-expected.txt: Added.
        * fast/loader/stateobjects/popstate-after-load-complete-body-attribute.html: Added.
        * fast/loader/stateobjects/popstate-after-load-complete-body-inline-attribute-expected.txt: Added.
        * fast/loader/stateobjects/popstate-after-load-complete-body-inline-attribute.html: Added.
        * fast/loader/stateobjects/popstate-after-load-complete-window-attribute-expected.txt: Added.
        * fast/loader/stateobjects/popstate-after-load-complete-window-attribute.html: Added.
        * fast/loader/stateobjects/pushstate-object-types-expected.txt: Added.
        * fast/loader/stateobjects/pushstate-object-types.html: Added.
        * fast/loader/stateobjects/pushstate-then-replacestate-expected.txt: Added.
        * fast/loader/stateobjects/pushstate-then-replacestate.html: Added.
        * fast/loader/stateobjects/pushstate-with-fragment-urls-and-hashchange-expected.txt: Added.
        * fast/loader/stateobjects/pushstate-with-fragment-urls-and-hashchange.html: Added.
        * fast/loader/stateobjects/replacestate-then-pushstate-expected.txt: Added.
        * fast/loader/stateobjects/replacestate-then-pushstate.html: Added.
        * fast/loader/stateobjects/resources: Added.
        * fast/loader/stateobjects/resources/navigate-back.html: Added.
        * http/tests/loading/state-object-security-exception-expected.txt: Added.
        * http/tests/loading/state-object-security-exception.html: Added.

2009-12-03  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Xan Lopez.

        Platform-specific result for test. GIO identifies the file as
        application/javascript, as opposed to other platforms identifying
        it as application/x-javascript.

        * platform/gtk/inspector/timeline-network-resource-expected.txt: Added.

2009-12-03  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Rubber-stamped by Oliver Hunt.

        Re-baseline required after r51522.

        * platform/gtk/editing/deleting/5390681-2-expected.txt:

2009-12-03  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Skipping new tests, and tests that require new DRT functionality.

        * platform/gtk/Skipped:

2009-12-03  Andras Becsi  <abecsi@inf.u-szeged.hu>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Skip layoutTestController.notifyDone() related tests which got revealed in r51634
        until there is a fix for the issue.
        https://bugs.webkit.org/show_bug.cgi?id=31626

        * platform/qt/Skipped:

2009-12-03  Andras Becsi  <abecsi@inf.u-szeged.hu>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Re-enable previously skipped tests.
        https://bugs.webkit.org/show_bug.cgi?id=31591

        * platform/qt/Skipped:

2009-12-03  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Put test into skiplist because of missing layoutTestController.evaluateInWebInspector().

        * platform/qt/Skipped:
        - inspector/settings-set-get.html added.

2009-12-03  Pavel Feldman  <pfeldman@dhcp-172-28-174-220.spb.corp.google.com>

        Reviewed by Timothy Hatcher.

        Web Inspector: Simplify the settings support in inspector controller.

        https://bugs.webkit.org/show_bug.cgi?id=32076

        * inspector/settings-set-get-expected.txt: Added.
        * inspector/settings-set-get.html: Added.

2009-12-03  Oliver Hunt  <oliver@apple.com>

        Reviewed by Maciej Stachowiak.

        NULL ptr in SVGPathSegList::getPathSegAtLength()
        https://bugs.webkit.org/show_bug.cgi?id=30313

        Add testcases for incorrect pathSeg usage.

        * svg/dom/svgpath-out-of-bounds-getPathSeg-expected.txt: Added.
        * svg/dom/svgpath-out-of-bounds-getPathSeg.html: Added.

2009-12-02  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Darin Adler.

        Rewrite two tests with dumpAsText
        https://bugs.webkit.org/show_bug.cgi?id=32014

        * fast/block/positioning/complex-percentage-height-expected.txt: Added.
        * fast/block/positioning/complex-percentage-height.html:
        * fast/lists/item-not-in-list-line-wrapping-expected.txt: Added.
        * fast/lists/item-not-in-list-line-wrapping.html:
        * platform/mac/fast/block/positioning/complex-percentage-height-expected.checksum: Removed.
        * platform/mac/fast/block/positioning/complex-percentage-height-expected.png: Removed.
        * platform/mac/fast/block/positioning/complex-percentage-height-expected.txt: Removed.
        * platform/mac/fast/lists/item-not-in-list-line-wrapping-expected.checksum: Removed.
        * platform/mac/fast/lists/item-not-in-list-line-wrapping-expected.png: Removed.
        * platform/mac/fast/lists/item-not-in-list-line-wrapping-expected.txt: Removed.
        * platform/qt/Skipped:
        * platform/qt/fast/block/positioning/complex-percentage-height-expected.txt: Removed.
        * platform/qt/fast/lists/item-not-in-list-line-wrapping-expected.txt: Removed.

2009-12-02  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Fisher.

        https://bugs.webkit.org/show_bug.cgi?id=32089
        Test that WebSocket.readyState is set correctly

        * websocket/tests/script-tests/simple.js:
        (ws.onopen):
        (ws.onmessage):
        (ws.onclose):
        * websocket/tests/simple-expected.txt:
        Added readyState logging.

2009-11-30  Julie Parent  <jparent@chromium.org>

        Reviewed by Darin Adler.

        Make change-values-during-transition less flaky.  Transition is 1 sec duration,
        translating 100px, starting at 0, so it should be at 50px at 500ms, not 600ms.
                
        https://bugs.webkit.org/show_bug.cgi?id=31997

        * transitions/change-values-during-transition.html:
        isEqual: Remove unnecessary code - tolerance always passed in and always default value.
        getXPosition: Extract into a function, since it is duplicated twice.
        check2: Still run second check if the first fails, just give more debugging output.
        start: Remove final setTimeout - nothing changes between the end of check2 and here,
            so this is just making the test take 100ms longer.

2009-12-02  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Adam Roben.

        Skip http/tests/cache/subresource-failover-to-network.html because it
        is flaky on Windows, fixing it is being tracked by 
        https://bugs.webkit.org/show_bug.cgi?id=32038.

        * platform/win/Skipped:

2009-12-02  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Put tests into skiplist because of missing layoutTestController.evaluateInWebInspector().

        * platform/qt/Skipped:
        - inspector/elements-panel-selection-on-refresh.html added.
        - inspector/timeline-event-dispatch.html added.

2009-12-02  Eric Z. Ayers  <zundel@google.com>

        Reviewed by Pavel Feldman.

        Adds a timeline test for EventDispatch records.
 
        https://bugs.webkit.org/show_bug.cgi?id=31376

        * inspector/timeline-event-dispatch-expected.txt: Added.
        * inspector/timeline-event-dispatch.html: Added.

2009-12-02  Pavel Feldman  <pfeldman@dhcp-172-28-174-220.spb.corp.google.com>

        Reviewed by Timothy Hatcher.

        Web Inspector: DOM tree selection disappears upon page refresh.

        https://bugs.webkit.org/show_bug.cgi?id=31142

        * inspector/elements-panel-selection-on-refresh-expected.txt: Added.
        * inspector/elements-panel-selection-on-refresh.html: Added.

2009-12-02  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] r51577 made fast/frames/sandboxed-iframe-plugins.html crash.

        * platform/qt/Skipped: 
        - fast/frames/sandboxed-iframe-navigation-windowopen.html added. (crasher)

2009-12-02  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed. Skip new tests.

        * platform/qt/Skipped:
        - svg/custom/mask-with-all-units.svg added.
        - fast/css/namespaces/namespaces-comments.xml added.
        - fast/css/namespaces/namespaces-empty.xml added.

2009-12-02  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by Alexey Proskuryakov.

        WebSocket handshake check query component of URL
        https://bugs.webkit.org/show_bug.cgi?id=31617

        * websocket/tests/echo-location_wsh.py: Added.
        * websocket/tests/no-query_wsh.py: Added.
        * websocket/tests/script-tests/url-with-credential.js: Added.
        * websocket/tests/script-tests/url-with-empty-query.js: Added.
        * websocket/tests/script-tests/url-with-fragment.js: Added.
        * websocket/tests/script-tests/url-with-query-for-no-query.js: Added.
        * websocket/tests/script-tests/url-with-query.js: Added.
        * websocket/tests/url-with-credential-expected.txt: Added.
        * websocket/tests/url-with-credential.html: Added.
        * websocket/tests/url-with-empty-query-expected.txt: Added.
        * websocket/tests/url-with-empty-query.html: Added.
        * websocket/tests/url-with-fragment-expected.txt: Added.
        * websocket/tests/url-with-fragment.html: Added.
        * websocket/tests/url-with-query-expected.txt: Added.
        * websocket/tests/url-with-query-for-no-query-expected.txt: Added.
        * websocket/tests/url-with-query-for-no-query.html: Added.
        * websocket/tests/url-with-query.html: Added.

2009-12-01  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Eric Seidel.

        Update expectations of css2.1/t1205-c56* for Qt
        https://bugs.webkit.org/show_bug.cgi?id=32015

        * platform/qt/Skipped:
        * platform/qt/css2.1/t1205-c561-list-displ-00-b-expected.txt:
        * platform/qt/css2.1/t1205-c565-list-pos-00-b-expected.txt:
        * platform/qt/css2.1/t1205-c566-list-stl-00-e-ag-expected.txt:

2009-12-01  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        Change [Reflect] to [ConvertNullToNullString, Reflect] for min, max,
        pattern and step attributes of HTMLInputElement.
        https://bugs.webkit.org/show_bug.cgi?id=31708

        * fast/forms/input-minmax-expected.txt:
        * fast/forms/input-pattern-expected.txt: Added.
        * fast/forms/input-pattern.html: Added.
        * fast/forms/input-step-expected.txt:
        * fast/forms/script-tests/input-minmax.js: Add tests for null/undefined/non-string.
        * fast/forms/script-tests/input-pattern.js: Added.
        * fast/forms/script-tests/input-step.js: Change the result for null.

2009-12-01  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        WAI-ARIA: implement support for ARIA drag and drop
        https://bugs.webkit.org/show_bug.cgi?id=32007

        * platform/mac/accessibility/aria-drag-drop-expected.txt: Added.
        * platform/mac/accessibility/aria-drag-drop.html: Added.

2009-12-01  Adam Barth  <abarth@webkit.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=21288

        Add sneaky test that has tabs.

        * fast/frames/sandboxed-iframe-attribute-parsing-expected.txt: Added.
        * fast/frames/sandboxed-iframe-attribute-parsing.html: Added.

2009-12-01  Patrik Persson  <patrik.j.persson@ericsson.com>

        Reviewed by Darin Adler.

        Implement HTML5 sandbox attribute for iframes.
        http://www.w3.org/TR/html5/text-level-semantics.html#attr-iframe-sandbox
        https://bugs.webkit.org/show_bug.cgi?id=21288

        * fast/frames/resources/non-sandboxed-iframe-navigation.html: Added.
        * fast/frames/resources/sandboxed-iframe-attribute-parsing-allowed.html: Added.
        * fast/frames/resources/sandboxed-iframe-attribute-parsing-disallowed.html: Added.
        * fast/frames/resources/sandboxed-iframe-form-allowed.html: Added.
        * fast/frames/resources/sandboxed-iframe-form-disallowed.html: Added.
        * fast/frames/resources/sandboxed-iframe-navigated.html: Added.
        * fast/frames/resources/sandboxed-iframe-navigation-child.html: Added.
        * fast/frames/resources/sandboxed-iframe-navigation-navigated.html: Added.
        * fast/frames/resources/sandboxed-iframe-navigation-parent.html: Added.
        * fast/frames/resources/sandboxed-iframe-navigation-source.html: Added.
        * fast/frames/resources/sandboxed-iframe-navigation-targetlink.html: Added.
        * fast/frames/resources/sandboxed-iframe-navigation-windowopen.html: Added.
        * fast/frames/resources/sandboxed-iframe-plugins-frame-applet.html: Added.
        * fast/frames/resources/sandboxed-iframe-plugins-frame-embed.html: Added.
        * fast/frames/resources/sandboxed-iframe-plugins-frame-object.html: Added.
        * fast/frames/resources/sandboxed-iframe-script-dynamic.html: Added.
        * fast/frames/resources/sandboxed-iframe-storage-allowed.html: Added.
        * fast/frames/resources/sandboxed-iframe-storage-disallowed.html: Added.
        * fast/frames/sandboxed-iframe-attribute-parsing-expected.txt: Added.
        * fast/frames/sandboxed-iframe-attribute-parsing.html: Added.
        * fast/frames/sandboxed-iframe-forms-expected.txt: Added.
        * fast/frames/sandboxed-iframe-forms.html: Added.
        * fast/frames/sandboxed-iframe-navigation-allowed-expected.txt: Added.
        * fast/frames/sandboxed-iframe-navigation-allowed.html: Added.
        * fast/frames/sandboxed-iframe-navigation-parent-expected.txt: Added.
        * fast/frames/sandboxed-iframe-navigation-parent.html: Added.
        * fast/frames/sandboxed-iframe-navigation-targetlink-expected.txt: Added.
        * fast/frames/sandboxed-iframe-navigation-targetlink.html: Added.
        * fast/frames/sandboxed-iframe-navigation-windowopen-expected.txt: Added.
        * fast/frames/sandboxed-iframe-navigation-windowopen.html: Added.
        * fast/frames/sandboxed-iframe-plugins-expected.txt: Added.
        * fast/frames/sandboxed-iframe-plugins.html: Added.
        * fast/frames/sandboxed-iframe-scripting-expected.txt: Added.
        * fast/frames/sandboxed-iframe-scripting.html: Added.
        * fast/frames/sandboxed-iframe-storage-expected.txt: Added.
        * fast/frames/sandboxed-iframe-storage.html: Added.
        * http/tests/security/resources/sandboxed-iframe-document-cookie-read-denied.html: Added.
        * http/tests/security/resources/sandboxed-iframe-modify-self.html: Added.
        * http/tests/security/resources/xss-DENIED-sandboxed-iframe-attacker.html: Added.
        * http/tests/security/sandboxed-iframe-document-cookie-expected.txt: Added.
        * http/tests/security/sandboxed-iframe-document-cookie.html: Added.
        * http/tests/security/sandboxed-iframe-modify-self-expected.txt: Added.
        * http/tests/security/sandboxed-iframe-modify-self.html: Added.
        * http/tests/security/xss-DENIED-sandboxed-iframe-expected.txt: Added.
        * http/tests/security/xss-DENIED-sandboxed-iframe.html: Added.
        * http/tests/xmlhttprequest/access-control-sandboxed-iframe-allow-expected.txt: Added.
        * http/tests/xmlhttprequest/access-control-sandboxed-iframe-allow.html: Added.
        * http/tests/xmlhttprequest/access-control-sandboxed-iframe-denied-expected.txt: Added.
        * http/tests/xmlhttprequest/access-control-sandboxed-iframe-denied-without-wildcard-expected.txt: Added.
        * http/tests/xmlhttprequest/access-control-sandboxed-iframe-denied-without-wildcard.html: Added.
        * http/tests/xmlhttprequest/access-control-sandboxed-iframe-denied.html: Added.
        * http/tests/xmlhttprequest/resources/access-control-sandboxed-iframe-allow-iframe.html: Added.
        * http/tests/xmlhttprequest/resources/access-control-sandboxed-iframe-allow.cgi: Added.
        * http/tests/xmlhttprequest/resources/access-control-sandboxed-iframe-denied-iframe.html: Added.
        * http/tests/xmlhttprequest/resources/access-control-sandboxed-iframe-denied-without-wildcard-iframe.html: Added.
        * http/tests/xmlhttprequest/resources/access-control-sandboxed-iframe-denied-without-wildcard.cgi: Added.
        * http/tests/xmlhttprequest/resources/access-control-sandboxed-iframe-denied.cgi: Added.

2009-12-01  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by David Kilzer.

        ARIA: support a way to create a static text object
        https://bugs.webkit.org/show_bug.cgi?id=32030

        * accessibility/aria-text-role-expected.txt: Added.
        * accessibility/aria-text-role.html: Added.
        * platform/gtk/Skipped:
        * platform/win/Skipped:

2009-12-01  Nikolas Zimmermann  <nzimmermann@rim.com>

        Reviewed by Simon Fraser.

        Add SVG animation test framework with 'snapshot' functionality
        https://bugs.webkit.org/show_bug.cgi?id=31897

        Add LayoutTests/svg/animations directory, containing a new
        framework for SVG animation test with sampling at certain times.

        Added one example test, which will be extended soon to cover animVal
        support, once basic support has been implemented.

        * svg/animations: Added.
        * svg/animations/animVal-basics-expected.txt: Added.
        * svg/animations/animVal-basics.html: Added.
        * svg/animations/resources: Added.
        * svg/animations/resources/SVGAnimationTestCase.js: Added.
        (isCloseEnough):
        (moveAnimationTimelineAndSample):
        (startTest):
        (sampleAnimation):
        (runAnimationTest):
        * svg/animations/script-tests: Added.
        * svg/animations/script-tests/TEMPLATE.html: Added.
        * svg/animations/script-tests/animVal-basics.js: Added.
        (sample1):
        (sample2):
        (sample3):
        (executeTest):

2009-12-01  Adam Roben  <aroben@apple.com>

        Skip more tests that fail with specific versions of CFNetwork on
        Windows

        Rubber-stamped in advance by Brady Eidson.

        * platform/win/Skipped:

2009-12-01  Daniel Bates  <dbates@webkit.org>

        Reviewed by Pavel Feldman.

        https://bugs.webkit.org/show_bug.cgi?id=32001

        Updated layout test to reflect change to localized string and
        rebased the result.

        * inspector/elements-img-tooltip-expected.txt:
        * inspector/elements-img-tooltip.html:

2009-12-01  Adam Roben  <aroben@apple.com>

        Skip a test that fails with some versions of CFNetwork on Windows

        Rubber-stamped by Brady Eidson.

        * platform/win/Skipped: Skip http/tests/plugins/post-url-file.html.

2009-12-01  Alexey Proskuryakov  <ap@apple.com>

        Enabling WebSocket tests on Windows again - let's see what errors get logged.

        * platform/win/Skipped:

2009-12-01  Adam Roben  <aroben@apple.com>

        Add a timing-out test to the Skipped file on Windows

        Rubber-stamped by Ada Chan.

        * platform/win/Skipped: Added
        fast/dom/Window/window-postmessage-clone.html, which was timing out
        due to eventSender.beginDragFiles being unimplemented.

2009-12-01  Adam Roben  <aroben@apple.com>

        Add expected Windows failure results for tests that use
        textInputController

        <http://webkit.org/b/32021> covers fixing these tests.

        Rubber-stamped by Sam Weinig.

        * platform/win/Skipped: Removed tests that use textInputController.

        * platform/win/editing/selection/5825350-1-expected.txt: Added.
        * platform/win/editing/selection/5825350-2-expected.txt: Added.
        * platform/win/editing/selection/mixed-editability-10-expected.txt: Added.
        * platform/win/fast/events/ime-composition-events-001-expected.txt: Added.
        * platform/win/fast/forms/input-maxlength-ime-completed-expected.txt: Added.
        * platform/win/fast/forms/input-maxlength-ime-preedit-expected.txt: Added.
        * platform/win/fast/text/international/thai-cursor-position-expected.txt: Added.

2009-12-01  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Put test into skiplist because of missing layoutTestController.evaluateInWebInspector().

        * platform/qt/Skipped: inspector/timeline-network-resource.html added.

2009-12-01  Eric Z. Ayers  <zundel@google.com>

        Reviewed by Pavel Feldman.

        Adds test for Timeline network resource records.
 
        https://bugs.webkit.org/show_bug.cgi?id=31378

        * inspector/timeline-network-resource-expected.txt: Added.
        * inspector/timeline-network-resource.html: Added.
        * inspector/timeline-network-resource.js: Added.
        * inspector/timeline-test.js:
        (printTimelineRecords):

2009-12-01  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Adam Roben.

        Added tests for getProgramInfoLog, getShaderInfoLog and getShaderSource to WebGL tests
        https://bugs.webkit.org/show_bug.cgi?id=30778

        * fast/canvas/webgl/gl-object-get-calls-expected.txt:
        * fast/canvas/webgl/script-tests/gl-object-get-calls.js:

2009-12-01  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Oliver Hunt.

        Updated webgl tests to use "experimental-webgl" as the context name.
        https://bugs.webkit.org/show_bug.cgi?id=31672

        * fast/canvas/webgl/gl-get-calls.html:
        * fast/canvas/webgl/resources/utils3d.js:
        (initWebGL):
        * fast/canvas/webgl/resources/webgl-test.js:
        (create3DContext):

2009-12-01  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Put tests into skiplist because of missing textInputController.selectedRange().

        * platform/qt/Skipped:
        - editing/selection/mixed-editability-10.html added.
        - editing/selection/5825350-1.html added.
        - editing/selection/5825350-2.html added.

2009-11-30  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Dan Bernstein.

        css2.1/t1205-c566-list-stl-00-e-ag.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=23264

        * editing/pasteboard/copy-crash-expected.txt:
        * fast/lists/calc-width-with-space-expected.txt: Added.
        * fast/lists/calc-width-with-space.html: Added.
        * platform/mac/css2.1/t1205-c561-list-displ-00-b-expected.checksum:
        * platform/mac/css2.1/t1205-c561-list-displ-00-b-expected.png:
        * platform/mac/css2.1/t1205-c561-list-displ-00-b-expected.txt:
        * platform/mac/css2.1/t1205-c565-list-pos-00-b-expected.checksum:
        * platform/mac/css2.1/t1205-c565-list-pos-00-b-expected.png:
        * platform/mac/css2.1/t1205-c565-list-pos-00-b-expected.txt:
        * platform/mac/css2.1/t1205-c566-list-stl-00-e-ag-expected.checksum:
        * platform/mac/css2.1/t1205-c566-list-stl-00-e-ag-expected.png:
        * platform/mac/css2.1/t1205-c566-list-stl-00-e-ag-expected.txt:
        * platform/mac/fast/block/positioning/complex-percentage-height-expected.checksum:
        * platform/mac/fast/block/positioning/complex-percentage-height-expected.png:
        * platform/mac/fast/block/positioning/complex-percentage-height-expected.txt:
        * platform/mac/fast/lists/item-not-in-list-line-wrapping-expected.checksum:
        * platform/mac/fast/lists/item-not-in-list-line-wrapping-expected.png:
        * platform/mac/fast/lists/item-not-in-list-line-wrapping-expected.txt:
        * platform/mac/fast/repaint/list-marker-expected.checksum:
        * platform/mac/fast/repaint/list-marker-expected.png:
        * platform/mac/fast/repaint/list-marker-expected.txt:
        * platform/qt/Skipped:

2009-11-30  Enrica Casucci  <enrica@apple.com>

        Reviewed by Darin Adler.

        Can focus but not type into content editable block that contains only non-editable content.
        <rdar://problem/5982901>
        https://bugs.webkit.org/show_bug.cgi?id=31750

        * editing/selection/5825350-1-expected.txt:
        * editing/selection/5825350-1.html: Modified to use caret rectangle.
        * editing/selection/5825350-2-expected.txt:
        * editing/selection/5825350-2.html: Modified to use caret rectangle.
        * editing/selection/mixed-editability-10-expected.txt: Added.
        * editing/selection/mixed-editability-10.html: Added.
        * platform/mac/editing/deleting/5390681-2-expected.txt: Re-baselined
        to account for the new possible caret position.

2009-11-30  Beth Dakin  <bdakin@apple.com>

        Reviewed by Oliver Hunt.

        Test for https://bugs.webkit.org/show_bug.cgi?id=32000 Crash in 
        Safari caused by extreme column-gap and column-width values 
        -and corresponding-
        <rdar://problem/7425433>

        * fast/multicol/huge-column-gap-crash-expected.txt: Added.
        * fast/multicol/huge-column-gap-crash.html: Added.

2009-11-30  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Oliver Hunt.

        https://bugs.webkit.org/show_bug.cgi?id=31659
        Connection must be closed in case of Web Socket handshake error

        * platform/mac/Skipped: Un-skip websocket/tests/handshake-error.html.

2009-11-30  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Simon Fraser.

        All HTML5 media element events should be regular events
        https://bugs.webkit.org/show_bug.cgi?id=30513
        
        Remove progress event tests.

        * media/progress-event-at-least-one-expected.txt: Removed.
        * media/progress-event-at-least-one.html: Removed.
        * media/progress-event-expected.txt: Removed.
        * media/progress-event-total-expected.txt: Removed.
        * media/progress-event-total.html: Removed.
        * media/progress-event.html: Removed.

2009-11-30  Yuzo Fujishima  <yuzo@google.com>

        Reviewed by Alexey Proskuryakov.

        In testing handshake-error case, web_socket_do_extra_handshake calls a non-existent method
        https://bugs.webkit.org/show_bug.cgi?id=31465

        * platform/mac/Skipped: websocket/tests/handshake-error.html now fails on Mac, added to
        Skipped list, and filed bug 31659 to investigate.

        * websocket/tests/handshake-error_wsh.py: Call write() on a correct object.

2009-11-30  Joseph Pecoraro  <joepeck@webkit.org>

        Reviewed by Pavel Feldman.

        Web Inspector: Wrong console output for Regexp escape sequence
        https://bugs.webkit.org/show_bug.cgi?id=31538

        * inspector/console-format-expected.txt:
        * inspector/console-format.html:

2009-11-30  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Skipping test that fails because of broken DND, and some tests
        requiring new results.

        * platform/gtk/Skipped:

2009-11-30  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        Complex test of mask with every combination of maskUnits and maskContentUnits
        as well as different values for size and position of the mask and it's content.

        * platform/mac/svg/custom/mask-with-all-units-expected.checksum: Added.
        * platform/mac/svg/custom/mask-with-all-units-expected.png: Added.
        * platform/mac/svg/custom/mask-with-all-units-expected.txt: Added.
        * svg/custom/mask-with-all-units.svg: Added.

2009-11-30  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Put tests into skiplist because of missing features.

        * platform/qt/Skipped:
        - fast/dom/Window/window-postmessage-clone.html added
        - inspector/elements-img-tooltip.html added.

2009-11-28  Oliver Hunt  <oliver@apple.com>

        Reviewed by Sam Weinig.

        postMessage should serialize File objects
        https://bugs.webkit.org/show_bug.cgi?id=31955

        Add test for postMessage serialization of File objects.

        * fast/dom/Window/window-postmessage-clone-expected.txt:
        * fast/dom/Window/window-postmessage-clone.html:

2009-11-29  Simon Fraser  <simon.fraser@apple.com>

        Rubber-stamped by Eric Seidel.
        
        Fix up some compositing layout tests.

        * compositing/layers-inside-overflow-scroll.html:
        * compositing/self-painting-layers.html:
        Use the 'loadeddata' event, instead of 'load', to know when the video loads.
        
        * platform/mac/compositing/repaint/content-into-overflow-expected.checksum:
        * platform/mac/compositing/repaint/content-into-overflow-expected.png:
        * platform/mac/compositing/repaint/overflow-into-content-expected.checksum:
        * platform/mac/compositing/repaint/overflow-into-content-expected.png:
        * platform/mac/compositing/self-painting-layers-expected.checksum:
        * platform/mac/compositing/self-painting-layers-expected.png:
        Update with correct pixel results.

2009-11-29  Shu Chang  <Chang.Shu@nokia.com>

        Reviewed by Eric Seidel.

        Test using Id as index of node list.
        https://bugs.webkit.org/show_bug.cgi?id=31428

        * fast/dom/Element/id-in-node-list-index01-expected.txt: Added.
        * fast/dom/Element/id-in-node-list-index01.html: Added.

2009-11-28  Adam Barth  <abarth@webkit.org>

        Reviewed by Dimitri Glazkov.

        [Chromium] Sify compose button alerts error
        https://bugs.webkit.org/show_bug.cgi?id=31394

        Test that we're using the calling security context in a simple case.

        * http/tests/security/calling-versus-current-expected.txt: Added.
        * http/tests/security/calling-versus-current.html: Added.

2009-11-27  Daniel Bates  <dbates@webkit.org>

        Reviewed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=31940

        Rebased results because of new error messages.

        * http/tests/security/xssAuditor/base-href-control-char-expected.txt:
        * http/tests/security/xssAuditor/base-href-expected.txt:
        * http/tests/security/xssAuditor/base-href-null-char-expected.txt:
        * http/tests/security/xssAuditor/base-href-scheme-relative-expected.txt:
        * http/tests/security/xssAuditor/embed-tag-control-char-expected.txt:
        * http/tests/security/xssAuditor/embed-tag-expected.txt:
        * http/tests/security/xssAuditor/embed-tag-javascript-url-expected.txt:
        * http/tests/security/xssAuditor/embed-tag-null-char-expected.txt:
        * http/tests/security/xssAuditor/object-embed-tag-control-char-expected.txt:
        * http/tests/security/xssAuditor/object-embed-tag-expected.txt:
        * http/tests/security/xssAuditor/object-embed-tag-null-char-expected.txt:
        * http/tests/security/xssAuditor/object-src-inject-expected.txt:
        * http/tests/security/xssAuditor/object-tag-expected.txt:
        * http/tests/security/xssAuditor/object-tag-javascript-url-expected.txt:

2009-11-27  Kenneth Russell  <kbr@google.com>

        Reviewed by Eric Seidel.

        REGRESSION(51418): fast/canvas/webgl/gl-object-get-calls.html is failing on the Leopard commit bot
        https://bugs.webkit.org/show_bug.cgi?id=31919

        Temporarily disabled portion of test which is failing on some
        machines but not others. Root cause will be investigated under
        https://bugs.webkit.org/show_bug.cgi?id=31843 .

        * fast/canvas/webgl/gl-object-get-calls-expected.txt:
        * fast/canvas/webgl/script-tests/gl-object-get-calls.js:

2009-11-26  Shinichiro Hamaji  <hamaji@chromium.org>

        Unreviewed red bot fix.

        Skip tests introduced by the previous change as it seems to be failing.

        * platform/qt/Skipped:
        * platform/win/Skipped:

2009-11-26  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Dan Bernstein.

        Assertion failure in RenderBlock::positionForPointWithInlineChildren when running fast/inline/relative-positioned-overflow.html
        https://bugs.webkit.org/show_bug.cgi?id=29966

        A test case where a user drags the mouse from an empty inline
        element to above texts.

        * editing/selection/last-empty-inline-expected.txt: Added.
        * editing/selection/last-empty-inline.html: Added.
        * platform/win/Skipped:

2009-11-26  Kinuko Yasuda  <kinuko@chromium.com>

        Reviewed by Eric Seidel.

        Rewrite the test fast/parser/comment-in-textarea to use dumpAsText
        so that the expected results can be independent of platform differences.
        https://bugs.webkit.org/show_bug.cgi?id=31580

        * fast/parser/comment-in-textarea-expected.txt: Added.
        * fast/parser/comment-in-textarea.html:
        * fast/parser/script-tests/comment-in-textarea.js: Added.
        * platform/mac/fast/parser/comment-in-textarea-expected.checksum: Removed.
        * platform/mac/fast/parser/comment-in-textarea-expected.png: Removed.
        * platform/mac/fast/parser/comment-in-textarea-expected.txt: Removed.
        * platform/win/fast/parser/comment-in-textarea-expected.txt: Removed.

2009-11-26  Daniel Bates  <dbates@webkit.org>

        Reviewed by Pavel Feldman.

        https://bugs.webkit.org/show_bug.cgi?id=21554

        Tests that the tooltip text for an image is its dimensions.

        * inspector/elements-img-tooltip-expected.txt: Added.
        * inspector/elements-img-tooltip.html: Added.

2009-11-21  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Add automatic test for Qt Plugins.
        https://bugs.webkit.org/show_bug.cgi?id=31203

        Add a test case for Qt plugins. In this case one
        RenderPart should be visible on screen and the other
        should be invisible. The internal QWidget should
        have the same state as the WebCore::Widget.

        Add Qt specific netscape-dom-access-expected.txt because
        that was using a native widget inside a RenderPart as well.

        * platform/gtk/Skipped:
        * platform/mac/Skipped:
        * platform/qt/plugins/netscape-dom-access-expected.txt: Added
        * platform/qt/plugins/qt-qwidget-plugin-expected.txt: Added
        * platform/win/Skipped:
        * plugins/qt-qwidget-plugin.html: Added.

2009-11-25  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Audio related layout tests are failing on the buildbot
        https://bugs.webkit.org/show_bug.cgi?id=27910

        * platform/qt/Skipped: fast/js/global-constructors.html added.

2009-11-25  Kenneth Russell  <kbr@google.com>

        Reviewed by Oliver Hunt.

        Off-by-one error in index validation for drawElements and drawArrays
        https://bugs.webkit.org/show_bug.cgi?id=31891

        Fixed computation of number of elements for bound array objects.

        Test: fast/canvas/webgl/index-validation.html

        * fast/canvas/webgl/index-validation-expected.txt: Added.
        * fast/canvas/webgl/index-validation.html: Added.
        * fast/canvas/webgl/script-tests/index-validation.js: Added.

2009-11-25  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Remove a bunch of now passing fast tests from skiplist.
        And add a crasher/crashed pair into skiplist.

        * platform/qt/Skipped:

2009-11-25  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Put tests into skiplist because of missing layoutTestController feature.

        * platform/qt/Skipped:
        - http/tests/cache/subresource-failover-to-network.html added.
        - fast/xmlhttprequest/xmlhttprequest-nonexistent-file.html added.

        - "3D_RENDERING and ACCELERATED_COMPOSITING" block moved to good place.

2009-11-25  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Simon Fraser.

        <rdar://problem/7409331> Windows: Support closed caption in <video> element

        * platform/win/Skipped:
            Enable the closed caption test.

2009-11-25  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        We do not have a strategy in place to mimick the output for load
        delegates fully yet. See https://bugs.webkit.org/show_bug.cgi?id=27905

        * platform/gtk/Skipped:

2009-11-22  Jakub Wieczorek  <faw217@gmail.com>

        Reviewed by Adam Barth.

        [Qt] Remove the Referer header when redirecting to a non-secure site
        https://bugs.webkit.org/show_bug.cgi?id=31785

        This makes Qt pass two tests introduced in r50226.

        * platform/qt/Skipped:

2009-11-24  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Simon Fraser.

        Skip 3d and compositing tests on all platforms but Mac
        https://bugs.webkit.org/show_bug.cgi?id=27314
        
        For Mac, tests are performed in webkitdirs.pm to determine
        whether these tests should be skipped.

        * platform/gtk/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:

2009-11-24  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Eric Seidel.

        Test for createShader param passing
        https://bugs.webkit.org/show_bug.cgi?id=31808

        This test will eventually contain more param passing tests as
        they are implemented.

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

2009-11-24  Darin Fisher  <darin@chromium.org>

        Reviewed by Adam Barth.

        [Chromium] Renderer hang when using www.expedia.com
        https://bugs.webkit.org/show_bug.cgi?id=31822

        This test verifies that a synchronous XMLHttpRequest, generated from a
        page that is the result of a form submission, loads properly when the
        user navigates back to the page.

        When navigating back to a page that resulted from a form submission,
        the page is loaded with the ReturnCacheDataDontLoad cache policy.  It
        is important that subresources (including XMLHttpRequest instances) do
        not inherit this cache policy.

        * http/tests/cache/resources/echo-no-store.cgi: Added.
        * http/tests/cache/resources/subresource-failover-to-network.cgi: Added.
        * http/tests/cache/subresource-failover-to-network-expected.txt: Added.
        * http/tests/cache/subresource-failover-to-network.html: Added.

2009-11-23  Kenneth Russell  <kbr@google.com>

        Reviewed by Oliver Hunt.

        Change get... calls to latest spec
        https://bugs.webkit.org/show_bug.cgi?id=30091

        Removed old versions of get calls on WebGLRenderingContext and
        added new ones per spec returning "any". New code simplifies
        GraphicsContext3D and fixes previously unimplemented routines.
        Added custom JS and V8 bindings. Added exhaustive test case
        exercising all new code paths. Updated preexisting test cases for
        new APIs. Fixed preexisting bugs in WebKit's and Chrome's WebGL
        implementations.

        Ran WebGL layout tests in WebKit (clean) and Chrome (couple of
        preexisting known failures) and manual WebGL tests in both
        browsers.
        
        Two of the tests fail on various hardware and were modified. See
        
            https://bugs.webkit.org/show_bug.cgi?id=31842
            https://bugs.webkit.org/show_bug.cgi?id=31843

        Test: fast/canvas/webgl/gl-object-get-calls.html

        * fast/canvas/webgl/gl-get-calls-expected.txt:
        * fast/canvas/webgl/gl-get-calls.html:
        * fast/canvas/webgl/gl-object-get-calls-expected.txt: Added.
        * fast/canvas/webgl/gl-object-get-calls.html: Added.
        * fast/canvas/webgl/incorrect-context-object-behaviour-expected.txt:
        * fast/canvas/webgl/null-object-behaviour-expected.txt:
        * fast/canvas/webgl/resources/boolUniformShader.vert: Added.
        * fast/canvas/webgl/resources/floatUniformShader.vert: Added.
        * fast/canvas/webgl/resources/intUniformShader.vert: Added.
        * fast/canvas/webgl/resources/matUniformShader.vert: Added.
        * fast/canvas/webgl/resources/noopUniformShader.frag: Added.
        * fast/canvas/webgl/resources/utils3d.js:
        (initWebGL):
        (loadShader):
        (Framerate.prototype.snapshot):
        * fast/canvas/webgl/resources/webgl-test.js:
        (loadProgram):
        (loadStandardVertexShader):
        (loadVertexShader):
        (loadStandardFragmentShader):
        (loadFragmentShader):
        * fast/canvas/webgl/script-tests/gl-object-get-calls.js: Added.
        * fast/canvas/webgl/script-tests/incorrect-context-object-behaviour.js:
        * fast/canvas/webgl/script-tests/null-object-behaviour.js:
        * fast/canvas/webgl/triangle.html:
        * fast/js/resources/js-test-pre.js:
        (shouldBeNonZero):
        (shouldBeNonNull):

2009-11-24  Dmitry Titov  <dimich@chromium.org>

        Reviewed by Eric Seidel.

        Convert fast/table/row-height-recalc2.html to be 'dumpAsText()'
        https://bugs.webkit.org/show_bug.cgi?id=31816

        * fast/table/row-height-recalc2-expected.txt: Added.
        * fast/table/row-height-recalc2.html:
        * platform/mac/fast/table/row-height-recalc2-expected.checksum: Removed.
        * platform/mac/fast/table/row-height-recalc2-expected.png: Removed.
        * platform/mac/fast/table/row-height-recalc2-expected.txt: Removed.
        * platform/qt/fast/table/row-height-recalc2-expected.checksum: Removed.
        * platform/qt/fast/table/row-height-recalc2-expected.png: Removed.
        * platform/qt/fast/table/row-height-recalc2-expected.txt: Removed.
        * platform/win/fast/table/row-height-recalc2-expected.checksum: Removed.
        * platform/win/fast/table/row-height-recalc2-expected.png: Removed.

2009-11-23  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Oliver Hunt.

        Tests for out of bounds conditions on drawElements and drawArrays
        https://bugs.webkit.org/show_bug.cgi?id=31239

        * fast/canvas/webgl/drawArraysOutOfBounds-expected.txt: Added.
        * fast/canvas/webgl/drawArraysOutOfBounds.html: Added.
        * fast/canvas/webgl/drawElementssOutOfBounds-expected.txt: Added.
        * fast/canvas/webgl/drawElementssOutOfBounds.html: Added.

2009-11-23  Erik Arvidsson  <arv@chromium.org>

        Reviewed by Eric Seidel.

        JSC bindings for HasIndexGetter generates incorrect code (affects
        MediaList and CSSStyleDeclaration).
        This cleans up the edge cases for indexing out of range for style and
        computed style objects to return an empty string according to the spec.
        MediaList now returns null when indexed out of range.
        https://bugs.webkit.org/show_bug.cgi?id=31683

        * fast/dom/CSSStyleDeclaration/css-computed-style-item-expected.txt: Added.
        * fast/dom/CSSStyleDeclaration/css-computed-style-item.html: Added.
        * fast/dom/CSSStyleDeclaration/css-style-item-expected.txt: Added.
        * fast/dom/CSSStyleDeclaration/css-style-item.html: Added.
        * fast/dom/CSSStyleDeclaration/script-tests/css-computed-style-item.js: Added.
        * fast/dom/CSSStyleDeclaration/script-tests/css-style-item.js: Added.
        * fast/dom/StyleSheet/css-medialist-item-expected.txt: Added.
        * fast/dom/StyleSheet/css-medialist-item.html: Added.
        * fast/dom/StyleSheet/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/backgrounds/repeat/script-tests/TEMPLATE.html.
        * fast/dom/StyleSheet/script-tests/css-medialist-item.js: Added.

2009-11-23  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed. Skip new test added in r51324.

        * platform/qt/Skipped: Added editing/selection/trransformed-selection-rects.html

2009-11-23  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        DocumentMarkers need to be educated about transforms
        https://bugs.webkit.org/show_bug.cgi?id=31751
        
        Find highlight is incorrect with transforms
        <rdar://problem/6358394>
        
        Add test to show the selection rect for selection in a transformed element.

        * editing/editing.js:
        * editing/selection/transformed-selection-rects.html: Added.
        * platform/mac/editing/selection/transformed-selection-rects-expected.checksum: Added.
        * platform/mac/editing/selection/transformed-selection-rects-expected.png: Added.
        * platform/mac/editing/selection/transformed-selection-rects-expected.txt: Added.

2009-11-23  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed. Skip new tests.

        * platform/qt/Skipped:

2009-11-23  Jakub Wieczorek  <faw217@gmail.com>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] DRT: dumpBackForwardList() does not work properly with non-file URLs.
        https://bugs.webkit.org/show_bug.cgi?id=31775

        LayoutTestController::dumpBackForwardList() should work with local URLs
        as well as with normal URLs (in http tests for instance).
        Currently it does not output the latter properly.

        Unskip a bunch of passing http/navigation tests.

        * platform/qt/Skipped:

2009-11-22  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Oliver Hunt.

        ARIA: support aria-flowto
        https://bugs.webkit.org/show_bug.cgi?id=31762

        * platform/mac/accessibility/aria-flowto-expected.txt: Added.
        * platform/mac/accessibility/aria-flowto.html: Added.

2009-11-22  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        Tests to the filterRes implementation for SVG Filters
        [https://bugs.webkit.org/show_bug.cgi?id=6021]

        big-sized-filter: tests if filter quality is scaled down on a too
            big SourceImage (SourceGraphic, SourceAlpha)
        big-sized-filter-2: tests if the filter quality is scaled down
            on a too big filter effect size.
        filterRes: Various tests of SVG Filters with different values for
            filterRes attributes. Checks
            * that kernel values (if present) are scaled with the filterRes
            * subRegion calculation is correct for effects with deeper
              dependencies.

        * platform/mac/svg/filters/big-sized-filter-2-expected.txt: Added.
        * platform/mac/svg/filters/big-sized-filter-expected.checksum: Added.
        * platform/mac/svg/filters/big-sized-filter-expected.png: Added.
        * platform/mac/svg/filters/big-sized-filter-expected.txt: Added.
        * platform/mac/svg/filters/filterRes-expected.checksum: Added.
        * platform/mac/svg/filters/filterRes-expected.png: Added.
        * platform/mac/svg/filters/filterRes-expected.txt: Added.
        * svg/filters/big-sized-filter-2.svg: Added.
        * svg/filters/big-sized-filter.svg: Added.
        * svg/filters/filterRes.svg: Added.

2009-11-22  Jakub Wieczorek  <faw217@gmail.com>

        Reviewed by Adam Barth.

        [Qt] DumpRenderTree should explicitly ignore any SSL certificate errors
        for localhost and 127.0.0.1.
        https://bugs.webkit.org/show_bug.cgi?id=31783

        Unskip the http/tests/ssl/verify-ssl-enabled.php test, which is passing now.

        * platform/qt/Skipped:

2009-11-22  Chris Evans  <cevans@chromium.org>

        Reviewed by Adam Barth.

        Disable access to file:/// directory listings
        https://bugs.webkit.org/show_bug.cgi?id=31329

        Updates the test to make sure it is disabling universal access for
        file:/// URLs (if the API is supported). This is required to do
        effective intra-file:/// access tests.
        Note that Safari only passes by virtual of supporting no directory
        listings at all.

        * fast/xmlhttprequest/resources/xmlhttprequest-nonexistent-file-real.html: Added.
        * fast/xmlhttprequest/xmlhttprequest-nonexistent-file-expected.txt:
        * fast/xmlhttprequest/xmlhttprequest-nonexistent-file.html:
        Disable universal access for file:/// URLs (if API available).
        Run the real test in an iframe without universal access.

2009-11-21  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        CSSKeyframesRule::findRule() and deleteRule() should accept 'from' and 'to' as well as percentages
        https://bugs.webkit.org/show_bug.cgi?id=31588
        
        Add tests for finding and deleting keyframes using 'from' and 'to'.

        * animations/keyframes-rule-expected.txt:
        * animations/keyframes-rule.html:

2009-11-20  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Beth Dakin.

        WAI-ARIA: add support for aria-owns
        https://bugs.webkit.org/show_bug.cgi?id=31702

        * platform/mac/accessibility/aria-owns-expected.txt: Added.
        * platform/mac/accessibility/aria-owns.html: Added.

2009-11-20  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Simon Fraser.

        <rdar://problem/7414396> Leopard & Tiger: Support closed caption in <video> element

        Remove closed captions test from skipped list.

        * platform/mac-leopard/Skipped:
        * platform/mac-tiger/Skipped:

2009-11-20  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Beth Dakin.

        WAI-ARIA: add support for 'math' role
        https://bugs.webkit.org/show_bug.cgi?id=31706

        * platform/mac/accessibility/aria-grouping-roles-expected.txt:
        * platform/mac/accessibility/aria-grouping-roles.html:

2009-11-20  Yael Aharon  <yael.aharon@nokia.com>

        Unreviewed fix.

        Fix file names in the skipped list, for files added in http://trac.webkit.org/changeset/51257.

        * platform/mac/Skipped:
        * platform/win/Skipped:

2009-11-20  Yael Aharon  <yael.aharon@nokia.com>

        Reviewed by Kenneth Rohde Christiansen.

        NPN_ReloadPlugins does not reload the page even if reloadPages is true.
        https://bugs.webkit.org/show_bug.cgi?id=30460

        Added tests for calling NPN_ReloadPlugins with reloadPages being true and false.

        * platform/mac/Skipped:
        * platform/win/Skipped:
        * plugins/reloadplugins-and-pages-expected.txt: Added.
        * plugins/reloadplugins-and-pages.html: Added.
        * plugins/reloadplugins-no-pages-expected.txt: Added.
        * plugins/reloadplugins-no-pages.html: Added.

2009-11-20  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25381
        Needs test: jQuery animation crashing Safari

        Adding a regression test for a bug that doesn't reproduce in ToT.

        * fast/dynamic/jQuery-animation-crash-expected.txt: Added.
        * fast/dynamic/jQuery-animation-crash.html: Added.

2009-11-20  Alexey Proskuryakov  <ap@apple.com>

        WebSocket tests still don't work on Windows, disabling for futher invesigation.

        * platform/win/Skipped:

2009-11-20  Alexey Proskuryakov  <ap@apple.com>

        Enabling WebSocket tests on Windows - let's see if they pass after the recent fixes.

        * platform/win/Skipped:

2009-11-20  Victor Wang  <victorw@chromium.org>

        Reviewed by Darin Adler.

        Add expected pixel result for layout test input-file-re-render

        https://bugs.webkit.org/show_bug.cgi?id=31696

        * platform/mac/fast/forms/input-file-re-render-expected.checksum: Added.
        * platform/mac/fast/forms/input-file-re-render-expected.png: Added.

2009-11-20  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Simon Fraser.

        <rdar://problem/7389945> QTKit based media engine should not claim to support fullscreen on Leopard

        Update test results.

        * platform/mac/media/audio-controls-rendering-expected.checksum:
        * platform/mac/media/audio-controls-rendering-expected.png:
        * platform/mac/media/audio-controls-rendering-expected.txt:

2009-11-20  Roland Steiner  <rolandsteiner@chromium.org>

        Reviewed by Darin Adler.

        Test checking that CSS 'text-indent' does not affect ruby rendering by default.
        (https://bugs.webkit.org/show_bug.cgi?id=31247)

        * fast/ruby/ruby-text-indent-expected.txt: Added.
        * fast/ruby/ruby-text-indent.html: Added.

2009-11-19  Beth Dakin  <bdakin@apple.com>

        Reviewed by Darin Adler.

        Tests for https://bugs.webkit.org/show_bug.cgi?id=31321 Make 
        -webkit-color-correction work with untagged images

        * fast/css/color-correction-on-background-image.html: Added.
        * fast/css/color-correction-untagged-images.html: Added.
        * fast/css/resources/purple-noprofile.png: Added.
        * platform/mac/fast/css/color-correction-on-background-image-expected.checksum: Added.
        * platform/mac/fast/css/color-correction-on-background-image-expected.png: Added.
        * platform/mac/fast/css/color-correction-on-background-image-expected.txt: Added.
        * platform/mac/fast/css/color-correction-untagged-images-expected.checksum: Added.
        * platform/mac/fast/css/color-correction-untagged-images-expected.png: Added.
        * platform/mac/fast/css/color-correction-untagged-images-expected.txt: Added.

2009-11-19  Michelangelo De Simone  <michelangelo@webkit.org>

        Fix for <https://bugs.webkit.org/show_bug.cgi?id=27959>
        Files missed when landing patch.

        * platform/qt/Skipped:
        * platform/win/Skipped:

2009-11-19  Alexey Proskuryakov  <ap@apple.com>

        Trying to enable WebSocket tests on Tiger again, as the bot seems to behave now.

        * platform/mac-tiger/Skipped:

2009-11-19  Rahul Kuchhal  <kuchhal@chromium.org>

        Reviewed by Darin Adler.

        Do not assert when a high number is used for roman numerals in lists.
        https://bugs.webkit.org/show_bug.cgi?id=31652

        * fast/lists/ol-start-roman.html: Added.
        * platform/mac/fast/lists/ol-start-roman-expected.txt: Added.

2009-11-19  Eric Z. Ayers  <zundel@google.com>

        Reviewed by Pavel Feldman.

        Updated timeline paint test to ignore width and height.  GTK+ testing
        uses a different top level window size than other platforms.

        https://bugs.webkit.org/show_bug.cgi?id=31402

        * inspector/timeline-paint-expected.txt:
        * inspector/timeline-test.js:
        * platform/win/Skipped:

2009-11-19  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        WAI-ARIA roles not supported on image map <area>
        https://bugs.webkit.org/show_bug.cgi?id=31525

        * accessibility/aria-used-on-image-maps-expected.txt: Added.
        * accessibility/aria-used-on-image-maps.html: Added.
        * platform/gtk/Skipped:
        * platform/win/Skipped:

2009-11-19  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Dan Bernstein.

        <rdar://problem/7035231>
        Support closed caption in <video> element

        * media/media-captions-expected.txt: Added.
        * media/media-captions.html: Added.
        * media/content/counting-captioned.mov: Added.

        * platform/gtk/Skipped:
        * platform/mac-leopard/Skipped:
        * platform/mac-tiger/Skipped:
        * platform/win/Skipped:
            Skipped on platforms that don't support closed captions yet.

2009-11-19  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Gustavo Noronha Silva.

        Web Inspector: Implement "show inspector" in WebKit GTK
        API and enable console tests.

        https://bugs.webkit.org/show_bug.cgi?id=31669

        * platform/gtk/Skipped:

2009-11-19  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Eric Seidel.

        Some tests in fast/css-generated-content can be dumpAsText test
        https://bugs.webkit.org/show_bug.cgi?id=31663

        * fast/css-generated-content/absolute-position-inside-inline-expected.txt: Added.
        * fast/css-generated-content/absolute-position-inside-inline.html:
        * fast/css-generated-content/hit-test-generated-content-expected.txt: Added.
        * fast/css-generated-content/hit-test-generated-content.html:
        * fast/css-generated-content/positioned-background-hit-test-crash-expected.txt: Added.
        * fast/css-generated-content/positioned-background-hit-test-crash.html:
        * fast/css-generated-content/spellingToolTip-assert-expected.txt: Added.
        * fast/css-generated-content/spellingToolTip-assert.html:
        * platform/mac/fast/css-generated-content/absolute-position-inside-inline-expected.checksum: Removed.
        * platform/mac/fast/css-generated-content/absolute-position-inside-inline-expected.png: Removed.
        * platform/mac/fast/css-generated-content/absolute-position-inside-inline-expected.txt: Removed.
        * platform/mac/fast/css-generated-content/hit-test-generated-content-expected.checksum: Removed.
        * platform/mac/fast/css-generated-content/hit-test-generated-content-expected.png: Removed.
        * platform/mac/fast/css-generated-content/hit-test-generated-content-expected.txt: Removed.
        * platform/mac/fast/css-generated-content/positioned-background-hit-test-crash-expected.checksum: Removed.
        * platform/mac/fast/css-generated-content/positioned-background-hit-test-crash-expected.png: Removed.
        * platform/mac/fast/css-generated-content/positioned-background-hit-test-crash-expected.txt: Removed.
        * platform/mac/fast/css-generated-content/spellingToolTip-assert-expected.checksum: Removed.
        * platform/mac/fast/css-generated-content/spellingToolTip-assert-expected.png: Removed.
        * platform/mac/fast/css-generated-content/spellingToolTip-assert-expected.txt: Removed.
        * platform/qt/fast/css-generated-content/absolute-position-inside-inline-expected.txt: Removed.
        * platform/qt/fast/css-generated-content/positioned-background-hit-test-crash-expected.txt: Removed.
        * platform/qt/fast/css-generated-content/spellingToolTip-assert-expected.txt: Removed.

2009-11-19  Kinuko Yasuda  <kinuko@google.com>

        Reviewed by Dan Bernstein.

        Update the test fast/overflow/004.html to make it match the test
        description and expected results.
        https://bugs.webkit.org/show_bug.cgi?id=31455

        * fast/overflow/004.html:
        * platform/mac/fast/overflow/004-expected.checksum:
        * platform/mac/fast/overflow/004-expected.png:
        * platform/mac/fast/overflow/004-expected.txt:

2009-11-18  Dan Bernstein  <mitz@apple.com>

        Reviewed by Simon Fraser.

        Test for <rdar://problem/7398987> Assertion failure in
        RenderLayer::updateClipRects when a plug-in’s enclosing layer is
        enclosed by a transformed layer

        * fast/layers/clip-rects-transformed-2-expected.txt: Added.
        * fast/layers/clip-rects-transformed-2.html: Added.
        * fast/layers/clip-rects-transformed-expected.txt: Added.
        * fast/layers/clip-rects-transformed.html: Added.

2009-11-18  Michelangelo De Simone  <micdesim@gmail.com>

        Reviewed by Darin Adler.

        Fix for <https://bugs.webkit.org/show_bug.cgi?id=27959>.
        Support for validationMessage attribute, as per HTML5 specs.

        * fast/dom/domListEnumeration-expected.txt: updated with new property
        * fast/dom/script-tests/domListEnumeration.js: ditto
        * fast/forms/script-tests/validationMessage.js: Added.
        * fast/forms/validationMessage-expected.txt: Added.
        * fast/forms/validationMessage.html: Added.
        * platform/gtk/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:

2009-11-19  Roland Steiner  <rolandsteiner@chromium.org>

        Reviewed by Darin Adler.

        Bug 31574 -  Crashing bug when removing <ruby> element
        (https://bugs.webkit.org/show_bug.cgi?id=31574)
        
        Layout test to verify it no longer crashes when the <ruby> element
        is being removed.

        * fast/ruby/ruby-remove-expected.txt: Added.
        * fast/ruby/ruby-remove.html: Added.

2009-11-18  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        Tests for ValidityState.typeMismatch for the following types of INPUT element:
            date, datetime, datetime-local, month, time and week
        https://bugs.webkit.org/show_bug.cgi?id=31342

        * fast/forms/ValidityState-typeMismatch-date-expected.txt: Added.
        * fast/forms/ValidityState-typeMismatch-date.html: Added.
        * fast/forms/ValidityState-typeMismatch-datetime-expected.txt: Added.
        * fast/forms/ValidityState-typeMismatch-datetime.html: Added.
        * fast/forms/ValidityState-typeMismatch-datetimelocal-expected.txt: Added.
        * fast/forms/ValidityState-typeMismatch-datetimelocal.html: Added.
        * fast/forms/ValidityState-typeMismatch-month-expected.txt: Added.
        * fast/forms/ValidityState-typeMismatch-month.html: Added.
        * fast/forms/ValidityState-typeMismatch-time-expected.txt: Added.
        * fast/forms/ValidityState-typeMismatch-time.html: Added.
        * fast/forms/ValidityState-typeMismatch-week-expected.txt: Added.
        * fast/forms/ValidityState-typeMismatch-week.html: Added.
        * fast/forms/script-tests/ValidityState-typeMismatch-date.js: Added.
        * fast/forms/script-tests/ValidityState-typeMismatch-datetime.js: Added.
        * fast/forms/script-tests/ValidityState-typeMismatch-datetimelocal.js: Added.
        * fast/forms/script-tests/ValidityState-typeMismatch-month.js: Added.
        * fast/forms/script-tests/ValidityState-typeMismatch-time.js: Added.
        * fast/forms/script-tests/ValidityState-typeMismatch-week.js: Added.

2009-11-18  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        Add tests for ValidityState.stepMismatch.
        https://bugs.webkit.org/show_bug.cgi?id=31331

        * fast/forms/ValidityState-stepMismatch-number-expected.txt: Added.
        * fast/forms/ValidityState-stepMismatch-number.html: Added.
        * fast/forms/ValidityState-stepMismatch-range-expected.txt: Added.
        * fast/forms/ValidityState-stepMismatch-range.html: Added.
        * fast/forms/ValidityState-stepMismatch-unsupported-expected.txt: Added.
        * fast/forms/ValidityState-stepMismatch-unsupported.html: Added.
        * fast/forms/input-step-expected.txt: Added.
        * fast/forms/input-step.html: Added.
        * fast/forms/script-tests/ValidityState-stepMismatch-number.js: Added.
        * fast/forms/script-tests/ValidityState-stepMismatch-range.js: Added.
        * fast/forms/script-tests/ValidityState-stepMismatch-unsupported.js: Added.
        * fast/forms/script-tests/input-step.js: Added.

2009-11-18  Shu Chang  <Chang.Shu@nokia.com>

        Reviewed by Eric Seidel.

        [Qt] Update expected result after Qt4.6 upgrade.
        https://bugs.webkit.org/show_bug.cgi?id=31560

        Test: LayoutTests/editing/deleting/5408255.html

        * platform/qt/editing/deleting/5408255-expected.txt:

2009-11-18  Daniel Bates  <dbates@webkit.org>

        Reviewed by Dave Hyatt.

        https://bugs.webkit.org/show_bug.cgi?id=24971
        And
        <rdar://problem/7138265>

        Tests that setting the height of a table row programmatically (via JavaScript)
        recalculates the height of the rows in the table.

        * fast/table/row-height-recalc2.html: Added.
        * platform/mac/fast/table/row-height-recalc2-expected.checksum: Added.
        * platform/mac/fast/table/row-height-recalc2-expected.png: Added.
        * platform/mac/fast/table/row-height-recalc2-expected.txt: Added.
        * platform/qt/fast/table/row-height-recalc2-expected.checksum: Added.
        * platform/qt/fast/table/row-height-recalc2-expected.png: Added.
        * platform/qt/fast/table/row-height-recalc2-expected.txt: Added.
        * platform/win/fast/table/row-height-recalc2-expected.checksum: Added.
        * platform/win/fast/table/row-height-recalc2-expected.png: Added.
        * platform/win/fast/table/row-height-recalc2-expected.txt: Added.

2009-11-18  Julie Parent  <jparent@chromium.org>

        Reviewed by Eric Seidel.

        Reduce flakiness in zero-duration-with-non-zero-delay-end.html by
        increasing a timeout.
     
        https://bugs.webkit.org/show_bug.cgi?id=31646

        * transitions/zero-duration-with-non-zero-delay-end.html:

2009-11-18  Oliver Hunt  <oliver@apple.com>

        Update expected results of fixed test.

        * fast/profiler/throw-exception-from-eval-expected.txt:

2009-11-18  Oliver Hunt  <oliver@apple.com>

        Reviewed by Alexey Proskuryakov.

        Interpreter may do an out of range access when throwing an exception in the profiler.
        https://bugs.webkit.org/show_bug.cgi?id=31635

        Correct this test so that it is actually testing what it is intended to.

        * fast/profiler/throw-exception-from-eval.html:

2009-11-18  Alexey Proskuryakov  <ap@apple.com>

        Disabling WebSocket tests on Tiger back, they still hang.

        * platform/mac-tiger/Skipped:

2009-11-17  Julie Parent  <jparent@chromium.org>

        Reviewed by Dmitry Titov.

        Eliminate flakiness in file-URL-with-port-number by removing a setTimeout.
        The timeout caused the test to fail about 2% of the time on the Chromium builders.
        The timeout exists to catch cases where the iframe does not load, but the test
        framework already will handle this (albeit with a longer timeout).

        * fast/loader/file-URL-with-port-number.html:

2009-11-18  Ben Murdoch  <benm@google.com>

        Reviewed by Darin Adler.

        HTMLAnchorElement is inconsistent with its internal handling of the value returned for the href attribute.
        https://bugs.webkit.org/show_bug.cgi?id=31593

        * fast/dom/HTMLAnchorElement/script-tests/set-href-attribute-whitespace.js: Added.
        * fast/dom/HTMLAnchorElement/set-href-attribute-whitespace-expected.txt: Added.
        * fast/dom/HTMLAnchorElement/set-href-attribute-whitespace.html: Added.

2009-11-18  Alexey Proskuryakov  <ap@apple.com>

        Trying to enable WebSocket tests on Tiger again, now that bug 31603 is fixed.

        * platform/mac-tiger/Skipped:

2009-11-18  Martin Robinson  <martin.james.robinson@gmail.com>

        Reviewed by Gustavo Noronha.

        [GTK] Tab key does not cycle through elements by default
        https://bugs.webkit.org/show_bug.cgi?id=31505

        Improve fast/events/keypress-insert-tab.html to test that the
        TabKeyCyclesThroughElements setting is true by default and
        toggles correctly.

        * fast/events/keypress-insert-tab.html:

2009-11-18  Benjamin Poulain  <benjamin.poulain@nokia.com>

        Reviewed by Simon Hausmann.

        [Qt] WebKit crashes when loading certain SVG images

        Added a test for a crash of QtWebkit when loading SVG images.

        https://bugs.webkit.org/show_bug.cgi?id=29443

        * svg/text/resources/text-font-invalid.svg: Added.
        * svg/text/text-font-invalid-expected.txt: Added.
        * svg/text/text-font-invalid.html: Added.

2009-11-17  Hayato Ito  <hayato@google.com>

        Reviewed by Darin Adler.

        Avoid infinite mutual recursion when deeply nested tags are loaded
        https://bugs.webkit.org/show_bug.cgi?id=30651

        * fast/parser/block-nesting-cap-table-expected.txt: Added.
        * fast/parser/block-nesting-cap-table.html: Added.
        * fast/parser/script-tests/block-nesting-cap-table.js: Added.

2009-11-17  Johnny Ding  <jnd@chromium.org>

        Reviewed by Darin Adler.

        In all valid script tags for JavaScript, the event handler in <script...for> should not get executed.
        Change the original test to pure js test, and test the situation about script tags which have text or language attribute.
        https://bugs.webkit.org/show_bug.cgi?id=31567

        * fast/dom/HTMLScriptElement/script-for-attribute-unexpected-execution-expected.txt:
        * fast/dom/HTMLScriptElement/script-for-attribute-unexpected-execution.html:
        * fast/dom/HTMLScriptElement/script-tests: Added.
        * fast/dom/HTMLScriptElement/script-tests/script-for-attribute-unexpected-execution.js: Added.
        (ScriptForAttributeExecute):

2009-11-17  Mark Rowe  <mrowe@apple.com>

        Reviewed by Alexey Proskuryakov.

        <http://webkit.org/b/31602> Failing to start the WebSocket server shouldn’t terminate entire test run

        * websocket/resources/server-failed-to-start.html: Error page that will be loaded in place of websocket
        tests when the server fails to start.

2009-11-17  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Pavel Feldman.

        Skip inspector tests that are flaky on Windows Release - this is being tracked by:
        https://bugs.webkit.org/show_bug.cgi?id=31596.

        * platform/win/Skipped:

2009-11-16  Julie Parent  <jparent@chromium.org>

        Reviewed by Darin Adler.

        Eliminate flakiness in char-encoding tests by removing setTimeout,
        that was working around an old issue.
        https://bugs.webkit.org/show_bug.cgi?id=31571

        * fast/encoding/char-encoding-mac.html:
        * fast/encoding/char-encoding.html:
        * fast/encoding/resources/char-encoding-utils.js:

2009-11-17  Csaba Osztrogonác  <ossy@webkit.org>

        Not reviewed, follow up to r51072: rename skipped entries
        * platform/qt/Skipped:

2009-11-17  Csaba Osztrogonác  <ossy@webkit.org>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Crashing tests after updating to Qt-4.6.0
        https://bugs.webkit.org/show_bug.cgi?id=31591

        * platform/qt/Skipped: Put tests into skiplist temporarily.

2009-11-17  Pavel Feldman  <pfeldman@chromium.org>

        Not reviewed, tests fix. Follow up to r51072: move
        platform-specific results for fast/inspector into
        fast/inspector-support.

        * platform/mac/fast/inspector-support/matchedrules-expected.checksum: Renamed from LayoutTests/platform/mac/fast/inspector/matchedrules-expected.checksum.
        * platform/mac/fast/inspector-support/matchedrules-expected.png: Renamed from LayoutTests/platform/mac/fast/inspector/matchedrules-expected.png.
        * platform/mac/fast/inspector-support/matchedrules-expected.txt: Renamed from LayoutTests/platform/mac/fast/inspector/matchedrules-expected.txt.
        * platform/mac/fast/inspector-support/style-expected.txt: Renamed from LayoutTests/platform/mac/fast/inspector/style-expected.txt.
        * platform/qt/fast/inspector-support/matchedrules-expected.txt: Renamed from LayoutTests/platform/qt/fast/inspector/matchedrules-expected.txt.
        * platform/qt/fast/inspector-support/style-expected.txt: Renamed from LayoutTests/platform/qt/fast/inspector/style-expected.txt.

2009-11-17  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Actually skip the inspector console tests while the problem
        discussed in https://bugs.webkit.org/show_bug.cgi?id=31472 is
        fixed.

        * platform/gtk/Skipped:

2009-11-17  Pavel Feldman  <pfeldman@chromium.org>

        Not reviewed, build fix. Follow up to r51072: rename skipped entries
        for the tests that were moved.
        
        * platform/gtk/Skipped:
        * platform/qt/Skipped:

2009-11-17  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Web Inspector: Make DRT show web inspector for tests in inspector/ folder.
        - Updated DRT to show/close inspector for all tests under /inspector
        - Introduced LayoutTestController::setTimelineProfilingEnabled and
          WebInspector::setTimelineProfilingEnabled beside setJavaScriptProfilingEnabled
        - Removed reload on each inspector test
        - Renamed fast/inspector to fast/inspector-support in order not to trigger
        inspector for those.
        - Reimplemented timeline tests in order to get rid of reload there.
        - Moved tests that don't require harness into the fast group.

        https://bugs.webkit.org/show_bug.cgi?id=31472

        * fast/inspector-support/cssURLQuotes-expected.txt: Renamed from LayoutTests/fast/inspector/cssURLQuotes-expected.txt.
        * fast/inspector-support/cssURLQuotes.html: Renamed from LayoutTests/fast/inspector/cssURLQuotes.html.
        * fast/inspector-support/matchedrules.html: Renamed from LayoutTests/fast/inspector/matchedrules.html.
        * fast/inspector-support/style.html: Renamed from LayoutTests/fast/inspector/style.html.
        * fast/inspector-support/uncaught-dom1-exception-expected.txt: Renamed from LayoutTests/inspector/uncaught-dom1-exception-expected.txt.
        * fast/inspector-support/uncaught-dom1-exception.html: Renamed from LayoutTests/inspector/uncaught-dom1-exception.html.
        * fast/inspector-support/uncaught-dom3-exception-expected.txt: Renamed from LayoutTests/inspector/uncaught-dom3-exception-expected.txt.
        * fast/inspector-support/uncaught-dom3-exception.html: Renamed from LayoutTests/inspector/uncaught-dom3-exception.html.
        * fast/inspector-support/uncaught-dom8-exception-expected.txt: Renamed from LayoutTests/inspector/uncaught-dom8-exception-expected.txt.
        * fast/inspector-support/uncaught-dom8-exception.html: Renamed from LayoutTests/inspector/uncaught-dom8-exception.html.
        * inspector/inspector-test.js:
        (onload):
        (evaluateInWebInspector):
        (notifyDone):
        * inspector/resources/timeline-iframe-data.html: Added.
        * inspector/timeline-layout-expected.txt:
        * inspector/timeline-layout.html:
        * inspector/timeline-mark-timeline.html:
        * inspector/timeline-paint.html:
        * inspector/timeline-parse-html-expected.txt:
        * inspector/timeline-parse-html.html:
        * inspector/timeline-recalculate-styles-expected.txt:
        * inspector/timeline-recalculate-styles.html:
        * inspector/timeline-script-tag-1-expected.txt:
        * inspector/timeline-script-tag-1.html:
        * inspector/timeline-script-tag-2-expected.txt:
        * inspector/timeline-script-tag-2.html:
        * inspector/timeline-script-tag-2.js:
        * inspector/timeline-test.js:
        (printTimelineRecords):
        ():
        (dumpTimelineRecords):
        (printProps):
        (frontend_getTimelineResults):

2009-11-17  Yuta Kitamura  <yutak@chromium.org>

        Reviewed by Eric Seidel.

        Fix http tests so that they do not submit a GET form to about:blank.
        
        Original tests expected that submitting an empty form to <about:blank> navigates
        the browser to <about:blank?>, not <about:blank>. However, some other browsers
        do not act like Safari, and in fact the layout test runner of Chromium was
        failing to run these tests.
        
        Prior to this patch, a test that only checks this behavior was added, so now
        we can remove the dependency on it from these tests.

        Some HTTP tests submit a GET form to about:blank
        https://bugs.webkit.org/show_bug.cgi?id=30423

        * http/tests/navigation/onload-navigation-iframe-2-expected.txt:
        * http/tests/navigation/onload-navigation-iframe-2.html:
        * http/tests/navigation/onload-navigation-iframe-expected.txt:
        * http/tests/navigation/onload-navigation-iframe-timeout-expected.txt:
        * http/tests/navigation/onload-navigation-iframe-timeout.html:
        * http/tests/navigation/onload-navigation-iframe.html:
        * http/tests/navigation/resources/blank.txt: Added.

2009-11-17  Yuta Kitamura  <yutak@chromium.org>

        Reviewed by Darin Adler.

        Add a test to check the behavior of submitting a GET form to <about:blank>.
        
        Currently Safari redirects the browser to <about:blank?>, while some other
        browsers do not (including Firefox and Chromium). The objective of this test is
        to express the current behavior of Safari and to become ready to remove
        unintentional dependency on it from several tests.

        Some HTTP tests submit a GET form to about:blank
        https://bugs.webkit.org/show_bug.cgi?id=30423

        * fast/forms/get-forms-to-about-blank-expected.txt: Added.
        * fast/forms/get-forms-to-about-blank.html: Added.

2009-11-16  Alexey Proskuryakov  <ap@apple.com>

        Disabling WebSocket tests on Tiger and Windows again, as they still time out.

        * platform/mac-tiger/Skipped:
        * platform/win/Skipped:

2009-11-16  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Beth Dakin.

        AX: aria-labelledby duplicates some of its WAI-ARIA label
        https://bugs.webkit.org/show_bug.cgi?id=31565

        * accessibility/aria-labelledby-overrides-label-expected.txt: Added.
        * accessibility/aria-labelledby-overrides-label.html: Added.
        * platform/gtk/Skipped:
        * platform/win/Skipped:

2009-11-16  Kenneth Russell  <kbr@google.com>

        Reviewed by Oliver Hunt.

        Update API of WebGLArray and friends
        https://bugs.webkit.org/show_bug.cgi?id=31175

        * fast/canvas/webgl/array-unit-tests-expected.txt:
        * fast/canvas/webgl/array-unit-tests.html:

2009-11-16  Alexey Proskuryakov  <ap@apple.com>

        Re-enabling WebSocket tests on Tiger and Windows, now that SSL is disabled.

        * platform/mac-tiger/Skipped:
        * platform/win/Skipped:

2009-11-14  Antonio Gomes  <tonikitoo@webkit.org>

        Reviewed by Antti Koivisto.

        [Qt] Broken back/forward after using ErrorPageExtension to set error page
        https://bugs.webkit.org/show_bug.cgi?id=30573

        Skipped fast/history/back-forward-reset-after-error-handling.html
        in mac, gtk and win DRT, because their DRT do not support yet
        error pages handling.

        * fast/history/back-forward-reset-after-error-handling.html:
        * platform/gtk/Skipped:
        * platform/mac/Skipped:
        * platform/win/Skipped:

2009-11-16  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Rubberstamped by Simon Hausmann.

        Added new Qt expected results for animation tests.

        * platform/qt/animations/change-transform-in-end-event-expected.txt: Added.
        * platform/qt/animations/state-at-end-event-expected.txt: Added.
        * platform/qt/animations/state-at-end-event-transform-expected.txt: Added.

2009-11-15  Chris Fleizach  <cfleizach@apple.com>

        Fixing broken layout test.

        Need to implement ARIA role="directory"
        https://bugs.webkit.org/show_bug.cgi?id=31516

        Lists are not supported on Leopard or Tiger, so the test for this
        bug needs to be skipped.

        * platform/mac-leopard/Skipped:
        * platform/mac-tiger/Skipped:

2009-11-14  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        Need to implement ARIA role="directory"
        https://bugs.webkit.org/show_bug.cgi?id=31516

        * platform/mac/accessibility/aria-directory-expected.txt: Added.
        * platform/mac/accessibility/aria-directory.html: Added.

2009-11-14  Adele Peterson  <adele@apple.com>

        Reviewed by Dan Bernstein.

        Test for <rdar://problem/6946165> Would like to be able to specify the number of visible lines when using -webkit-line-clamp

        * fast/overflow/line-clamp.html: Added.
        * platform/mac/fast/overflow/line-clamp-expected.checksum: Added.
        * platform/mac/fast/overflow/line-clamp-expected.png: Added.
        * platform/mac/fast/overflow/line-clamp-expected.txt: Added.

2009-11-14  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        Add tests for reading/writing .type property of HTMLInputElement.
        https://bugs.webkit.org/show_bug.cgi?id=29004

        * fast/forms/input-type-change3-expected.txt: Added.
        * fast/forms/input-type-change3.html: Added.
        * fast/forms/script-tests/input-type-change3.js: Added.

2009-11-14  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Skip new test that needs new DRT infrastructure, with bug filled.

        * platform/gtk/Skipped:

2009-11-13  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        WAI-ARIA: checkbox does not determine its label from text content
        https://bugs.webkit.org/show_bug.cgi?id=31456

        * accessibility/aria-checkbox-text.html: Added.
        * platform/gtk/Skipped:
        * platform/mac/accessibility/aria-checkbox-text-expected.txt: Added.
        * platform/win/Skipped:

2009-11-13  Alexey Proskuryakov  <ap@apple.com>

        Disable websocket tests on Tiger, as they time out.

        Filed <https://bugs.webkit.org/show_bug.cgi?id=31501> to investigate this issue.

        * platform/mac-tiger/Skipped:

2009-11-12  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Dmitry Titov.

        Now that we're tracking key size in the quota, we can't fit as much in.
        https://bugs.webkit.org/show_bug.cgi?id=31451

        * storage/domstorage/quota-expected.txt:
        * storage/domstorage/script-tests/quota.js:
        (testQuota):

2009-11-13  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Darin Adler.

        WebCore::externalRepresentation should update layout before getting render object
        https://bugs.webkit.org/show_bug.cgi?id=31459

        Before this change, the render tree output for this test was wrong.
        Note that #FF0000 (red) becomes #008000 (green) now.

        * platform/mac/svg/custom/gradient-stop-style-change-expected.txt:

2009-11-04  Adam Roben  <aroben@apple.com>

        Test that delegates can modify global objects in isolated worlds

        Fixes <http://webkit.org/b/31124> Tell the WebFrameLoadDelegate when
        window objects in isolated worlds are cleared

        Reviewed by Dave Hyatt.

        * http/tests/security/isolatedWorld/didClearWindowObject-expected.txt: Added.
        * http/tests/security/isolatedWorld/didClearWindowObject.html: Added.
        Tests that the global object in the normal world does not have a
        __worldID property, and that the global object in isolated worlds has
        a __worldID property whose value is equal to the world's ID.

2009-11-13  Dumitru Daniliuc  <dumi@chromium.org>

        Reviewed by Eric Seidel.

        Remove the unnecessary call to dumpDatabaseCallbacks().

        https://bugs.webkit.org/show_bug.cgi?id=31495

        * storage/hash-change-with-xhr.html:

2009-11-13  Hironori Bono  <hbono@chromium.org>

        Reviewed by Oliver Hunt.

        Implement composition events introduced in DOM Level 3.
        This change adds a new IDL which defines the composition events, adds a class which
        implements the composition events, and sends the composition events according to
        the specification.
        https://bugs.webkit.org/show_bug.cgi?id=26310

        * fast/events/ime-composition-events-001-expected.txt: Added.
        * fast/events/ime-composition-events-001.html: Added.
        * platform/gtk/Skipped: Skip this test because TextInputController is not implemented.
        * platform/qt/Skipped: ditto.
        * platform/win/Skipped: ditto.

2009-11-13  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Reviewed by Simon Hausmann.

        Add a file for suppressing invalid valgrind errors (Qt / Linux only)

        * platform/qt/SuppressedValgrindErrors: Added.

2009-11-13  Alexey Proskuryakov  <ap@apple.com>

        Disable websocket tests on Windows, as the server cannot start on buildbot.

        Filed <https://bugs.webkit.org/show_bug.cgi?id=31479> to investigate this issue.

        * platform/win/Skipped:

2009-11-12  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=31441
        Implement SocketStreamCFNet

        * platform/mac/Skipped:
        * platform/win/Skipped:
        Enables tests in websocket directory.

2009-11-13  Dmitry Titov  <dimich@chromium.org>

        Reviewed by Darin Adler.

        Fix worker-timeout.html layout test that fails in Chromium harness.
        https://bugs.webkit.org/show_bug.cgi?id=31452

        * fast/workers/worker-timeout.html:
        Stop logging timer messages at the same time as calling NotifyDone() because
        in test harness Chromium uses for workers it does not capture the output immediately.

2009-11-13  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Adam Barth.

        Chromium: [REGRESSION] Crash while stopping on a breakpoint.
        Rolling back r50890.

        https://bugs.webkit.org/show_bug.cgi?id=31467

        * http/tests/security/calling-versus-current-expected.txt: Removed.
        * http/tests/security/calling-versus-current.html: Removed.

2009-11-13  Dirk Schulze  <krit@webkit.org>

        Reviewed by Gustavo Noronha.

        Skip fast/canvas/canvas-shadow.html we need to enable filters
        on cairo to pass this test.

        * platform/gtk/Skipped:

2009-11-13  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Skip one more new test.

        * platform/gtk/Skipped:

2009-11-12  Anantanarayanan G Iyengar  <ananta@chromium.org>

        Reviewed by Adam Barth.

        The document-html and window-html tests don't use a setTimeout to notify that the
        test is completed. The layout test plugin now issues the notifyDone call via
        javascript.
        
        https://bugs.webkit.org/show_bug.cgi?id=31067

        * plugins/document-open.html:
        * plugins/window-open.html:

2009-11-12  Kinuko Yasuda  <kinuko@google.com>

        Reviewed by Adam Barth.

        Makes the output of fast/events/mouse-click-events.html independent
        of the window size.
        https://bugs.webkit.org/show_bug.cgi?id=31405

        * fast/events/mouse-click-events-expected.txt:
        * fast/events/script-tests/mouse-click-events.js:

2009-11-12  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        Transformed reflected elements are clipped inside element with opacity
        https://bugs.webkit.org/show_bug.cgi?id=30957
        
        Testcase for reflected and transformed elements inside an opacity layer.

        * fast/reflections/opacity-reflection-transform.html: Added.
        * platform/mac/fast/reflections/opacity-reflection-transform-expected.checksum: Added.
        * platform/mac/fast/reflections/opacity-reflection-transform-expected.png: Added.
        * platform/mac/fast/reflections/opacity-reflection-transform-expected.txt: Added.

2009-11-12  Joanmarie Diggs  <joanmarie.diggs@gmail.com>

        Reviewed by Gustavo Noronha Silva.

        https://bugs.webkit.org/show_bug.cgi?id=30997
        [Gtk] Implemment AtkDocument

        Added testing support for AtkDocument implementation.

        * accessibility/document-attributes.html: Added.
        * accessibility/document-attributes-expected.txt: Added.
        * platform/mac/Skipped:
        * platform/win/Skipped:

2009-11-11  Dirk Schulze  <krit@webkit.org>

        Reviewed by Simon Fraser.

        Some tests for canvas shadow.

        * fast/canvas/canvas-shadow-expected.txt: Added.
        * fast/canvas/canvas-shadow.html: Added.
        * fast/canvas/script-tests/canvas-shadow.js: Added.

2009-11-12  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Steve Falkenburg.

        Add failing tests to Skipped list.

        * platform/win/Skipped:

2009-11-12  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Skipping tests that fail intermitently.

        * platform/gtk/Skipped:

2009-11-12  Sam Weinig  <sam@webkit.org>

        Reviewed by Oliver Hunt.

        Test for <rdar://problem/7267951>
        Canvas methods should reject uses of NaN and Infinity.

        * fast/canvas/canvas-with-illegal-args-expected.txt: Added.
        * fast/canvas/canvas-with-illegal-args.html: Added.
        * fast/canvas/script-tests/canvas-with-illegal-args.js: Added.

2009-11-12  Mark Rowe  <mrowe@apple.com>

        Skip an accessibility test that covers functionality not available on Tiger or Leopard.

        * platform/mac-leopard/Skipped:
        * platform/mac-tiger/Skipped:

2009-11-12  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Skipping one more new test, and a number of other tests, with bugs
        filled.

        * platform/gtk/Skipped:

2009-11-12  Mark Rowe  <mrowe@apple.com>

        Fix results for fast/dom/Window/window-properties.html after r50893.

        * fast/dom/Window/window-properties-expected.txt:

2009-11-12  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Anders Carlsson.

        Move a misplaced accessibility test from platform/mac-snowleopard/accessibility to accessibility,
        and the results from platform/mac-snowleopard/accessibility to platform/mac/accessibility.

        * accessibility/aria-list-and-listitem.html: Renamed from LayoutTests/platform/mac-snowleopard/accessibility/aria-list-and-listitem.html.
        * platform/mac/accessibility/aria-list-and-listitem-expected.txt: Renamed from LayoutTests/platform/mac-snowleopard/accessibility/aria-list-and-listitem-expected.txt.

2009-11-12  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Brady Eidson.

        Land updated results for file-url-mimetypes-2.html and file-url-mimetypes-3.html.

        * platform/mac-snowleopard/platform/mac/fast/loader/file-url-mimetypes-2-expected.txt: Copied from LayoutTests/platform/mac/fast/loader/file-url-mimetypes-2-expected.txt.
        * platform/mac-snowleopard/platform/mac/fast/loader/file-url-mimetypes-3-expected.txt: Copied from LayoutTests/platform/mac/fast/loader/file-url-mimetypes-3-expected.txt.
        * platform/mac/fast/loader/file-url-mimetypes-2-expected.txt:
        * platform/mac/fast/loader/file-url-mimetypes-3-expected.txt:

2009-11-12  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Unreviewed. Skipped new tests, a test that keeps failing despite
        not failing locally, and a new DnD test.

        * platform/gtk/Skipped:

2009-11-12  Eric Carlson  <eric.carlson@apple.com>

        Unreviewed, build fix.

        Skipped tests need path relative to LayoutTests folder, not just
        test name.

        * platform/gtk/Skipped:
        * platform/mac-leopard/Skipped:
        * platform/mac-tiger/Skipped:
        * platform/win/Skipped:

2009-11-12  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Dan Bernstein.

        <rdar://problem/7388969> Add DOM API for fullscreen video
        
        Tests for fullscreen <video> DOM API.

        * media/media-fullscreen-inline-expected.txt: Added.
        * media/media-fullscreen-inline.html: Added.
        * media/media-fullscreen-not-in-document-expected.txt: Added.
        * media/media-fullscreen-not-in-document.html: Added.
        * media/media-fullscreen.js: Added.

        * platform/gtk/Skipped:
        * platform/mac-leopard/Skipped:
        * platform/mac-tiger/Skipped:
        * platform/win/Skipped:
            Skipped on platforms that don't support fullscreen yet.

2009-11-12  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by David Levin.

        https://bugs.webkit.org/show_bug.cgi?id=31426
        Some WebSocket tests don't properly listen to close event

        * websocket/tests/script-tests/handshake-error.js:
        * websocket/tests/script-tests/simple.js:
        Made the tests clear second-chance timer on finish, avoiding confusing output when running
        them in Safari.

        * websocket/tests/script-tests/frame-length-longer-than-buffer.js:
        * websocket/tests/script-tests/frame-length-skip.js:
        * websocket/tests/frame-length-longer-than-buffer-expected.txt:
        * websocket/tests/frame-length-skip-expected.txt:
        These tests now finish properly.

        * websocket/tests/handshake-error-expected.txt:
        * websocket/tests/simple-expected.txt:
        I'm getting an extra empty line for these tests, which is surprising. But since I didn't
        change anything, I assume that it should be there.

2009-11-12  Adam Barth  <abarth@webkit.org>

        Reviewed by Dimitri Glazkov.

        [Chromium] Sify compose button alerts error
        https://bugs.webkit.org/show_bug.cgi?id=31394

        Test that we're using the calling security context in a simple case.

        * http/tests/security/calling-versus-current-expected.txt: Added.
        * http/tests/security/calling-versus-current.html: Added.

2009-11-12  Daniel Bates  <dbates@webkit.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=30291

        Rebased results for existing test case fast/events/drag-and-drop.html
        from bug #24731.

        Now, we can run the part of the test when effectAllowed == "uninitialized". 

        * fast/events/drag-and-drop-expected.txt: Rebased results.
        * fast/events/drag-and-drop.html: Removed notice about this bug (#30291).

2009-11-12  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        ARIA: add alert type roles
        https://bugs.webkit.org/show_bug.cgi?id=31392

        * platform/mac/accessibility/aria-alerts-expected.txt: Added.
        * platform/mac/accessibility/aria-alerts.html: Added.

2009-11-12  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Rubber-stamped by Tor Arne Vestbø.

        [Qt] Update outdated metrics in layout tests after change to Qt 4.6 on the buildbot.

        * platform/qt/css1/basic/class_as_selector-expected.txt:
        * platform/qt/css1/basic/comments-expected.txt:
        * platform/qt/css1/basic/containment-expected.txt:
        * platform/qt/css1/basic/contextual_selectors-expected.txt:
        * platform/qt/css1/basic/grouping-expected.txt:
        * platform/qt/css1/basic/id_as_selector-expected.txt:
        * platform/qt/css1/basic/inheritance-expected.txt:
        * platform/qt/css1/box_properties/acid_test-expected.txt:
        * platform/qt/css1/box_properties/border-expected.txt:
        * platform/qt/css1/box_properties/border_bottom-expected.txt:
        * platform/qt/css1/box_properties/border_bottom_inline-expected.txt:
        * platform/qt/css1/box_properties/border_bottom_width-expected.txt:
        * platform/qt/css1/box_properties/border_bottom_width_inline-expected.txt:
        * platform/qt/css1/box_properties/border_color-expected.txt:
        * platform/qt/css1/box_properties/border_color_inline-expected.txt:
        * platform/qt/css1/box_properties/border_inline-expected.txt:
        * platform/qt/css1/box_properties/border_left-expected.txt:
        * platform/qt/css1/box_properties/border_left_inline-expected.txt:
        * platform/qt/css1/box_properties/border_left_width-expected.txt:
        * platform/qt/css1/box_properties/border_left_width_inline-expected.txt:
        * platform/qt/css1/box_properties/border_right-expected.txt:
        * platform/qt/css1/box_properties/border_right_inline-expected.txt:
        * platform/qt/css1/box_properties/border_right_width-expected.txt:
        * platform/qt/css1/box_properties/border_right_width_inline-expected.txt:
        * platform/qt/css1/box_properties/border_style-expected.txt:
        * platform/qt/css1/box_properties/border_style_inline-expected.txt:
        * platform/qt/css1/box_properties/border_top-expected.txt:
        * platform/qt/css1/box_properties/border_top_inline-expected.txt:
        * platform/qt/css1/box_properties/border_top_width-expected.txt:
        * platform/qt/css1/box_properties/border_top_width_inline-expected.txt:
        * platform/qt/css1/box_properties/border_width-expected.txt:
        * platform/qt/css1/box_properties/border_width_inline-expected.txt:
        * platform/qt/css1/box_properties/clear-expected.txt:
        * platform/qt/css1/box_properties/clear_float-expected.txt:
        * platform/qt/css1/box_properties/float-expected.txt:
        * platform/qt/css1/box_properties/float_elements_in_series-expected.txt:
        * platform/qt/css1/box_properties/float_margin-expected.txt:
        * platform/qt/css1/box_properties/float_on_text_elements-expected.txt:
        * platform/qt/css1/box_properties/height-expected.txt:
        * platform/qt/css1/box_properties/margin-expected.txt:
        * platform/qt/css1/box_properties/margin_bottom-expected.txt:
        * platform/qt/css1/box_properties/margin_bottom_inline-expected.txt:
        * platform/qt/css1/box_properties/margin_inline-expected.txt:
        * platform/qt/css1/box_properties/margin_left-expected.txt:
        * platform/qt/css1/box_properties/margin_left_inline-expected.txt:
        * platform/qt/css1/box_properties/margin_right-expected.txt:
        * platform/qt/css1/box_properties/margin_right_inline-expected.txt:
        * platform/qt/css1/box_properties/margin_top-expected.txt:
        * platform/qt/css1/box_properties/margin_top_inline-expected.txt:
        * platform/qt/css1/box_properties/padding-expected.txt:
        * platform/qt/css1/box_properties/padding_bottom-expected.txt:
        * platform/qt/css1/box_properties/padding_bottom_inline-expected.txt:
        * platform/qt/css1/box_properties/padding_inline-expected.txt:
        * platform/qt/css1/box_properties/padding_left-expected.txt:
        * platform/qt/css1/box_properties/padding_left_inline-expected.txt:
        * platform/qt/css1/box_properties/padding_right-expected.txt:
        * platform/qt/css1/box_properties/padding_right_inline-expected.txt:
        * platform/qt/css1/box_properties/padding_top-expected.txt:
        * platform/qt/css1/box_properties/padding_top_inline-expected.txt:
        * platform/qt/css1/box_properties/width-expected.txt:
        * platform/qt/css1/cascade/cascade_order-expected.txt:
        * platform/qt/css1/cascade/important-expected.txt:
        * platform/qt/css1/classification/display-expected.txt:
        * platform/qt/css1/classification/list_style-expected.txt:
        * platform/qt/css1/classification/list_style_image-expected.txt:
        * platform/qt/css1/classification/list_style_position-expected.txt:
        * platform/qt/css1/classification/list_style_type-expected.txt:
        * platform/qt/css1/classification/white_space-expected.txt:
        * platform/qt/css1/color_and_background/background-expected.txt:
        * platform/qt/css1/color_and_background/background_attachment-expected.txt:
        * platform/qt/css1/color_and_background/background_color-expected.txt:
        * platform/qt/css1/color_and_background/background_image-expected.txt:
        * platform/qt/css1/color_and_background/background_position-expected.txt:
        * platform/qt/css1/color_and_background/background_repeat-expected.txt:
        * platform/qt/css1/color_and_background/color-expected.txt:
        * platform/qt/css1/conformance/forward_compatible_parsing-expected.txt:
        * platform/qt/css1/font_properties/font-expected.txt:
        * platform/qt/css1/font_properties/font_family-expected.txt:
        * platform/qt/css1/font_properties/font_size-expected.txt:
        * platform/qt/css1/font_properties/font_style-expected.txt:
        * platform/qt/css1/font_properties/font_variant-expected.txt:
        * platform/qt/css1/font_properties/font_weight-expected.txt:
        * platform/qt/css1/formatting_model/canvas-expected.txt:
        * platform/qt/css1/formatting_model/floating_elements-expected.txt:
        * platform/qt/css1/formatting_model/height_of_lines-expected.txt:
        * platform/qt/css1/formatting_model/horizontal_formatting-expected.txt:
        * platform/qt/css1/formatting_model/inline_elements-expected.txt:
        * platform/qt/css1/formatting_model/replaced_elements-expected.txt:
        * platform/qt/css1/formatting_model/vertical_formatting-expected.txt:
        * platform/qt/css1/pseudo/anchor-expected.txt:
        * platform/qt/css1/pseudo/firstletter-expected.txt:
        * platform/qt/css1/pseudo/firstline-expected.txt:
        * platform/qt/css1/pseudo/multiple_pseudo_elements-expected.txt:
        * platform/qt/css1/pseudo/pseudo_elements_in_selectors-expected.txt:
        * platform/qt/css1/text_properties/letter_spacing-expected.txt:
        * platform/qt/css1/text_properties/line_height-expected.txt:
        * platform/qt/css1/text_properties/text_align-expected.txt:
        * platform/qt/css1/text_properties/text_decoration-expected.txt:
        * platform/qt/css1/text_properties/text_indent-expected.txt:
        * platform/qt/css1/text_properties/text_transform-expected.txt:
        * platform/qt/css1/text_properties/vertical_align-expected.txt:
        * platform/qt/css1/text_properties/word_spacing-expected.txt:
        * platform/qt/css1/units/color_units-expected.txt:
        * platform/qt/css1/units/length_units-expected.txt:
        * platform/qt/css1/units/percentage_units-expected.txt:
        * platform/qt/css1/units/urls-expected.txt:
        * platform/qt/css2.1/t040102-keywords-00-b-expected.txt:
        * platform/qt/css2.1/t040102-keywords-01-b-expected.txt:
        * platform/qt/css2.1/t040103-case-00-b-expected.txt:
        * platform/qt/css2.1/t040103-case-01-c-expected.txt:
        * platform/qt/css2.1/t040103-escapes-00-b-expected.txt:
        * platform/qt/css2.1/t040103-escapes-01-b-expected.txt:
        * platform/qt/css2.1/t040103-escapes-02-d-expected.txt:
        * platform/qt/css2.1/t040103-escapes-03-b-expected.txt:
        * platform/qt/css2.1/t040103-escapes-04-b-expected.txt:
        * platform/qt/css2.1/t040103-escapes-05-c-expected.txt:
        * platform/qt/css2.1/t040103-escapes-06-b-expected.txt:
        * platform/qt/css2.1/t040103-escapes-07-b-expected.txt:
        * platform/qt/css2.1/t040103-escapes-08-b-expected.txt:
        * platform/qt/css2.1/t040103-ident-00-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-01-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-02-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-03-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-04-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-05-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-06-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-07-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-08-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-09-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-10-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-11-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-12-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-13-c-expected.txt:
        * platform/qt/css2.1/t040105-atkeyw-00-b-expected.txt:
        * platform/qt/css2.1/t040105-atkeyw-01-b-expected.txt:
        * platform/qt/css2.1/t040105-atkeyw-02-b-expected.txt:
        * platform/qt/css2.1/t040105-atrule-00-b-expected.txt:
        * platform/qt/css2.1/t040105-atrule-01-b-expected.txt:
        * platform/qt/css2.1/t040105-atrule-02-b-expected.txt:
        * platform/qt/css2.1/t040105-atrule-03-b-expected.txt:
        * platform/qt/css2.1/t040105-atrule-04-b-expected.txt:
        * platform/qt/css2.1/t040105-import-00-b-expected.txt:
        * platform/qt/css2.1/t040105-import-01-b-expected.txt:
        * platform/qt/css2.1/t040109-c17-comments-00-b-expected.txt:
        * platform/qt/css2.1/t040109-c17-comments-01-b-expected.txt:
        * platform/qt/css2.1/t0402-c71-fwd-parsing-00-f-expected.txt:
        * platform/qt/css2.1/t0402-c71-fwd-parsing-01-f-expected.txt:
        * platform/qt/css2.1/t0402-c71-fwd-parsing-02-f-expected.txt:
        * platform/qt/css2.1/t0402-c71-fwd-parsing-03-f-expected.txt:
        * platform/qt/css2.1/t0402-c71-fwd-parsing-04-f-expected.txt:
        * platform/qt/css2.1/t0402-syntax-01-f-expected.txt:
        * platform/qt/css2.1/t0402-syntax-02-f-expected.txt:
        * platform/qt/css2.1/t0402-syntax-03-f-expected.txt:
        * platform/qt/css2.1/t0402-syntax-04-f-expected.txt:
        * platform/qt/css2.1/t0402-syntax-05-f-expected.txt:
        * platform/qt/css2.1/t0402-syntax-06-f-expected.txt:
        * platform/qt/css2.1/t040302-c61-ex-len-00-b-a-expected.txt:
        * platform/qt/css2.1/t040302-c61-phys-len-00-b-expected.txt:
        * platform/qt/css2.1/t040302-c61-rel-len-00-b-ag-expected.txt:
        * platform/qt/css2.1/t040304-c64-uri-00-a-g-expected.txt:
        * platform/qt/css2.1/t040306-c63-color-00-b-ag-expected.txt:
        * platform/qt/css2.1/t040306-syntax-01-f-expected.txt:
        * platform/qt/css2.1/t040307-syntax-01-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-00-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-01-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-02-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-03-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-04-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-05-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-06-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-07-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-08-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-09-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-11-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-12-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-13-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-14-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-15-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-16-f-expected.txt:
        * platform/qt/css2.1/t1202-counters-00-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-01-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-02-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-03-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-05-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-06-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-07-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-08-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-09-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-11-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-12-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-13-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-14-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-15-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-16-c-expected.txt:
        * platform/qt/css2.1/t1202-counters-17-d-expected.txt:
        * platform/qt/css2.1/t1202-counters-18-f-expected.txt:
        * platform/qt/css2.1/t1205-c561-list-displ-00-b-expected.txt:
        * platform/qt/css2.1/t1205-c563-list-type-00-b-expected.txt:
        * platform/qt/css2.1/t1205-c563-list-type-01-b-expected.txt:
        * platform/qt/css2.1/t1205-c564-list-img-00-b-g-expected.txt:
        * platform/qt/css2.1/t1205-c565-list-pos-00-b-expected.txt:
        * platform/qt/css2.1/t1205-c566-list-stl-01-c-g-expected.txt:
        * platform/qt/css2.1/t140201-c532-bgcolor-00-a-expected.txt:
        * platform/qt/css2.1/t140201-c532-bgcolor-01-b-expected.txt:
        * platform/qt/css2.1/t140201-c533-bgimage-00-a-expected.txt:
        * platform/qt/css2.1/t140201-c533-bgimage-01-b-g-expected.txt:
        * platform/qt/css2.1/t140201-c534-bgre-00-b-ag-expected.txt:
        * platform/qt/css2.1/t140201-c535-bg-fixd-00-b-g-expected.txt:
        * platform/qt/css2.1/t140201-c536-bgpos-00-b-ag-expected.txt:
        * platform/qt/css2.1/t1503-c522-font-family-00-b-expected.txt:
        * platform/qt/css2.1/t1504-c523-font-style-00-b-expected.txt:
        * platform/qt/css2.1/t1504-c543-txt-decor-00-d-g-expected.txt:
        * platform/qt/css2.1/t1505-c524-font-var-00-b-expected.txt:
        * platform/qt/css2.1/t1506-c525-font-wt-00-b-expected.txt:
        * platform/qt/css2.1/t1507-c526-font-sz-00-b-expected.txt:
        * platform/qt/css2.1/t1507-c526-font-sz-01-b-a-expected.txt:
        * platform/qt/css2.1/t1507-c526-font-sz-02-b-a-expected.txt:
        * platform/qt/css2.1/t1507-c526-font-sz-03-f-a-expected.txt:
        * platform/qt/css2.1/t1508-c527-font-00-b-expected.txt:
        * platform/qt/css2.1/t1508-c527-font-01-b-expected.txt:
        * platform/qt/css2.1/t1508-c527-font-02-b-expected.txt:
        * platform/qt/css2.1/t1508-c527-font-03-b-expected.txt:
        * platform/qt/css2.1/t1508-c527-font-04-b-expected.txt:
        * platform/qt/css2.1/t1508-c527-font-05-b-expected.txt:
        * platform/qt/css2.1/t1508-c527-font-06-b-expected.txt:
        * platform/qt/css2.1/t1508-c527-font-07-b-expected.txt:
        * platform/qt/css2.1/t1508-c527-font-08-b-expected.txt:
        * platform/qt/css2.1/t1508-c527-font-09-b-expected.txt:
        * platform/qt/css2.1/t1508-c527-font-10-c-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-00-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-01-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-02-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-03-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-04-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-05-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-06-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-07-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-08-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-09-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-10-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-11-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-12-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-13-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-14-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-15-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-16-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-17-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-18-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-19-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-20-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-21-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-22-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-23-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-24-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-25-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-26-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-27-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-28-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-29-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-30-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-31-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-32-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-33-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-34-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-35-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-36-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-37-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-38-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-39-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-40-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-41-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-42-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-43-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-44-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-45-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-46-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-47-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-48-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-49-d-expected.txt:
        * platform/qt/editing/inserting/break-blockquote-after-delete-expected.txt:
        * platform/qt/fast/backgrounds/001-expected.txt:
        * platform/qt/fast/backgrounds/animated-svg-as-background-expected.txt:
        * platform/qt/fast/backgrounds/background-inherit-color-bug-expected.txt:
        * platform/qt/fast/backgrounds/background-origin-root-element-expected.txt:
        * platform/qt/fast/backgrounds/background-position-1-expected.txt:
        * platform/qt/fast/backgrounds/background-position-rounding-expected.txt:
        * platform/qt/fast/backgrounds/body-generated-image-propagated-to-root-expected.txt:
        * platform/qt/fast/backgrounds/mask-composite-expected.txt:
        * platform/qt/fast/backgrounds/repeat/mask-negative-offset-repeat-expected.txt:
        * platform/qt/fast/backgrounds/repeat/negative-offset-repeat-expected.txt:
        * platform/qt/fast/backgrounds/repeat/noRepeatCorrectClip-expected.txt:
        * platform/qt/fast/backgrounds/size/backgroundSize15-expected.txt:
        * platform/qt/fast/backgrounds/size/zero-expected.txt:
        * platform/qt/fast/backgrounds/solid-color-context-restore-expected.txt:
        * platform/qt/fast/backgrounds/svg-as-background-1-expected.txt:
        * platform/qt/fast/backgrounds/svg-as-background-2-expected.txt:
        * platform/qt/fast/backgrounds/svg-as-background-3-expected.txt:
        * platform/qt/fast/backgrounds/svg-as-background-4-expected.txt:
        * platform/qt/fast/backgrounds/svg-as-background-5-expected.txt:
        * platform/qt/fast/backgrounds/svg-as-background-6-expected.txt:
        * platform/qt/fast/block/float/avoidance-percent-width-compat-expected.txt:
        * platform/qt/fast/block/float/avoidance-percent-width-strict-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/001-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/002-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/003-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/004-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/005-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/006-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/010-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/011-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/012-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/015-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/016-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/017-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/018-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/019-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/020-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/021-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/022-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/025-expected.txt:
        * platform/qt/fast/borders/border-radius-constraints-expected.txt:
        * platform/qt/fast/borders/border-radius-split-inline-expected.txt:
        * platform/qt/fast/box-shadow/basic-shadows-expected.txt:
        * platform/qt/fast/box-shadow/inset-expected.txt:
        * platform/qt/fast/box-shadow/transform-fringing-expected.txt:
        * platform/qt/fast/canvas/canvas-before-css-expected.txt:
        * platform/qt/fast/canvas/canvas-composite-expected.txt:
        * platform/qt/fast/canvas/canvas-empty-image-pattern-expected.txt:
        * platform/qt/fast/canvas/canvas-transform-identity-expected.txt:
        * platform/qt/fast/canvas/canvas-transform-infinity-expected.txt:
        * platform/qt/fast/canvas/canvas-transform-multiply-expected.txt:
        * platform/qt/fast/canvas/canvas-transform-nan-expected.txt:
        * platform/qt/fast/canvas/canvas-transform-non-invertible-expected.txt:
        * platform/qt/fast/canvas/canvas-transform-skewed-expected.txt:
        * platform/qt/fast/canvas/canvas-transforms-during-path-expected.txt:
        * platform/qt/fast/canvas/canvas-zoom-expected.txt:
        * platform/qt/fast/canvas/drawImage-expected.txt:
        * platform/qt/fast/canvas/drawImage-with-globalAlpha-expected.txt:
        * platform/qt/fast/canvas/image-pattern-rotate-expected.txt:
        * platform/qt/fast/canvas/shadow-offset-1-expected.txt:
        * platform/qt/fast/canvas/shadow-offset-2-expected.txt:
        * platform/qt/fast/canvas/shadow-offset-3-expected.txt:
        * platform/qt/fast/canvas/shadow-offset-4-expected.txt:
        * platform/qt/fast/canvas/shadow-offset-5-expected.txt:
        * platform/qt/fast/canvas/shadow-offset-6-expected.txt:
        * platform/qt/fast/canvas/shadow-offset-7-expected.txt:
        * platform/qt/fast/css/attribute-selector-dynamic-expected.txt:
        * platform/qt/fast/css/font-smoothing-expected.txt:
        * platform/qt/fast/css/getComputedStyle/marginComputedStyle-expected.txt:
        * platform/qt/fast/css/nested-floating-relative-position-percentages-expected.txt:
        * platform/qt/fast/css/nth-child-dynamic-expected.txt:
        * platform/qt/fast/css/pseudo-cache-stale-expected.txt:
        * platform/qt/fast/css/rem-dynamic-scaling-expected.txt:
        * platform/qt/fast/css/rem-units-on-root-expected.txt:
        * platform/qt/fast/css/text-input-with-webkit-border-radius-expected.txt:
        * platform/qt/fast/css/text-rendering-expected.txt:
        * platform/qt/fast/doctypes/001-expected.txt:
        * platform/qt/fast/doctypes/002-expected.txt:
        * platform/qt/fast/doctypes/004-expected.txt:
        * platform/qt/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.txt:
        * platform/qt/fast/dynamic/anchor-lock-expected.txt:
        * platform/qt/fast/dynamic/genContentDestroyChildren-expected.txt:
        * platform/qt/fast/dynamic/window-resize-scrollbars-test-expected.txt:
        * platform/qt/fast/dynamic/window-scrollbars-test-expected.txt:
        * platform/qt/fast/forms/basic-buttons-expected.txt:
        * platform/qt/fast/forms/basic-inputs-expected.txt:
        * platform/qt/fast/forms/button-style-color-expected.txt:
        * platform/qt/fast/forms/isindex-placeholder-expected.txt:
        * platform/qt/fast/forms/menulist-style-color-expected.txt:
        * platform/qt/fast/forms/search-vertical-alignment-expected.txt:
        * platform/qt/fast/forms/text-style-color-expected.txt:
        * platform/qt/fast/forms/textarea-placeholder-pseudo-style-expected.txt:
        * platform/qt/fast/forms/textarea-placeholder-set-attribute-expected.txt:
        * platform/qt/fast/forms/textarea-placeholder-set-value-expected.txt:
        * platform/qt/fast/frames/frame-navigation-expected.txt:
        * platform/qt/fast/frames/frame-scrolling-attribute-expected.txt:
        * platform/qt/fast/frames/frameset-style-recalc-expected.txt:
        * platform/qt/fast/frames/iframe-scrolling-attribute-expected.txt:
        * platform/qt/fast/frames/viewsource-on-image-file-expected.txt:
        * platform/qt/fast/gradients/crash-on-zero-radius-expected.txt:
        * platform/qt/fast/history/clicked-link-is-visited-expected.txt:
        * platform/qt/fast/images/animated-gif-with-offsets-expected.txt:
        * platform/qt/fast/images/image-in-map-expected.txt:
        * platform/qt/fast/images/svg-as-background-expected.txt:
        * platform/qt/fast/images/svg-width-100p-as-background-expected.txt:
        * platform/qt/fast/lists/ol-start-parsing-expected.txt:
        * platform/qt/fast/multicol/positioned-with-constrained-height-expected.txt:
        * platform/qt/fast/overflow/overflow-with-local-background-attachment-expected.txt:
        * platform/qt/fast/overflow/position-fixed-transform-clipping-expected.txt:
        * platform/qt/fast/reflections/abs-position-in-reflection-expected.txt:
        * platform/qt/fast/reflections/transparent-reflected-sublayers-expected.txt:
        * platform/qt/fast/repaint/line-in-scrolled-clipped-block-expected.txt:
        * platform/qt/fast/repaint/rel-positioned-inline-with-overflow-expected.txt:
        * platform/qt/fast/table/fixed-table-with-percent-inside-percent-table-expected.txt:
        * platform/qt/fast/table/fixed-table-with-percent-width-inside-auto-table-expected.txt:
        * platform/qt/fast/table/fixed-table-with-percent-width-inside-div-expected.txt:
        * platform/qt/fast/table/fixed-table-with-percent-width-inside-extra-large-div-expected.txt:
        * platform/qt/fast/table/fixed-table-with-percent-width-inside-fixed-width-table-expected.txt:
        * platform/qt/fast/table/fixed-table-with-small-percent-width-expected.txt:
        * platform/qt/fast/text/international/hindi-whitespace-expected.txt:
        * platform/qt/fast/text/international/khmer-selection-expected.txt:
        * platform/qt/fast/text/shadow-translucent-fill-expected.txt:
        * platform/qt/fast/text/text-letter-spacing-expected.txt:
        * platform/qt/fast/transforms/bounding-rect-zoom-expected.txt:
        * platform/qt/fast/xsl/document-function-expected.txt:
        * platform/qt/plugins/netscape-dom-access-expected.txt:
        * platform/qt/svg/custom/createImageElement2-expected.txt:
        * platform/qt/svg/filters/feComposite-expected.txt:
        * platform/qt/svg/filters/sourceAlpha-expected.txt:
        * platform/qt/tables/mozilla/bugs/adforce_imgis_com-expected.txt:
        * platform/qt/tables/mozilla/bugs/bug196870-expected.txt:
        * platform/qt/tables/mozilla/bugs/bug56201-expected.txt:
        * platform/qt/tables/mozilla/bugs/bug92647-2-expected.txt:
        * platform/qt/tables/mozilla/other/slashlogo-expected.txt:
        * platform/qt/tables/mozilla_expected_failures/bugs/bug23847-expected.txt:

2009-11-12  Shinichiro Hamaji  <hamaji@chromium.org>

        Unreviewed test fix by skipping a new test introduced in
        https://bugs.webkit.org/show_bug.cgi?id=22249

        * platform/gtk/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:

2009-11-12  Yuta Kitamura  <yutak@chromium.org>

        Reviewed by Eric Seidel.

        Prevent text inside a multi-column block from being split into columns.
        
        If the tentative height of a multi-column block was too small, we need to
        expand the block height and try to layout again, in order to prevent text
        from being split into different columns.

        CSS Multicolumn text is split awkwardly
        https://bugs.webkit.org/show_bug.cgi?id=22249

        * fast/multicol/single-line.html: Added.
        * fast/multicol/single-line-expected.checksum: Added.
        * fast/multicol/single-line-expected.png: Added.
        * fast/multicol/single-line-expected.txt: Added.

2009-11-11  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        A test for a bug that RenderFileUploadControl isn't initialized with
        multiple files. This test is skipped on ports which have no
        eventSender.beginDragWithFiles().
        https://bugs.webkit.org/show_bug.cgi?id=31195

        * fast/forms/input-file-re-render.html: Added.
        * platform/gtk/Skipped:
        * platform/mac/fast/forms/input-file-re-render-expected.checksum: Added.
        * platform/mac/fast/forms/input-file-re-render-expected.png: Added.
        * platform/mac/fast/forms/input-file-re-render-expected.txt: Added.
        * platform/qt/Skipped:
        * platform/win/Skipped:

2009-11-11  Daniel Bates  <dbates@webkit.org>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=31326

        Makes the output for test fast/events/drag-and-drop.html pretty.
        Now, it is easier to read for a human to read understand the results.

        * fast/events/drag-and-drop-expected.txt: Rebased result.
        * fast/events/drag-and-drop.html: Modified to make the output pretty.

2009-11-11  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Oliver Hunt.

        need to implement aria tree roles
        https://bugs.webkit.org/show_bug.cgi?id=31284

        * accessibility/aria-readonly-expected.txt:
        * accessibility/aria-readonly.html:
        * platform/mac/accessibility/aria-multiselectable-expected.txt: Added.
        * platform/mac/accessibility/aria-multiselectable.html: Added.
        * platform/mac/accessibility/aria-tree-expected.txt: Added.
        * platform/mac/accessibility/aria-tree.html: Added.
        * platform/mac/accessibility/content-editable-expected.txt:
        * platform/mac/accessibility/radio-button-group-members-expected.txt:

2009-11-11  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by Alexey Proskuryakov.

        Fix WebSocket frame parser of frame_type with high-order bit set.
        https://bugs.webkit.org/show_bug.cgi?id=30668

        * websocket/tests/frame-length-longer-than-buffer-expected.txt: Added.
        * websocket/tests/frame-length-longer-than-buffer.html: Added.
        * websocket/tests/frame-length-longer-than-buffer_wsh.py: Added.
        * websocket/tests/frame-length-skip-expected.txt: Added.
        * websocket/tests/frame-length-skip.html: Added.
        * websocket/tests/frame-length-skip_wsh.py: Added.
        * websocket/tests/script-tests/frame-length-longer-than-buffer.js: Added.
        * websocket/tests/script-tests/frame-length-skip.js: Added.

2009-11-11  Csaba Osztrogonác  <ossy@webkit.org>

        Put tests into skiplist added in r50830 and r50839 because
        layoutTestController.showWebInspector() is unimplemented now.

        * platform/qt/Skipped:

2009-11-11  Dirk Pranke  <dpranke@chromium.org>

        Reviewed by Dmitry Titov.

        Rewrite the test to run on a wider variety of screen configurations
        (and pixel depths).

        https://bugs.webkit.org/show_bug.cgi?id=31373

        * fast/dom/Window/window-screen-properties-expected.txt:
        * fast/dom/Window/window-screen-properties.html:
        * platform/win/fast/dom/Window/window-screen-properties-expected.txt: Removed.

2009-11-11  Beth Dakin  <bdakin@apple.com>

        Reviewed by Simon Fraser.

        Tests for https://bugs.webkit.org/show_bug.cgi?id=31382
        Make -webkit-color-correction work with shadows

        * fast/css/color-correction-on-box-shadow.html: Added.
        * fast/css/color-correction-on-text-shadow.html: Added.
        * platform/mac/fast/css/color-correction-on-box-shadow-expected.checksum: Added.
        * platform/mac/fast/css/color-correction-on-box-shadow-expected.png: Added.
        * platform/mac/fast/css/color-correction-on-box-shadow-expected.txt: Added.
        * platform/mac/fast/css/color-correction-on-text-shadow-expected.checksum: Added.
        * platform/mac/fast/css/color-correction-on-text-shadow-expected.png: Added.
        * platform/mac/fast/css/color-correction-on-text-shadow-expected.txt: Added.

2009-11-11  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        Print the file text of a file upload control in DumpRenderTree for ease of tests.
        https://bugs.webkit.org/show_bug.cgi?id=31195

        * platform/mac-leopard/fast/forms/file-input-disabled-expected.txt:
        * platform/mac/fast/forms/box-shadow-override-expected.txt:
        * platform/mac/fast/forms/file-input-direction-expected.txt:
        * platform/mac/fast/forms/file-input-disabled-expected.txt:
        * platform/mac/fast/forms/form-element-geometry-expected.txt:
        * platform/mac/fast/forms/hidden-input-file-expected.txt:
        * platform/mac/fast/forms/input-appearance-height-expected.txt:
        * platform/mac/fast/forms/input-value-expected.txt:
        * platform/win/fast/forms/box-shadow-override-expected.txt:
        * platform/win/fast/forms/file-input-disabled-expected.txt:
        * platform/win/fast/forms/input-appearance-height-expected.txt:
        * platform/win/fast/forms/input-value-expected.txt:

2009-11-11  Erik Arvidsson  <arv@chromium.org>

        Reviewed by Dmitri Titov.

        Fix layout test to not call onload on the wrong window after image has
        been dropped onto the iframe.
        https://bugs.webkit.org/show_bug.cgi?id=30893

        * editing/selection/drag-to-contenteditable-iframe.html:

2009-11-11  Brian Weinstein  <bweinstein@apple.com>

        Reviewed by Beth Dakin.

        Unskip the webkit-color-correction tests because the workaround of using
        the deviceRGBColorSpace allows the tests to pass on Windows.

        * platform/win/Skipped:

2009-11-11  Brian Weinstein  <bweinstein@apple.com>

        Reviewed by Darin Adler.

        Skip the webkit-color-correction tests because they crash on Windows 
        due to a CoreGraphics bug.

        * platform/win/Skipped:

2009-11-11  Eric Z. Ayers  <zundel@google.com>

        Reviewed by Pavel Feldman.

        Timeline tests for records generated for
        Layout, Paint, ParseHTML, MarkTimeline, and Style Recalculation

        https://bugs.webkit.org/show_bug.cgi?id=31361

        * inspector/timeline-layout-expected.txt: Added.
        * inspector/timeline-layout.html: Added.
        * inspector/timeline-mark-timeline-expected.txt: Added.
        * inspector/timeline-mark-timeline.html: Added.
        * inspector/timeline-paint-expected.txt: Added.
        * inspector/timeline-paint.html: Added.
        * inspector/timeline-parse-html-expected.txt: Added.
        * inspector/timeline-parse-html.html: Added.
        * inspector/timeline-recalculate-styles-expected.txt: Added.
        * inspector/timeline-recalculate-styles.html: Added.

2009-11-11  Jessie Berlin  <jberlin@webkit.org>

        Reviewed by Timothy Hatcher.

        Display the correct summary in the web inspector for the padding
        shorthand. Also corrects the summaries for the border-color,
        border-width, border-style, and margin shorthands.

        https://bugs.webkit.org/show_bug.cgi?id=7987

        * fast/css/shorthands-four-values-expected.txt: Added.
        * fast/css/shorthands-four-values.html: Added.

2009-11-11  Eric Z. Ayers  <zundel@google.com>

        Reviewed by Pavel Feldman.

        Added a test of an externally loaded script tag for Inspector 
        timeline records.
        Fixed identity comparisons.

        https://bugs.webkit.org/show_bug.cgi?id=31365

        * inspector/timeline-script-tag-1.html:
        * inspector/timeline-script-tag-2-expected.txt: Added.
        * inspector/timeline-script-tag-2.html: Added.
        * inspector/timeline-script-tag-2.js: Added.
        * inspector/timeline-test.js:
        ():
        (timelineAgentTypeToString):

2009-11-11  Antonio Gomes  <tonikitoo@webkit.org>

        Rubber-stamped by Kenneth Christiansen.

        Grouping some of the current skipped plugin tests that fail
        due to the same reason: no support for objective-c functions.

        * platform/qt/Skipped:

2009-11-11  Daniel Bates  <dbates@webkit.org>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=31334
        
        We should skip the test case /fast/events/drag-and-drop-fire-drag-dragover.html
        on both the Qt and GTK builds since there are issues with drag-and-drop support
        in these builds.
        
        For Qt: https://bugs.webkit.org/show_bug.cgi?id=31332
        For GTK: https://bugs.webkit.org/show_bug.cgi?id=30576

        * platform/gtk/Skipped: Skip test case /fast/events/drag-and-drop-fire-drag-dragover.html
        since there are issues with drag-and-drop support in both GTK and Qt.
        * platform/qt/Skipped: Ditto.

2009-11-11  Yuta Kitamura  <yutak@chromium.org>

        Reviewed by Eric Seidel.

        Convert LayoutTests/fast/inline/dirtyLinesForInline.html into dumpAsText.
        
        This test checks if the browser crashes after some operations. It doesn't test
        any other interesting features, so we can safely make it a dumpAsText test.
        
        https://bugs.webkit.org/show_bug.cgi?id=31335

        * fast/inline/dirtyLinesForInline-expected.txt: Added.
        * fast/inline/dirtyLinesForInline.html: Added dumpAsText().
        * platform/mac/fast/inline/dirtyLinesForInline-expected.checksum: Removed.
        * platform/mac/fast/inline/dirtyLinesForInline-expected.png: Removed.
        * platform/mac/fast/inline/dirtyLinesForInline-expected.txt: Removed.

2009-11-11  Eric Z. Ayers  <zundel@google.com>

        Reviewed by Timothy Hatcher.

        Adds a test that dumps the timeline data for a simple script tag.

        https://bugs.webkit.org/show_bug.cgi?id=31204

        * inspector/inspector-test.js:
        (onload):
        * inspector/timeline-script-tag-1-expected.txt: Added.
        * inspector/timeline-script-tag-1.html: Added.
        * inspector/timeline-test.js: Added.
        (retrieveTimelineData):
        ():
        (dumpTimelineRecords):
        (printTimelineRecordProperties):
        (isNonDeterministicProp):
        (printProps):
        (isTimelineOverheadRecord):
        (markTimelineRecordAsOverhead):
        (timelineAgentTypeToString):
        (frontend_startTimelineProfiler.window.WebInspector.addRecordToTimeline):
        (frontend_startTimelineProfiler):
        (frontend_getTimelineResults):
        (frontend_setup):

2009-11-11  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Unreviewed. Skipping new tests.

        * platform/gtk/Skipped:

2009-11-11  Yuzo Fujishima  <yuzo@google.com>

        Reviewed by David Levin.

        Add a test for web socket handshake error.

        https://bugs.webkit.org/show_bug.cgi?id=31336

        * websocket/tests/handshake-error-expected.txt: Added.
        * websocket/tests/handshake-error.html: Added.
        * websocket/tests/handshake-error_wsh.py: Added.
        * websocket/tests/script-tests/handshake-error.js: Added.
        (endTest):
        (ws.onopen):
        (ws.onmessage):
        (ws.onclose):
        (timeOutCallback):

2009-11-11  Yuzo Fujishima  <yuzo@google.com>

        Reviewed by David Levin.

        Add a simple web socket test. This tests basic features of Web Socket.
        This also serves as an example of Web Socket tests.

        https://bugs.webkit.org/show_bug.cgi?id=27492

        * platform/gtk/Skipped:
        * platform/mac/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:
        * websocket/tests/resources/simple.js: Added.
        (ws.onopen):
        (ws.onmessage):
        (ws.onclose):
        (timeOutCallback):
        * websocket/tests/simple-expected.txt: Added.
        * websocket/tests/simple.html: Added.
        * websocket/tests/simple_wsh.py: Added.

2009-11-11  Philippe Normand  <pnormand@igalia.com>

        Reviewed by Xan Lopez.

        https://bugs.webkit.org/show_bug.cgi?id=30221
        [GTK] fails to load media embedded in iframe element

        * platform/gtk/Skipped: Unskip fixed tests.

2009-11-10  Roland Steiner  <rolandsteiner@chromium.org>

        Reviewed by Eric Seidel.

        Re-baselined layout test results for Windows for tests in fast/ruby.
        (see https://bugs.webkit.org/show_bug.cgi?id=28420)

        * platform/win/fast/ruby: Added.
        * platform/win/fast/ruby/ruby-empty-rt-expected.checksum: Added.
        * platform/win/fast/ruby/ruby-empty-rt-expected.png: Added.
        * platform/win/fast/ruby/ruby-empty-rt-expected.txt: Added.
        * platform/win/fast/ruby/ruby-length-expected.checksum: Added.
        * platform/win/fast/ruby/ruby-length-expected.png: Added.
        * platform/win/fast/ruby/ruby-length-expected.txt: Added.
        * platform/win/fast/ruby/ruby-run-break-expected.checksum: Added.
        * platform/win/fast/ruby/ruby-run-break-expected.png: Added.
        * platform/win/fast/ruby/ruby-run-break-expected.txt: Added.
        * platform/win/fast/ruby/ruby-runs-expected.checksum: Added.
        * platform/win/fast/ruby/ruby-runs-expected.png: Added.
        * platform/win/fast/ruby/ruby-runs-expected.txt: Added.
        * platform/win/fast/ruby/ruby-runs-spans-expected.checksum: Added.
        * platform/win/fast/ruby/ruby-runs-spans-expected.png: Added.
        * platform/win/fast/ruby/ruby-runs-spans-expected.txt: Added.
        * platform/win/fast/ruby/ruby-simple-expected.checksum: Added.
        * platform/win/fast/ruby/ruby-simple-expected.png: Added.
        * platform/win/fast/ruby/ruby-simple-expected.txt: Added.
        * platform/win/fast/ruby/ruby-simple-rp-expected.checksum: Added.
        * platform/win/fast/ruby/ruby-simple-rp-expected.png: Added.
        * platform/win/fast/ruby/ruby-simple-rp-expected.txt: Added.
        * platform/win/fast/ruby/ruby-trailing-expected.checksum: Added.
        * platform/win/fast/ruby/ruby-trailing-expected.png: Added.
        * platform/win/fast/ruby/ruby-trailing-expected.txt: Added.
        * platform/win/fast/ruby/rubyDOM-insert-rt-expected.checksum: Added.
        * platform/win/fast/ruby/rubyDOM-insert-rt-expected.png: Added.
        * platform/win/fast/ruby/rubyDOM-insert-rt-expected.txt: Added.
        * platform/win/fast/ruby/rubyDOM-insert-text1-expected.checksum: Added.
        * platform/win/fast/ruby/rubyDOM-insert-text1-expected.png: Added.
        * platform/win/fast/ruby/rubyDOM-insert-text1-expected.txt: Added.
        * platform/win/fast/ruby/rubyDOM-insert-text2-expected.checksum: Added.
        * platform/win/fast/ruby/rubyDOM-insert-text2-expected.png: Added.
        * platform/win/fast/ruby/rubyDOM-insert-text2-expected.txt: Added.
        * platform/win/fast/ruby/rubyDOM-insert-text3-expected.checksum: Added.
        * platform/win/fast/ruby/rubyDOM-insert-text3-expected.png: Added.
        * platform/win/fast/ruby/rubyDOM-insert-text3-expected.txt: Added.
        * platform/win/fast/ruby/rubyDOM-remove-rt1-expected.checksum: Added.
        * platform/win/fast/ruby/rubyDOM-remove-rt1-expected.png: Added.
        * platform/win/fast/ruby/rubyDOM-remove-rt1-expected.txt: Added.
        * platform/win/fast/ruby/rubyDOM-remove-rt2-expected.checksum: Added.
        * platform/win/fast/ruby/rubyDOM-remove-rt2-expected.png: Added.
        * platform/win/fast/ruby/rubyDOM-remove-rt2-expected.txt: Added.
        * platform/win/fast/ruby/rubyDOM-remove-text1-expected.checksum: Added.
        * platform/win/fast/ruby/rubyDOM-remove-text1-expected.png: Added.
        * platform/win/fast/ruby/rubyDOM-remove-text1-expected.txt: Added.
        * platform/win/fast/ruby/rubyDOM-remove-text2-expected.checksum: Added.
        * platform/win/fast/ruby/rubyDOM-remove-text2-expected.png: Added.
        * platform/win/fast/ruby/rubyDOM-remove-text2-expected.txt: Added.

2009-11-10  Daniel Bates  <dbates@webkit.org>

        Reviewed by Oliver Hunt.

        https://bugs.webkit.org/show_bug.cgi?id=30754

        Tests that the drag event always fires before the dragover event.

        Also, re-bases the result for test fast/events/drag-in-frames.html, since
        we now conform to the HTML 5 spec.

        * fast/events/drag-and-drop-fire-drag-dragover-expected.txt: Added.
        * fast/events/drag-and-drop-fire-drag-dragover.html: Added.
        * fast/events/drag-in-frames-expected.txt: Rebased result.

2009-11-10  Vitaly Repeshko  <vitalyr@chromium.org>

        Reviewed by Dimitri Glazkov.

        [V8] Fix crash in V8CustomXPathNSResolver (http://crbug.com/26726).
        https://bugs.webkit.org/show_bug.cgi?id=31301

        * fast/xpath/xpath-detached-iframe-resolver-crash-expected.txt: Added.
        * fast/xpath/xpath-detached-iframe-resolver-crash.html: Added.

2009-11-10  Yael Aharon  <yael.aharon@nokia.com>

        Reviewed by Timothy Hatcher.

        Implement URL decomposition IDL attributes for HTMLAnchorElement.
        https://bugs.webkit.org/show_bug.cgi?id=29972

        Testcases for setting and getting different parts of the URL.

        * fast/dom/HTMLAnchorElement: Added.
        * fast/dom/HTMLAnchorElement/script-tests: Added.
        * fast/dom/HTMLAnchorElement/script-tests/TEMPLATE.html: Added.
        * fast/dom/HTMLAnchorElement/script-tests/set-href-attribute-hash.js: Added.
        * fast/dom/HTMLAnchorElement/script-tests/set-href-attribute-host.js: Added.
        * fast/dom/HTMLAnchorElement/script-tests/set-href-attribute-hostname.js: Added.
        * fast/dom/HTMLAnchorElement/script-tests/set-href-attribute-pathname.js: Added.
        * fast/dom/HTMLAnchorElement/script-tests/set-href-attribute-port.js: Added.
        * fast/dom/HTMLAnchorElement/script-tests/set-href-attribute-protocol.js: Added.
        * fast/dom/HTMLAnchorElement/script-tests/set-href-attribute-search.js: Added.
        * fast/dom/HTMLAnchorElement/set-href-attribute-hash-expected.txt: Added.
        * fast/dom/HTMLAnchorElement/set-href-attribute-hash.html: Added.
        * fast/dom/HTMLAnchorElement/set-href-attribute-host-expected.txt: Added.
        * fast/dom/HTMLAnchorElement/set-href-attribute-host.html: Added.
        * fast/dom/HTMLAnchorElement/set-href-attribute-hostname-expected.txt: Added.
        * fast/dom/HTMLAnchorElement/set-href-attribute-hostname.html: Added.
        * fast/dom/HTMLAnchorElement/set-href-attribute-pathname-expected.txt: Added.
        * fast/dom/HTMLAnchorElement/set-href-attribute-pathname.html: Added.
        * fast/dom/HTMLAnchorElement/set-href-attribute-port-expected.txt: Added.
        * fast/dom/HTMLAnchorElement/set-href-attribute-port.html: Added.
        * fast/dom/HTMLAnchorElement/set-href-attribute-protocol-expected.txt: Added.
        * fast/dom/HTMLAnchorElement/set-href-attribute-protocol.html: Added.
        * fast/dom/HTMLAnchorElement/set-href-attribute-search-expected.txt: Added.
        * fast/dom/HTMLAnchorElement/set-href-attribute-search.html: Added.

2009-11-10  Brian Weinstein  <bweinstein@apple.com>

        Update getComputedStyle results for Windows to add -webkit-color-correction.

        * platform/win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:

2009-11-10  Brady Eidson  <beidson@apple.com>

        Reviewed by NOBODY (Fix my own layout-test snafu)

        Made a small change to my test then didn't update the results before landing.

        * http/tests/webarchive/cross-origin-stylesheet-crash-expected.webarchive:

2009-11-10  Brady Eidson  <beidson@apple.com>

        Reviewed by Sam Weinig.

        Repro crash saving pcmag.com article as a webarchive.
        <rdar://problem/7381219> and https://webkit.org/b/31322

        * http/tests/webarchive/cross-origin-stylesheet-crash.html: Added.
        * http/tests/webarchive/cross-origin-stylesheet-crash-expected.webarchive: Added.
        * http/tests/webarchive/resources/localhost-stylesheet.css: Added.
        * platform/gtk/Skipped: Add this test to the gtk Skipped list which tracks all individual skipped tests
          instead of directories.

2009-11-10  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Anders Carlsson.
        
        Add timing out test to Windows Skipped list.

        * platform/win/Skipped:

2009-11-10  Csaba Osztrogonác  <ossy@webkit.org>

        Put test into skiplist added in r50758 because
        layoutTestController.showWebInspector() is unimplemented now.

        * platform/qt/Skipped: inspector/timeline-enum-stability.html added.

2009-11-10  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Unreviewed. Skip another test that requires implementing editing
        callbacks.

        * platform/gtk/Skipped:

2009-11-10  Beth Dakin  <bdakin@apple.com>

        Reviewed by Darin Adler.

        Tests for <rdar://problem/7059710> 
        -and corresponding-
        https://bugs.webkit.org/show_bug.cgi?id=31196 Implement -webkit-
        color-correction for CSS colors

        New tests.
        * fast/css/color-correction-backgrounds-and-text.html: Added.
        * fast/css/color-correction-on-backgrounds.html: Added.
        * fast/css/color-correction-on-text.html: Added.
        * fast/css/color-correction.html: Added.
        * fast/css/parsing-color-correction-expected.txt: Added.
        * fast/css/parsing-color-correction.html: Added.
        * fast/css/resources/parsing-color-correction.js: Added.
        (test):
        * fast/css/resources/purple-srgb.png: Added.
        * platform/mac/fast/css/color-correction-backgrounds-and-text-expected.checksum: Added.
        * platform/mac/fast/css/color-correction-backgrounds-and-text-expected.png: Added.
        * platform/mac/fast/css/color-correction-backgrounds-and-text-expected.txt: Added.
        * platform/mac/fast/css/color-correction-expected.checksum: Added.
        * platform/mac/fast/css/color-correction-expected.png: Added.
        * platform/mac/fast/css/color-correction-expected.txt: Added.
        * platform/mac/fast/css/color-correction-on-backgrounds-expected.checksum: Added.
        * platform/mac/fast/css/color-correction-on-backgrounds-expected.png: Added.
        * platform/mac/fast/css/color-correction-on-backgrounds-expected.txt: Added.
        * platform/mac/fast/css/color-correction-on-text-expected.checksum: Added.
        * platform/mac/fast/css/color-correction-on-text-expected.png: Added.
        * platform/mac/fast/css/color-correction-on-text-expected.txt: Added.

        New and improved results.
        * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * svg/css/getComputedStyle-basic-expected.txt:

2009-11-10  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Unreviewed. Skip new tests.

        * platform/gtk/Skipped:

2009-11-10  Eric Z. Ayers  <zundel@google.com>

        Reviewed by Timothy Hatcher.

        Adds a test to flag changes to values of the WebInspector Timeline record types.
        Downstream apps depend on these mappings remaining stable.

        https://bugs.webkit.org/show_bug.cgi?id=31303

        * inspector/timeline-enum-stability-expected.txt: Added.
        * inspector/timeline-enum-stability.html: Added.

2009-11-10  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Update outdated metrics in these tests after r50665 enabled the previously missing scrollbar.
        This fixes https://bugs.webkit.org/show_bug.cgi?id=31281.

        * platform/qt/css1/basic/class_as_selector-expected.txt:
        * platform/qt/css1/basic/comments-expected.txt:
        * platform/qt/css1/basic/containment-expected.txt:
        * platform/qt/css1/basic/id_as_selector-expected.txt:
        * platform/qt/css1/basic/inheritance-expected.txt:
        * platform/qt/css1/box_properties/border-expected.txt:
        * platform/qt/css1/box_properties/border_bottom-expected.txt:
        * platform/qt/css1/box_properties/border_bottom_width-expected.txt:
        * platform/qt/css1/box_properties/border_left-expected.txt:
        * platform/qt/css1/box_properties/border_left_width-expected.txt:
        * platform/qt/css1/box_properties/border_right_inline-expected.txt:
        * platform/qt/css1/box_properties/border_right_width-expected.txt:
        * platform/qt/css1/box_properties/border_style-expected.txt:
        * platform/qt/css1/box_properties/border_top-expected.txt:
        * platform/qt/css1/box_properties/border_top_width-expected.txt:
        * platform/qt/css1/box_properties/border_width-expected.txt:
        * platform/qt/css1/box_properties/clear-expected.txt:
        * platform/qt/css1/box_properties/clear_float-expected.txt:
        * platform/qt/css1/box_properties/float_elements_in_series-expected.txt:
        * platform/qt/css1/box_properties/float_margin-expected.txt:
        * platform/qt/css1/box_properties/float_on_text_elements-expected.txt:
        * platform/qt/css1/box_properties/height-expected.txt:
        * platform/qt/css1/box_properties/margin-expected.txt:
        * platform/qt/css1/box_properties/margin_bottom-expected.txt:
        * platform/qt/css1/box_properties/margin_inline-expected.txt:
        * platform/qt/css1/box_properties/margin_left-expected.txt:
        * platform/qt/css1/box_properties/margin_right-expected.txt:
        * platform/qt/css1/box_properties/margin_top-expected.txt:
        * platform/qt/css1/box_properties/padding-expected.txt:
        * platform/qt/css1/box_properties/padding_bottom-expected.txt:
        * platform/qt/css1/box_properties/padding_inline-expected.txt:
        * platform/qt/css1/box_properties/padding_left-expected.txt:
        * platform/qt/css1/box_properties/padding_right-expected.txt:
        * platform/qt/css1/box_properties/padding_top-expected.txt:
        * platform/qt/css1/box_properties/width-expected.txt:
        * platform/qt/css1/cascade/cascade_order-expected.txt:
        * platform/qt/css1/cascade/important-expected.txt:
        * platform/qt/css1/classification/display-expected.txt:
        * platform/qt/css1/classification/list_style_type-expected.txt:
        * platform/qt/css1/classification/white_space-expected.txt:
        * platform/qt/css1/color_and_background/background-expected.txt:
        * platform/qt/css1/color_and_background/background_attachment-expected.txt:
        * platform/qt/css1/color_and_background/background_color-expected.txt:
        * platform/qt/css1/color_and_background/background_image-expected.txt:
        * platform/qt/css1/color_and_background/background_position-expected.txt:
        * platform/qt/css1/color_and_background/background_repeat-expected.txt:
        * platform/qt/css1/conformance/forward_compatible_parsing-expected.txt:
        * platform/qt/css1/font_properties/font-expected.txt:
        * platform/qt/css1/font_properties/font_family-expected.txt:
        * platform/qt/css1/font_properties/font_size-expected.txt:
        * platform/qt/css1/font_properties/font_weight-expected.txt:
        * platform/qt/css1/formatting_model/floating_elements-expected.txt:
        * platform/qt/css1/formatting_model/height_of_lines-expected.txt:
        * platform/qt/css1/formatting_model/horizontal_formatting-expected.txt:
        * platform/qt/css1/formatting_model/inline_elements-expected.txt:
        * platform/qt/css1/formatting_model/replaced_elements-expected.txt:
        * platform/qt/css1/formatting_model/vertical_formatting-expected.txt:
        * platform/qt/css1/pseudo/anchor-expected.txt:
        * platform/qt/css1/pseudo/firstletter-expected.txt:
        * platform/qt/css1/pseudo/firstline-expected.txt:
        * platform/qt/css1/pseudo/multiple_pseudo_elements-expected.txt:
        * platform/qt/css1/pseudo/pseudo_elements_in_selectors-expected.txt:
        * platform/qt/css1/text_properties/letter_spacing-expected.txt:
        * platform/qt/css1/text_properties/line_height-expected.txt:
        * platform/qt/css1/text_properties/text_decoration-expected.txt:
        * platform/qt/css1/text_properties/text_indent-expected.txt:
        * platform/qt/css1/text_properties/text_transform-expected.txt:
        * platform/qt/css1/text_properties/vertical_align-expected.txt:
        * platform/qt/css1/text_properties/word_spacing-expected.txt:
        * platform/qt/css1/units/color_units-expected.txt:
        * platform/qt/css1/units/length_units-expected.txt:
        * platform/qt/css1/units/percentage_units-expected.txt:
        * platform/qt/css2.1/t0402-c71-fwd-parsing-02-f-expected.txt:
        * platform/qt/css2.1/t1202-counter-09-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-08-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-09-b-expected.txt:
        * platform/qt/css2.1/t140201-c535-bg-fixd-00-b-g-expected.txt:
        * platform/qt/css2.1/t1508-c527-font-07-b-expected.txt:
        * platform/qt/fast/backgrounds/background-inherit-color-bug-expected.txt:
        * platform/qt/fast/backgrounds/size/backgroundSize15-expected.txt:
        * platform/qt/fast/block/float/008-expected.txt:
        * platform/qt/fast/block/float/019-expected.txt:
        * platform/qt/fast/block/float/033-expected.txt:
        * platform/qt/fast/block/float/035-expected.txt:
        * platform/qt/fast/block/float/avoidance-percent-width-strict-expected.txt:
        * platform/qt/fast/box-shadow/basic-shadows-expected.txt:
        * platform/qt/fast/canvas/canvas-bg-expected.txt:
        * platform/qt/fast/css/nested-floating-relative-position-percentages-expected.txt:
        * platform/qt/fast/css/nth-child-dynamic-expected.txt:
        * platform/qt/fast/css/text-rendering-expected.txt:
        * platform/qt/fast/dynamic/anchor-lock-expected.txt:
        * platform/qt/fast/flexbox/flex-hang-expected.txt:
        * platform/qt/fast/forms/search-vertical-alignment-expected.txt:
        * platform/qt/fast/frames/iframe-scrolling-attribute-expected.txt:
        * platform/qt/fast/lists/ol-start-parsing-expected.txt:
        * platform/qt/fast/multicol/positioned-with-constrained-height-expected.txt:
        * platform/qt/fast/overflow/position-fixed-transform-clipping-expected.txt:
        * platform/qt/fast/table/height-percent-test-expected.txt:
        * platform/qt/fast/table/wide-colspan-expected.txt:
        * platform/qt/fast/table/wide-column-expected.txt:
        * platform/qt/fast/text/text-letter-spacing-expected.txt:
        * platform/qt/svg/css/stars-with-shadow-expected.txt:
        * platform/qt/tables/mozilla/bugs/bug29314-expected.txt:

2009-11-10  Philippe Normand  <pnormand@igalia.com>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=31047
        [GTK] Failing test media/video-played-ranges-1.html

        * platform/gtk/Skipped: Unskip fixed tests.

2009-11-10  Oliver Hunt  <oliver@apple.com>

        Reviewed by Maciej Stachowiak.

        Rename 3D Canvas related classes to use WebGL prefix
        https://bugs.webkit.org/show_bug.cgi?id=29095

        Update tests to use new WebGL prefixed names

        * fast/canvas/webgl/array-unit-tests-expected.txt:
        * fast/canvas/webgl/array-unit-tests.html:
        * fast/canvas/webgl/gl-get-calls.html:
        * fast/canvas/webgl/resources/utils3d.js:
        (makeBox):
        (makeSphere):
        (doLoadObj):
        * fast/canvas/webgl/triangle.html:
        * fast/dom/Window/window-properties.html:
        * fast/dom/script-tests/constructed-objects-prototypes.js:
        (constructorPropertiesOnWindow):
        * fast/dom/script-tests/prototype-inheritance-2.js:
        (constructorNamesForWindow):
        * fast/dom/script-tests/prototype-inheritance.js:
        * fast/js/script-tests/global-constructors.js:

2009-11-09  Dirk Schulze  <krit@webkit.org>

        Reviewed by Oliver Hunt.

        Test for SVG filter effect feDisplacementMap.

        * platform/mac/svg/filters/feDisplacementMap-expected.checksum: Added.
        * platform/mac/svg/filters/feDisplacementMap-expected.png: Added.
        * platform/mac/svg/filters/feDisplacementMap-expected.txt: Added.
        * svg/filters/feDisplacementMap.svg: Added.

2009-11-03  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Eric Seidel.

        wrong expected images after Bug 8736
        https://bugs.webkit.org/show_bug.cgi?id=31094

        * platform/mac/fast/borders/border-radius-huge-assert-expected.png:
        * platform/mac/fast/box-shadow/border-radius-big-expected.checksum:
        * platform/mac/fast/box-shadow/border-radius-big-expected.png:

2009-11-09  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Oliver Hunt.

        Can cache prototype lookups on uncacheable dictionaries.
        https://bugs.webkit.org/show_bug.cgi?id=31198

        Fixed wrong expectation file committed.

        * fast/js/dictionary-prototype-caching-expected.txt:

2009-11-09  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        Can cache prototype lookups on uncacheable dictionaries.
        https://bugs.webkit.org/show_bug.cgi?id=31198

        Add tests for lookup on uncacheable prototype.

        * fast/js/dictionary-prototype-caching-expected.txt: Added.
        * fast/js/dictionary-prototype-caching.html: Added.
        * fast/js/script-tests/dictionary-prototype-caching.js: Added.
        (protoTest):

2009-11-09  Anders Carlsson  <andersca@apple.com>

        Reviewed by Darin Adler and Dan Bernstein.

        <rdar://problem/7328395>
        https://bugs.webkit.org/show_bug.cgi?id=31277
        
        When an object tag's style changes (for example when child nodes are added/removed),
        reuse its Frame (if it has one) instead of creating multiple Frames.
        
        * fast/dom/HTMLObjectElement/children-changed-expected.txt: Added.
        * fast/dom/HTMLObjectElement/children-changed.html: Added.

2009-11-09  Yael Aharon  <yael.aharon@nokia.com>

        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Allow setting HTTP headers with empty value in XMLHTTPRequest
        https://bugs.webkit.org/show_bug.cgi?id=31140

        Test that XHR request can set http headers with no value.

        * http/tests/xmlhttprequest/xmlhttprequest-setrequestheader-no-value-expected.txt: Added.
        * http/tests/xmlhttprequest/xmlhttprequest-setrequestheader-no-value.html: Added.

2009-11-09  Mark Mentovai  <mark@chromium.org>

        Reviewed by Dan Bernstein.

        rdar://problem/7215132, https://bugs.webkit.org/show_bug.cgi?id=29167
        REGRESSION (r48064): mint.com loses scrollbars after coming out of
        edit mode.

        rdar://problem/7314421, https://bugs.webkit.org/show_bug.cgi?id=30517
        REGRESSION (r48064): Extra scroll bars in GarageBand Lesson Store.

        * fast/overflow/scrollbar-restored-expected.txt: Added.
        * fast/overflow/scrollbar-restored.html: Added.

2009-11-09  Keishi Hattori  <casey.hattori@gmail.com>

        Reviewed by Timothy Hatcher.

        Web Inspector: CSS syntax highlighter doesn't recognize negative numbers
        https://bugs.webkit.org/show_bug.cgi?id=31257

        * inspector/syntax-highlight-css-expected.txt:
        * inspector/syntax-highlight-css.html:

2009-11-09  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Rubber-stamped by Holger Hans Peter Freyther.

        [Qt] Skip new japanese ruby annotation tests because of missing japanese font support.

        * platform/qt/Skipped:

2009-11-09  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed trivial fix.

        Removed previously (r50589) deleted test case from skiplists.

        * platform/gtk/Skipped: fast/events/drag-and-drop-none.html removed.
        * platform/qt/Skipped: fast/events/drag-and-drop-none.html removed.

2009-11-09  Martin Robinson  <martin.james.robinson@gmail.com>

        Reviewed by Jan Alonzo.

        [GTK] Expose Page::tabKeyCyclesThroughElements in the API
        https://bugs.webkit.org/show_bug.cgi?id=30482

        Unskip fast/events/keypress-insert-tab.html as it now passes.

        * platform/gtk/Skipped:

2009-11-05  Jakub Wieczorek  <faw217@gmail.com>

        Reviewed by Holger Freyther.

        [Qt] Add Qt specific result for fast/parser/xml-declaration-missing-ending-mark.html
        https://bugs.webkit.org/show_bug.cgi?id=31192

        Qt is using the QXmlStreamReader to handle XML and it is generating a different
        error string requiring to have a custom result.

        Unskip the test as it is passing now.

        * platform/qt/Skipped:
        * platform/qt/fast/parser/xml-declaration-missing-ending-mark-expected.txt: Added.

2009-11-08  Johnny Ding  <johnnyding.webkit@gmail.com>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=31224
        [V8] Return StyleSheet object instead of HTMLStyleElement w/document.styleSheets named property getter.

        * fast/dom/StyleSheet/get-stylesheet-byname-expected.txt: Added.
        * fast/dom/StyleSheet/get-stylesheet-byname.html: Added.
        * fast/dom/StyleSheet/script-tests: Added.
        * fast/dom/StyleSheet/script-tests/get-stylesheet-byname.js: Added.

2009-11-08  Daniel Bates  <dbates@webkit.org>

        Reviewed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=31098

        Tests that the XSSAuditor prevents loading plugin-based content that is not 
        from the same-origin as the enclosing page.

        * http/tests/security/xssAuditor/object-src-inject-expected.txt: Added.
        * http/tests/security/xssAuditor/object-src-inject.html: Added.
        * http/tests/security/xssAuditor/resources/echo-object-src.pl: Added.

2009-11-08  Shu Chang  <Chang.Shu@nokia.com>

        Reviewed by Holger Freyther.

        Update texts in test description after test case change in r50579.
        https://bugs.webkit.org/show_bug.cgi?id=31122

        * editing/selection/shrink-selection-after-shift-pagedown-expected.txt:
        * editing/selection/shrink-selection-after-shift-pagedown.html:

2009-11-08  Dan Bernstein  <mitz@apple.com>

        Reviewed by Simon Fraser.

        <rdar://problem/7363434> Crash inside RenderObject::localToAbsolute
        below FrameView::layout
        https://bugs.webkit.org/show_bug.cgi?id=31093

        * fast/block/positioning/relative-positioned-inline-container-expected.checksum: Added.
        * fast/block/positioning/relative-positioned-inline-container-expected.png: Added.
        * fast/block/positioning/relative-positioned-inline-container-expected.txt: Added.
        * fast/block/positioning/relative-positioned-inline-container.html: Added.

2009-11-07  Dirk Pranke  <dpranke@chromium.org>

        Reviewed by Darin Adler.

        Add in missing expectations.

        * platform/mac/fast/forms/input-list-button-size-expected.checksum: Added.
        * platform/mac/fast/forms/input-list-button-size-expected.png: Added.
        * platform/mac/fast/forms/select-dirty-parent-pref-widths-expected.png: Added.
        * platform/mac/fast/text/text-letter-spacing-expected.png: Added.

2009-11-06  Anantanarayanan G Iyengar  <ananta@chromium.org>

        Reviewed by Adam Barth.

        Added layout tests to test document.open and window.open calls issued
        by NPAPI plugins without a calling javascript context. The associated
        webkit bug is https://bugs.webkit.org/show_bug.cgi?id=31067, which
        affects Chromium.

        * plugins/document-open-expected.txt: Added.
        * plugins/document-open.html: Added.
        * plugins/window-open-expected.txt: Added.
        * plugins/window-open.html: Added.

2009-11-06  Steve Block  <steveblock@google.com>

        Reviewed by Eric Seidel.

        Geolocation error code UNKNOWN_ERROR is deprecated.
        https://bugs.webkit.org/show_bug.cgi?id=31184

        Update test case of the value of the PositionError.UNKNOWN_ERROR constant in error.html.
        Also remove redundant test cases of the value of all PositionError constants.

        * fast/dom/Geolocation/resources/error.js: Modified. Update test of value of PositionError.UNKNOWN_ERROR constant.
        * fast/dom/Geolocation/error-expected.txt: Modified. Expected result for above test.
        * fast/dom/Geolocation/resources/permission-denied-already-error.js: Modified. Remove tests of the value of PositionError constants.
        * fast/dom/Geolocation/permission-denied-already-error-expected.txt: Modified. Expected result for above test.
        * fast/dom/Geolocation/resources/permission-denied-already-success.js: Modified. Remove tests of the value of PositionError constants.
        * fast/dom/Geolocation/permission-denied-already-success-expected.txt: Modified. Expected result for above test.
        * fast/dom/Geolocation/resources/permission-denied.js: Modified. Remove tests of the value of PositionError constants.
        * fast/dom/Geolocation/permission-denied-expected.txt: Modified. Expected result for above test.
        * fast/dom/Geolocation/resources/permission-denied-stops-watches.js: Modified. Remove tests of the value of PositionError constants.
        * fast/dom/Geolocation/permission-denied-stops-watches-expected.txt: Modified. Expected result for above test.
        * fast/dom/Geolocation/resources/reentrant-error.js: Modified. Remove tests of the value of PositionError constants.
        * fast/dom/Geolocation/reentrant-error-expected.txt: Modified. Expected result for above test.
        * fast/dom/Geolocation/resources/timeout-zero.js: Modified. Remove tests of the value of PositionError constants.
        * fast/dom/Geolocation/timeout-zero-expected.txt: Modified. Expected result for above test.
        * fast/dom/Geolocation/resources/watch.js: Modified. Remove tests of the value of PositionError constants.
        * fast/dom/Geolocation/watch-expected.txt: Modified. Expected result for above test.

2009-11-04  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Darin Adler.

        css2.1/t040304-c64-uri-00-a-g.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=23271

        This test isn't failing now because this test was fixed in
        http://trac.webkit.org/changeset/47884

        * platform/mac/css2.1/t040304-c64-uri-00-a-g-expected.checksum:
        * platform/mac/css2.1/t040304-c64-uri-00-a-g-expected.png:

2009-11-05  Daniel Bates  <dbates@webkit.org>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=31193

        Removed obsolete test case which was included in the patch for bug #30107.
        This test case is already covered by the test case fast/events/drag-and-drop.html,
        which was included in the patch for bug #24731.

        * fast/events/drag-and-drop-none-expected.txt: Removed.
        * fast/events/drag-and-drop-none.html: Removed.
        * platform/win/Skipped: Removed entry for drag-and-drop-none.html.

2009-11-05  Adam Barth  <abarth@webkit.org>

        Reviewed by Sam Weinig.

        Cross-domain access to stylesheet text should not be allowed
        https://bugs.webkit.org/show_bug.cgi?id=20527

        Test that a script cannot read cross-origin cssRules.

        * http/tests/security/cannot-read-cssrules-expected.txt: Added.
        * http/tests/security/cannot-read-cssrules-redirect-expected.txt: Added.
        * http/tests/security/cannot-read-cssrules-redirect.html: Added.
        * http/tests/security/cannot-read-cssrules.html: Added.

2009-11-05  Alice Liu  <alice.liu@apple.com>

        Adding a resource that seems to be missing.  Without it, several tests in
        fast/dom/beforeload aren't really testing if the default event handling is
        prevented, but instead are only testing if the beforeload event fires. 

        Rubber-stamped by Gavin Barraclough.

        * fast/dom/beforeload/resources/fail.js: Added.

2009-11-05  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Web Inspector: beautify layout tests.

        https://bugs.webkit.org/show_bug.cgi?id=31189

        * inspector/console-dir-expected.txt:
        * inspector/console-dir.html:
        * inspector/console-dirxml-expected.txt:
        * inspector/console-dirxml.html:
        * inspector/console-format-collections-expected.txt:
        * inspector/console-format-collections.html:
        * inspector/console-format-expected.txt:
        * inspector/console-format.html:
        * inspector/console-tests-expected.txt:
        * inspector/console-tests.html:
        * inspector/console-tests.js: Added.
        (dumpConsoleMessages.callback):
        (dumpConsoleMessages):
        (dumpConsoleMessagesWithClasses.callback):
        (dumpConsoleMessagesWithClasses):
        (frontendScript_dumpConsoleMessages):
        * inspector/css-syntax-highlight.html: Removed.
        * inspector/elements-panel-structure-expected.txt:
        * inspector/elements-panel-structure.html:
        * inspector/elements-tests.js: Added.
        (frontendScript_expandDOMSubtree.processChildren):
        (frontendScript_expandDOMSubtree):
        * inspector/evaluate-in-frontend.html:
        * inspector/evaluate-in-frontend.js: Removed.
        * inspector/inspector-test.js: Added.
        ():
        (evaluateInWebInspector):
        (notifyDone):
        (output):
        (window.didEvaluateForTestInFrontend):
        * inspector/javascript-syntax-highlight.html: Removed.
        * inspector/styles-iframe.html:
        * inspector/syntax-highlight-css-expected.txt: Renamed from LayoutTests/inspector/css-syntax-highlight-expected.txt.
        * inspector/syntax-highlight-css.html: Added.
        * inspector/syntax-highlight-javascript-expected.txt: Renamed from LayoutTests/inspector/javascript-syntax-highlight-expected.txt.
        * inspector/syntax-highlight-javascript.html: Added.
        * inspector/syntax-highlight.js: Added.
        (doit.callback):
        (doit):
        (frontendScript_dumpSyntaxHighlight):
        * inspector/timeline-trivial.html:
        * platform/qt/Skipped:

2009-11-05  Shu Chang  <Chang.Shu@nokia.com>

        Reviewed by Adele Peterson.

        The number of selected lines in textarea after a shift-PageDown
        may differ. The test case is modified so that it will not depend
        on the exact number of lines selected. This should resolve regression
        on platforms like Qt and GTK.
        https://bugs.webkit.org/show_bug.cgi?id=31122

        * editing/selection/shrink-selection-after-shift-pagedown.html:

2009-11-05  Pavel Feldman  <pfeldman@chromium.org>

        Not reviewed: empty line in expectations build fix.

        * fast/events/event-listener-map-rehash-crash-expected.txt:

i2009-11-05  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        REGRESSION: Web Inspector doesn't show CSS rules properly for iframes

        https://bugs.webkit.org/show_bug.cgi?id=30884

        * inspector/console-dir.html:
        * inspector/console-dirxml.html:
        * inspector/console-format-collections-expected.txt:
        * inspector/console-format-collections.html:
        * inspector/console-format.html:
        * inspector/console-tests.html:
        * inspector/elements-panel-structure-expected.txt:
        * inspector/elements-panel-structure.html:
        * inspector/evaluate-in-frontend.js:
        ():
        (expandDOMSubtree.processChildren):
        (expandDOMSubtree):
        (dumpConsoleMessages):
        * inspector/resources/styles-iframe-data.html: Added.
        * inspector/styles-iframe-expected.txt: Added.
        * inspector/styles-iframe.html: Added.
        * platform/qt/Skipped:

2009-11-05  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Geoffrey Garen.

        Rehashing of EventListenerMap leads to loss of EvenListenerList.
        https://bugs.webkit.org/show_bug.cgi?id=31027

        * fast/events/event-listener-map-rehash-crash.html: Added.

2009-11-05  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Adam Roben.

        Add ruby tests and failing accessibility test to Windows Skipped list,
        we should be able to re-add ruby tests, but not sure the correct course
        of action yet.

        * platform/win/Skipped:

2009-11-05  Jian Li  <jianli@chromium.org>

        Reviewed by Dmitri Titov.

        Tests the drag event bubbling on different targets:
        - iframe with invalid source
        - iframe with valid source
        - non-iframe droppable element
        https://bugs.webkit.org/show_bug.cgi?id=30469

        * http/tests/misc/bubble-drag-events-expected.txt: Added.
        * http/tests/misc/bubble-drag-events.html: Added.

2009-11-05  Jeff Schiller  <codedread@gmail.com>

        Reviewed by Simon Fraser.

        Added test to ensure proper order of matrix multiplication with SVGMatrix.
        https://bugs.webkit.org/show_bug.cgi?id=16062

        * svg/dom/SVGMatrix-interface-expected.txt: Added.
        * svg/dom/SVGMatrix-interface.xhtml: Added.

2009-11-03  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Adele Peterson.

        https://bugs.webkit.org/show_bug.cgi?id=25439
        Deleting when in front of a block image removes character from previous paragraph

        * editing/deleting/delete-before-block-image-1-expected.txt: Added.
        * editing/deleting/delete-before-block-image-1.html: Added.
        * editing/deleting/delete-before-block-image-2-expected.txt: Added.
        * editing/deleting/delete-before-block-image-2.html: Added.
        * editing/deleting/delete-before-block-table-expected.txt: Added.
        * editing/deleting/delete-before-block-table.html: Added.

2009-11-04  Enrica Casucci  <enrica@apple.com>

        Reviewed by Adele Peterson.

        Hang in Mail on attempting to change indent level
        <rdar://problem/7131805>
        https://bugs.webkit.org/show_bug.cgi?id=31127
        
        Added test to cover all the different code paths.

        * editing/execCommand/outdent-multiparagraph-list-expected.txt: Added.
        * editing/execCommand/outdent-multiparagraph-list.html: Added.

2009-11-04  Daniel Bates  <dbates@webkit.org>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=30266
        
        Changed data format type from "text" to "text/plain" to pass Chrome tests.

        * fast/events/drag-and-drop-dataTransfer-types-nocrash-expected.txt:
        * fast/events/drag-and-drop-dataTransfer-types-nocrash.html:

2009-11-04  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Beth Dakin.

        Need to implement ARIA role="combobox"
        https://bugs.webkit.org/show_bug.cgi?id=31096

        * accessibility/aria-combobox.html: Added.
        * platform/gtk/Skipped:
        * platform/mac/accessibility/aria-combobox-expected.txt: Added.
        * platform/win/Skipped:

2009-11-04  Csaba Osztrogonác  <ossy@webkit.org>

        Put test into skiplist added in r50489 because
        layoutTestController.showWebInspector() is unimplemented now.

        * platform/qt/Skipped: inspector/timeline-trivial.html added.

2009-11-04  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed rollout.

        Revert r50496 because it broke all layout tests on QtBuildBot.

        * svg/text/resources: Removed.
        * svg/text/resources/text-font-invalid.svg: Removed.
        * svg/text/text-font-invalid-expected.txt: Removed.
        * svg/text/text-font-invalid.html: Removed.

2009-11-03  Roland Steiner  <rolandsteiner@chromium.org>

        Reviewed by Mark Rowe.
        (on IRC)

        add ruby layout tests to the Skipped list on mac, since they somehow cause
        http/tests/security/mixedContent/about-blank-iframe-in-main-frame.html to fail.
        
        no new tests.

        * platform/mac/Skipped:

2009-11-02  Benjamin Poulain  <benjamin.poulain@nokia.com>

        Reviewed by Simon Hausmann.

        Add a new test to reproduce 29856. The bug only happen
        when the SVG file is used as an image.
        https://bugs.webkit.org/show_bug.cgi?id=29856

        * svg/text/text-font-invalid-expected.txt: Added.
        * svg/text/resources/text-font-invalid.svg: Added.
        * svg/text/text-font-invalid.html: Added.

2009-11-04  Roland Steiner  <rolandsteiner@chromium.org>

        Reviewed by Dave Hyatt.

        Bug 28420 -  Implement HTML5 <ruby> rendering
        (https://bugs.webkit.org/show_bug.cgi?id=28420)

        First rudimentary implementation of HTML5 ruby rendering support - layout tests.

        New layout tests: basic rendering:
        * fast/ruby/ruby-empty-rt.html: Added.
        * fast/ruby/ruby-length.html: Added.
        * fast/ruby/ruby-run-break.html: Added.
        * fast/ruby/ruby-runs-spans.html: Added.
        * fast/ruby/ruby-runs.html: Added.
        * fast/ruby/ruby-simple-rp.html: Added.
        * fast/ruby/ruby-simple.html: Added.
        * fast/ruby/ruby-trailing.html: Added.
        
        New layout tests: DOM manipulation within <ruby>
        * fast/ruby/rubyDOM-insert-rt.html: Added.
        * fast/ruby/rubyDOM-insert-text1.html: Added.
        * fast/ruby/rubyDOM-insert-text2.html: Added.
        * fast/ruby/rubyDOM-insert-text3.html: Added.
        * fast/ruby/rubyDOM-remove-rt1.html: Added.
        * fast/ruby/rubyDOM-remove-rt2.html: Added.
        * fast/ruby/rubyDOM-remove-text1.html: Added.
        * fast/ruby/rubyDOM-remove-text2.html: Added.
        
        New layout tests results:
        * platform/mac/fast/ruby: Added.
        * platform/mac/fast/ruby/ruby-empty-rt-expected.checksum: Added.
        * platform/mac/fast/ruby/ruby-empty-rt-expected.png: Added.
        * platform/mac/fast/ruby/ruby-empty-rt-expected.txt: Added.
        * platform/mac/fast/ruby/ruby-length-expected.checksum: Added.
        * platform/mac/fast/ruby/ruby-length-expected.png: Added.
        * platform/mac/fast/ruby/ruby-length-expected.txt: Added.
        * platform/mac/fast/ruby/ruby-run-break-expected.checksum: Added.
        * platform/mac/fast/ruby/ruby-run-break-expected.png: Added.
        * platform/mac/fast/ruby/ruby-run-break-expected.txt: Added.
        * platform/mac/fast/ruby/ruby-runs-expected.checksum: Added.
        * platform/mac/fast/ruby/ruby-runs-expected.png: Added.
        * platform/mac/fast/ruby/ruby-runs-expected.txt: Added.
        * platform/mac/fast/ruby/ruby-runs-spans-expected.checksum: Added.
        * platform/mac/fast/ruby/ruby-runs-spans-expected.png: Added.
        * platform/mac/fast/ruby/ruby-runs-spans-expected.txt: Added.
        * platform/mac/fast/ruby/ruby-simple-expected.checksum: Added.
        * platform/mac/fast/ruby/ruby-simple-expected.png: Added.
        * platform/mac/fast/ruby/ruby-simple-expected.txt: Added.
        * platform/mac/fast/ruby/ruby-simple-rp-expected.checksum: Added.
        * platform/mac/fast/ruby/ruby-simple-rp-expected.png: Added.
        * platform/mac/fast/ruby/ruby-simple-rp-expected.txt: Added.
        * platform/mac/fast/ruby/ruby-trailing-expected.checksum: Added.
        * platform/mac/fast/ruby/ruby-trailing-expected.png: Added.
        * platform/mac/fast/ruby/ruby-trailing-expected.txt: Added.
        * platform/mac/fast/ruby/rubyDOM-insert-rt-expected.checksum: Added.
        * platform/mac/fast/ruby/rubyDOM-insert-rt-expected.png: Added.
        * platform/mac/fast/ruby/rubyDOM-insert-rt-expected.txt: Added.
        * platform/mac/fast/ruby/rubyDOM-insert-text1-expected.checksum: Added.
        * platform/mac/fast/ruby/rubyDOM-insert-text1-expected.png: Added.
        * platform/mac/fast/ruby/rubyDOM-insert-text1-expected.txt: Added.
        * platform/mac/fast/ruby/rubyDOM-insert-text2-expected.checksum: Added.
        * platform/mac/fast/ruby/rubyDOM-insert-text2-expected.png: Added.
        * platform/mac/fast/ruby/rubyDOM-insert-text2-expected.txt: Added.
        * platform/mac/fast/ruby/rubyDOM-insert-text3-expected.checksum: Added.
        * platform/mac/fast/ruby/rubyDOM-insert-text3-expected.png: Added.
        * platform/mac/fast/ruby/rubyDOM-insert-text3-expected.txt: Added.
        * platform/mac/fast/ruby/rubyDOM-remove-rt1-expected.checksum: Added.
        * platform/mac/fast/ruby/rubyDOM-remove-rt1-expected.png: Added.
        * platform/mac/fast/ruby/rubyDOM-remove-rt1-expected.txt: Added.
        * platform/mac/fast/ruby/rubyDOM-remove-rt2-expected.checksum: Added.
        * platform/mac/fast/ruby/rubyDOM-remove-rt2-expected.png: Added.
        * platform/mac/fast/ruby/rubyDOM-remove-rt2-expected.txt: Added.
        * platform/mac/fast/ruby/rubyDOM-remove-text1-expected.checksum: Added.
        * platform/mac/fast/ruby/rubyDOM-remove-text1-expected.png: Added.
        * platform/mac/fast/ruby/rubyDOM-remove-text1-expected.txt: Added.
        * platform/mac/fast/ruby/rubyDOM-remove-text2-expected.checksum: Added.
        * platform/mac/fast/ruby/rubyDOM-remove-text2-expected.png: Added.
        * platform/mac/fast/ruby/rubyDOM-remove-text2-expected.txt: Added.

2009-11-03  Kenneth Russell  <kbr@google.com>

        Reviewed by Oliver Hunt.

        Add overridePreference call to all WebGL layout tests
        https://bugs.webkit.org/show_bug.cgi?id=31088

        * fast/canvas/webgl/array-unit-tests.html:
        * fast/canvas/webgl/getActiveTest.html:
        * fast/canvas/webgl/gl-get-calls.html:
        * fast/canvas/webgl/incorrect-context-object-behaviour.html:
        * fast/canvas/webgl/null-object-behaviour.html:
        * fast/canvas/webgl/resources/shader-test.js: Removed.
        * fast/canvas/webgl/resources/webgl-test.js: Copied from LayoutTests/fast/canvas/webgl/resources/shader-test.js.

2009-11-03  Eric Z. Ayers  <zundel@google.com>

        Reviewed by Timothy Hatcher.

        Adds a test for turning on the timeline profiler.  This caused
        a crash because profiling was enabled in the middle of processing
        an event.

        https://bugs.webkit.org/show_bug.cgi?id=31080

        * inspector/timeline-trivial-expected.txt: Added.
        * inspector/timeline-trivial.html: Added.

2009-11-03  Bradley Green  <brg@chromium.org>

        Reviewed by Dmitry Titov.

        Updating test expectations for implementation of
        window.navigator.registerProtocolHandler and
        window.navigator.registerContentHandler.

        There is a default implimentation for these APIs, hence all platforms
        with the navigator-detached-no-crash-expect and
        window-properties-expected tests needed to be updated.  While
        isolatedWorlds has a window-properties-expected test, it has no window
        object and hence does not need to be updaetd.

        We add two fast/dom tests to insure that the proper exceptions are
        thrown when bad syntax or security violations are made by calling the
        methods.

        * fast/dom/Window/window-properties-expected.txt:
        * fast/dom/navigator-detached-no-crash-expected.txt:
        * fast/dom/navigator-detached-no-crash.html:
        * fast/dom/registerContentHandler-expected.txt: Added.
        * fast/dom/registerContentHandler.html: Added.
        * fast/dom/registerProtocolHandler-expected.txt: Added.
        * fast/dom/registerProtocolHandler.html: Added.
        * platform/gtk/fast/dom/Window/window-properties-expected.txt:
        * platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt:
        * platform/mac-leopard/fast/dom/navigator-detached-no-crash-expected.txt:

2009-11-03  Dan Bernstein  <mitz@apple.com>

        Reviewed by Anders Carlsson and Beth Dakin.

        https://bugs.webkit.org/show_bug.cgi?id=31070
        Test for <rdar://problem/7194735> Crashes at RenderText::RenderText()
        Test for <rdar://problem/6937089> Crashes at RenderWidget::destroy()

        * plugins/attach-during-destroy-expected.txt: Added.
        * plugins/attach-during-destroy.html: Added.
        * plugins/destroy-reentry-expected.txt: Added.
        * plugins/destroy-reentry.html: Added.

2009-11-03  Evan Martin  <evan@chromium.org>

        Reviewed by Darin Adler.

        A test that reproduces a hard-to-trigger memory corruption in the
        CSS lexer.

        https://bugs.webkit.org/show_bug.cgi?id=30827

        * fast/css/end-of-buffer-crash.html: Added.

2009-11-02  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        Crash due to double-destroy related to CSS run-in property
        https://bugs.webkit.org/show_bug.cgi?id=31034
        rdar://problem/7328458

        * fast/css/run-in-crash-expected.txt: Added.
        * fast/css/run-in-crash.html: Added.

2009-11-03  Victor Wang  <victorw@chromium.org>

        Reviewed by Eric Seidel.

        "http://trac.webkit.org/changeset/50315" makes links mouse
        focusable only on GTK and QT, so win has same behavior as mac now
        Remove the win specific expected results for tests failed
        due to the patch.

        https://bugs.webkit.org/show_bug.cgi?id=30968

        * platform/win/fast/events/click-focus-anchor-expected.txt: Removed.
        * platform/win/fast/inline: Removed.
        * platform/win/fast/inline/dirtyLinesForInline-expected.txt: Removed.

2009-11-03  Csaba Osztrogonác  <ossy@webkit.org>

        Add files to skiplist depend on phonon support,
        which is disabled on the Qt buildbot for now.

        * platform/qt/Skipped:

2009-11-03  Csaba Osztrogonác  <ossy@webkit.org>

        Rubber-stamped by Tor Arne Vestbø.

        Remove now passing tests from skiplist.

        * platform/qt/Skipped:

2009-11-03  Csaba Osztrogonác  <ossy@webkit.org>

        Put test into skiplist added in r50411 because
        layoutTestController.showWebInspector() is unimplemented now.

        * platform/qt/Skipped: inspector/css-syntax-highlight.html added

2009-11-02  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        REGRESSION (r48573): JSC may incorrectly cache chain lookups with a dictionary at the head of the chain
        https://bugs.webkit.org/show_bug.cgi?id=31045

        Add tests for dictionary at the head of a prototype chain.

        * fast/js/script-tests/dictionary-no-cache.js:
        * fast/js/dictionary-no-cache-expected.txt:

2009-11-02  Enrica Casucci  <enrica@apple.com>

        Reviewed by Adele Peterson and Dan Bernstein.

        Safari crashes when calling execCommand on formatted html in special case
        <rdar://problem/7318656>
        https://bugs.webkit.org/show_bug.cgi?id=31023

        * editing/execCommand/align-in-span-expected.txt: Added.
        * editing/execCommand/align-in-span.html: Added.

2009-11-02  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Oliver Hunt.

        Revised tests for changes to when exceptions are raised in WebGL content
        https://bugs.webkit.org/show_bug.cgi?id=31005

        * fast/canvas/webgl/incorrect-context-object-behaviour-expected.txt:
        * fast/canvas/webgl/null-object-behaviour-expected.txt:
        * fast/canvas/webgl/script-tests/incorrect-context-object-behaviour.js:
        * fast/canvas/webgl/script-tests/null-object-behaviour.js:

2009-11-02  Philippe Normand  <pnormand@igalia.com>

        Reviewed by Jan Alonzo.

        [GTK] Failing media/video-played-reset.html
        https://bugs.webkit.org/show_bug.cgi?id=30589

        * platform/gtk/Skipped: Unskip fixed test.

2009-11-02  Andrew Scherkus  <scherkus@chromium.org>

        Reviewed by Eric Carlson.

        Increase the timeout of media/video-currentTime-set.html from 800ms to 2000ms.

        Also fix call to logResult() as parameters were reversed, resulting in
        printing an error message of "false".

        https://bugs.webkit.org/show_bug.cgi?id=31017

        * media/video-currentTime-set.html: Timeout increased to 2000ms.

2009-10-30  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=30969
        A no-prefix XPath node test should not match no-namespace elements in HTML document

        * fast/xpath/null-namespace-in-html-expected.txt: Added.
        * fast/xpath/null-namespace-in-html.html: Added.

2009-11-02  Keishi Hattori  <casey.hattori@gmail.com>

        Reviewed by Timothy Hatcher.

        Web Inspector: Rewrite CSSSourceSyntaxHighlighter so it shares more code
        https://bugs.webkit.org/show_bug.cgi?id=30907

        * inspector/css-syntax-highlight-expected.txt: Added.
        * inspector/css-syntax-highlight.html: Added.
        * inspector/javascript-syntax-highlight-expected.txt:

2009-11-02  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Beth Dakin.

        Support ARIA "tab" roles
        https://bugs.webkit.org/show_bug.cgi?id=30842

        * accessibility/aria-controls-with-tabs-expected.txt: Added.
        * accessibility/aria-controls-with-tabs.html: Added.
        * accessibility/aria-tab-roles.html: Added.
        * platform/gtk/Skipped:
        * platform/mac/accessibility/aria-tab-roles-expected.txt: Added.
        * platform/win/Skipped:

2009-11-02  Roland Steiner  <rolandsteiner@chromium.org>

        Reviewed by Dave Hyatt.

        Bug 28420 -  Implement HTML5 <ruby> rendering
        (https://bugs.webkit.org/show_bug.cgi?id=28420)

        First rudimentary implementation of HTML5 ruby rendering support.

        Further layout tests will be committed in a follow-up patch under fast/ruby.

        * fast/ruby/parse-rp-expected.txt: result changed due to <rt> being rendered as block within <ruby>

2009-11-01  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Dan Bernstein.

        https://bugs.webkit.org/show_bug.cgi?id=30992
        Node.isDefaultNamespace doesn't convert empty strings to null

        * fast/dom/Node/default-namespace-empty-argument-expected.txt: Added.
        * fast/dom/Node/default-namespace-empty-argument.html: Added.

2009-11-01  Yael Aharon  <yael.aharon@nokia.com>

        Reviewed by Darin Adler.

        Don't add '/' to the URL path if the it does not include '/' after the protocol component
        https://bugs.webkit.org/show_bug.cgi?id=30971

        Updating the expected result to reflect the change.

        * fast/loader/url-parse-1-expected.txt:

2009-10-31  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by John Sullivan.

        https://bugs.webkit.org/show_bug.cgi?id=30982
        createHTMLDocument doesn't escape ampersand and less-than in title

        * fast/dom/DOMImplementation/createHTMLDocument-title-expected.txt: Added.
        * fast/dom/DOMImplementation/createHTMLDocument-title.html: Added.

2009-11-01  Hironori Bono  <hbono@chromium.org>

        Reviewed by Darin Adler.

        Bug 30902: Need a layout test for Bug 28284
        This change just adds a simple test that calls TextInputController.firstRectForCharacterRange()
        before and after inserting a Thai character and compare their results.
        https://bugs.webkit.org/show_bug.cgi?id=30902

        * fast/text/international/thai-cursor-position-expected.txt: Added.
        * fast/text/international/thai-cursor-position.html: Added.
        * platform/gtk/Skipped: Skip this test because TextInputController is not implemented.
        * platform/qt/Skipped: ditto.
        * platform/win/Skipped: ditto.

2009-11-01  Yuta Kitamura  <yutak@chromium.org>

        Reviewed by Darin Adler.

        Fix assertion falure in RenderObjectChildList::updateBeforeAfterContent().

        [Crash (debug)] Combination of list-item and :after causes assertion failure
        https://bugs.webkit.org/show_bug.cgi?id=30944

        * fast/css/list-item-pseudo-nocrash-expected.txt: Added.
        * fast/css/list-item-pseudo-nocrash.html: Added.

2009-11-01  Philippe Normand  <pnormand@igalia.com>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=30586
        [GTK] Failing test media/video-src-empty.html

        * platform/gtk/Skipped: Unskip fixed test.

2009-10-31  Oliver Hunt  <oliver@apple.com>

        Reviewed by Jon Honeycutt.

        WebGL allows objects to be used with the wrong context
        https://bugs.webkit.org/show_bug.cgi?id=30981

        Add tests for null/missing object parameters and objects being used
        on the wrong context.

        * fast/canvas/webgl/incorrect-context-object-behaviour-expected.txt: Added.
        * fast/canvas/webgl/incorrect-context-object-behaviour.html: Added.
        * fast/canvas/webgl/null-object-behaviour-expected.txt: Added.
        * fast/canvas/webgl/null-object-behaviour.html: Added.
        * fast/canvas/webgl/resources/shader-test.js:
        (loadStandardProgram):
        (loadStandardVertexShader):
        (loadStandardFragmentShader):
        * fast/canvas/webgl/script-tests/incorrect-context-object-behaviour.js: Added.
        * fast/canvas/webgl/script-tests/null-object-behaviour.js: Added.

2009-10-30  Enrica Casucci  <enrica@apple.com>

        Reviewed by Darin Adler.

        REGRESSION: In Mail, Undo does not restore some characters I have deleted at the end of a line
        https://bugs.webkit.org/show_bug.cgi?id=30955
        <rdar://problem/7067033>
        
        * editing/undo/undo-deleteWord-expected.txt: Added.
        * editing/undo/undo-deleteWord.html: Added.

2009-10-29  Jon Honeycutt  <jhoneycutt@apple.com>

        Test for MSAA: Accessibility of headings is not correct

        https://bugs.webkit.org/show_bug.cgi?id=30937

        Reviewed by Adam Roben.

        * platform/win/accessibility/heading-elements-expected.txt: Added.
        * platform/win/accessibility/heading-elements.html: Added.

2009-10-29  Jon Honeycutt  <jhoneycutt@apple.com>

        Test for MSAA: Accessibility of links is wrong

        https://bugs.webkit.org/show_bug.cgi?id=30928

        Reviewed by Darin Adler.

        * platform/win/accessibility/linked-elements-expected.txt: Added.
        * platform/win/accessibility/linked-elements.html: Added.

2009-10-30  Ben Murdoch  <benm@google.com>

        Reviewed by David Kilzer.

        openDatabase() with empty version sets db version up incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=28417

        * storage/open-database-set-empty-version-expected.txt: Added.
        * storage/open-database-set-empty-version.html: Added.

2009-10-30  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Darin Adler.

        counterValueForElementById should return space-separated string for multiple counters
        https://bugs.webkit.org/show_bug.cgi?id=30939

        * fast/css/counters/counterValueForElementById-expected.txt: Added.
        * fast/css/counters/counterValueForElementById.html: Added.

2009-10-30  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Mark Rowe.

        fast/css/counters/t1204* are not asynchronous anymore
        https://bugs.webkit.org/show_bug.cgi?id=30940

        * fast/css/counters/t1204-increment-00-c-o.html:
        * fast/css/counters/t1204-increment-01-c-o.html:

2009-10-30  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Unreviewed layout test fixes.

        The existing excepted results were wrong, due to the visited links not
        being reset between tests.

        This was fixed in r50329, so updating the results.

        * platform/qt/fast/block/margin-collapse/block-inside-inline/010-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/011-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/012-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/015-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/016-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/020-expected.txt:

2009-10-30  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Holger Hans Peter Freyther.

        [Qt] Add expected files for new svg tests we pass.
        Compared to the Mac expected png files.

        * platform/qt/svg/css/arrow-with-shadow-expected.txt: Added.
        * platform/qt/svg/css/circle-in-mask-with-shadow-expected.txt: Added.
        * platform/qt/svg/css/clippath-with-shadow-expected.txt: Added.
        * platform/qt/svg/css/mask-with-shadow-expected.txt: Added.
        * platform/qt/svg/css/path-with-shadow-expected.txt: Added.
        * platform/qt/svg/css/stars-with-shadow-expected.txt: Added.
        * platform/qt/svg/filters/shadow-on-filter-expected.txt: Added.
        * platform/qt/svg/filters/shadow-on-rect-with-filter-expected.txt: Added.

2009-10-30  Yury Semikhatsky  <yurys@chromium.org>

        Reviewed by Pavel Feldman.

        Test that browser doesn't crash in case of stack overflow
        inside console.log()

        https://bugs.webkit.org/show_bug.cgi?id=30904

        * fast/dom/console-log-stack-overflow-expected.txt: Added.
        * fast/dom/console-log-stack-overflow.html: Added.

2009-10-30  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        Regression: crash enumerating properties of an object with getters or setters
        https://bugs.webkit.org/show_bug.cgi?id=30948

        Add test for enumerating getters and setters.

        * fast/js/for-in-cached-expected.txt:
        * fast/js/script-tests/for-in-cached.js:
        (forIn5):

2009-10-29  Erik Arvidsson  <arv@chromium.org>

        Reviewed by Eric Seidel.

        Make links mouse focusable only on GTK and QT.

        Links are now always mouse focusable on GTK and QT. On other platforms
        the link needs a tabIndex or it needs to be contentEditable.

        https://bugs.webkit.org/show_bug.cgi?id=26856

        * fast/events/click-focus-anchor-expected.txt:
        * fast/events/click-focus-anchor.html:
        * platform/gtk/fast/events/click-focus-anchor-expected.txt: Added.
        * platform/mac/fast/events/click-focus-anchor-expected.txt: Removed.
        * platform/qt/fast/events/click-focus-anchor-expected.txt: Added.

2009-10-29  Jonathan Dixon  <joth@chromium.org>

        Reviewed by Eric Seidel.

        Add expected files for GTK and QT builds, for test text-input-webkit-radius.html
        Expected fils collected from buildbot:
        http://build.webkit.org/results/Qt%20Linux%20Release/r50286%20(3257)/fast/css/
        http://build.webkit.org/results/GTK%20Linux%20Release/r50286%20(5308)/fast/css/

        * platform/gtk/fast/css/text-input-with-webkit-border-radius-expected.txt: Added.
        * platform/qt/fast/css/text-input-with-webkit-border-radius-expected.txt: Added.

2009-10-29  Dan Bernstein  <mitz@apple.com>

        Updated Tiger-specific result now that Tiger matches current behavior. A Tiger-specific
        result is still needed because of the difference in Thai fonts.

        * platform/mac-tiger/fast/text/atsui-multiple-renderers-expected.txt:

2009-10-29  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        Updated a test to account for font metric differences between Mac OS X versions. Removed
        Leopard-specific results for another test now that Leopard matches current behavior.

        * platform/mac-leopard/fast/text/atsui-multiple-renderers-expected.checksum: Removed.
        * platform/mac-leopard/fast/text/atsui-multiple-renderers-expected.png: Removed.
        * platform/mac-leopard/fast/text/atsui-multiple-renderers-expected.txt: Removed.
        * platform/mac/fast/text/ligature-subdivision-expected.txt:
        * platform/mac/fast/text/script-tests/ligature-subdivision.js:

2009-10-29  Enrica Casucci  <enrica@apple.com>

        REGRESSION(3.2.3 - 4.0.2): Message composing: when I undo a color change to text in Mail, undo/redo behaves strangely
        <rdar://problem/7115041>
        https://bugs.webkit.org/show_bug.cgi?id=30892

        * editing/undo/redo-style-expected.txt: Added.
        * editing/undo/redo-style.html: Added.

2009-10-29  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Darin Adler.

        fast/css/counters/invalidate-cached-counter-node can be dumpAsText
        https://bugs.webkit.org/show_bug.cgi?id=30931

        * fast/css/counters/invalidate-cached-counter-node-expected.txt: Added.
        * fast/css/counters/invalidate-cached-counter-node.html:
        * platform/mac/fast/css/counters/invalidate-cached-counter-node-expected.checksum: Removed.
        * platform/mac/fast/css/counters/invalidate-cached-counter-node-expected.png: Removed.
        * platform/mac/fast/css/counters/invalidate-cached-counter-node-expected.txt: Removed.

2009-10-29  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Remove some tests that now pass.

        * platform/qt/Skipped:

2009-10-29  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        Problem editing or selecting text containing ligatures
        https://bugs.webkit.org/show_bug.cgi?id=30025

        * platform/mac/fast/text/ligature-subdivision-expected.txt: Added.
        * platform/mac/fast/text/ligature-subdivision.html: Added.
        * platform/mac/fast/text/script-tests: Added.
        * platform/mac/fast/text/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/js/script-tests/TEMPLATE.html.
        * platform/mac/fast/text/script-tests/ligature-subdivision.js: Added.

2009-10-29  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Reviewed by Oliver Hunt.

        Removed test that passes after implementing the Qt DRT version
        of dumpBackForwardList().

        * platform/qt/Skipped:

2009-10-29  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Rubberstamped by Adam Roben.

        Remove two tests that pass on the buildbot.

        * platform/qt/Skipped:

2009-10-29  Dan Bernstein  <mitz@apple.com>

        Updated expected result for Tiger

        * platform/mac-tiger/fast/text/international/thai-line-breaks-expected.txt:

2009-10-29  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Unreviewed Qt buildbot fix.

        Add some files to skipped that depend on phonon support,
        which is disabled on the Qt buildbot for now.

        * platform/qt/Skipped:

2009-10-29  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Rubberstamped by Adam Roben.

        Remove tests that pass after the change introduced in r50289.

        * platform/qt/Skipped:

2009-10-29  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Steve Falkenburg.

        Windows Release bots are having problems in xmlhttprequest tests, Skipping them temporarily
        to see if this eliminates the problem, and it is a test causing httpd problems.

        * platform/win/Skipped:

2009-10-29  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        Don't run JavaScript URLs in view source mode
        https://bugs.webkit.org/show_bug.cgi?id=30881

        Test that we don't run JavaScript URLs in view source mode.

        This test actually passes before this change.  I don't know how to
        actually run JavaScript URLs in view source frames using DRT, but it's
        possible in an abitrary embedding of WebKit.

        * http/tests/security/view-source-no-javascript-url-expected.txt: Added.
        * http/tests/security/view-source-no-javascript-url.html: Added.

2009-10-28  Dan Bernstein  <mitz@apple.com>

        Removed Leopard-specific result after changing ATSUI missing-glyph behavior to match the
        Core Text and fast code paths' behavior.

        * platform/mac-leopard/fast/text/international/khmer-selection-expected.txt: Removed.

2009-10-28  Andrew Scherkus  <scherkus@chromium.org>

        Reviewed by Eric Carlson.

        Fix video-pause-immediately.html to avoid using setTimeout().

        This also addresses the flakiness on Windows, where 200ms was not enough time to advance the clock past zero.

        https://bugs.webkit.org/show_bug.cgi?id=30889

        * media/video-pause-immediately.html: Replace setTimeout() with timeupdate events.

2009-10-28  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Ada Chan.

        Add accessibility test to the list of Windows Skipped tests.

        * platform/win/Skipped:

2009-10-28  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Jan Alonzo.

        [GTK] API to start inspector for a WebView
        https://bugs.webkit.org/show_bug.cgi?id=22551

        Unskip inspector tests that we are now able to run.

        * platform/gtk/Skipped:

2009-10-28  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Xan Lopez.

        [GTK] Fails new test fast/js/navigator-language.html
        https://bugs.webkit.org/show_bug.cgi?id=30440

        Unskip the test that now passes.

        * platform/gtk/Skipped:

2009-10-28  Jonathan Dixon  <joth@chromium.org>

        Reviewed by Eric Seidel.

        Bug 30547: (Chromium) searchbox not rendered properly due to the css property -webkit-border-radius
        https://bugs.webkit.org/show_bug.cgi?id=30547

        * fast/css/text-input-with-webkit-border-radius-expected.checksum: Added.
        * fast/css/text-input-with-webkit-border-radius-expected.png: Added.
        * fast/css/text-input-with-webkit-border-radius-expected.txt: Added.
        * fast/css/text-input-with-webkit-border-radius.html: Added.

2009-10-27  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Darin Adler.

        Provide a way to get counter values with layoutTestContoller
        https://bugs.webkit.org/show_bug.cgi?id=30555

        Convert two pixel tests to dumpAsText tests using counterValueForElementById.

        * fast/css/counters/t1204-increment-00-c-o-expected.txt: Added.
        * fast/css/counters/t1204-increment-00-c-o.html:
        * fast/css/counters/t1204-increment-01-c-o-expected.txt: Added.
        * fast/css/counters/t1204-increment-01-c-o.html:
        * platform/mac/fast/css/counters/t1204-increment-00-c-o-expected.checksum: Removed.
        * platform/mac/fast/css/counters/t1204-increment-00-c-o-expected.png: Removed.
        * platform/mac/fast/css/counters/t1204-increment-00-c-o-expected.txt: Removed.
        * platform/mac/fast/css/counters/t1204-increment-01-c-o-expected.checksum: Removed.
        * platform/mac/fast/css/counters/t1204-increment-01-c-o-expected.png: Removed.
        * platform/mac/fast/css/counters/t1204-increment-01-c-o-expected.txt: Removed.
        * platform/qt/fast/css/counters/t1204-increment-00-c-o-expected.txt: Removed.
        * platform/qt/fast/css/counters/t1204-increment-01-c-o-expected.txt: Removed.

2009-10-28  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=30841
        <rdar://problem/7342730> WebKit should not pass Referer header through a redirect to a non-secure site

        * http/tests/ssl/referer-301-expected.txt: Added.
        * http/tests/ssl/referer-301.html: Added.
        * http/tests/ssl/referer-303-expected.txt: Added.
        * http/tests/ssl/referer-303.html: Added.
        * http/tests/ssl/resources: Added.
        * http/tests/ssl/resources/referer-301-redir.php: Added.
        * http/tests/ssl/resources/referer-303-redir.php: Added.
        * http/tests/ssl/resources/no-http-referer.cgi: Added.

2009-10-28  Shu Chang  <Chang.Shu@nokia.com>

        Reviewed by Eric Seidel.

        Added special expected test result for Tiger to fix regression tests.
        https://bugs.webkit.org/show_bug.cgi?id=30811

        * platform/mac-tiger/fast/js/navigator-language-expected.txt: Added.

2009-10-28  Csaba Osztrogonác  <ossy@webkit.org>

        Rubber-stamped by Holger Freyther.

        [Qt] Remove http/tests/security tests from
        skiplist, and add only now failing tests.

        * platform/qt/Skipped:

2009-10-28  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Remove http/tests/misc tests from
        skiplist, and add only now failing tests.

        * platform/qt/Skipped:

2009-10-28  Csaba Osztrogonác  <ossy@webkit.org>

        Reviewed by Holger Freyther.

        Put tests into skiplist added in r50168 and r50162 because
        layoutTestController.showWebInspector() is unimplemented now.

        * platform/qt/Skipped:
        inspector/console-format-collections.html added
        inspector/javascript-syntax-highlight.html added

2009-10-27  Dan Bernstein  <mitz@apple.com>

        Rubber-stamped by Sam Weinig.

        Changed this test to use -webkit-box-shadow instead of box-shadow after r49003.

        * fast/box-shadow/inset.html:

2009-10-27  Joseph Pecoraro  <joepeck@webkit.org>

        Reviewed by Pavel Feldman.

        Web Inspector: Move runAfterPendingDispatches to TestController for Clarity
        https://bugs.webkit.org/show_bug.cgi?id=30844

        * inspector/console-format-collections.html: updated to reflect TestController change

2009-10-27  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        WAI-ARIA: add support for 'option' role
        https://bugs.webkit.org/show_bug.cgi?id=30843

        * accessibility/aria-option-role.html: Added.
        * platform/gtk/Skipped:
        * platform/mac/accessibility/aria-option-role-expected.txt: Added.
        * platform/win/Skipped:

2009-10-27  Chris Fleizach  <cfleizach@apple.com>

        No review.

        ARIA menu/menu item need AXRoleDescription
        https://bugs.webkit.org/show_bug.cgi?id=30804

        Layout test fix for Tiger/Leopard.

        * platform/mac-leopard/accessibility/table-with-aria-role-expected.txt:

2009-10-27  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Adele Peterson.

        WAI-ARIA: add support for 'presentation' role
        https://bugs.webkit.org/show_bug.cgi?id=30806

        * accessibility/aria-presentational-role-expected.txt: Added.
        * accessibility/aria-presentational-role.html: Added.

2009-10-27  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        ARIA menu/menu item need AXRoleDescription
        https://bugs.webkit.org/show_bug.cgi?id=30804

        * platform/mac/accessibility/aria-menu-role-descriptions-expected.txt: Added.
        * platform/mac/accessibility/aria-menu-role-descriptions.html: Added.
        * platform/mac/accessibility/table-with-aria-role-expected.txt:

2009-10-27  Steve Block  <steveblock@google.com>

        Reviewed by Darin Adler.

        When a Geolocation method is called, immediately calls the error calback asynchronously if permissions have already been denied.
        https://bugs.webkit.org/show_bug.cgi?id=27944.

        * fast/dom/Geolocation/resources/permission-denied-already-error.js: Added. Tests that when permission has already been denied, the error callback is invoked with code PERMISSION_DENIED, when the Geolocation service reports an error.
        * fast/dom/Geolocation/permission-denied-already-error.html: Added. Wrapper for above test.
        * fast/dom/Geolocation/permission-denied-already-error-expected.txt: Added. Expected result for above test.
        * fast/dom/Geolocation/resources/permission-denied-already-success.js: Added. Tests that when permission has already been denied, the error callback is invoked with code PERMISSION_DENIED, when the Geolocation service has a good position fix.
        * fast/dom/Geolocation/permission-denied-already-success.html: Added. Wrapper for above test.
        * fast/dom/Geolocation/permission-denied-already-success-expected.txt: Added. Expected result for above test.
        * fast/dom/Geolocation/resources/permission-denied.js: Modified. Updates error string.
        * fast/dom/Geolocation/permission-denied-expected.txt: Modified. Expected result for above test.
        * fast/dom/Geolocation/resources/permission-denied-stops-watches.js: Modified. Updates error string.
        * fast/dom/Geolocation/permission-denied-expected-stops-watches.txt: Modified. Expected result for above test.
        * platform/gtk/Skipped: Modified. Adds above tests to skipped list.

2009-10-27  Eric Seidel  <eric@webkit.org>

        Reviewed by Nikolas Zimmermann.

        SVGStyledElement::getPresentationAttribute() can return a shared CSSValue (some SVG tests randomly fail on the bot, and in release builds)
        https://bugs.webkit.org/show_bug.cgi?id=29620

        * svg/dom/getPresentationAttribute-cache-corruption-expected.txt: Added.
        * svg/dom/getPresentationAttribute-cache-corruption.svg: Added.

2009-10-27  Dan Bernstein  <mitz@apple.com>

        Reviewed by Simon Fraser.

        Incomplete repaint of text field in relative positioned inline at imdb.com
        https://bugs.webkit.org/show_bug.cgi?id=30047

        * fast/repaint/inline-relative-positioned-expected.checksum: Added.
        * fast/repaint/inline-relative-positioned-expected.png: Added.
        * fast/repaint/inline-relative-positioned-expected.txt: Added.
        * fast/repaint/inline-relative-positioned.html: Added.

2009-10-27  Kinuko Yasuda  <kinuko@google.com>

        Reviewed by Darin Adler.

        Fixing a test case that yields FAIL results.  Also updating
        the corresponding expected results.
        https://bugs.webkit.org/show_bug.cgi?id=30821

        * storage/domstorage/complex-values-expected.txt:
        * storage/domstorage/script-tests/complex-values.js:

2009-10-27  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Eric Seidel.

        WebKit cannot remove nested bold tags
        https://bugs.webkit.org/show_bug.cgi?id=30784

        Adds two more edge cases to remove-nested-inline-styles.js:
        <b><b><b>12</b></b></b> and <b><b><b>1</b></b>2</b>
        WebKit now passes the one existing test used to fail.

        * editing/style/remove-nested-inline-styles-expected.txt: Added two tests.
        * editing/style/script-tests/remove-nested-inline-styles.js: Added two tests.

2009-10-27  Joseph Pecoraro  <joepeck@webkit.org>

        Reviewed by Timothy Hatcher.

        Web Inspector: Pretty Print all HTML Collection Types like we do for NodeList
        https://bugs.webkit.org/show_bug.cgi?id=30709

        * inspector/console-format-collections-expected.txt: Added.
        * inspector/console-format-collections.html: Added.
        * inspector/evaluate-in-frontend.js: Changed innerHTML to DOM elements instead.

2009-10-27  Adele Peterson  <adele@apple.com>

        Test for <rdar://problem/7269075> REGRESSION (Safari 4.0.3-ToT): After pressing Shift-PageDown, pressing Shift-Up 
        extends the top of the selection upwards (but should shrink the selection instead)
        https://bugs.webkit.org/show_bug.cgi?id=29981

        * editing/selection/shrink-selection-after-shift-pagedown-expected.txt: Added.
        * editing/selection/shrink-selection-after-shift-pagedown.html: Added.

2009-10-27  Keishi Hattori  <casey.hattori@gmail.com>

        Reviewed by Timothy Hatcher.

        Tests for JavaScript syntax highlighter.
        https://bugs.webkit.org/show_bug.cgi?id=27147

        * inspector/javascript-syntax-highlight-expected.txt: Added.
        * inspector/javascript-syntax-highlight.html: Added.

2009-10-27  Xan Lopez  <xlopez@igalia.com>

        Skip a few more tests that are failing on and off.

        * platform/gtk/Skipped:

2009-10-27  Mads Ager  <ager@chromium.org>

        Reviewed by Adam Barth.

        [V8] Missing null check after string conversion in error reporting
        https://bugs.webkit.org/show_bug.cgi?id=30774

        Test case for toString conversion failure on an error object in
        stack overflow situations.  Test passes if it doesn't crash.
        
        * fast/dom/error-to-string-stack-overflow-expected.txt: Added.
        * fast/dom/error-to-string-stack-overflow.html: Added.

2009-10-27  Brady Eidson  <beidson@apple.com>

        Rubberstamped by Sam Weinig.

        Re-enable the check that disallows pages with unload handlers in the page cache.

        <rdar://problem/7196485> and http://webkit.org/b/29021 

        * platform/mac/Skipped:
        * platform/win/Skipped:

2009-10-27  Xan Lopez  <xlopez@igalia.com>

        Another typo.

        * platform/gtk/Skipped:

2009-10-27  Xan Lopez  <xlopez@igalia.com>

        Fix typo in test names.

        * platform/gtk/Skipped:

2009-10-27  Xan Lopez  <xlopez@igalia.com>

        Skip a few tests with links to their tracking bugs.

        * platform/gtk/Skipped:

2009-10-26  Daniel Bates  <dbates@webkit.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=30491

        Test that the <isindex> element can be submitted without being enclosed
        within a <form> element. Also tests that the href property of the <base>
        element can be used to direct where the submission is sent.

        * http/tests/misc/isindex-with-no-form-base-href-expected.txt: Added.
        * http/tests/misc/isindex-with-no-form-base-href.html: Added.
        * http/tests/misc/isindex-with-no-form-expected.txt: Added.
        * http/tests/misc/isindex-with-no-form.html: Added.
        * http/tests/misc/resources/isindex-with-no-form-base-href-submit.html: Added.
        * http/tests/misc/resources/isindex-with-no-form-base-href.html: Added.

2009-10-26  Brian Weinstein  <bweinstein@apple.com>

        Unreviewed - Updating getComputedStyle results for Windows.

        Updating getComputedStyle results for Windows.

        * platform/win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:

2009-10-26  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/7289467> and http://webkit.org/b/30798 - REGRESSION (r48687): www.myuhc.com doesn't load.

        * fast/loader/grandparent-completion-starts-redirect-expected.txt: Added.
        * fast/loader/grandparent-completion-starts-redirect.html: Added.
        * fast/loader/resources/meta-redirect-to-notify-done.html: Added.
        * fast/loader/resources/parent-of-redirect.html: Added.

2009-10-26  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        Use -webkit-background-size as the transition property in this test now
        that it is distinct from background-size.

        * transitions/multiple-background-size-transitions.html:

2009-10-26  Dan Bernstein  <mitz@apple.com>

        Rubber-stamped by Beth Dakin.

        Update expedted results after r50108.

        * svg/css/getComputedStyle-basic-expected.txt:

2009-10-26  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/7308952> and http://webkit.org/b/30424 - REGRESSION (r48687): Pages on ucas.com appear blank.

        * fast/loader/history-forward-in-head-expected.txt: Added.
        * fast/loader/history-forward-in-head.html: Added.

2009-10-26  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=30049
        <rdar://problem/7286002> Manipulating DOM from a script while parsing XHTML can cause a crash

        * fast/parser/remove-current-node-parent-x-2-expected.txt: Added.
        * fast/parser/remove-current-node-parent-x-2.xhtml: Added.
        * fast/parser/remove-current-node-parent-x-expected.txt: Added.
        * fast/parser/remove-current-node-parent-x.xhtml: Added.

2009-10-26  Dan Bernstein  <mitz@apple.com>

        Reviewed by Beth Dakin.

        background-size: X treated as background-size: X X, not background-size: X auto
        https://bugs.webkit.org/show_bug.cgi?id=28440

        * fast/backgrounds/size/parsing-background-size-values-expected.txt:
        * fast/backgrounds/size/parsing-inherit-expected.txt:
        * fast/backgrounds/size/resources/parsing-background-size-values.js:
        (test):
        * fast/backgrounds/size/resources/parsing-inherit.js:
        * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:

2009-10-26  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Geoffrey Garen.

        Test for https://bugs.webkit.org/show_bug.cgi?id=30765
        REGRESSION (r48701): Removing an event listener causes one added after it to not fire

        * fast/events/event-listener-list-mutation-expected.txt: Added.
        * fast/events/event-listener-list-mutation.html: Added.
        * fast/events/script-tests/event-listener-list-mutation.js: Added.
        (TestMutation.listeners):
        (TestMutation.mutateList):

2009-10-26  Xan Lopez  <xlopez@igalia.com>

        Skip test fast/loader/opaque-base-url.html with a reference to the
        bug tracking it, https://bugs.webkit.org/show_bug.cgi?id=30724

        * platform/gtk/Skipped:

2009-10-26  Nate Chapin  <japhet@chromium.org>

        Reviewed by Alexey Proskuryakov.

        Update no-referrer-reset for https://bugs.webkit.org/show_bug.cgi?id=30781.

        * http/tests/navigation/no-referrer-reset-expected.txt: Expect window.opener to still be set.
        * http/tests/navigation/no-referrer-reset.html: Update text to reflect what the test actually does.

2009-10-26  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Eric Seidel.

        Data loss occurs when unbolding nested bold tags.
        https://bugs.webkit.org/show_bug.cgi?id=30083

        Adds a test to make sure WebKit can remove nested b, i, & s tags properly
        without loosing the content of inner elements.

        * editing/style/remove-nested-inline-styles-expected.txt: Added.
        * editing/style/remove-nested-inline-styles.html: Added.
        * editing/style/script-tests/remove-nested-inline-styles.js: Added.
        (removeStyleAndExpect):

2009-10-26  Sam Weinig  <sam@webkit.org>

        Rubber-stamped by Darin Adler.

        Rollout r50041-50043.  The HTML5 spec changed to make HTMLOptionsCollection
        inherit from HTMLCollection.

        * fast/dom/wrapper-classes-expected.txt:

2009-10-26  Rahul Kuchhal  <kuchhal@chromium.org>

        Reviewed by Eric Seidel.

        Prevent crash when optgroup element is empty.

        https://bugs.webkit.org/show_bug.cgi?id=30365

        * fast/forms/select-empty-optgroup-expected.txt: Added.
        * fast/forms/select-empty-optgroup.html: Added.

2009-10-26  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed typo fix.

        * platform/qt/Skipped: shared-workers-close.html replaced with shared-worker-close.html

2009-10-23  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Adam Barth and Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=30723
        <rdar://problem/6189415> Input names added to multipart/form-data headers need to be escaped.

        * http/tests/security/escape-form-data-field-names-expected.txt: Added.
        * http/tests/security/escape-form-data-field-names.html: Added.
        * http/tests/security/resources/escape-form-data-field-names.cgi: Added.

2009-10-26  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt] Skip two flakey tests because of sporadic timeouts.

        * platform/qt/Skipped:

2009-10-26  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt] Skipping two other tests because of missing features on our platform.

        * platform/qt/Skipped:

2009-10-26  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt] Add platform-dependent expected file for test added in r49875.

        * platform/qt/fast/css/getComputedStyle/marginComputedStyle-expected.txt: Added.

2009-10-26  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt] Update outdated expected files which expected wrong color values.

        * platform/qt/fast/block/margin-collapse/block-inside-inline/010-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/011-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/012-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/015-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/016-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/020-expected.txt:

2009-10-26  Keishi Hattori  <casey.hattori@gmail.com>

        Reviewed by Pavel Feldman.

        Fix for Console not showing repeat count when repeatedly logging an Event
        https://bugs.webkit.org/show_bug.cgi?id=30324

        * inspector/console-tests-expected.txt:

2009-10-26  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Eric Seidel.

        Remove HTML5 media element 'load' event
        https://bugs.webkit.org/show_bug.cgi?id=30464
        
        Part 1, change layout tests to not use the event.

        * media/audio-constructor-autobuffer-expected.txt:
        * media/audio-constructor-autobuffer.html:
        * media/audio-constructor-expected.txt:
        * media/audio-constructor-src-expected.txt:
        * media/audio-constructor-src.html:
        * media/audio-constructor.html:
        * media/audio-controls-rendering.html:
        * media/audio-data-url-expected.txt:
        * media/audio-data-url.html:
        * media/audio-mpeg-supported-expected.txt:
        * media/audio-mpeg-supported.html:
        * media/media-load-event-expected.txt:
        * media/media-load-event.html:
        * media/progress-event-expected.txt:
        * media/progress-event-total-expected.txt:
        * media/progress-event-total.html:
        * media/progress-event.html:
        * media/remove-from-document-expected.txt:
        * media/remove-from-document-no-load-expected.txt:
        * media/remove-from-document-no-load.html:
        * media/remove-from-document.html:
        * media/restore-from-page-cache-expected.txt:
        * media/restore-from-page-cache.html:
        * media/video-append-source-expected.txt:
        * media/video-append-source.html:
        * media/video-buffered-expected.txt:
        * media/video-buffered.html:
        * media/video-canvas-source-expected.txt:
        * media/video-canvas-source.html:
        * media/video-controls-expected.txt:
        * media/video-controls-transformed-expected.txt:
        * media/video-controls-transformed.html:
        * media/video-controls-zoomed-expected.txt:
        * media/video-controls-zoomed.html:
        * media/video-controls.html:
        * media/video-currentTime-expected.txt:
        * media/video-currentTime-set-expected.txt:
        * media/video-currentTime-set.html:
        * media/video-currentTime-set2-expected.txt:
        * media/video-currentTime-set2.html:
        * media/video-currentTime.html:
        * media/video-dom-src-expected.txt:
        * media/video-dom-src.html:
        * media/video-error-abort-expected.txt:
        * media/video-error-abort.html:
        * media/video-error-does-not-exist.html:
        * media/video-muted-expected.txt:
        * media/video-muted.html:
        * media/video-no-autoplay-expected.txt:
        * media/video-no-autoplay.html:
        * media/video-seek-past-end-paused-expected.txt:
        * media/video-seek-past-end-paused.html:
        * media/video-seek-past-end-playing-expected.txt:
        * media/video-seek-past-end-playing.html:
        * media/video-seekable-expected.txt:
        * media/video-seekable.html:
        * media/video-seeking-expected.txt:
        * media/video-seeking.html:
        * media/video-src-change-expected.txt:
        * media/video-src-change.html:
        * media/video-volume-expected.txt:
        * media/video-volume.html:

2009-10-26  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        crash with AX on when an image map contains an anchor tag
        https://bugs.webkit.org/show_bug.cgi?id=30739

        * accessibility/crashing-a-tag-in-map-expected.txt: Added.
        * accessibility/crashing-a-tag-in-map.html: Added.

2009-10-26  Csaba Osztrogonác  <ossy@webkit.org>

        Rubber-stamped by Tor Arne Vestbø.

        http/tests/cookies/simple-cookies-max-age.html moved to flakey tests group.
        http/tests/xmlhttprequest/workers/close.html added to flakey tests group.

        * platform/qt/Skipped: 

2009-10-26  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed trivial fix for r49854.

        * platform/qt/Skipped: Missing html extension added.

2009-10-26  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Gustavo Noronha.

        [Gtk] Reenable mod_rewrite in Fedora's httpd.conf
        https://bugs.webkit.org/show_bug.cgi?id=30741

        * http/conf/fedora-httpd.conf:

2009-10-25  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Unreviewed. Rebaseline test after 49998.

        * platform/gtk/fast/dom/prototype-inheritance-2-expected.txt:

2009-10-25  Hironori Bono  <hbono@chromium.org>

        Reviewed by Darin Adler.

        A quick fix for Bug 29103.
        Since String::startsWith() cannot fold non-ASCII characters, this change folds the prefix string
        and the option string before calling String::startsWith().
        https://bugs.webkit.org/show_bug.cgi?id=29103

        * fast/forms/listbox-typeahead-cyrillic-expected.txt: Added.
        * fast/forms/listbox-typeahead-cyrillic.html: Added.
        * fast/forms/listbox-typeahead-greek-expected.txt: Added.
        * fast/forms/listbox-typeahead-greek.html: Added.

2009-10-25  Sam Weinig  <sam@webkit.org>

        Reviewed by Dan Bernstein.

        Update tests for https://bugs.webkit.org/show_bug.cgi?id=30751
        HTMLOptionsCollection should not inherit from HTMLCollection

        * fast/dom/wrapper-classes-expected.txt:

2009-10-24  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        Missing images at 350.org due to wrong URLs
        https://bugs.webkit.org/show_bug.cgi?id=30748

        * fast/dom/HTMLImageElement/parse-src-expected.txt: Added.
        * fast/dom/HTMLImageElement/parse-src.html: Added.
        * fast/dom/HTMLImageElement/script-tests: Added.
        * fast/dom/HTMLImageElement/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/dom/Document/script-tests/TEMPLATE.html.
        * fast/dom/HTMLImageElement/script-tests/parse-src.js: Added.

2009-10-23  Chris Evans  <cevans@chromium.org>

        Reviewed by Adam Barth.

        Added test for bug 27239 (ignore Refresh for view source mode).
        https://bugs.webkit.org/show_bug.cgi?id=27239

        * http/tests/security/view-source-no-refresh.html: Added
        * http/tests/security/view-source-no-refresh-expected.txt: Added
        * http/tests/security/resources/view-source-no-refresh.php: Added

2009-10-23  Alejandro G. Castro  <alex@igalia.com>

        Reviewed by Xan Lopez.

        [GTK] Modified the tests results according to the last changes due
        to the fixes of the bug (r49985):
        https://bugs.webkit.org/show_bug.cgi?id=29697.

        * platform/gtk/editing/execCommand/4916541-expected.txt:
        * platform/gtk/editing/execCommand/5138441-expected.txt:
        * platform/gtk/editing/execCommand/5481523-expected.txt:
        * platform/gtk/editing/execCommand/indent-paragraphs-expected.txt: Added.

2009-10-23  Jon Honeycutt  <jhoneycutt@apple.com>

        MSAA: Name for image elements should use alt attribute text

        https://bugs.webkit.org/show_bug.cgi?id=30727
        <rdar://problem/7328291>

        Reviewed by Alice Liu.

        * platform/win/accessibility/img-alt-attribute-expected.txt: Added.
        * platform/win/accessibility/img-alt-attribute.html: Added.

2009-10-23  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Update and add test for https://bugs.webkit.org/show_bug.cgi?id=30695
        Drop .tags() support from HTMLCollection

        * fast/dom/HTMLDocument/document-all-expected.txt: Added.
        * fast/dom/HTMLDocument/document-all.html: Added.
        * fast/dom/HTMLDocument/script-tests: Added.
        * fast/dom/HTMLDocument/script-tests/document-all.js: Added.
        * fast/dom/Window/window-properties-expected.txt:
        * fast/dom/dom-constructors-expected.txt:
        * fast/dom/dom-constructors.html:
        * fast/dom/domListEnumeration-expected.txt:
        * fast/dom/prototype-inheritance-2-expected.txt:
        * fast/dom/prototype-inheritance-expected.txt:
        * fast/dom/script-tests/domListEnumeration.js:
        * fast/dom/undetectable-document-all-expected.txt:
        * fast/js/global-constructors-expected.txt:

2009-10-23  Alpha Lam  <hclam@chromium.org>

        Reviewed by Eric Carlson.

        Volume slider always starts at half volume
        https://bugs.webkit.org/show_bug.cgi?id=28322

        * media/video-volume-slider.html: Added.
        Pixel test for the volume slider of the media control. This test
        assumes volume slider is implemented and usable. It moves the mouse
        over the right bottom corner of a video element to trigger the
        volume slider. If volume slider is not implemented at all, you'll
        only see a video element with the first frame.
        * platform/gtk/Skipped: The above test requires a volume slider so it's skipped.
        * platform/mac/Skipped: ditto.
        * platform/win/Skipped: ditto.

2009-10-23  Andrew Scherkus  <scherkus@chromium.org>

        Reviewed by Eric Carlson.

        Add a layout test to assert that media element implementors do not
        advance currentTime after being paused.

        https://bugs.webkit.org/show_bug.cgi?id=30699

        * media/video-pause-immediately-expected.txt: Added.
        * media/video-pause-immediately.html: Added.

2009-10-23  Victor Wang  <victorw@chromium.org>

        Reviewed by Eric Seidel.

        Update the expected pixel result for test svg-as-background-6.html

        The old result is incorrect because of the wrong SVG masking offset calculation.
        Patch http://trac.webkit.org/changeset/49598 fixed the issue.
        The pixel result of this layout test needs to be updated.

        https://bugs.webkit.org/show_bug.cgi?id=30692

        * platform/mac/fast/backgrounds/svg-as-background-6-expected.checksum:
        * platform/mac/fast/backgrounds/svg-as-background-6-expected.png:

2009-10-23  Xiaomei Ji  <xji@chromium.org>

        Reviewed by Sam Weinig.

        Fix caretRangeFromPoint()/elementFromPoint() returns wrong result 
        for a zoomed and scrolled page.
        https://bugs.webkit.org/show_bug.cgi?id=30689.

        The real cause is the wrong calculation of event.clientX/Y when
        page is zoomed and scolled.
        After Sam fixed the event.clientX/Y in r49551, the hit test point
        should be recalculated (revert r49490).

        * fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-zoom-and-scroll-expected.txt: Added.
        * fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-zoom-and-scroll.html: Added.
        * fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt:
        * fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport.html:
        * fast/dom/elementFromPoint-relative-to-viewport-expected.txt:
        * fast/dom/elementFromPoint-relative-to-viewport.html:

2009-10-23  Enrica Casucci  <enrica@apple.com>

        Reviewed by Adele Peterson.

        REGRESSION: Copy is copying incorrect background-color
        <rdar://problem/7248529>
        https://bugs.webkit.org/show_bug.cgi?id=29697

        All the following tests have been re-baselined because
        the indent command now preserves the original markup.
        A new test (indent-paragraph.html) has been added to test
        several indent combinations not covered by the existing tests.
        
        * editing/execCommand/19087-expected.txt:
        * editing/execCommand/19653-1-expected.txt:
        * editing/execCommand/indent-div-inside-list-expected.txt:
        * editing/execCommand/indent-nested-blockquotes-expected.txt:
        * editing/execCommand/indent-nested-div-expected.txt:
        * editing/execCommand/indent-paragraphs.html: Added.
        * editing/execCommand/indent-second-paragraph-in-blockquote-expected.txt:
        * editing/execCommand/indent-with-style-expected.txt:
        * editing/inserting/5994480-2-expected.txt:
        * platform/mac/editing/execCommand/4641880-2-expected.txt:
        * platform/mac/editing/execCommand/4916541-expected.txt:
        * platform/mac/editing/execCommand/5138441-expected.txt:
        * platform/mac/editing/execCommand/5481523-expected.txt:
        * platform/mac/editing/execCommand/indent-paragraphs-expected.txt: Added.
        * platform/mac/editing/execCommand/indent-selection-expected.txt:
        * platform/mac/editing/pasteboard/select-element-1-expected.txt:

2009-10-23  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Sam Weinig.

        Isolated worlds tests now pass, removing then from the Skipped
        list.

        * platform/win/Skipped:

2009-10-23  Xan Lopez  <xlopez@igalia.com>

        Use the correct Skipped file ...

        * platform/gtk/Skipped:
        * platform/mac/Skipped:

2009-10-23  Xan Lopez  <xlopez@igalia.com>

        Skip new tests missing expected results.

        * platform/mac/Skipped:

2009-10-19  Gavin Barraclough  <barraclough@apple.com>

        Reviewed by Sam Weinig & Geoff Garen.

        https://bugs.webkit.org/show_bug.cgi?id=30696
        Enable isolated-worlds tests on mac.
          * Update the results to switch from windows to unix line-endings.
          * Update all-window-prototypes.html to allow for properties on
            the global object with null prototypes (just skip over them).

        * http/tests/security/isolatedWorld/all-window-properties-expected.txt:
        * http/tests/security/isolatedWorld/all-window-prototypes-expected.txt:
        * http/tests/security/isolatedWorld/all-window-prototypes.html:
        * http/tests/security/isolatedWorld/body-properties-expected.txt:
        * http/tests/security/isolatedWorld/body-prototype-expected.txt:
        * http/tests/security/isolatedWorld/document-properties-expected.txt:
        * http/tests/security/isolatedWorld/document-prototype-expected.txt:
        * http/tests/security/isolatedWorld/global-variables-expected.txt:
        * http/tests/security/isolatedWorld/image-properties-expected.txt:
        * http/tests/security/isolatedWorld/image-prototype-expected.txt:
        * http/tests/security/isolatedWorld/location-properties-expected.txt:
        * http/tests/security/isolatedWorld/location-prototype-expected.txt:
        * http/tests/security/isolatedWorld/number-prototype-expected.txt:
        * http/tests/security/isolatedWorld/object-prototype-expected.txt:
        * http/tests/security/isolatedWorld/storage-properties-expected.txt:
        * http/tests/security/isolatedWorld/storage-prototype-expected.txt:
        * http/tests/security/isolatedWorld/string-prototype-expected.txt:
        * http/tests/security/isolatedWorld/window-properties-expected.txt:
        * platform/mac/Skipped:

2009-10-22  Brian Weinstein  <bweinstein@apple.com>

        Updating expected results - unreviewed.

        Updated expected computed style results on Windows after r49959.

        * platform/win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:

2009-10-22  Beth Dakin  <bdakin@apple.com>

        Reviewed by Dan Bernstein.

        Tests for <rdar://problem/6942706> ER: Add a CSS property that 
        allows shadows to work for SVG content
        -and corresponding-
        https://bugs.webkit.org/show_bug.cgi?id=30479

        New results that include -webkit-shadow:
        * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:

        New tests and their results.
        * platform/mac/svg/css/arrow-with-shadow-expected.checksum: Added.
        * platform/mac/svg/css/arrow-with-shadow-expected.png: Added.
        * platform/mac/svg/css/arrow-with-shadow-expected.txt: Added.
        * platform/mac/svg/css/circle-in-mask-with-shadow-expected.checksum: Added.
        * platform/mac/svg/css/circle-in-mask-with-shadow-expected.png: Added.
        * platform/mac/svg/css/circle-in-mask-with-shadow-expected.txt: Added.
        * platform/mac/svg/css/clippath-with-shadow-expected.checksum: Added.
        * platform/mac/svg/css/clippath-with-shadow-expected.png: Added.
        * platform/mac/svg/css/clippath-with-shadow-expected.txt: Added.
        * platform/mac/svg/css/group-with-shadow-expected.checksum: Added.
        * platform/mac/svg/css/group-with-shadow-expected.png: Added.
        * platform/mac/svg/css/group-with-shadow-expected.txt: Added.
        * platform/mac/svg/css/mask-with-shadow-expected.checksum: Added.
        * platform/mac/svg/css/mask-with-shadow-expected.png: Added.
        * platform/mac/svg/css/mask-with-shadow-expected.txt: Added.
        * platform/mac/svg/css/path-with-shadow-expected.checksum: Added.
        * platform/mac/svg/css/path-with-shadow-expected.png: Added.
        * platform/mac/svg/css/path-with-shadow-expected.txt: Added.
        * platform/mac/svg/css/stars-with-shadow-expected.checksum: Added.
        * platform/mac/svg/css/stars-with-shadow-expected.png: Added.
        * platform/mac/svg/css/stars-with-shadow-expected.txt: Added.
        * platform/mac/svg/filters/shadow-on-filter-expected.checksum: Added.
        * platform/mac/svg/filters/shadow-on-filter-expected.png: Added.
        * platform/mac/svg/filters/shadow-on-filter-expected.txt: Added.
        * platform/mac/svg/filters/shadow-on-rect-with-filter-expected.checksum: Added.
        * platform/mac/svg/filters/shadow-on-rect-with-filter-expected.png: Added.
        * platform/mac/svg/filters/shadow-on-rect-with-filter-expected.txt: Added.
        * svg/css/arrow-with-shadow.svg: Added.
        * svg/css/circle-in-mask-with-shadow.svg: Added.
        * svg/css/clippath-with-shadow.svg: Added.
        * svg/css/getComputedStyle-basic-expected.txt:
        * svg/css/group-with-shadow.svg: Added.
        * svg/css/mask-with-shadow.svg: Added.
        * svg/css/path-with-shadow.svg: Added.
        * svg/css/stars-with-shadow.html: Added.
        * svg/filters/shadow-on-filter.svg: Added.
        * svg/filters/shadow-on-rect-with-filter.svg: Added.

2009-10-22  Shu Chang  <Chang.Shu@nokia.com>

        Reviewed by Eric Seidel.

        [Qt] Added expected result for clicked-link-is-visited.html.
        Removed test case from qt/Skipped as it works now.

        * platform/qt/Skipped:
        * platform/qt/fast/history: Added.
        * platform/qt/fast/history/clicked-link-is-visited-expected.txt: Added.

2009-10-22  Xan Lopez  <xlopez@igalia.com>

        Skip failing tests that seems to be somewhat tied to the Mac
        platform. See https://bugs.webkit.org/show_bug.cgi?id=30680

        * platform/gtk/Skipped:

2009-10-22  Andrew Scherkus  <scherkus@chromium.org>

        Reviewed by Eric Carlson.

        Fix video-played.js to use an error timeout based on time rather than function call count.

        https://bugs.webkit.org/show_bug.cgi?id=30657

        * media/video-played.js:
        (nowInSecs): Returns the current time in seconds.
        (playForMillisecs.callPauseIfTimeIsReached): Change from call counts to using elapsed time.
        (playForMillisecs): Ditto.

2009-10-22  Xan Lopez  <xlopez@igalia.com>

        libsoup can reconstruct URIs with empty querys now, so unskip
        another bunch of tests.

        * platform/gtk/Skipped:

2009-10-22  Xan Lopez  <xlopez@igalia.com>

        Unskip a couple of working tests.

        * platform/gtk/Skipped:

2009-10-21  Jeremy Orlow  <jorlow@chromium.org>

        Storage events should use Document::url() rather than documentURI()
        https://bugs.webkit.org/show_bug.cgi?id=30535

        Storage events should use Document::url() rather than Document::documentURI()
        per http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-October/023703.html

        Add a test for this.  Since storage events are sync, re-order when
        evalAndLog logs and evaluates instructions.

        * fast/js/resources/js-test-pre.js:
        (evalAndLog):
        * storage/domstorage/documentURI-expected.txt: Added.
        * storage/domstorage/documentURI.html: Added.
        * storage/domstorage/script-tests/documentURI.js: Added.
        (test):
        (firstEvent):
        (secondEvent):

2009-10-21  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Darin Adler.

        Combine local and session storage tests into one and use script-tests properly
        https://bugs.webkit.org/show_bug.cgi?id=30640

        I was apparently misusing the script-tests stuff.  I changed all the tests to
        test both local storage and session storage so that we can use the
        make-test-script-wrappers stuff as is.

        * storage/domstorage/clear-expected.txt: Added.
        * storage/domstorage/clear.html: Added.
        * storage/domstorage/complex-keys-expected.txt: Added.
        * storage/domstorage/complex-keys.html: Added.
        * storage/domstorage/complex-values-expected.txt: Added.
        * storage/domstorage/complex-values.html: Added.
        * storage/domstorage/localstorage/clear-expected.txt: Removed.
        * storage/domstorage/localstorage/clear.html: Removed.
        * storage/domstorage/localstorage/complex-keys-expected.txt: Removed.
        * storage/domstorage/localstorage/complex-keys.html: Removed.
        * storage/domstorage/localstorage/complex-values-expected.txt: Removed.
        * storage/domstorage/localstorage/complex-values.html: Removed.
        * storage/domstorage/localstorage/quota-expected.txt: Removed.
        * storage/domstorage/localstorage/quota.html: Removed.
        * storage/domstorage/localstorage/remove-item-expected.txt: Removed.
        * storage/domstorage/localstorage/remove-item.html: Removed.
        * storage/domstorage/quota-expected.txt: Added.
        * storage/domstorage/quota.html: Added.
        * storage/domstorage/remove-item-expected.txt: Added.
        * storage/domstorage/remove-item.html: Added.
        * storage/domstorage/script-tests/TEMPLATE.html: Added.
        * storage/domstorage/script-tests/clear.js:
        (test):
        (runTest):
        * storage/domstorage/script-tests/complex-keys.js:
        (test):
        (runTest):
        * storage/domstorage/script-tests/complex-values.js:
        (test):
        (runTest):
        * storage/domstorage/script-tests/no-quota.js: Removed.
        * storage/domstorage/script-tests/quota.js:
        (testQuota):
        (testNoQuota):
        (runTest):
        * storage/domstorage/script-tests/remove-item.js:
        (test):
        (runTest):
        * storage/domstorage/sessionstorage/clear-expected.txt: Removed.
        * storage/domstorage/sessionstorage/clear.html: Removed.
        * storage/domstorage/sessionstorage/complex-keys-expected.txt: Removed.
        * storage/domstorage/sessionstorage/complex-keys.html: Removed.
        * storage/domstorage/sessionstorage/complex-values-expected.txt: Removed.
        * storage/domstorage/sessionstorage/complex-values.html: Removed.
        * storage/domstorage/sessionstorage/no-quota-expected.txt: Removed.
        * storage/domstorage/sessionstorage/no-quota.html: Removed.
        * storage/domstorage/sessionstorage/remove-item-expected.txt: Removed.
        * storage/domstorage/sessionstorage/remove-item.html: Removed.

2009-10-21  Darin Adler  <darin@apple.com>

        Update since we rolled Japanese tailoring out that was done to fix
        https://bugs.webkit.org/show_bug.cgi?id=30437 earlier.

        * fast/text/international/japanese-kana-letters-expected.txt: Update
        test results to expect failure. We'll land results that expect
        success once we re-fix the bug.

2009-10-21  Andrew Scherkus  <scherkus@chromium.org>

        Reviewed by Eric Seidel.

        Update more media layout tests to use findMediaFile().

        https://bugs.webkit.org/show_bug.cgi?id=30644

        * media/controls-drag-timebar.html: Switch to using findMediaFile().
        * media/video-currentTime-set.html: Remove src attribute and rely on findMediaFile() instead.

2009-10-21  Brian Weinstein  <bweinstein@apple.com>

        Reviewed by Eric Seidel.

        Fixes part of <http://webkit.org/b/30522>.
        Web Inspector: DOM Exceptions throughout the Inspector should be more human readable.
        
        Adds a test to check the name and description of some DOM Exceptions.

        * fast/dom/dom-exception-description-expected.txt: Added.
        * fast/dom/dom-exception-description.html: Added.
        * fast/dom/script-tests/dom-exception-description.js: Added.

2009-10-21  Alejandro G. Castro  <alex@igalia.com>

        Reviewed by Xan Lopez.

        [GTK] Removed 5333725.html from Skipped and modified the expected
        result of 5232159-expected.txt and fake-drag-expected.txt, this
        modifications come from the changes in EventSender (bug 30633 and
        bug 30636).
        https://bugs.webkit.org/show_bug.cgi?id=30593

        * LayoutTests/platform/gtk/Skipped:
        * LayoutTests/platform/gtk/editing/selection/5232159-expected.txt:
        * LayoutTests/platform/gtk/editing/selection/fake-drag-expected.tx :

2009-10-21  Victor Wang  <victorw@chromium.org>

        Reviewed by Eric Seidel.

        Fix click-focus-anchor layout test to mimic click event.

        https://bugs.webkit.org/show_bug.cgi?id=30610

        * fast/events/click-focus-anchor.html:

2009-10-21  Dmitry Titov  <dimich@chromium.org>

        Reviewed by Darin Adler.

        Fix the crash when a node not in a document receives dispatchEvent.
        https://bugs.webkit.org/show_bug.cgi?id=30611

        * fast/events/dispatch-event-no-document-expected.txt: Added.
        * fast/events/dispatch-event-no-document.html: Added.

2009-10-21  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        Added a background-clip parsing test that would have caught some
        regressions that were introduced in r46240.

        * fast/css/background-clip-text-expected.txt: Added.
        * fast/css/background-clip-text.html: Added.
        * fast/css/script-tests: Added.
        * fast/css/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/backgrounds/repeat/script-tests/TEMPLATE.html.
        * fast/css/script-tests/background-clip-text.js: Added.
        (test):

2009-10-21  Xan Lopez  <xlopez@igalia.com>

        Skip another failing test.

        * platform/gtk/Skipped:

2009-10-21  Xan Lopez  <xlopez@igalia.com>

        Skip a few more libxml2 related tests.

        * platform/gtk/Skipped:

2009-10-21  Satoshi Nakagawa  <psychs@limechat.net>

        Reviewed by Darin Adler.

        Fixed Japanese text search problems.
        Treat small kana letters and kana letters as different characters in search.
        Do not ignore diacritic marks in search for Japanese texts.

        https://bugs.webkit.org/show_bug.cgi?id=30437

        * fast/text/international/japanese-kana-letters-expected.txt: Added.
        * fast/text/international/japanese-kana-letters.html: Added.

2009-10-20  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Web Inspector: simple console tests do not require testing harness.

        https://bugs.webkit.org/show_bug.cgi?id=30478

        * inspector/uncaught-dom1-exception-expected.txt:
        * inspector/uncaught-dom1-exception.html:
        * inspector/uncaught-dom3-exception-expected.txt:
        * inspector/uncaught-dom3-exception.html:
        * inspector/uncaught-dom8-exception-expected.txt:
        * inspector/uncaught-dom8-exception.html:

2009-10-20  Xan Lopez  <xlopez@igalia.com>

        Another batch of skipped tests with links to their bugs.

        * platform/gtk/Skipped:

2009-10-20  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Darin Adler.

        fast/css/getComputedStyle/marginComputedStyle is missing
        https://bugs.webkit.org/show_bug.cgi?id=30566

        * fast/css/getComputedStyle/marginComputedStyle-expected.txt: Added.
        * fast/css/getComputedStyle/marginComputedStyle.html: Added.
        * platform/mac/fast/css/getComputedStyle/marginComputedStyle-expected.checksum: Removed.
        * platform/mac/fast/css/getComputedStyle/marginComputedStyle-expected.png: Removed.
        * platform/mac/fast/css/getComputedStyle/marginComputedStyle-expected.txt: Removed.
        * platform/qt/fast/css/marginComputedStyle-expected.txt: Removed.

2009-10-20  Xan Lopez  <xlopez@igalia.com>

        Another batch of skipped tests with links to their bugs.

        * platform/gtk/Skipped:

2009-10-20  Xan Lopez  <xlopez@igalia.com>

        Another batch of skipped tests with links to their bugs.

        * platform/gtk/Skipped:

2009-10-20  Xan Lopez  <xlopez@igalia.com>

        Skip 3 failing xmlhttprequest tests.

        https://bugs.webkit.org/show_bug.cgi?id=30582

        * platform/gtk/Skipped:

2009-10-20  Xan Lopez  <xlopez@igalia.com>

        Skip two failing security canvas tests.

        https://bugs.webkit.org/show_bug.cgi?id=30580

        * platform/gtk/Skipped:

2009-10-20  Xan Lopez  <xlopez@igalia.com>

        Skip failing editing test.

        * platform/gtk/Skipped:

2009-10-20  Xan Lopez  <xlopez@igalia.com>

        Skip a bunch of failing DnD tests.

        * platform/gtk/Skipped:

2009-10-20  Xan Lopez  <xlopez@igalia.com>

        Skip two zoom related tests.

        * platform/gtk/Skipped:

2009-10-20  Xan Lopez  <xlopez@igalia.com>

        Skip a couple of failing media tests.

        * platform/gtk/Skipped:

2009-10-20  Xan Lopez  <xlopez@igalia.com>

        Skip failing a11y test while we investigate what's going on.

        * platform/gtk/Skipped:

2009-10-20  Xan Lopez  <xlopez@igalia.com>

        Skip tests expecting new results.

        * platform/gtk/Skipped:

2009-10-20  Xan Lopez  <xlopez@igalia.com>

        Skip media/restore-from-page-cache.html since we are missing some
        of the needed API for the test.

        * platform/gtk/Skipped:

2009-10-20  Csaba Osztrogonác  <ossy@webkit.org>

        Reviewed by Tor Arne Vestbø.

        [Qt] Remove http/tests/xmlhttprequest tests
        from skiplist, and add only now failing tests.

        * platform/qt/Skipped:

2009-10-20  Xan Lopez  <xlopez@igalia.com>

        Skip another failing test because we don't currently support
        changing the locale after gtk_init has been called.

        Also, add another test to the list of libxml2 issues.

        * platform/gtk/Skipped:

2009-10-20  Xan Lopez  <xlopez@igalia.com>

        Skip a bunch of tests failing in the debug bots because WebKit
        does not work correctly with very recent versions of libxml2. The
        tracker bug for the issue is
        https://bugs.webkit.org/show_bug.cgi?id=30508

        * platform/gtk/Skipped:

2009-10-20  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt] Enable previously disabled fast/css tests after r48873 landed which
        fixed https://bugs.webkit.org/show_bug.cgi?id=28288

        * platform/qt/Skipped:

2009-10-20  Xan Lopez  <xlopez@igalia.com>

        Skip failing test, with comment pointing to the bug to track it.

        * platform/gtk/Skipped:

2009-10-20  Xan Lopez  <xlopez@igalia.com>

        Skip plugins/private-browsing-mode.html, since our plugin
        implementation lacks that feature.

        * platform/gtk/Skipped:

2009-10-20  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Rubber-stamped by Tor Arne Vestbø.

        [Qt] Skip failing tests introduced by disabling Phonon support in Buildbot's Qt version
        until a proper solution for the Phonon related craches and timeouts is found.

        * platform/qt/Skipped:

2009-10-19  Robin Qiu  <robin.qiu@torchmobile.com.cn>

        Reviewed by Nikolas Zimmermann.

        Add a layout test for nested SVG <use> element which has a child.
        https://bugs.webkit.org/show_bug.cgi?id=26117

        * svg/custom/use-on-use-with-child-expected.txt: Added.
        * svg/custom/use-on-use-with-child.svg: Added.

2009-10-19  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Adam Barth.

        Fix fallout from last change.
        https://bugs.webkit.org/show_bug.cgi?id=30550

        Update init-events to match reality.  I only ran the domstorage layout tests
        and thus missed one in fast/events/.  This addresses fallout from
        https://bugs.webkit.org/show_bug.cgi?id=30536

        * fast/events/init-events-expected.txt:
        * fast/events/script-tests/init-events.js:

2009-10-19  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Dmitri Titov.

        Remove "source" from storage events
        https://bugs.webkit.org/show_bug.cgi?id=30536

        Remove "source" from storage events per
        http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-October/023703.html

        * storage/domstorage/localstorage/iframe-events-expected.txt:
        * storage/domstorage/localstorage/iframe-events.html:
        * storage/domstorage/localstorage/resources/iframe-events-second.html:
        * storage/domstorage/localstorage/simple-events-expected.txt:
        * storage/domstorage/localstorage/simple-events.html:
        * storage/domstorage/sessionstorage/iframe-events-expected.txt:
        * storage/domstorage/sessionstorage/iframe-events.html:
        * storage/domstorage/sessionstorage/resources/iframe-events-second.html:
        * storage/domstorage/sessionstorage/simple-events-expected.txt:
        * storage/domstorage/sessionstorage/simple-events.html:

2009-10-19  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        Bypass popup blocker using click event
        https://bugs.webkit.org/show_bug.cgi?id=21501

        Test that a fake event can't get around the popup blocker.

        * http/tests/security/popup-blocked-from-fake-event-expected.txt: Added.
        * http/tests/security/popup-blocked-from-fake-event.html: Added.

2009-10-19  Jason Yan  <tailofthesun@gmail.com>
 
         Reviewed by Eric Seidel.
 
         Fixed issue with LayoutTests/fast/cookies/local-file-can-set-cookies.html
         which can fail when the system under test has local file cookies set already.
         https://bugs.webkit.org/show_bug.cgi?id=30281
 
         * fast/cookies/local-file-can-set-cookies-expected.txt: Modified. Updated expected results.
         * fast/cookies/local-file-can-set-cookies.html: Modified. Check for existing cookie and set non-persistent cookie.

2009-10-19  Shu Chang  <Chang.Shu@nokia.com>

        Reviewed by Eric Seidel.

        Language tag should include both language and country sub-tags,
        case insensitive.
        https://bugs.webkit.org/show_bug.cgi?id=30440

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

2009-10-19  Daniel Bates  <dbates@webkit.org>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=30266
        
        Added the test case for bug #30266 to the Windows skip list because
        event.dataTransfer.types does not behave correctly. See bug #30527.

        * platform/win/Skipped: Added test case to Windows
        skipped list. 

2009-10-19  Nate Chapin  <japhet@chromium.org>

        Reviewed by Alexey Proskuryakov.

        Add tests for noreferrer link relation.

        https://bugs.webkit.org/show_bug.cgi?id=28986

        * http/tests/navigation/no-referrer-reset-expected.txt: Added.
        * http/tests/navigation/no-referrer-reset.html: Added.
        * http/tests/navigation/no-referrer-same-window-expected.txt: Added.
        * http/tests/navigation/no-referrer-same-window.html: Added.
        * http/tests/navigation/no-referrer-subframe-expected.txt: Added.
        * http/tests/navigation/no-referrer-subframe.html: Added.
        * http/tests/navigation/no-referrer-target-blank-expected.txt: Added.
        * http/tests/navigation/no-referrer-target-blank.html: Added.
        * http/tests/navigation/resources/no-referrer-helper.php: Added.
        * http/tests/navigation/resources/no-referrer-reset-helper.php: Added.
        * http/tests/navigation/resources/no-referrer-same-window-helper.php: Added.

2009-10-19  Nate Chapin  <japhet@chromium.org>

        Reviewed by Geoffrey Garen.

        Add plugins/netscape-invoke-failures.html to Snow Leopard skipped list.

        https://bugs.webkit.org/show_bug.cgi?id=30528

        * platform/mac-snowleopard/Skipped: Add plugins/netscape-invoke-failures.html.

2009-10-19  Zan Dobersek  <zandobersek@gmail.com>

        Reviewed by Gustavo Noronha.

        Update test results and Skipped list after changes in r49791.

        Some test results were accidentally committed in r49192. At that time
        results were incorrect, but testing still succeeded because of
        unimplemented features. After r49791 tests, though generating semantically
        equal output to Mac's render trees, started to fail and need to have
        generated results updated. This patch does just that.

        * platform/gtk/Skipped: Skip a test that does not generate semantically
        equal render trees.
        * platform/gtk/editing/inserting/insert-3907422-fix-expected.txt:
        * platform/gtk/editing/pasteboard/4076267-2-expected.txt:
        * platform/gtk/editing/pasteboard/4076267-3-expected.txt:
        * platform/gtk/editing/pasteboard/4076267-expected.txt:
        * platform/gtk/editing/pasteboard/paste-table-001-expected.txt:
        * platform/gtk/editing/pasteboard/paste-text-001-expected.txt:
        * platform/gtk/editing/pasteboard/paste-text-002-expected.txt:
        * platform/gtk/editing/pasteboard/paste-text-003-expected.txt:
        * platform/gtk/editing/pasteboard/paste-text-004-expected.txt:
        * platform/gtk/editing/pasteboard/paste-text-005-expected.txt:
        * platform/gtk/editing/pasteboard/paste-text-006-expected.txt:
        * platform/gtk/editing/pasteboard/paste-text-007-expected.txt:
        * platform/gtk/editing/pasteboard/paste-text-008-expected.txt:
        * platform/gtk/editing/pasteboard/paste-text-009-expected.txt:
        * platform/gtk/editing/pasteboard/paste-text-010-expected.txt:
        * platform/gtk/editing/pasteboard/paste-text-015-expected.txt:
        * platform/gtk/editing/pasteboard/paste-xml-expected.txt:
        * platform/gtk/editing/pasteboard/select-element-1-expected.txt: Removed.

2009-10-19  Nate Chapin  <japhet@chromium.org>

        Reviewed by Adam Barth.

        Test that the proper exception is thrown into JS when a plugin
        invoke call returns false.

        https://bugs.webkit.org/show_bug.cgi?id=30239

        * plugins/netscape-invoke-failure-expected.txt: Added.
        * plugins/netscape-invoke-failure.html: Added.

2009-10-16  Stephen White  <senorblanco@chromium.org>

        Reviewed by Adam Barth.

        New test for 360 degree arc endpoints, and expected results.
        http://bugs.webkit.org/show_bug.cgi?id=30449

        * fast/canvas/arc360.html: Added.
        * platform/mac/fast/canvas/arc360-expected.checksum: Added.
        * platform/mac/fast/canvas/arc360-expected.png: Added.
        * platform/mac/fast/canvas/arc360-expected.txt: Added.

2009-10-19  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Adam Roben.
        
        Add tests that have never passed on Windows to the Skipped list, and reopen
        bugs.

        * platform/win/Skipped:

2009-10-19  Zan Dobersek  <zandobersek@gmail.com>

        Reviewed by Gustavo Noronha.

        Enable tests that pass when DOM pasting is allowed.

        * platform/gtk/Skipped:

2009-10-19  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Simon Fraser.

        https://bugs.webkit.org/show_bug.cgi?id=30463
        Remove HTML5 media element 'loadend' event

        * media/event-attributes-expected.txt:
        * media/event-attributes.html: Switch from 'loadend' to 'canplaythrough'.
        * media/media-load-event-expected.txt:
        * media/media-load-event.html: Ditto.
        * media/progress-event-at-least-one-expected.txt:
        * media/progress-event-at-least-one.html: Ditto.

2009-10-19  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Tor Arne Vestbø.

        [Qt] Skip failing tests for now and add test-specific information about the cause to the Skipped list.

        * platform/qt/Skipped:

2009-10-19  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Tor Arne Vestbø.

        [Qt] Add platform expected file for canvas test.

        * platform/qt/fast/canvas/canvas-empty-image-pattern-expected.txt: Added.

2009-10-19  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Tor Arne Vestbø.

        [Qt] Update outdated metrics for these passing tests.

        * platform/qt/css1/font_properties/font-expected.txt:
        * platform/qt/fast/xsl/document-function-expected.txt:

2009-10-18  Erik Arvidsson  <arv@chromium.org>

        Reviewed by Adam Barth.

        Fixes issue where doubleclicking a word could select following adjacent newlines.
        https://bugs.webkit.org/show_bug.cgi?id=30234

        * platform/mac/editing/selection/doubleclick-should-not-expand-across-lines-expected.txt: Added.
        * platform/mac/editing/selection/doubleclick-should-not-expand-across-lines.html: Added.
        * platform/mac/editing/selection/script-tests/TEMPLATE.html: Added.
        * platform/mac/editing/selection/script-tests/doubleclick-should-not-expand-across-lines.js: Added.
        (description.doubleClickOnElement):
        (doubleClickAt):
        (selectionShouldBe):
        * platform/win/editing/selection/doubleclick-should-not-expand-across-lines-expected.txt: Added.
        * platform/win/editing/selection/doubleclick-should-not-expand-across-lines.html: Added.
        * platform/win/editing/selection/script-tests/TEMPLATE.html: Added.
        * platform/win/editing/selection/script-tests/doubleclick-should-not-expand-across-lines.js: Added.
        (description.doubleClickOnElement):
        (doubleClickAt):
        (selectionShouldBe):

2009-10-18  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Web Inspector: Properties on Arrays and NodeLists are
        not logged correctly.

        https://bugs.webkit.org/show_bug.cgi?id=30485

        * inspector/console-format-expected.txt:
        * inspector/console-format.html:

2009-10-18  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Web Inspector: make console tests more granular.

        https://bugs.webkit.org/show_bug.cgi?id=30496

        * inspector/console-dir-expected.txt: Added.
        * inspector/console-dir.html: Added.
        * inspector/console-dirxml-expected.txt: Added.
        * inspector/console-dirxml.html: Added.
        * inspector/console-format-expected.txt: Added.
        * inspector/console-format.html: Added.
        * inspector/console-tests-expected.txt:
        * inspector/console-tests.html:
        * platform/gtk/Skipped:
        * platform/qt/Skipped:

2009-10-18  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        The color space of masking operations in SVG changed to linearSVG.
        This needs an update of some masking pixel tests.

        * platform/mac/svg/W3C-SVG-1.1/masking-intro-01-f-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/masking-intro-01-f-expected.png:
        * platform/mac/svg/batik/masking/maskRegions-expected.checksum:
        * platform/mac/svg/batik/masking/maskRegions-expected.png:
        * platform/mac/svg/custom/grayscale-gradient-mask-expected.checksum:
        * platform/mac/svg/custom/grayscale-gradient-mask-expected.png:

2009-10-18  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Holger Freyther.

        [GTK] Add MathML to the build system
        https://bugs.webkit.org/show_bug.cgi?id=30487

        Include layout test baseline for Gtk.

        * platform/gtk/mathml/presentation/sub-expected.txt: Added.
        * platform/gtk/mathml/presentation/sup-expected.txt: Added.
        * platform/gtk/mathml/presentation/tables-expected.txt: Added.

2009-10-18  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        Compositing layers not correctly updated after partial layout
        https://bugs.webkit.org/show_bug.cgi?id=30425
        
        Testcase that hits the "position change only" layout path, thus doing a subtree layout,
        to ensure that compositing layers are correctly positioned.

        * compositing/geometry/partial-layout-update.html: Added.
        * platform/mac/compositing/geometry/partial-layout-update-expected.checksum: Added.
        * platform/mac/compositing/geometry/partial-layout-update-expected.png: Added.
        * platform/mac/compositing/geometry/partial-layout-update-expected.txt: Added.

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

        Skip media/video-empty-source.html until <rdar://problem/6563117> has been fixed.

        * platform/mac/Skipped:

2009-10-17  Yuta Kitamura  <yutak@chromium.org>

        Reviewed by Darin Adler.

        Fix inefficient string concatenation.
        
        LayoutTests/fast/css/large-list-of-rules-crash.html contains code that
        concatenate strings in an inefficient way. Concatenation of strings should be
        done with Array.join method. This patch fixes this issue, and also fixes typos
        in the test.

        fast/css/large-list-of-rules-crash.html concatenates strings in an inefficient way
        https://bugs.webkit.org/show_bug.cgi?id=30436

        * fast/css/large-list-of-rules-crash.html:

2009-10-17  Pavel Feldman  <pfeldman@chromium.org>

        Not reviewed: reduce inspector console test size - it times out.

        * inspector/console-tests-expected.txt:
        * inspector/console-tests.html:

2009-10-16  Simon Fraser  <simon.fraser@apple.com>

        Skip this test:
            compositing/animation/animated-composited-inside-hidden.html
        because the fix for https://bugs.webkit.org/show_bug.cgi?id=26770 was backed out.

        * platform/mac/Skipped:

2009-10-16  Brian Weinstein  <bweinstein@apple.com>

        Updated expected results of tests that give CONSOLE messages for
        new verbose output.

        * fast/dom/NamedNodeMap-setNamedItem-crash-expected.txt:
        * fast/dom/timer-clear-interval-in-handler-and-generate-error-expected.txt:
        * platform/mac/fast/dynamic/015-expected.txt:

2009-10-16  Adam Barth  <abarth@webkit.org>

        Reviewed by Alexey Proskuryakov.

        @charset rule after the first byte causes the rest of css to be ignored
        https://bugs.webkit.org/show_bug.cgi?id=18265

        Test that we allow whitespace and comments before the charset rule.
        These test results all match Firefox.

        * fast/css/comment-before-charset-expected.txt: Added.
        * fast/css/comment-before-charset-external-expected.txt: Added.
        * fast/css/comment-before-charset-external.html: Added.
        * fast/css/comment-before-charset.html: Added.
        * fast/css/many-spaces-before-charset-expected.txt: Added.
        * fast/css/many-spaces-before-charset.html: Added.
        * fast/css/resources/comment-before-charset.css: Added.
        * fast/css/resources/space-before-charset.css: Added.
        * fast/css/space-before-charset-expected.txt: Added.
        * fast/css/space-before-charset-external-expected.txt: Added.
        * fast/css/space-before-charset-external.html: Added.
        * fast/css/space-before-charset.html: Added.

2009-10-16  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Adam Roben.

        Remove inspector tests from Windows Skipped list, because they pass locally
        and the front-end changes are picked up by the bots.

        * platform/win/Skipped:

2009-10-16  Brian Weinstein  <bweinstein@apple.com>

        Reviewed by Darin Adler.

        Fixes part of <http://webkit.org/b/30412>.
        Web Inspector should get human readable DOM Exceptions.
        
        Adds tests for output of uncaught exceptions to the Web Inspector
        Console. Tests DOM exceptions 1, 3, and 8 (INDEX_SIZE_ERR, NOT_FOUND_ERR, and
        HIERARCHY_REQUEST_ERR).

        * inspector/uncaught-dom1-exception-expected.txt: Added.
        * inspector/uncaught-dom1-exception.html: Added.
        * inspector/uncaught-dom3-exception-expected.txt: Added.
        * inspector/uncaught-dom3-exception.html: Added.
        * inspector/uncaught-dom8-exception-expected.txt: Added.
        * inspector/uncaught-dom8-exception.html: Added.

2009-10-16  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        Transform layer gets stuck with the wrong transform after an animation ends
        <rdar://problem/7311662>
        
        Testcase that runs a -webkit-transform animation on a preserve-3d element, and tests that the final
        state is correct.

        * compositing/animation/state-at-end-event-transform-layer.html: Added.
        * platform/mac/compositing/animation/state-at-end-event-transform-layer-expected.checksum: Added.
        * platform/mac/compositing/animation/state-at-end-event-transform-layer-expected.png: Added.
        * platform/mac/compositing/animation/state-at-end-event-transform-layer-expected.txt: Added.

2009-10-16  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        After running a transition with an end event listener, can't change the transform
        https://bugs.webkit.org/show_bug.cgi?id=30454

        Test the state of rendering when the webkitAnimationEnd event fires for a 'left' animation, via pixel test.
        
        * animations/state-at-end-event.html: Added.
        * platform/mac/animations/state-at-end-event-expected.checksum: Added.
        * platform/mac/animations/state-at-end-event-expected.png: Added.
        * platform/mac/animations/state-at-end-event-expected.txt: Added.

        Test the state of rendering when the webkitAnimationEnd event fires for a '-webkit-transform' animation, via pixel test.

        * platform/mac/animations/state-at-end-event-transform-expected.checksum: Added.
        * platform/mac/animations/state-at-end-event-transform-expected.png: Added.
        * platform/mac/animations/state-at-end-event-transform-expected.txt: Added.
        
        Tests that if you change the transform  after a transition finishes, that the transform
        does update.

        * transitions/move-after-transition.html: Added.
        * platform/mac/transitions/move-after-transition-expected.checksum: Added.
        * platform/mac/transitions/move-after-transition-expected.png: Added.
        * platform/mac/transitions/move-after-transition-expected.txt: Added.

2009-10-16  Andrew Scherkus  <scherkus@chromium.org>

        Reviewed by Eric Carlson.

        Updated media resource selection algorithm to reflect latest HTML 5 specification.

        https://bugs.webkit.org/show_bug.cgi?id=30407

        * media/video-play-pause-exception-expected.txt:
        * media/video-play-pause-exception.html:
        * media/video-src-empty-expected.txt: Added.
        * media/video-src-empty.html: Added.
        * media/video-src-none-expected.txt: Added.
        * media/video-src-none.html: Added.

2009-10-16  Daniel Bates  <dbates@webkit.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=30266
        
        Tests that the JavaScript array event.dataTransfer.types can be accessed 
        within an ondrop handler without causing a crash.
        
        Although this issue has been resolved as of nightly r49550 we should add a
        test case so that we can prevent a regression of this issue.

        * fast/events/drag-and-drop-dataTransfer-types-nocrash-expected.txt: Added.
        * fast/events/drag-and-drop-dataTransfer-types-nocrash.html: Added.

2009-10-16  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        Insecure plug-ins don't trigger mixed content
        https://bugs.webkit.org/show_bug.cgi?id=30431

        * http/tests/security/mixedContent/insecure-plugin-in-iframe-expected.txt: Added.
        * http/tests/security/mixedContent/insecure-plugin-in-iframe.html: Added.
        * http/tests/security/mixedContent/resources/frame-with-insecure-plugin.html: Added.

2009-10-16  Yuzo Fujishima  <yuzo@google.com>

        Reviewed by Darin Adler.

        LayoutTests/fast/loader/local-JavaScript-from-local.html times out in case of error.
        https://bugs.webkit.org/show_bug.cgi?id=30434

        * fast/loader/local-JavaScript-from-local.html:

2009-10-16  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Reviewed by Ariya Hidayat.

        [Qt] Add empty skipped lists for the platform-specific results

        * platform/qt-linux/Skipped:
        * platform/qt-mac/Skipped:
        * platform/qt-win/Skipped:

2009-10-16  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Tor Arne Vestbø.

        [Qt] Update outdated platform dependent expected file.

        * platform/qt/editing/execCommand/toggle-compound-styles-expected.txt:

2009-10-16  Shu Chang  <Chang.Shu@nokia.com>

        Reviewed by Eric Seidel.

        Added test case for testing navigator.language.
        https://bugs.webkit.org/show_bug.cgi?id=29653
 
        Different browsers may not return the exact same result.
        Some examples here:
        Safari 4 WinXP: "en-US"
        Safari 4 Mac: "en-us"
        Firefox 3 Mac/WinXP: "en-US"
        Opera 9.64: "en"
        Epiphany 2 GTK: "en"
        Chrome 3 WinXP: "en-US"

        The test case checks if the first two letters are "en"
        when system locale is set to "en_US.iso88591".

        * fast/js/navigator-language-expected.txt: Added.
        * fast/js/navigator-language.html: Added.

2009-10-15  Daniel Bates  <dbates@webkit.org>

        No review, rolling out r49644.
        http://trac.webkit.org/changeset/49644

        * http/tests/security/xssAuditor/base-href-comment-expected.txt: Removed.
        * http/tests/security/xssAuditor/base-href-comment.html: Removed.
        * http/tests/security/xssAuditor/iframe-javascript-url-comment-expected.txt: Removed.
        * http/tests/security/xssAuditor/iframe-javascript-url-comment.html: Removed.
        * http/tests/security/xssAuditor/img-onerror-HTML-comment-expected.txt: Removed.
        * http/tests/security/xssAuditor/img-onerror-HTML-comment.html: Removed.
        * http/tests/security/xssAuditor/img-onerror-comment-expected.txt: Removed.
        * http/tests/security/xssAuditor/img-onerror-comment.html: Removed.
        * http/tests/security/xssAuditor/object-tag-comment-expected.txt: Removed.
        * http/tests/security/xssAuditor/object-tag-comment.html: Removed.
        * http/tests/security/xssAuditor/resources/echo-before-image.pl: Removed.
        * http/tests/security/xssAuditor/resources/echo-head-base-href-comment.pl: Removed.
        * http/tests/security/xssAuditor/script-tag-comment-HTML-entity-expected.txt: Removed.
        * http/tests/security/xssAuditor/script-tag-comment-HTML-entity.html: Removed.
        * http/tests/security/xssAuditor/script-tag-comment-expected.txt: Removed.
        * http/tests/security/xssAuditor/script-tag-comment.html: Removed.
        * http/tests/security/xssAuditor/script-tag-with-source-comment-expected.txt: Removed.
        * http/tests/security/xssAuditor/script-tag-with-source-comment.html: Removed.

2009-10-15  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Adele Peterson.

        Update Windows expected results after http://trac.webkit.org/changeset/49619.

        * platform/win/fast/inline: Added.
        * platform/win/fast/inline/dirtyLinesForInline-expected.txt: Added.

2009-10-15  Pavel Feldman  <pfeldman@chromium.org>

        Not reviewed: skip inspector tests on windows until
        incremental build catches frontend files.

        * platform/win/Skipped:

2009-10-15  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Web Inspector: Prevent subsequent tests from failing upon inspector
        test timeout.

        https://bugs.webkit.org/show_bug.cgi?id=30404

        * inspector/evaluate-in-frontend.js:
        (onload.setTimeout):

2009-10-15  Zan Dobersek  <zandobersek@gmail.com>

        Reviewed by Eric Seidel.

        [Gtk][Layout tests] Generate results for dom tests
        https://bugs.webkit.org/show_bug.cgi?id=29893

        Add results for dom tests and enable these tests in the Skipped.

        * platform/gtk/Skipped:
        * platform/gtk/dom/xhtml/level3/core/canonicalform08-expected.txt: Copied from LayoutTests/platform/mac/dom/xhtml/level3/core/canonicalform08-expected.txt.
        * platform/gtk/dom/xhtml/level3/core/canonicalform09-expected.txt: Copied from LayoutTests/platform/mac/dom/xhtml/level3/core/canonicalform09-expected.txt.
        * platform/gtk/dom/xhtml/level3/core/documentgetinputencoding03-expected.txt: Added.
        * platform/gtk/dom/xhtml/level3/core/entitygetinputencoding02-expected.txt: Added.
        * platform/gtk/dom/xhtml/level3/core/entitygetxmlversion02-expected.txt: Added.
        * platform/gtk/dom/xhtml/level3/core/nodegetbaseuri05-expected.txt: Added.
        * platform/gtk/dom/xhtml/level3/core/nodegetbaseuri07-expected.txt: Added.
        * platform/gtk/dom/xhtml/level3/core/nodegetbaseuri09-expected.txt: Added.
        * platform/gtk/dom/xhtml/level3/core/nodegetbaseuri10-expected.txt: Added.
        * platform/gtk/dom/xhtml/level3/core/nodegetbaseuri11-expected.txt: Added.
        * platform/gtk/dom/xhtml/level3/core/nodegetbaseuri15-expected.txt: Added.
        * platform/gtk/dom/xhtml/level3/core/nodegetbaseuri17-expected.txt: Added.
        * platform/gtk/dom/xhtml/level3/core/nodegetbaseuri18-expected.txt: Added.
        * platform/gtk/dom/xhtml/level3/core/nodelookupnamespaceuri01-expected.txt: Added.
        * platform/gtk/dom/xhtml/level3/core/nodelookupprefix19-expected.txt: Added.

2009-10-15  Daniel Bates  <dbates@webkit.org>

        Reviewed by Adam Roben.

        https://bugs.webkit.org/show_bug.cgi?id=24731
        And
        rdar://problem/5015961
        
        Tests that DHTML drag-and-drop works correctly.
        
        Note, this test fails when effectAllowed == "uninitialized" because 
        this effect has not been implemented yet (see bug #30291).

        * fast/events/drag-and-drop-expected.txt: Added.
        * fast/events/drag-and-drop.html: Added.

2009-10-15  Zan Dobersek  <zandobersek@gmail.com>

        Reviewed by Gustavo Noronha.

        Rebaseline tests after changes made in r49405.

        * platform/gtk/editing/execCommand/4916541-expected.txt: Rebaseline.
        * platform/gtk/editing/execCommand/5138441-expected.txt: Ditto.
        * platform/gtk/editing/execCommand/5481523-expected.txt: Ditto.

2009-10-15  Xan Lopez  <xlopez@igalia.com>

        Remove obsolete test from Skipped list.

        * platform/gtk/Skipped:

2009-10-15  Daniel Bates  <dbates@webkit.org>

        Reviewed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=27895
        
        Tests that inline event handlers whose value ends in a single-line JavaScript
        comment cannot bypass the XSSAuditor. Also tests that the XSSAuditor prevents
        similar attack vectors with respect to the HTML Base element, HTML Object
        element, and external JavaScripts.

        * http/tests/security/xssAuditor/base-href-comment-expected.txt: Added.
        * http/tests/security/xssAuditor/base-href-comment.html: Added.
        * http/tests/security/xssAuditor/iframe-javascript-url-comment-expected.txt: Added.
        * http/tests/security/xssAuditor/iframe-javascript-url-comment.html: Added.
        * http/tests/security/xssAuditor/img-onerror-HTML-comment-expected.txt: Added.
        * http/tests/security/xssAuditor/img-onerror-HTML-comment.html: Added.
        * http/tests/security/xssAuditor/img-onerror-comment-expected.txt: Added.
        * http/tests/security/xssAuditor/img-onerror-comment.html: Added.
        * http/tests/security/xssAuditor/object-tag-comment-expected.txt: Added.
        * http/tests/security/xssAuditor/object-tag-comment.html: Added.
        * http/tests/security/xssAuditor/resources/echo-before-image.pl: Added.
        * http/tests/security/xssAuditor/resources/echo-head-base-href-comment.pl: Added.
        * http/tests/security/xssAuditor/script-tag-comment-HTML-entity-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-comment-HTML-entity.html: Added.
        * http/tests/security/xssAuditor/script-tag-comment-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-comment.html: Added.
        * http/tests/security/xssAuditor/script-tag-with-source-comment-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-with-source-comment.html: Added.

2009-10-15  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Adele Peterson.

        Add click-focus-anchor expected results on Windows, to make up for
        the wonky way Windows finds its expected results.

        * platform/win/fast/events/click-focus-anchor-expected.txt: Added.

2009-10-15  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Adam Treat.

        [Qt] Add expected files for passing http tests.

        * platform/qt/http/tests/local/file-url-sent-as-referer-expected.txt: Added.
        * platform/qt/http/tests/uri/css-href-expected.txt: Added.

2009-10-15  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Adam Treat.

        [Qt] Add expected files for passing svg tests.

        * platform/qt/svg/custom/gradient-userSpaceOnUse-with-percentage-expected.txt: Added.
        * platform/qt/svg/custom/mask-with-default-value-expected.txt: Added.
        * platform/qt/svg/filters/feComposite-expected.txt: Added.
        * platform/qt/svg/filters/feGaussianBlur-expected.txt: Added.
        * platform/qt/svg/filters/feMerge-wrong-input-expected.txt: Added.
        * platform/qt/svg/filters/sourceAlpha-expected.txt: Added.
        * platform/qt/svg/filters/subRegion-in-userSpace-expected.txt: Added.

2009-10-15  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        Transitions fail to run sometimes
        https://bugs.webkit.org/show_bug.cgi?id=26770
        
        Add a test for starting an accelerated animation on an element with a visibility:hidden ancestor,
        to ensure that it does not block subsequent transitions.

        * compositing/animation/animated-composited-inside-hidden-expected.txt: Added.
        * compositing/animation/animated-composited-inside-hidden.html: Added.

2009-10-15  Pavel Feldman  <pfeldman@chromium.org>

        Not reviewed: remove timer-related logs from the previously
        submitted test.

        * inspector/console-tests-expected.txt:
        * inspector/console-tests.html:

2009-10-15  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Web Inspector: Enable inspector layout tests.

        https://bugs.webkit.org/show_bug.cgi?id=30014

        * inspector/elements-panel-structure-expected.txt:
        * inspector/elements-panel-structure.html:
        * inspector/evaluate-in-frontend.js:
        (evaluateInWebInspector):
        (window.didEvaluateForTestInFrontend):
        * platform/mac-leopard/Skipped:
        * platform/mac-snowleopard/Skipped:
        * platform/mac-tiger/Skipped:
        * platform/mac/Skipped:
        * platform/win/Skipped:

2009-10-15  Xan Lopez  <xlopez@igalia.com>

        Skip new SVG tests without expected results for GTK+.

        * platform/gtk/Skipped:

2009-10-15  Xan Lopez  <xlopez@igalia.com>

        Skip a couple of tests that need support for dumpEditingCallbacks.

        * platform/gtk/Skipped:

2009-10-15  Shu Chang  <Chang.Shu@nokia.com>

        Reviewed by Adele Peterson.

        Change behavior so that <a> element is always mouse-focusable.

        * fast/events/click-focus-anchor-expected.txt:
        * fast/events/click-focus-anchor.html:

2009-10-15  Yury Semikhatsky  <yurys@chromium.org>

        Reviewed by Dave Hyatt.

        Test that shorthand name is not null for
        background-repeat-x, background-repeat-y, background-position-x,
        background-position-y, -webkit-mask-position-x, -webkit-mask-position-y,
        -webkit-mask-repeat-x, -webkit-mask-repeat-y.

        https://bugs.webkit.org/show_bug.cgi?id=28972

        * fast/backgrounds/repeat/background-repeat-shorthand-expected.txt: Added.
        * fast/backgrounds/repeat/background-repeat-shorthand.html: Added.
        * fast/backgrounds/repeat/resources/background-repeat-shorthand.css: Added.
        * fast/backgrounds/repeat/resources/background-repeat-shorthand.js: Added.
        (getShorthand):

2009-10-14  Joseph Pecoraro  <joepeck@webkit.org>

        Reviewed by Adam Barth.

        [HTML5] Add document.head
        https://bugs.webkit.org/show_bug.cgi?id=30232

        * fast/dom/document-head-expected.txt: Added.
        * fast/dom/document-head.html: Added.
        * fast/dom/script-tests/document-head.js: Added.

2009-10-14  Adam Barth  <abarth@webkit.org>

        Reviewed by Darin Adler.

        [XSSAuditor] Add an exception for local files
        https://bugs.webkit.org/show_bug.cgi?id=30352

        Test that we allow sites to load scripts from their own domain as long
        as they don't use query strings.

        * http/tests/security/xssAuditor/script-tag-with-source-same-host-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-with-source-same-host-with-query-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-with-source-same-host-with-query.html: Added.
        * http/tests/security/xssAuditor/script-tag-with-source-same-host.html: Added.

2009-10-14  Darin Adler  <darin@apple.com>

        Fix a failure seen on buildbot after landing the fix for
        https://bugs.webkit.org/show_bug.cgi?id=18994

        * platform/win/fast/css/large-number-round-trip-expected.txt: Removed.

2009-10-14  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        Check if the offset of a SVG mask is correct on using default values.

        * platform/mac/svg/custom/mask-with-default-value-expected.checksum: Added.
        * platform/mac/svg/custom/mask-with-default-value-expected.png: Added.
        * platform/mac/svg/custom/mask-with-default-value-expected.txt: Added.
        * svg/custom/mask-with-default-value.svg: Added.

2009-10-14  Darin Adler  <darin@apple.com>

        Reviewed by Mark Rowe.

        Fix failures seen on buildbot after landing the fix for
        https://bugs.webkit.org/show_bug.cgi?id=18994

        Somehow I had the mac/fast/css/opacity-float-expected.txt
        removed locally, and Subversion didn't check that in!

        * platform/mac/fast/css/opacity-float-expected.txt: Removed.
        * platform/win/fast/css/opacity-float-expected.txt: Removed.

2009-10-14  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam Weinig.

        Disable plugins/private-browsing-mode.html on Snow Leopard.

        * platform/mac-snowleopard/Skipped:

2009-10-13  Julie Parent  <jparent@chromium.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=30269
        Use onload to detect iframe load, rather than setTimeout.
        This will give more consistent test results and hopefully faster run times.

        * editing/execCommand/paste-1.html:
        * editing/execCommand/paste-2.html:
        * editing/pasteboard/subframe-dragndrop-1.html:
        * editing/selection/4776665.html:
        * editing/selection/4975120.html:
        * editing/selection/5136696.html:
        * editing/selection/drag-to-contenteditable-iframe.html:
        * platform/mac/editing/selection/5136696-expected.txt: Rebaselined because moving a script tag eliminated an empty text node.
        * platform/qt/editing/selection/5136696-expected.txt: Rebaselined because moving a script tag eliminated an empty text node.
        * platform/win/editing/selection/5136696-expected.txt: Rebaselined because moving a script tag eliminated an empty text node.

2009-10-14  Evan Martin  <evan@chromium.org>

        Reviewed by Darin Adler.

        Float formatting changes affect three tests:
        - large-number-round-trip now passes
        - opacity-float now passes and has more test cases
        - compound-2d-transforms output tweaked slightly
        
        https://bugs.webkit.org/show_bug.cgi?id=18994

        * fast/css/large-number-round-trip-expected.txt:
        * fast/css/opacity-float-expected.txt:
        * fast/css/opacity-float.html:
        * platform/mac/fast/css/opacity-float-expected.txt: Removed.
        * transforms/2d/compound-2d-transforms-expected.txt:
        * transforms/2d/compound-2d-transforms.html:

2009-10-14  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        Check if the percentage of effect values takes user space as reference and
        not the FilterRect.

        * platform/mac/svg/filters/subRegion-in-userSpace-expected.checksum: Added.
        * platform/mac/svg/filters/subRegion-in-userSpace-expected.png: Added.
        * platform/mac/svg/filters/subRegion-in-userSpace-expected.txt: Added.
        * svg/filters/subRegion-in-userSpace.svg: Added.

2009-10-14  Brady Eidson  <beidson@apple.com>

        Reviewed by Sam Weinig.

        Un-skip a test that now passes.

        * platform/win/Skipped:

2009-10-14  Nate Chapin  <japhet@chromium.org>

        Unreviewed, build fix.

        When I landed r49569 for Victor, I failed to svn add one of the required files.

        This should fix the redness on the Windows test bots.

        * platform/win/editing/pasteboard/paste-xml-expected.txt: Added.

2009-10-14  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Web Inspector: skip inspector tests that were recently added
        until harness is fixed in release mode.

        https://bugs.webkit.org/show_bug.cgi?id=30014

        * platform/gtk/Skipped:
        * platform/mac-leopard/Skipped:
        * platform/mac-snowleopard/Skipped:
        * platform/mac-tiger/Skipped:
        * platform/mac/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:

2009-10-14  Brady Eidson  <beidson@apple.com>

        Skip my two new failures while I'm actively looking at them.

        * platform/win/Skipped:

2009-10-14  Victor Wang  <victorw@chromium.org>

        Reviewed by Darin Adler.

        Add paste-xml test back for Win.
        The result difference between Mac and Win is due to the
        platform dependent implementation. The diff is expected
        with current implementation.
        See bug for more deails:

        https://bugs.webkit.org/show_bug.cgi?id=30267

        * platform/win/Skipped:
        * platform/win/editing/pasteboard/paste-xml-expected.txt: Added.

2009-10-14  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Web Inspector: add initial layout tests for web inspector.

        https://bugs.webkit.org/show_bug.cgi?id=30014

        * inspector/console-tests-expected.txt: Added.
        * inspector/console-tests.html: Added.
        * inspector/elements-panel-structure-expected.txt: Added.
        * inspector/elements-panel-structure.html: Added.
        * inspector/evaluate-in-frontend-expected.txt: Added.
        * inspector/evaluate-in-frontend.html: Added.
        * inspector/evaluate-in-frontend.js: Added.

2009-10-14  Victor Wang  <victorw@chromium.org>

        Reviewed by David Hyatt.

        Round non-integer line height values and update layout tests affected.

        -. Change webkit to rounding non-integer line height values
           instead of truncating them. This fixes a layout test
           failure on Windows and matches the calculation in IE and Firefox. 

        -. Update layout tests affected by changing line height calculation.
           Fix the font size in font.html. The font computed pixel size should
           be 10px instead of 9.6px (computedPixelSize in FontDescription.h)
           and line height should be 25, not 24.

        https://bugs.webkit.org/show_bug.cgi?id=24434

        * css1/font_properties/font.html:
        * fast/css/line-height-rounding-expected.txt: Added.
        * fast/css/line-height-rounding.html: Added.
        * platform/mac/css1/font_properties/font-expected.txt:
        * platform/mac/css2.1/t090501-c414-flt-ln-00-d-expected.txt:
        * platform/mac/css2.1/t090501-c414-flt-ln-01-d-g-expected.txt:
        * platform/mac/css2.1/t090501-c414-flt-ln-02-d-expected.txt:
        * platform/mac/css2.1/t090501-c414-flt-ln-03-d-expected.txt:
        * platform/mac/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.checksum:
        * platform/mac/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.png:
        * platform/mac/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.txt:
        * platform/mac/svg/custom/svg-fonts-in-html-expected.checksum:
        * platform/mac/svg/custom/svg-fonts-in-html-expected.png:
        * platform/mac/svg/custom/svg-fonts-in-html-expected.txt:

2009-10-14  Brady Eidson  <beidson@apple.com>

        Reviewed by Sam Weinig.

        WebKit Win API should provide a delegate interface for global history.
        https://bugs.webkit.org/show_bug.cgi?id=29905

        * platform/win/Skipped: Enable globalhistory tests.

2009-10-14  Yong Li  <yong.li@torchmobile.com>

        Reviewed by Adele Peterson.

        Added a test case that loads an invalid image to make sure
        we don't crash in this situation.
        https://bugs.webkit.org/show_bug.cgi?id=29980

        * fast/images/image-invalid-data-expected.txt: Added.
        * fast/images/image-invalid-data.html: Added.
        * fast/images/resources/invalid.jpg: Added.

2009-10-09  Stephen White  <senorblanco@chromium.org>

        Reviewed by Eric Seidel.

        New test for NULL ptr deref in canvas's toDataURL().
        https://bugs.webkit.org/show_bug.cgi?id=30254

        * fast/canvas/canvas-toDataURL-crash-expected.txt: Added.
        * fast/canvas/canvas-toDataURL-crash.html: Added.

2009-10-13  Dimitri Glazkov  <dglazkov@chromium.org>

        No review, rolling out r49554, because it broke Win and Chromium builds.
        http://trac.webkit.org/changeset/49554

        * fast/css/large-number-round-trip-expected.txt:
        * fast/css/opacity-float-expected.txt:
        * fast/css/opacity-float.html:
        * platform/mac/fast/css/opacity-float-expected.txt: Added.
        * transforms/2d/compound-2d-transforms-expected.txt:
        * transforms/2d/compound-2d-transforms.html:

2009-10-13  Evan Martin  <evan@chromium.org>

        Reviewed by Adam Barth.

        Float formatting changes affect three tests:
        - large-number-round-trip now passes
        - opacity-float now passes and has more test cases
        - compound-2d-transforms output tweaked slightly
        
        https://bugs.webkit.org/show_bug.cgi?id=18994

        * fast/css/large-number-round-trip-expected.txt:
        * fast/css/opacity-float-expected.txt:
        * fast/css/opacity-float.html:
        * platform/mac/fast/css/opacity-float-expected.txt: Removed.
        * transforms/2d/compound-2d-transforms-expected.txt:
        * transforms/2d/compound-2d-transforms.html:

2009-10-13  Zan Dobersek  <zandobersek@gmail.com>

        Reviewed by Holger Freyther.

        [LayoutTests][Gtk] Set a common Gtk theme as default and update the results
        https://bugs.webkit.org/show_bug.cgi?id=30223

        Update test results to reflect the usage of the default theme.

        * platform/gtk/editing/selection/iframe-expected.txt:
        * platform/gtk/editing/selection/select-box-expected.txt:

2009-10-13  Sam Weinig  <sam@webkit.org>

        Reviewed by David Hyatt.

        Test issue where clientX and clientY on MouseEvents were wrong when
        the page was zoomed and scrolled.

        * fast/events/clientXY-in-zoom-and-scroll-expected.txt: Added.
        * fast/events/clientXY-in-zoom-and-scroll.html: Added.

2009-10-13  Dmitry Titov  <dimich@chromium.org>

        Reviewed by Alexey Proskuryakov.

        https://bugs.webkit.org/show_bug.cgi?id=30318
        ScriptExecutionContext is not anymore needed to create an EventListener - remove old code.
        It's a followup to r48884. It removed the need to pass the ScritpExecutionContext
        into EventListener constructor but did not remove the code pulling ScriptExecutionContext.

        Test adds event listener to a DocumentType Node which is created without a document
        and then dispatches the event after attaching a node to the tree. Event
        should fire when node is attached to the tree.

        * fast/events/add-event-without-document-expected.txt: Added.
        * fast/events/add-event-without-document.html: Added.

2009-10-13  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Jon Honeycutt.

        Add trailing newline to the Windows Skipped List.

        * platform/win/Skipped:

2009-10-13  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Anders Carlsson.

        Add plugins/private-browsing-mode.html to the Windows Skipped
        list because the feature is not implemented on Windows. This feature
        is being tracked by <https://bugs.webkit.org/show_bug.cgi?id=30348>.

        * platform/win/Skipped:

2009-10-13  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        Visibility:visible inside a compositing layer doesn't make the element visible
        https://bugs.webkit.org/show_bug.cgi?id=30339
        
        Test painting of a visibilty:visible layer inside a composited, visibility:hidden layer.

        * compositing/compositing-visible-descendant.html: Added.
        * platform/mac/compositing/compositing-visible-descendant-expected.checksum: Added.
        * platform/mac/compositing/compositing-visible-descendant-expected.png: Added.
        * platform/mac/compositing/compositing-visible-descendant-expected.txt: Added.

2009-10-13  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Dan Bernstein.

        https://bugs.webkit.org/show_bug.cgi?id=30150
        <rdar://problem/7283540> REGRESSION: Crash when accessing clipboardData.types

        * editing/pasteboard/crash-accessing-clipboardData-types-expected.txt: Added.
        * editing/pasteboard/crash-accessing-clipboardData-types.html: Added.

2009-10-13  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam Weinig.

        <rdar://problem/6660507> Add "privacy mode" to Netscape Plug-in API

        Add test.
        
        * platform/mac-snowleopard/Skipped:
        Remove now passing tests that was fixed by https://bugs.webkit.org/show_bug.cgi?id=30295.
        
        * plugins/private-browsing-mode-expected.txt: Added.
        * plugins/private-browsing-mode.html: Added.

2009-10-13  Michelangelo De Simone  <micdesim@gmail.com>

        Reviewed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=27457
        Test case for static email validation on type=email input elements as
        per HTML5 specs:
        http://www.whatwg.org/specs/web-apps/current-work/#e-mail-state

        * fast/forms/ValidityState-typeMismatch-email-expected.txt: Added.
        * fast/forms/ValidityState-typeMismatch-email.html: Added.
        * fast/forms/resources/ValidityState-typeMismatch-email.js: Added.
        ():

2009-10-13  Dmitry Titov  <dimich@chromium.org>

        Reviewed by Adam Barth.

        Event listeners installed on a window object returned from window.open() don't work
        https://bugs.webkit.org/show_bug.cgi?id=28716

        * http/tests/security/resources/has-window-events.html: Added.
        * http/tests/security/window-events-clear-domain-expected.txt: Added.
        * http/tests/security/window-events-clear-domain.html: Added.
        * http/tests/security/window-events-clear-port-expected.txt: Added.
        * http/tests/security/window-events-clear-port.html: Added.
        * http/tests/security/window-events-pass-expected.txt: Added.
        * http/tests/security/window-events-pass.html: Added.

2009-10-13  Pavel Feldman  <pfeldman@chromium.org>

        Layout test fix, reverting previous change.

        Reverting r49499 as it caused several layout test failures.

        * inspector/console-tests-expected.txt: Removed.
        * inspector/console-tests.html: Removed.
        * inspector/elements-panel-structure-expected.txt: Removed.
        * inspector/elements-panel-structure.html: Removed.
        * inspector/evaluate-in-frontend-expected.txt: Removed.
        * inspector/evaluate-in-frontend.html: Removed.
        * inspector/evaluate-in-frontend.js: Removed.

2009-10-13  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Web Inspector: add initial layout tests for web inspector.

        https://bugs.webkit.org/show_bug.cgi?id=30014

        * inspector/console-tests-expected.txt: Added.
        * inspector/console-tests.html: Added.
        * inspector/elements-panel-structure-expected.txt: Added.
        * inspector/elements-panel-structure.html: Added.
        * inspector/evaluate-in-frontend-expected.txt: Added.
        * inspector/evaluate-in-frontend.html: Added.
        * inspector/evaluate-in-frontend.js: Added.

2009-10-12  Jakub Wieczorek  <faw217@gmail.com>

        Reviewed by Simon Hausmann.

        [Qt] Missing default value for the default text encoding.
        https://bugs.webkit.org/show_bug.cgi?id=30311

        QtWebKit has provided a default, hardcoded value for default charset but since
        the addition of the defaultTextEncoding setting in QWebSettings, that hardcoded
        value has had no effect.

        Added a regression test and unskipped fast/dom/Document/document-charset.html,
        which is passing now.

        * platform/qt/Skipped:

2009-10-12  Xiaomei Ji  <xji@chromium.org>

        Reviewed by Sam Weinig.

        Fix issue caretRangeFromPoint() returns wrong result for a zoomed and 
        scrolled page.
        https://bugs.webkit.org/show_bug.cgi?id=30034

        * fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt:
        * fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport.html:
        * fast/dom/elementFromPoint-relative-to-viewport-expected.txt:
        * fast/dom/elementFromPoint-relative-to-viewport.html:

2009-10-12  Fumitoshi Ukai  <ukai@chromium.org>

        Unreviewed.  Fix 4 layout test failures by webkit r49488

        WebKit r49488 enables window.WebSocket back. 

        * fast/dom/Window/window-properties-expected.txt:
        * fast/dom/prototype-inheritance-2-expected.txt:
        * fast/dom/prototype-inheritance-expected.txt:
        * fast/js/global-constructors-expected.txt:

2009-10-12  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by Sam Weinig.

        Add a test to verify WebSocket's EventTarget methods.
        https://bugs.webkit.org/show_bug.cgi?id=29841

        * fast/websockets/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/canvas/script-tests/TEMPLATE.html.
        * fast/websockets/script-tests/websocket-event-target.js: Added.
        (openListener):
        (messageListener):
        (closeListener):
        * fast/websockets/websocket-event-target-expected.txt: Added.
        * fast/websockets/websocket-event-target.html: Added.

2009-10-12  Sam Weinig  <sam@webkit.org>

        Reviewed by Darin Adler.

        Fix for https://bugs.webkit.org/show_bug.cgi?id=29078
        <rdar://problem/7288221>

        Test the lack of UTF-7 support. Remove old UTF-7 tests.

        * fast/encoding/char-decoding-expected.txt:
        * fast/encoding/char-decoding.html:
        * http/tests/misc/submit-get-in-utf7-expected.txt: Removed.
        * http/tests/misc/submit-get-in-utf7.html: Removed.
        * http/tests/misc/submit-post-in-utf7-expected.txt: Removed.
        * http/tests/misc/submit-post-in-utf7.html: Removed.
        * http/tests/misc/url-in-utf7-expected.txt: Removed.
        * http/tests/misc/url-in-utf7.html: Removed.
        * http/tests/security/xssAuditor/http-equiv-utf-7-encoded-expected.txt: Removed.
        * http/tests/security/xssAuditor/http-equiv-utf-7-encoded.html: Removed.
        * http/tests/security/xssAuditor/resources/echo-intertag-utf-7.pl: Removed.
        * http/tests/security/xssAuditor/script-tag-utf-7-encoded-expected.txt: Removed.
        * http/tests/security/xssAuditor/script-tag-utf-7-encoded.html: Removed.
        * http/tests/security/xssAuditor/script-tag-utf-7-expected.txt: Removed.
        * http/tests/security/xssAuditor/script-tag-utf-7.html: Removed.

2009-10-12  Dan Bernstein  <mitz@apple.com>

        Reviewed by Simon Fraser.

        Test for <rdar://problem/7094146> Reproducible crash at
        RenderObject::localToAbsolute()

        * fast/dynamic/position-absolute-to-fixed-crash-expected.txt: Added.
        * fast/dynamic/position-absolute-to-fixed-crash.html: Added.

2009-10-12  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        Three old test results give back the absolute position instead of the realtive position.
        The new test will check the correct behavior of gradients in userSpaceOnUse mode and
        values in percentage.

        * platform/mac/svg/custom/gradient-attr-update-expected.txt:
        * platform/mac/svg/custom/gradient-deep-referencing-expected.txt:
        * platform/mac/svg/custom/gradient-userSpaceOnUse-with-percentage-expected.checksum: Added.
        * platform/mac/svg/custom/gradient-userSpaceOnUse-with-percentage-expected.png: Added.
        * platform/mac/svg/custom/gradient-userSpaceOnUse-with-percentage-expected.txt: Added.
        * platform/mac/svg/custom/text-gradient-no-content-expected.txt:
        * svg/custom/gradient-userSpaceOnUse-with-percentage.svg: Added.

2009-10-12  Dirk Schulze  <krit@webkit.org>

        Reviewed by Eirc Seidel.

        feMergeNod has a reference to an effect that doesn't exist. This test will
        check if SVGFEMergeElement handles this correctly and stops the filter process.

        * svg/filters/feMerge-wrong-input-expected.checksum: Added.
        * svg/filters/feMerge-wrong-input-expected.png: Added.
        * svg/filters/feMerge-wrong-input-expected.txt: Added.
        * svg/filters/feMerge-wrong-input.svg: Added.

2009-10-12  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Oliver Hunt.

        Added test case for bug
        https://bugs.webkit.org/show_bug.cgi?id=30236

        This test case draws a simple triangle, does a readPixels and looks at some pixels
        to verify that the triangle rendered.

        * fast/canvas/webgl/resources: Added.
        * fast/canvas/webgl/resources/utils3d.js: Added.
        * fast/canvas/webgl/triangle-expected.txt: Added.
        * fast/canvas/webgl/triangle.html: Added.

2009-10-12  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Xan Lopez.

        [Gtk] Update Fedora httpd.conf settings to closely match the generic httpd.conf
        https://bugs.webkit.org/show_bug.cgi?id=30302

        Closely match the default httpd.conf for layout tests.

        * http/conf/fedora-httpd.conf:

2009-10-12  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Tor Arne Vestbø.

        [Qt] Add expected files for new passing fast tests.

        * platform/qt/fast/css/counters/t1204-increment-00-c-o-expected.txt: Added.
        * platform/qt/fast/css/counters/t1204-increment-01-c-o-expected.txt: Added.
        * platform/qt/fast/css/text-rendering-expected.txt: Added.
        * platform/qt/fast/forms/basic-buttons-expected.txt: Added.
        * platform/qt/fast/forms/basic-inputs-expected.txt: Added.
        * platform/qt/fast/multicol/positioned-with-constrained-height-expected.txt: Added.
        * platform/qt/fast/overflow/position-fixed-transform-clipping-expected.txt: Added.
        * platform/qt/fast/repaint/line-in-scrolled-clipped-block-expected.txt: Added.

2009-10-12  Cameron McCormack  <cam@mcc.id.au>

        Reviewed by Eric Seidel.

        Drop in="" from <feFlood>
        https://bugs.webkit.org/show_bug.cgi?id=29001

        This makes <feFlood in="bogus"> have an effect, too.

        http://www.w3.org/2003/01/REC-SVG11-20030114-errata#feflood-attribute

        * svg/dom/feFlood-no-in1-expected.txt: Added.
        * svg/dom/feFlood-no-in1.html: Added.
        * svg/dom/script-tests/feFlood-no-in1.js: Added.

2009-10-11  Daniel Bates  <dbates@webkit.org>

        Reviewed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=30242
        
        Tests that JavaScript URLs that are twice URL encoded do not bypass the XSSAuditor.

        * http/tests/security/xssAuditor/iframe-javascript-url-twice-url-encode-expected.txt: Added.
        * http/tests/security/xssAuditor/iframe-javascript-url-twice-url-encode.html: Added.
        * http/tests/security/xssAuditor/iframe-javascript-url-twice-url-encode2-expected.txt: Added.
        * http/tests/security/xssAuditor/iframe-javascript-url-twice-url-encode2.html: Added.
        * http/tests/security/xssAuditor/iframe-javascript-url-twice-url-encode3-expected.txt: Added.
        * http/tests/security/xssAuditor/iframe-javascript-url-twice-url-encode3.html: Added.

2009-10-11  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        Test for <rdar://problem/7294267> REGRESSION (r48492): Gmail voice and
        video chat doesn’t work
        https://bugs.webkit.org/show_bug.cgi?id=30295

        * plugins/setProperty-expected.txt: Added.
        * plugins/setProperty.html: Added.

2009-10-10  Cameron McCormack  <cam@mcc.id.au>

        Reviewed by Sam Weinig.

        Allow [Reflect] on SVG elements.
        https://bugs.webkit.org/show_bug.cgi?id=28936

        Update the JS binding generators to reference SVGNames instead of
        HTMLNames, if [Reflect]ing an attribute on an SVG element.  Make
        SVGElement::id use [Reflect].

        Also make [Reflect] on an attribute with a setter exception work in ObjC
        bindings.

        * svg/dom/script-tests/id-reflect.js: Added.
        * svg/dom/id-reflect-expected.txt: Added.
        * svg/dom/id-reflect.html: Added.

2009-10-10  Oliver Hunt  <oliver@apple.com>

        Reviewed by Maciej Stachowiak.

        Support for String.trim(), String.trimLeft() and String.trimRight() methods
        https://bugs.webkit.org/show_bug.cgi?id=26590

        Add tests for trim, trimLeft, and trimRight

        * fast/js/script-tests/string-trim.js: Added.
        * fast/js/string-trim-expected.txt: Added.
        * fast/js/string-trim.html: Added.

2009-10-10  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Eric Seidel.

        REGRESSION (r49414): Rebaseline needed for Windows / Gtk Linux
        https://bugs.webkit.org/show_bug.cgi?id=30279

        * platform/gtk/editing/style/5228141-expected.txt: Same rebaseline done for Mac in r49414
        * platform/win/editing/execCommand/toggle-compound-styles-expected.txt: two i tags are merged properly

2009-10-10  Oliver Hunt  <oliver@apple.com>

        Reviewed by Eric Carlson.

        Implement getActiveAttrib and getActiveUniform
        https://bugs.webkit.org/show_bug.cgi?id=30276

        Adds test for getActiveAttrib and getActiveUniform.  Additionally
        adds a basic shader pair, and a utility library to do the more
        mechanical work needed to set up a WebGL context for testing.

        * fast/canvas/webgl/getActiveTest-expected.txt: Added.
        * fast/canvas/webgl/getActiveTest.html: Added.
        * fast/canvas/webgl/resources/fragmentShader.frag: Added.
        * fast/canvas/webgl/resources/shader-test.js: Added.
        (getShaderSource):
        (create3DContext):
        (loadStandardProgram):
        * fast/canvas/webgl/resources/vertexShader.vert: Added.
        * fast/canvas/webgl/script-tests/getActiveTest.js: Added.

2009-10-09  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Eric Seidel.

        ApplyStyleCommand removes presentational tags even when not necessary
        https://bugs.webkit.org/show_bug.cgi?id=28091

        This patch adds test to make sure to preserve presentational tag
        (u, s, strike, i, em, sup, sub, b, & strong) when the corresponding style is present in
        the final computed style. i.e. avoid removing tag and re-applying the style later

        * editing/execCommand/19653-2-expected.txt: Two b elements are merged.
        * editing/execCommand/createLink-expected.txt: Two anchor elements are merged.
        * editing/execCommand/script-tests/toggle-style-3.js: Added.
        (testSingleToggle):
        * editing/execCommand/strikethroughSelection-expected.txt: Redundant style spans are no longer added.
        * editing/execCommand/toggle-style-3-expected.txt: Added.
        * editing/execCommand/toggle-style-3.html: Added.
        * editing/execCommand/unlink-expected.txt: Two anchor elements are merged.
        * platform/mac/editing/style/5228141-expected.txt: Two b elements are merged.
        * platform/mac/editing/style/style-boundary-001-expected.txt: Two b elements are merged.

2009-10-09  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Brady Eidson.

        https://bugs.webkit.org/show_bug.cgi?id=30260
        <rdar://problem/6447115> REGRESSION: Logging out from SAP doesn't work

        * http/tests/xmlhttprequest/logout-expected.txt: Added.
        * http/tests/xmlhttprequest/logout.html: Added.
        * http/tests/xmlhttprequest/resources/logout: Added.
        * http/tests/xmlhttprequest/resources/logout/resource.php: Added.
        Test that the logout method in question works (it currently works in Firefox, too).

        * http/tests/xmlhttprequest/re-login-async-expected.txt: Added.
        * http/tests/xmlhttprequest/re-login-async.html: Added.
        * http/tests/xmlhttprequest/re-login-expected.txt: Added.
        * http/tests/xmlhttprequest/re-login.html: Added.
        * http/tests/xmlhttprequest/resources/re-login: Added.
        * http/tests/xmlhttprequest/resources/re-login/resource.php: Added.
        Test that switching to a new credential works again, too.

2009-10-09  Enrica Casucci  <enrica@apple.com>

        Reviewed by Adele Peterson.

        Undoing a indent removes text instead of it's formatting.
        <rdar://problem/7169206>
        https://bugs.webkit.org/show_bug.cgi?id=28722
        Added test case for https://bugs.webkit.org/show_bug.cgi?id=23995

        * editing/execCommand/19653-1-expected.txt: Re-baselined.
        * editing/execCommand/indent-div-inside-list-expected.txt: Re-baselined.
        * editing/execCommand/indent-nested-blockquotes-expected.txt: Re-baselined.
        * editing/execCommand/indent-nested-div-expected.txt: Re-baselined.
        * editing/execCommand/indent-second-paragraph-in-blockquote-expected.txt: Re-baselined.
        * editing/execCommand/indent-with-style-expected.txt: Added.
        * editing/execCommand/indent-with-style.html: Added.
        * editing/undo/undo-indent-expected.txt: Added.
        * editing/undo/undo-indent.html: Added.
        * platform/mac/editing/execCommand/4641880-2-expected.txt: Re-baselined.
        * platform/mac/editing/execCommand/4916541-expected.txt: Re-baselined.
        * platform/mac/editing/execCommand/5138441-expected.txt: Re-baselined.
        * platform/mac/editing/execCommand/5481523-expected.txt: Re-baselined.
        * platform/mac/editing/execCommand/indent-selection-expected.txt: Re-baselined.

2009-10-09  Dirk Schulze  <krit@webkit.org>

        Reviewed by Oliver Hunt.

        Test for feGaussianBlur implementation

        * platform/mac/svg/filters/feGaussianBlur-expected.checksum: Added.
        * platform/mac/svg/filters/feGaussianBlur-expected.png: Added.
        * platform/mac/svg/filters/feGaussianBlur-expected.txt: Added.
        * svg/filters/feGaussianBlur.svg: Added.

2009-10-09  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        Attribute "operator" schould only be accessible by "operator", not by "_operator"

        * svg/dom/operatorAttribute-expected.txt: Added.
        * svg/dom/operatorAttribute.html: Added.
        * svg/dom/script-tests/operatorAttribute.js: Added.

2009-10-09  Darin Adler  <darin@apple.com>

        Requested by Mark Rowe.

        Moved DOM test that was in fast/js to fast/dom where it belongs.

        * fast/dom/Document/invalid-domain-change-throws-exception-expected.txt:
        Copied from fast/js/invalid-domain-change-throws-exception-expected.txt.
        * fast/dom/Document/invalid-domain-change-throws-exception.html:
        Copied from fast/js/invalid-domain-change-throws-exception.html.
        Regenerated with the make-script-test-wrappers.
        * fast/dom/Document/script-tests/invalid-domain-change-throws-exception.js:
        Copied from fast/js/resources/invalid-domain-change-throws-exception.js.

        * fast/js/invalid-domain-change-throws-exception-expected.txt: Removed.
        * fast/js/invalid-domain-change-throws-exception.html: Removed.
        * fast/js/resources/invalid-domain-change-throws-exception.js: Removed.

2009-10-08  Brady Eidson  <beidson@apple.com>

        Reviewed by Dan Bernstein.

        Ask the History Delegate to populate the visited links hash.
        <rdar://problem/7285293> and https://webkit.org/b/29904

        * http/tests/globalhistory/history-delegate-basic-visited-links-expected.txt: Added.
        * http/tests/globalhistory/history-delegate-basic-visited-links.html: Added.

2009-10-08  Aaron Boodman  <aa@chromium.org>

        Reviewed by Eric Seidel.

        r49278 added support for reusing isolated worlds, and the
        corresponding change to Chromium's LayoutTestController changed
        to expect two arguments. The first argument is the world that
        the script should run in.

        This change fixes the tests by updating them all to pass 0
        for the world id. The specific world id used for these tests
        doesn't really matter because they don't test world interaction.

        https://bugs.webkit.org/show_bug.cgi?id=30231

        * http/tests/security/isolatedWorld/all-window-properties.html:
        * http/tests/security/isolatedWorld/all-window-prototypes.html:
        * http/tests/security/isolatedWorld/body-properties.html:
        * http/tests/security/isolatedWorld/body-prototype.html:
        * http/tests/security/isolatedWorld/click-event.html:
        * http/tests/security/isolatedWorld/document-open.html:
        * http/tests/security/isolatedWorld/document-properties.html:
        * http/tests/security/isolatedWorld/document-prototype.html:
        * http/tests/security/isolatedWorld/global-variables.html:
        * http/tests/security/isolatedWorld/image-properties.html:
        * http/tests/security/isolatedWorld/image-prototype.html:
        * http/tests/security/isolatedWorld/location-properties.html:
        * http/tests/security/isolatedWorld/location-prototype.html:
        * http/tests/security/isolatedWorld/number-prototype.html:
        * http/tests/security/isolatedWorld/object-prototype.html:
        * http/tests/security/isolatedWorld/storage-properties.html:
        * http/tests/security/isolatedWorld/storage-prototype.html:
        * http/tests/security/isolatedWorld/string-prototype.html:
        * http/tests/security/isolatedWorld/window-properties.html:
        * http/tests/security/isolatedWorld/window-setTimeout-function.html:
        * http/tests/security/isolatedWorld/window-setTimeout-string.html:

2009-10-08  Nikolas Zimmermann  <nzimmermann@rim.com>

        Reviewed by Eric Seidel.

        Move SVGFitToViewBox ANIMATED_* macros in classes that inherit from it
        https://bugs.webkit.org/show_bug.cgi?id=30230

        Update the results of linking-a-03-b-transform.svg, it works again.

        * platform/mac/svg/custom/linking-a-03-b-transform-expected.checksum:
        * platform/mac/svg/custom/linking-a-03-b-transform-expected.png:
        * platform/mac/svg/custom/linking-a-03-b-transform-expected.txt:

2009-10-08  Xan Lopez  <xlopez@igalia.com>

        Skip another failing test with reference to its bug.

        * platform/gtk/Skipped:

2009-10-08  Xan Lopez  <xlopez@igalia.com>

        Skip flakey transition test.

        * platform/gtk/Skipped:

2009-10-07  Adam Roben  <aroben@apple.com>

        Start running origin whitelist tests on Windows

        Fixes <http://webkit.org/b/30185>.

        Reviewed by Eric Seidel.

        * platform/win/Skipped:

2009-10-08  Xan Lopez  <xlopez@igalia.com>

        Fix typo in skipped test.

        * platform/gtk/Skipped:

2009-10-08  Xan Lopez  <xlopez@igalia.com>

        Skip editing/selection/home-end.html, since it seems to be
        somewhat broken. See https://bugs.webkit.org/show_bug.cgi?id=30208
        for details.

        * platform/gtk/Skipped:

2009-10-07  Aaron Boodman  <aa@chromium.org>

        Reviewed by Adam Barth.

        Update isolated worlds under v8 to support world reuse.
        https://bugs.webkit.org/show_bug.cgi?id=30145

        * http/tests/security/isolatedWorld/iframe.html: Added.
        * http/tests/security/isolatedWorld/world-reuse-expected.txt: Added.
        * http/tests/security/isolatedWorld/world-reuse.html: Added.

2009-10-07  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin Adler.

        Send title changes to the global history delegate.
        <rdar://problem/7285293> and https://webkit.org/b/29904

        * http/tests/globalhistory/history-delegate-basic-title-expected.txt: Added.
        * http/tests/globalhistory/history-delegate-basic-title.html: Added.

2009-10-07  Evan Martin  <evan@chromium.org>

        Reviewed by Adam Roben.

        Windows-specific baselines for some new tests.

        * platform/win/fast/css/large-number-round-trip-expected.txt: Added.
        * platform/win/fast/css/opacity-float-expected.txt: Copied from LayoutTests/fast/css/opacity-float-expected.txt.

2009-10-07  Evan Martin  <evan@chromium.org>

        Reviewed by Simon Fraser.

        Add a currently-failing test exhibiting the problem in
        https://bugs.webkit.org/show_bug.cgi?id=20674:

        When converting very large or small numbers back to strings, exponential
        notation is used, so a value like 90010000px is returned from
        getComputedStyle() as 9.001e+07px.

        9.001e+07px does not parse, so such a value cannot be round-tripped.

        This is a particular problem with tranformation matrices, which can often
        contain very large or small numbers.

        (Test written by Simon Fraser; I've just made it a committable patch.)

        * fast/css/large-number-round-trip-expected.txt: Added.
        * fast/css/large-number-round-trip.html: Added.

2009-10-07  Evan Martin  <evan@chromium.org>

        Reviewed by Darin Adler.

        Layout test for verifying that LC_NUMERIC setting doesn't affect
        the way CSS properties are stringified.
        https://bugs.webkit.org/show_bug.cgi?id=18994

        * fast/css/opacity-float-expected.txt: Added.
        * fast/css/opacity-float.html: Added.

2009-10-07  Xan Lopez  <xlopez@igalia.com>

        Skip two new tests for which we are missing results.

        * platform/gtk/Skipped:

2009-10-07  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        Tidy up postMessage testcase

        * fast/dom/Window/window-postmessage-clone-expected.txt:
        * fast/dom/Window/window-postmessage-clone.html:

2009-10-07  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Eric Seidel.

        Dual lines in css2.1 layout tests do not match:
        https://bugs.webkit.org/show_bug.cgi?id=23262

        Now we can put a counter node as the next sibling of a reset node.
        Re-layout the counter content when the count is updated.

        * fast/css/counters/t1204-increment-00-c-o.html: Added.
        * fast/css/counters/t1204-increment-01-c-o.html: Added.
        * platform/mac/fast/css/counters/t1204-increment-00-c-o-expected.checksum: Added.
        * platform/mac/fast/css/counters/t1204-increment-00-c-o-expected.png: Added.
        * platform/mac/fast/css/counters/t1204-increment-00-c-o-expected.txt: Added.
        * platform/mac/fast/css/counters/t1204-increment-01-c-o-expected.checksum: Added.
        * platform/mac/fast/css/counters/t1204-increment-01-c-o-expected.png: Added.
        * platform/mac/fast/css/counters/t1204-increment-01-c-o-expected.txt: Added.

2009-10-05  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        It should be possible to post (clone) built-in JS objects to Workers
        https://bugs.webkit.org/show_bug.cgi?id=22878

        Add a test for object cloning for postMessage, and update existing tests
        to reflect the new cloning semantics.

        * fast/dom/Window/window-postmessage-clone-expected.txt: Added.
        * fast/dom/Window/window-postmessage-clone.html: Added.
        * fast/events/init-events-expected.txt:
        * fast/events/script-tests/init-events.js:
        * fast/workers/resources/use-machine-stack.js:

2009-10-06  Dave Hyatt  <hyatt@apple.com>

        Reviewed by Adam Roben.

        https://bugs.webkit.org/show_bug.cgi?id=30132, make beforeload work with CSS stylesheets loaded from
        <link> elements and XML processing instructions.

        * fast/dom/beforeload/link-before-load-expected.txt: Added.
        * fast/dom/beforeload/link-before-load.html: Added.
        * fast/dom/beforeload/pi-before-load-expected.txt: Added.
        * fast/dom/beforeload/pi-before-load.xhtml: Added.

2009-10-06  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Mark Rowe.
        
        accessibility/media-element.html crashes (and has incorrect result)
        https://bugs.webkit.org/show_bug.cgi?id=30108

        Fix up the accessibilty label for the newly added fullscreen button,
        and update the test result accordingly.

        * platform/mac/accessibility/media-element-expected.txt:

2009-10-06  Daniel Bates  <dbates@webkit.org>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=30107
        
        Tests that drag-and-drop returns dropEffect = "none" when 
        effectAllowed == "none", regardless of the user-specified
        drop effect.

        * fast/events/drag-and-drop-none-expected.txt: Added.
        * fast/events/drag-and-drop-none.html: Added.
        * platform/win/Skipped: This test does not work under 
        Windows. We need the fix for bug #24731.

2009-10-06  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        Implement min/max attributes, ValidityState.rangeUnderflow and
        ValidityState.rangeOverflow for <input type=number> and <input type=range>
        https://bugs.webkit.org/show_bug.cgi?id=29069

        * fast/forms/ValidityState-rangeOverflow-number-expected.txt: Added.
        * fast/forms/ValidityState-rangeOverflow-number.html: Added.
        * fast/forms/ValidityState-rangeOverflow-range-expected.txt: Added.
        * fast/forms/ValidityState-rangeOverflow-range.html: Added.
        * fast/forms/ValidityState-rangeUnderflow-number-expected.txt: Added.
        * fast/forms/ValidityState-rangeUnderflow-number.html: Added.
        * fast/forms/ValidityState-rangeUnderflow-range-expected.txt: Added.
        * fast/forms/ValidityState-rangeUnderflow-range.html: Added.
        * fast/forms/input-minmax-expected.txt: Added.
        * fast/forms/input-minmax.html: Added.
        * fast/forms/script-tests/ValidityState-rangeOverflow-number.js: Added.
        * fast/forms/script-tests/ValidityState-rangeOverflow-range.js: Added.
        * fast/forms/script-tests/ValidityState-rangeUnderflow-number.js: Added.
        * fast/forms/script-tests/ValidityState-rangeUnderflow-range.js: Added.
        * fast/forms/script-tests/input-minmax.js: Added.

2009-10-06  Xan Lopez  <xlopez@igalia.com>

        Skip new tests for which we are missing expected results.

        * platform/gtk/Skipped:

2009-10-06  Dave Hyatt  <hyatt@apple.com>

        Reviewed by Adam Roben.

        https://bugs.webkit.org/show_bug.cgi?id=30131, make beforeload fire on script elements.

        * fast/dom/beforeload: Added.
        * fast/dom/beforeload/resources: Added.
        * fast/dom/beforeload/script-before-load-dynamic-expected.txt: Added.
        * fast/dom/beforeload/script-before-load-dynamic.html: Added.
        * fast/dom/beforeload/script-before-load-expected.txt: Added.
        * fast/dom/beforeload/script-before-load-xhtml-expected.txt: Added.
        * fast/dom/beforeload/script-before-load-xhtml.xhtml: Added.
        * fast/dom/beforeload/script-before-load.html: Added.

2009-10-06  Zan Dobersek  <zandobersek@gmail.com>

        Reviewed by Eric Seidel.

        [Gtk][Layout tests] Generate results for editing tests
        https://bugs.webkit.org/show_bug.cgi?id=30061

        Add results for editing tests and enable these tests in the Skipped.
        Also moves some improperly placed tests to the 'failing' section.

        * platform/gtk/Skipped:
        * platform/gtk/editing/deleting/4922367-expected.txt: Added.
        * platform/gtk/editing/deleting/5026848-1-expected.txt: Added.
        * platform/gtk/editing/deleting/5026848-2-expected.txt: Added.
        * platform/gtk/editing/deleting/5026848-3-expected.txt: Added.
        * platform/gtk/editing/deleting/5032066-expected.txt: Added.
        * platform/gtk/editing/deleting/5091898-expected.txt: Added.
        * platform/gtk/editing/deleting/5099303-expected.txt: Added.
        * platform/gtk/editing/deleting/5115601-expected.txt: Added.
        * platform/gtk/editing/deleting/5126166-expected.txt: Added.
        * platform/gtk/editing/deleting/5156801-2-expected.txt: Added.
        * platform/gtk/editing/deleting/5206311-1-expected.txt: Added.
        * platform/gtk/editing/deleting/5206311-2-expected.txt: Added.
        * platform/gtk/editing/deleting/5272440-expected.txt: Added.
        * platform/gtk/editing/deleting/5369009-expected.txt: Added.
        * platform/gtk/editing/deleting/5390681-2-expected.txt: Added.
        * platform/gtk/editing/deleting/5390681-expected.txt: Added.
        * platform/gtk/editing/deleting/5433862-2-expected.txt: Added.
        * platform/gtk/editing/deleting/5483370-expected.txt: Added.
        * platform/gtk/editing/deleting/collapse-whitespace-3587601-fix-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-3608430-fix-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-3608445-fix-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-3608462-fix-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-3775172-fix-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-3800834-fix-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-3959464-fix-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-and-undo-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-block-contents-001-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-block-contents-002-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-block-contents-003-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-block-merge-contents-010-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-block-merge-contents-012-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-block-merge-contents-013-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-block-merge-contents-014-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-block-merge-contents-015-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-block-merge-contents-016-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-block-merge-contents-017-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-br-001-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-br-002-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-br-003-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-br-004-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-br-005-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-br-006-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-br-007-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-br-010-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-br-013-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-by-word-001-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-contiguous-ws-001-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-image-004-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-leading-ws-001-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-line-001-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-line-002-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-line-005-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-line-006-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-line-007-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-line-008-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-line-009-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-line-010-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-line-011-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-line-012-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-line-013-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-line-014-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-line-end-ws-001-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-line-end-ws-002-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-listitem-001-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-listitem-002-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-select-all-001-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-select-all-002-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-tab-002-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-tab-004-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-to-end-of-paragraph-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-to-select-table-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-trailing-ws-002-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-ws-fixup-001-expected.txt: Added.
        * platform/gtk/editing/deleting/delete-ws-fixup-002-expected.txt: Added.
        * platform/gtk/editing/deleting/forward-delete-expected.txt: Added.
        * platform/gtk/editing/deleting/merge-whitespace-pre-expected.txt: Added.
        * platform/gtk/editing/deleting/move-nodes-001-expected.txt: Added.
        * platform/gtk/editing/deleting/type-delete-after-quote-expected.txt: Added.
        * platform/gtk/editing/execCommand/4580583-1-expected.txt: Added.
        * platform/gtk/editing/execCommand/4580583-2-expected.txt: Added.
        * platform/gtk/editing/execCommand/4747450-expected.txt: Added.
        * platform/gtk/editing/execCommand/4786404-1-expected.txt: Added.
        * platform/gtk/editing/execCommand/4786404-2-expected.txt: Added.
        * platform/gtk/editing/execCommand/4916402-expected.txt: Added.
        * platform/gtk/editing/execCommand/4916541-expected.txt: Added.
        * platform/gtk/editing/execCommand/4920488-expected.txt: Added.
        * platform/gtk/editing/execCommand/4920742-1-expected.txt: Added.
        * platform/gtk/editing/execCommand/4924441-expected.txt: Added.
        * platform/gtk/editing/execCommand/5049671-expected.txt: Added.
        * platform/gtk/editing/execCommand/5080333-1-expected.txt: Added.
        * platform/gtk/editing/execCommand/5080333-2-expected.txt: Added.
        * platform/gtk/editing/execCommand/5136770-expected.txt: Added.
        * platform/gtk/editing/execCommand/5138441-expected.txt: Added.
        * platform/gtk/editing/execCommand/5142012-1-expected.txt: Added.
        * platform/gtk/editing/execCommand/5142012-2-expected.txt: Added.
        * platform/gtk/editing/execCommand/5190926-expected.txt: Added.
        * platform/gtk/editing/execCommand/5481523-expected.txt: Added.
        * platform/gtk/editing/execCommand/5482023-expected.txt: Added.
        * platform/gtk/editing/execCommand/5569741-expected.txt: Added.
        * platform/gtk/editing/execCommand/5573879-expected.txt: Added.
        * platform/gtk/editing/execCommand/insert-list-empty-div-expected.txt: Added.
        * platform/gtk/editing/inserting/12882-expected.txt: Added.
        * platform/gtk/editing/inserting/4840662-expected.txt: Added.
        * platform/gtk/editing/inserting/4875189-1-expected.txt: Added.
        * platform/gtk/editing/inserting/4875189-2-expected.txt: Added.
        * platform/gtk/editing/inserting/4959067-expected.txt: Added.
        * platform/gtk/editing/inserting/4960120-2-expected.txt: Added.
        * platform/gtk/editing/inserting/5002441-expected.txt: Added.
        * platform/gtk/editing/inserting/5058163-1-expected.txt: Added.
        * platform/gtk/editing/inserting/5058163-2-expected.txt: Added.
        * platform/gtk/editing/inserting/5156401-2-expected.txt: Added.
        * platform/gtk/editing/inserting/5418891-expected.txt: Added.
        * platform/gtk/editing/inserting/5510537-expected.txt: Added.
        * platform/gtk/editing/inserting/5549929-2-expected.txt: Added.
        * platform/gtk/editing/inserting/5549929-3-expected.txt: Added.
        * platform/gtk/editing/inserting/6633727-expected.txt: Added.
        * platform/gtk/editing/inserting/6703873-expected.txt: Added.
        * platform/gtk/editing/inserting/editable-inline-element-expected.txt: Added.
        * platform/gtk/editing/inserting/edited-whitespace-1-expected.txt: Added.
        * platform/gtk/editing/inserting/insert-3654864-fix-expected.txt: Added.
        * platform/gtk/editing/inserting/insert-3659587-fix-expected.txt: Added.
        * platform/gtk/editing/inserting/insert-3775316-fix-expected.txt: Added.
        * platform/gtk/editing/inserting/insert-3800346-fix-expected.txt: Added.
        * platform/gtk/editing/inserting/insert-3851164-fix-expected.txt: Added.
        * platform/gtk/editing/inserting/insert-3907422-fix-expected.txt: Added.
        * platform/gtk/editing/inserting/insert-after-delete-001-expected.txt: Added.
        * platform/gtk/editing/inserting/insert-bg-font-expected.txt: Copied from LayoutTests/platform/mac/editing/inserting/insert-bg-font-expected.txt.
        * platform/gtk/editing/inserting/insert-br-005-expected.txt: Added.
        * platform/gtk/editing/inserting/insert-div-001-expected.txt: Added.
        * platform/gtk/editing/inserting/insert-div-002-expected.txt: Added.
        * platform/gtk/editing/inserting/insert-div-003-expected.txt: Added.
        * platform/gtk/editing/inserting/insert-div-004-expected.txt: Added.
        * platform/gtk/editing/inserting/insert-div-005-expected.txt: Added.
        * platform/gtk/editing/inserting/insert-div-009-expected.txt: Added.
        * platform/gtk/editing/inserting/insert-div-024-expected.txt: Added.
        * platform/gtk/editing/inserting/insert-space-in-empty-doc-expected.txt: Added.
        * platform/gtk/editing/inserting/insert-text-with-newlines-expected.txt: Added.
        * platform/gtk/editing/inserting/redo-expected.txt: Added.
        * platform/gtk/editing/inserting/typing-001-expected.txt: Added.
        * platform/gtk/editing/inserting/typing-002-expected.txt: Added.
        * platform/gtk/editing/inserting/typing-003-expected.txt: Added.
        * platform/gtk/editing/inserting/typing-around-br-001-expected.txt: Added.
        * platform/gtk/editing/inserting/typing-around-image-001-expected.txt: Added.
        * platform/gtk/editing/pasteboard/4076267-2-expected.txt: Added.
        * platform/gtk/editing/pasteboard/4076267-3-expected.txt: Added.
        * platform/gtk/editing/pasteboard/4076267-expected.txt: Added.
        * platform/gtk/editing/pasteboard/5032095-expected.txt: Added.
        * platform/gtk/editing/pasteboard/5071074-2-expected.txt: Added.
        * platform/gtk/editing/pasteboard/5075944-3-expected.txt: Added.
        * platform/gtk/editing/pasteboard/5089327-expected.txt: Added.
        * platform/gtk/editing/pasteboard/5134759-expected.txt: Added.
        * platform/gtk/editing/pasteboard/5156401-1-expected.txt: Added.
        * platform/gtk/editing/pasteboard/5387578-expected.txt: Added.
        * platform/gtk/editing/pasteboard/5483567-expected.txt: Added.
        * platform/gtk/editing/pasteboard/7955-expected.txt: Added.
        * platform/gtk/editing/pasteboard/cut-text-001-expected.txt: Added.
        * platform/gtk/editing/pasteboard/innerText-inline-table-expected.txt: Added.
        * platform/gtk/editing/pasteboard/paste-blockquote-1-expected.txt: Added.
        * platform/gtk/editing/pasteboard/paste-blockquote-2-expected.txt: Added.
        * platform/gtk/editing/pasteboard/paste-blockquote-3-expected.txt: Added.
        * platform/gtk/editing/pasteboard/paste-blockquote-after-blockquote-expected.txt: Added.
        * platform/gtk/editing/pasteboard/paste-blockquote-into-blockquote-2-expected.txt: Added.
        * platform/gtk/editing/pasteboard/paste-blockquote-into-blockquote-3-expected.txt: Added.
        * platform/gtk/editing/pasteboard/paste-blockquote-into-blockquote-4-expected.txt: Added.
        * platform/gtk/editing/pasteboard/paste-blockquote-into-blockquote-expected.txt: Added.
        * platform/gtk/editing/pasteboard/paste-table-001-expected.txt: Added.
        * platform/gtk/editing/pasteboard/paste-text-001-expected.txt: Added.
        * platform/gtk/editing/pasteboard/paste-text-002-expected.txt: Added.
        * platform/gtk/editing/pasteboard/paste-text-003-expected.txt: Added.
        * platform/gtk/editing/pasteboard/paste-text-004-expected.txt: Added.
        * platform/gtk/editing/pasteboard/paste-text-005-expected.txt: Added.
        * platform/gtk/editing/pasteboard/paste-text-006-expected.txt: Added.
        * platform/gtk/editing/pasteboard/paste-text-007-expected.txt: Added.
        * platform/gtk/editing/pasteboard/paste-text-008-expected.txt: Added.
        * platform/gtk/editing/pasteboard/paste-text-009-expected.txt: Added.
        * platform/gtk/editing/pasteboard/paste-text-010-expected.txt: Added.
        * platform/gtk/editing/pasteboard/paste-text-015-expected.txt: Added.
        * platform/gtk/editing/pasteboard/paste-xml-expected.txt: Added.
        * platform/gtk/editing/pasteboard/select-element-1-expected.txt: Added.
        * platform/gtk/editing/selection/13804-expected.txt: Added.
        * platform/gtk/editing/selection/14971-expected.txt: Added.
        * platform/gtk/editing/selection/4818145-expected.txt: Added.
        * platform/gtk/editing/selection/4866671-expected.txt: Added.
        * platform/gtk/editing/selection/4889598-expected.txt: Added.
        * platform/gtk/editing/selection/4895428-2-expected.txt: Added.
        * platform/gtk/editing/selection/4960116-expected.txt: Added.
        * platform/gtk/editing/selection/4960137-expected.txt: Added.
        * platform/gtk/editing/selection/4983858-expected.txt: Added.
        * platform/gtk/editing/selection/5007143-2-expected.txt: Added.
        * platform/gtk/editing/selection/5007143-expected.txt: Added.
        * platform/gtk/editing/selection/5057506-2-expected.txt: Added.
        * platform/gtk/editing/selection/5057506-expected.txt: Added.
        * platform/gtk/editing/selection/5076323-1-expected.txt: Added.
        * platform/gtk/editing/selection/5076323-2-expected.txt: Added.
        * platform/gtk/editing/selection/5076323-3-expected.txt: Added.
        * platform/gtk/editing/selection/5081257-1-expected.txt: Added.
        * platform/gtk/editing/selection/5081257-2-expected.txt: Added.
        * platform/gtk/editing/selection/5099303-expected.txt: Added.
        * platform/gtk/editing/selection/5109817-expected.txt: Added.
        * platform/gtk/editing/selection/5131716-1-expected.txt: Added.
        * platform/gtk/editing/selection/5131716-2-expected.txt: Added.
        * platform/gtk/editing/selection/5131716-3-expected.txt: Added.
        * platform/gtk/editing/selection/5131716-4-expected.txt: Added.
        * platform/gtk/editing/selection/5232159-expected.txt: Added.
        * platform/gtk/editing/selection/5234383-1-expected.txt: Added.
        * platform/gtk/editing/selection/5234383-2-expected.txt: Added.
        * platform/gtk/editing/selection/5333725-expected.txt: Added.
        * platform/gtk/editing/selection/5354455-1-expected.txt: Added.
        * platform/gtk/editing/selection/5354455-2-expected.txt: Added.
        * platform/gtk/editing/selection/addRange-expected.txt: Added.
        * platform/gtk/editing/selection/drag-in-iframe-expected.txt: Added.
        * platform/gtk/editing/selection/extend-by-character-002-expected.txt: Added.
        * platform/gtk/editing/selection/extend-by-character-003-expected.txt: Added.
        * platform/gtk/editing/selection/extend-by-character-004-expected.txt: Added.
        * platform/gtk/editing/selection/extend-by-character-005-expected.txt: Added.
        * platform/gtk/editing/selection/fake-drag-expected.txt: Added.
        * platform/gtk/editing/selection/iframe-expected.txt: Added.
        * platform/gtk/editing/selection/inline-closest-leaf-child-expected.txt: Added.
        * platform/gtk/editing/selection/inline-table-expected.txt: Added.
        * platform/gtk/editing/selection/mixed-editability-6-expected.txt: Added.
        * platform/gtk/editing/selection/mixed-editability-7-expected.txt: Added.
        * platform/gtk/editing/selection/move-backwords-by-word-001-expected.txt: Added.
        * platform/gtk/editing/selection/move-between-blocks-no-001-expected.txt: Added.
        * platform/gtk/editing/selection/move-between-blocks-yes-001-expected.txt: Added.
        * platform/gtk/editing/selection/move-by-character-001-expected.txt: Added.
        * platform/gtk/editing/selection/move-by-character-002-expected.txt: Added.
        * platform/gtk/editing/selection/move-by-character-003-expected.txt: Added.
        * platform/gtk/editing/selection/move-by-character-004-expected.txt: Added.
        * platform/gtk/editing/selection/move-by-character-005-expected.txt: Added.
        * platform/gtk/editing/selection/move-by-sentence-001-expected.txt: Added.
        * platform/gtk/editing/selection/move-by-sentence-linebreak-expected.txt: Added.
        * platform/gtk/editing/selection/move-past-trailing-space-expected.txt: Added.
        * platform/gtk/editing/selection/select-box-expected.txt: Added.
        * platform/gtk/editing/selection/selectNode-expected.txt: Added.
        * platform/gtk/editing/selection/selectNodeContents-expected.txt: Added.
        * platform/gtk/editing/selection/wrapped-line-caret-1-expected.txt: Added.
        * platform/gtk/editing/selection/wrapped-line-caret-2-expected.txt: Added.
        * platform/gtk/editing/spelling/spelling-expected.txt: Added.
        * platform/gtk/editing/spelling/spelling-linebreak-expected.txt: Added.
        * platform/gtk/editing/style/4916887-expected.txt: Added.
        * platform/gtk/editing/style/5017613-1-expected.txt: Added.
        * platform/gtk/editing/style/5017613-2-expected.txt: Added.
        * platform/gtk/editing/style/5046875-1-expected.txt: Added.
        * platform/gtk/editing/style/5046875-2-expected.txt: Added.
        * platform/gtk/editing/style/5084241-expected.txt: Added.
        * platform/gtk/editing/style/5228141-expected.txt: Added.
        * platform/gtk/editing/style/5279521-expected.txt: Added.
        * platform/gtk/editing/style/block-style-003-expected.txt: Added.
        * platform/gtk/editing/style/fontsize-1-expected.txt: Added.
        * platform/gtk/editing/style/highlight-expected.txt: Added.
        * platform/gtk/editing/style/relative-font-size-change-001-expected.txt: Added.
        * platform/gtk/editing/style/style-3681552-fix-001-expected.txt: Added.
        * platform/gtk/editing/style/style-3681552-fix-002-expected.txt: Added.
        * platform/gtk/editing/style/style-3690704-fix-expected.txt: Added.
        * platform/gtk/editing/style/typing-style-001-expected.txt: Added.
        * platform/gtk/editing/style/typing-style-002-expected.txt: Added.
        * platform/gtk/editing/style/typing-style-003-expected.txt: Added.
        * platform/gtk/editing/style/unbold-in-bold-expected.txt: Added.
        * platform/gtk/editing/undo/4063751-expected.txt: Added.
        * platform/gtk/editing/undo/5378473-expected.txt: Added.
        * platform/gtk/editing/undo/redo-typing-001-expected.txt: Added.
        * platform/gtk/editing/undo/undo-combined-delete-boundary-expected.txt: Added.
        * platform/gtk/editing/undo/undo-combined-delete-expected.txt: Added.
        * platform/gtk/editing/undo/undo-delete-boundary-expected.txt: Added.
        * platform/gtk/editing/undo/undo-delete-expected.txt: Added.
        * platform/gtk/editing/undo/undo-forward-delete-boundary-expected.txt: Added.
        * platform/gtk/editing/undo/undo-forward-delete-expected.txt: Added.
        * platform/gtk/editing/undo/undo-misspellings-expected.txt: Added.

2009-10-06  Anton Muhin  <antonm@chromium>

        Reviewed by Dimitri Glazkov.

        Non standard, but popular exetension allows automagically
        turn a function into a namespace resolver.  Support that in
        Chromium as well.

        This adds new layout tests.
        https://bugs.webkit.org/show_bug.cgi?id=30128

        * fast/xpath/xpath-namespaces-expected.txt:
        * fast/xpath/xpath-namespaces.html:

2009-10-06  Jakub Wieczorek  <faw217@gmail.com>

        Reviewed by Simon Hausmann.

        [Qt] Implement layoutTestController.dumpStatusCallbacks() and unskip the
        fast/dom/assign-to-window-status.html test, which is passing as a result.

        https://bugs.webkit.org/show_bug.cgi?id=30127

        * platform/qt/Skipped:

2009-10-06  Xan Lopez  <xlopez@igalia.com>

        Skip another failing test.

        * platform/gtk/Skipped:

2009-10-06  Jakub Wieczorek  <faw217@gmail.com>

        Reviewed by Simon Hausmann.

        [Qt] Update the Skipped list.
        Remove some tests that are passing now, mostly due to the recent DRT fixes.

        * platform/qt/Skipped:

2009-10-06  Dirk Schulze  <krit@webkit.org>

        Previous SourceAlpha test were made with an filters enabled build. 
        This is the result of a filters disabled build (default).

        * platform/mac/svg/filters/sourceAlpha-expected.txt:

2009-10-06  Xan Lopez  <xlopez@igalia.com>

        Update the skipped list to recent changes in tests.

        * platform/gtk/Skipped:

2009-10-05  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Darin Fisher.

        Convert DOM Storage's "remove-item" test into the new format.
        https://bugs.webkit.org/show_bug.cgi?id=30099

        Convert DOM Storage's "remove-item" test into the new format and add it for
        session storage.  Make it a (tiny bit) more robust as well.

        * storage/domstorage/localstorage/remove-item-expected.txt:
        * storage/domstorage/localstorage/remove-item.html:
        * storage/domstorage/script-tests/remove-item.js: Added.
        (runTest):
        * storage/domstorage/sessionstorage/remove-item-expected.txt: Copied from LayoutTests/storage/domstorage/localstorage/remove-item-expected.txt.
        * storage/domstorage/sessionstorage/remove-item.html: Copied from LayoutTests/storage/domstorage/localstorage/remove-item.html.

2009-10-05  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Darin Fisher.

        Add a test to verify session storage does not have a quota
        https://bugs.webkit.org/show_bug.cgi?id=30093

        * storage/domstorage/script-tests/no-quota.js: Added.
        (runTest):
        * storage/domstorage/sessionstorage/no-quota-expected.txt: Added.
        * storage/domstorage/sessionstorage/no-quota.html: Added.

2009-10-05  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Darin Fisher.

        Convert DOM Storage's "complex-values" test into the new format.
        https://bugs.webkit.org/show_bug.cgi?id=30097

        Convert DOM Storage's "complex-values" test into the new format and add it for
        session storage.  This also increases the coverage of these tests a bit.

        * storage/domstorage/localstorage/complex-values-expected.txt:
        * storage/domstorage/localstorage/complex-values.html:
        * storage/domstorage/script-tests/complex-values.js: Added.
        (handleStorageEvent):
        (testKeyValue):
        (runTest):
        * storage/domstorage/sessionstorage/complex-values-expected.txt: Copied from LayoutTests/storage/domstorage/localstorage/complex-values-expected.txt.
        * storage/domstorage/sessionstorage/complex-values.html: Copied from LayoutTests/storage/domstorage/localstorage/complex-values.html.

2009-10-05  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Darin Fisher.

        Convert DOM Storage's "complex-keys" test into the new format
        https://bugs.webkit.org/show_bug.cgi?id=30089

        Convert DOM Storage's "complex-keys" test into the new format and add it for
        session storage.  This test should be a bit more thorough than the old
        version as well.

        * storage/domstorage/localstorage/complex-keys-expected.txt:
        * storage/domstorage/localstorage/complex-keys.html:
        * storage/domstorage/script-tests/complex-keys.js: Added.
        (runTest):
        * storage/domstorage/sessionstorage/complex-keys-expected.txt: Added.
        * storage/domstorage/sessionstorage/complex-keys.html: Added.

2009-10-05  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        Test for SVG's SourceAlpha support for Filters.

        * platform/mac/svg/filters/sourceAlpha-expected.checksum: Added.
        * platform/mac/svg/filters/sourceAlpha-expected.png: Added.
        * platform/mac/svg/filters/sourceAlpha-expected.txt: Added.
        * svg/filters/sourceAlpha.svg: Added.

2009-10-05  Simon Fraser  <simon.fraser@apple.com>

        Updated results for media tests after controller change to add the fullscreen button. 

        * platform/mac/media/audio-controls-rendering-expected.checksum:
        * platform/mac/media/audio-controls-rendering-expected.png:
        * platform/mac/media/audio-controls-rendering-expected.txt:
        * platform/mac/media/controls-after-reload-expected.checksum: Added.
        * platform/mac/media/controls-after-reload-expected.png: Added.
        * platform/mac/media/controls-after-reload-expected.txt:
        * platform/mac/media/controls-styling-expected.checksum:
        * platform/mac/media/controls-styling-expected.png:
        * platform/mac/media/controls-styling-expected.txt:
        * platform/mac/media/video-aspect-ratio-expected.checksum:
        * platform/mac/media/video-aspect-ratio-expected.png:
        * platform/mac/media/video-empty-source-expected.checksum:
        * platform/mac/media/video-empty-source-expected.png:
        * platform/mac/media/video-empty-source-expected.txt:
        * platform/mac/media/video-no-audio-expected.checksum:
        * platform/mac/media/video-no-audio-expected.png:
        * platform/mac/media/video-no-audio-expected.txt:
        * platform/mac/media/video-transformed-expected.checksum:
        * platform/mac/media/video-transformed-expected.png:
        * platform/mac/media/video-zoom-controls-expected.checksum: Added.
        * platform/mac/media/video-zoom-controls-expected.png: Added.
        * platform/mac/media/video-zoom-controls-expected.txt:
        * platform/mac/media/video-zoom-expected.checksum:
        * platform/mac/media/video-zoom-expected.png:

2009-10-05  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        REGRESSION (r47440): Inserting text in the middle of content in a scrolled textfield results in painting bugs
        <rdar://problem/7269108>
        https://bugs.webkit.org/show_bug.cgi?id=29982

        * fast/repaint/line-in-scrolled-clipped-block.html: Added.
        * platform/mac/fast/repaint/line-in-scrolled-clipped-block-expected.checksum: Added.
        * platform/mac/fast/repaint/line-in-scrolled-clipped-block-expected.png: Added.
        * platform/mac/fast/repaint/line-in-scrolled-clipped-block-expected.txt: Added.

2009-10-05  Hironori Bono  <hbono@chromium.org>

        Reviewed by Eric Seidel.

        A super quick fix for Bug 28710.

        https://bugs.webkit.org/show_bug.cgi?id=28710

        This change just resets the style sent to addStyleMarkup() to avoid an assertion error
        and creates an empty style when computedStyleAtPosition is 0 to avoid a crash.
        (This change is nothing but a better-than-crash change.)

        * editing/selection/select-crash-001-expected.txt: Added.
        * editing/selection/select-crash-001.html: Added.
        * editing/selection/select-crash-002-expected.txt: Added.
        * editing/selection/select-crash-002.html: Added.

2009-10-05  Julie Parent  <jparent@chromium.org>

        Reviewed by Darin Adler.

        Make LayoutTests/editing/selection/hit-test-anonymous.html resistant to
        GDI/CG differences, by increasing the font size so the slight
        difference in fonts doesn't result in a different character clicked.
        https://bugs.webkit.org/show_bug.cgi?id=29985

        * editing/selection/hit-test-anonymous.html:

2009-10-05  Dave Hyatt  <hyatt@apple.com>

        Update layout tests to account for the new beforeload event object.

        * fast/dom/Window/window-properties-expected.txt:
        * fast/dom/prototype-inheritance-expected.txt:
        * fast/js/global-constructors-expected.txt:

2009-10-05  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Rubberstamped by Simon Hausmann.

        Remove test that I forgot in earlier commit.

        * platform/qt/Skipped:

2009-10-05  Eric Seidel  <eric@webkit.org>

        No review, rolling out r49104.
        http://trac.webkit.org/changeset/49104

        * fast/forms/ValidityState-rangeOverflow-number-expected.txt: Removed.
        * fast/forms/ValidityState-rangeOverflow-number.html: Removed.
        * fast/forms/ValidityState-rangeOverflow-range-expected.txt: Removed.
        * fast/forms/ValidityState-rangeOverflow-range.html: Removed.
        * fast/forms/ValidityState-rangeUnderflow-number-expected.txt: Removed.
        * fast/forms/ValidityState-rangeUnderflow-number.html: Removed.
        * fast/forms/ValidityState-rangeUnderflow-range-expected.txt: Removed.
        * fast/forms/ValidityState-rangeUnderflow-range.html: Removed.
        * fast/forms/input-minmax-expected.txt: Removed.
        * fast/forms/input-minmax.html: Removed.
        * fast/forms/script-tests/ValidityState-rangeOverflow-number.js: Removed.
        * fast/forms/script-tests/ValidityState-rangeOverflow-range.js: Removed.
        * fast/forms/script-tests/ValidityState-rangeUnderflow-number.js: Removed.
        * fast/forms/script-tests/ValidityState-rangeUnderflow-range.js: Removed.
        * fast/forms/script-tests/input-minmax.js: Removed.

2009-10-05  Kent Tamura  <tkent@chromium.org>

        Reviewed by Eric Seidel.

        Tests to check if validation-related CSS selectors are applied immediately.
        https://bugs.webkit.org/show_bug.cgi?id=28868

        * fast/forms/input-live-pseudo-selectors-expected.txt: Added.
        * fast/forms/input-live-pseudo-selectors.html: Added.
        * fast/forms/resources/input-live-pseudo-selectors.js: Added.
        * fast/forms/resources/live-pseudo-selectors.css: Added.
        * fast/forms/resources/textarea-live-pseudo-selectors.js: Added.
        * fast/forms/textarea-live-pseudo-selectors-expected.txt: Added.
        * fast/forms/textarea-live-pseudo-selectors.html: Added.

2009-10-05  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        Implement min/max attributes, ValidityState.rangeUnderflow and
        ValidityState.rangeOverflow for <input type=number> and <input type=range>
        https://bugs.webkit.org/show_bug.cgi?id=29069

        * fast/forms/ValidityState-rangeOverflow-number-expected.txt: Added.
        * fast/forms/ValidityState-rangeOverflow-number.html: Added.
        * fast/forms/ValidityState-rangeOverflow-range-expected.txt: Added.
        * fast/forms/ValidityState-rangeOverflow-range.html: Added.
        * fast/forms/ValidityState-rangeUnderflow-number-expected.txt: Added.
        * fast/forms/ValidityState-rangeUnderflow-number.html: Added.
        * fast/forms/ValidityState-rangeUnderflow-range-expected.txt: Added.
        * fast/forms/ValidityState-rangeUnderflow-range.html: Added.
        * fast/forms/input-minmax-expected.txt: Added.
        * fast/forms/input-minmax.html: Added.
        * fast/forms/script-tests/ValidityState-rangeOverflow-number.js: Added.
        * fast/forms/script-tests/ValidityState-rangeOverflow-range.js: Added.
        * fast/forms/script-tests/ValidityState-rangeUnderflow-number.js: Added.
        * fast/forms/script-tests/ValidityState-rangeUnderflow-range.js: Added.
        * fast/forms/script-tests/input-minmax.js: Added.

2009-10-05  Kent Tamura  <tkent@chromium.org>

        Reviewed by Eric Seidel.

        Tests for -webkit-appearance:list-button
        https://bugs.webkit.org/show_bug.cgi?id=27794

        * platform/mac/fast/forms/input-list-button-size-expected.txt: Added.
        * platform/mac/fast/forms/input-list-button-size.html: Added.

2009-10-05  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Tor Arne Vestbø.

        [Qt] Re-enable fast/table/008.html after fixing buildbot's phonon problems.

        * platform/qt/Skipped:

2009-10-05  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt] Add expected files for passing fast/table tests.

        * platform/qt/fast/table/fixed-table-with-percent-inside-percent-table-expected.txt: Added.
        * platform/qt/fast/table/fixed-table-with-percent-width-inside-auto-table-expected.txt: Added.
        * platform/qt/fast/table/fixed-table-with-percent-width-inside-div-expected.txt: Added.
        * platform/qt/fast/table/fixed-table-with-percent-width-inside-extra-large-div-expected.txt: Added.
        * platform/qt/fast/table/fixed-table-with-percent-width-inside-fixed-width-table-expected.txt: Added.
        * platform/qt/fast/table/fixed-table-with-small-percent-width-expected.txt: Added.

2009-10-04  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        [GTK] performs a POST when refreshing a view that was obtained with a GET
        https://bugs.webkit.org/show_bug.cgi?id=29761

        New test that checks that a reload after a redirect to a page with
        a GET method from one with a POST method will use GET and not
        POST.

        * http/tests/navigation/postredirect-reload-expected.txt: Added.
        * http/tests/navigation/postredirect-reload.html: Added.
        * http/tests/navigation/resources/postresult.pl:
        * http/tests/navigation/resources/reloadresult.pl: Added.
        * http/tests/navigation/resources/redirect-reload.html: Added.
        * http/tests/navigation/resources/success200.html:
        * http/tests/navigation/resources/testcode.js:
        (submitFormWithPostRedirectReload):
        (runRedirectReloadTest):

2009-10-04  Xan Lopez  <xlopez@igalia.com>

        Revert previous patch, as the newly added test breaks other tests.

        * http/tests/navigation/postredirect-reload-expected.txt: Removed.
        * http/tests/navigation/postredirect-reload.html: Removed.
        * http/tests/navigation/resources/postresult.pl:
        * http/tests/navigation/resources/reloadresult.pl: Removed.
        * http/tests/navigation/resources/success200.html:
        * http/tests/navigation/resources/testcode.js:
        (runLoadSameTest):

2009-10-04  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        [GTK] performs a POST when refreshing a view that was obtained with a GET
        https://bugs.webkit.org/show_bug.cgi?id=29761

        New test that checks that a reload after a redirect to a page with
        a GET method from one with a POST method will use GET and not
        POST.

        * http/tests/navigation/postredirect-reload-expected.txt: Added.
        * http/tests/navigation/postredirect-reload.html: Added.
        * http/tests/navigation/resources/postresult.pl:
        * http/tests/navigation/resources/reloadresult.pl: Added.
        * http/tests/navigation/resources/success200.html:
        * http/tests/navigation/resources/testcode.js:
        (submitFormWithPostRedirectReload):
        (runRedirectReloadTest):

2009-10-03  Jakub Wieczorek  <faw217@gmail.com>

        Reviewed by Simon Hausmann.

        [Qt] Remove 5 tests from the Skipped list that pass after the addition
        of layoutTestController.overridePreference().

        https://bugs.webkit.org/show_bug.cgi?id=29970

        * platform/qt/Skipped:

2009-10-02  Yuta Kitamura  <yutak@chromium.org>

        Reviewed by Darin Adler.

        Update pixel test image for fast/table/vertical-align-baseline.html.

        Expected render tree dump for this test was modified in r40146
        <http://trac.webkit.org/changeset/40146>, but the image was not updated with it.

        * platform/mac/fast/table/vertical-align-baseline-expected.checksum:
        * platform/mac/fast/table/vertical-align-baseline-expected.png:

2009-10-02  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        Setting zero size on a container of a video element doesn't hide the controller
        https://bugs.webkit.org/show_bug.cgi?id=30031

        Testcase with a video element inside a positioned div with overflow.
        
        * compositing/geometry/clipped-video-controller.html: Added.
        * platform/mac/compositing/geometry/clipped-video-controller-expected.checksum: Added.
        * platform/mac/compositing/geometry/clipped-video-controller-expected.png: Added.
        * platform/mac/compositing/geometry/clipped-video-controller-expected.txt: Added.

2009-10-02  Vitaly Repeshko  <vitalyr@chromium.org>

        Reviewed by Dimitri Glazkov.

        Test that having infinite recursion in XMLHttpRequest event handler does not crash.
        https://bugs.webkit.org/show_bug.cgi?id=29974

        * fast/xmlhttprequest/xmlhttprequest-recursive-sync-event-expected.txt: Added.
        * fast/xmlhttprequest/xmlhttprequest-recursive-sync-event.html: Added.

2009-10-02  Victor Wang  <victorw@chromium.org>

        Reviewed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=29619

        Patch http://trac.webkit.org/changeset/35290 adds win support for
        JPEG and GIF for toDataURL encoding canvases and the test was
        rewritten to not output the encoded image data, it should pass
        on Win now.

        * platform/win/Skipped:
        * platform/win/fast/canvas/toDataURL-supportedTypes-expected.txt: Removed.

2009-10-02  Enrica Casucci  <enrica@apple.com>

        Reviewed by Adele Peterson.

        Added test case.
        <rdar://problem/7148712> Assertion failure in CompositeEditCommand::moveParagraphs() and crash in Node::nodeIndex() when pasting.
        https://bugs.webkit.org/show_bug.cgi?id=28992

        * editing/selection/replace-selection-crash-expected.txt: Added.
        * editing/selection/replace-selection-crash.html: Added.

2009-10-02  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Dimitri Glazkov.

        Implement per-storage-area quotas for LocalStorage
        https://bugs.webkit.org/show_bug.cgi?id=29991

        I put 90% of the code in StorageMap since the decision to allow an update is
        closely tied to quota tracking.  The quota is set via a page's Settings class. 
        Like with the local storage path and whether it's enabled, it's assumed that
        all pages in the same group will have the same settings.  The setting defaults
        to 5mb which is what the spec suggests, but it can easily be changed to
        anything else--including StorageMap::noQuota.  Any values in LocalStorage are
        grandfathered in regarudless of quota, so importItem only tracks (and will
        never block) imports.

        I believe this change is a good transition to more complex quota management. 
        For example, if we wanted to track quotas in the SQLite DB, then we'd just add
        a function to the StorageMap that sets the quota.  This would be fine since all
        use of LocalStorage is blocked on the import completing, so you'd never hit a
        quota error in the mean time.  Also, if embedders wanted to ask the user
        whether to expand the quota whenever it's hit (before deciding whether or not
        to raise an exception), a callback via the chrome client should be fairly easy.
        That said, I think it's best to add these features in steps rather than one
        huge patch.  (Both of these are on my TODO list, btw.)

        Included is a layout test that verifies the behavior.  It assumes the default
        quota is 5mb (since that's what Settings defaults to).

        * storage/domstorage/localstorage/quota-expected.txt: Added.
        * storage/domstorage/localstorage/quota.html: Added.
        * storage/domstorage/script-tests/quota.js: Added.
        (runTest):

2009-10-02  Kenneth Russell  <kbr@google.com>

        Reviewed by Oliver Hunt.

        WebGL crashes with recent CanvasArray change
        https://bugs.webkit.org/show_bug.cgi?id=30018

        * fast/canvas/webgl/array-unit-tests-expected.html: Added.
        * fast/canvas/webgl/array-unit-tests.html: Added.

2009-10-02  Ben Murdoch  <benm@google.com>

        Reviewed by  David Kilzer.

        Stale database version persists through browser refresh (changeVersion doesn't work)
        https://bugs.webkit.org/show_bug.cgi?id=27836

        * storage/change-version-expected.txt: Added.
        * storage/change-version-handle-reuse-expected.txt: Added.
        * storage/change-version-handle-reuse.html: Added.
        * storage/change-version.html: Added.

2009-10-01  Drew Wilson  <atwilson@chromium.org>

        Reviewed by David Levin.

        Remove clone count from worker-cloneport.html as it's flakey on multi-process ports like Chromium.
        https://bugs.webkit.org/show_bug.cgi?id=29698

        * fast/workers/worker-cloneport-expected.txt:
        * fast/workers/worker-cloneport.html:

2009-10-01  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Oliver Hunt.

        Turn on ENABLE_3D_CANVAS in TOT
        https://bugs.webkit.org/show_bug.cgi?id=29906

        Fixed layout tests which failed with flag on

        * fast/canvas/webgl/gl-get-calls.html:
        * fast/dom/Window/window-properties.html:
        * fast/dom/script-tests/constructed-objects-prototypes.js:
        (constructorPropertiesOnWindow):
        * fast/dom/script-tests/prototype-inheritance-2.js:
        (constructorNamesForWindow):
        * fast/dom/script-tests/prototype-inheritance.js:
        * fast/js/script-tests/global-constructors.js:

2009-10-01  Beth Dakin  <bdakin@apple.com>

        Reviewed by Dan Bernstein.

        Updated test results for <rdar://problem/7264725> Re-add a vendor 
        prefix to box-shadow (29927)
        -and corresponding-
        https://bugs.webkit.org/show_bug.cgi?id=29927

        * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/qt/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/qt/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * svg/css/getComputedStyle-basic-expected.txt:

2009-10-01  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Adam Roben.

        Added fast/inline/relative-positioned-overflow.html to Skipped list because
        it hits an asssert in Windows debug builds. Assertion failure is being tracked
        by <https://bugs.webkit.org/show_bug.cgi?id=29966>.

        * platform/win/Skipped:

2009-10-01  Beth Dakin  <bdakin@apple.com>

        Rubber-stamped by Sam Weinig.

        Appeasing the Bot. 

        * platform/mac/svg/W3C-SVG-1.1/filters-conv-01-f-expected.txt:

2009-10-01  Brian Weinstein  <bweinstein@apple.com>

        Reviewed by Beth Dakin.

        Update expected Windows results after new CSS Text Kerning changes.

        * platform/win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/win/fast/css/text-rendering-expected.txt: Added.

2009-10-01  Drew Wilson  <atwilson@chromium.org>

        Reviewed by Eric Seidel.

        REGRESSION: fast/workers/dedicated-worker-lifecycle.html failing intermittently on leopard bot
        https://bugs.webkit.org/show_bug.cgi?id=29344

        * fast/workers/resources/dedicated-worker-lifecycle.js:
        (runTests):
        Allocate objects on the stack to try to force a GC to eliminate flakiness.
        * fast/workers/resources/worker-util.js:
        (gc):
        Added an optional "forceAlloc" parameter which causes a more extensive stack-clobbering algorithm to be run.
        (waitUntilThreadCountMatches):
        Pass the forceAlloc flag to gc() to try to force unreferenced workers to get GC'd.

2009-10-01  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Rubberstamped by Simon Hausmann.

        Disable HTTP loading tests that fail on the buildbot.

        * platform/qt/Skipped:

2009-10-01  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Rubberstamped by Simon Hausmann.

        Enable Local tests for Qt.

        * platform/qt/Skipped:

2009-10-01  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Rubberstamped by Simon Hausmann.

        Enable HTTP loading tests for Qt.

        * platform/qt/Skipped:

2009-10-01  Beth Dakin  <bdakin@apple.com>

        Reviewed by Dave Hyatt.

        Tests for <rdar://problem/6934421> Support CSS for Text Kerning and 
        ligature
        -and corresponding-
        https://bugs.webkit.org/show_bug.cgi?id=6136

        New tests.
        * fast/css/parsing-text-rendering-expected.txt: Added.
        * fast/css/parsing-text-rendering.html: Added.
        * fast/css/resources/parsing-text-rendering.js: Added.
        (test):
        * fast/css/text-rendering.html: Added.
        * platform/mac/fast/css/text-rendering-expected.checksum: Added.
        * platform/mac/fast/css/text-rendering-expected.png: Added.
        * platform/mac/fast/css/text-rendering-expected.txt: Added.

        New and improved results.
        * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/filters-conv-01-f-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/filters-conv-01-f-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/filters-conv-01-f-expected.txt:
        * svg/css/getComputedStyle-basic-expected.txt:

2009-10-01  Nate Chapin  <japhet@chromium.org>

        Reviewed by Darin Adler.

        Add baseline pngs for a couple of tests that currently only have checksums.

        https://bugs.webkit.org/show_bug.cgi?id=28322

        * platform/mac/fast/borders/border-radius-constraints-expected.png: Added.
        * platform/mac/fast/borders/border-radius-split-inline-expected.png: Added.

2009-10-01  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Rubberstamped by Simon Hausmann.

        Enable URI tests for Qt, skip the single test we don't pass.

        * platform/qt/Skipped:

2009-10-01  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Rubberstamped by Simon Hausmann.

        Enable HTTP tests for Qt, and skip the subdirs we don't pass yet.

        * platform/qt/Skipped:

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

        Reviewed by Dave Hyatt.

        Odd color transitions on anchors with transition-property: all
        https://bugs.webkit.org/show_bug.cgi?id=29911
        
        Testcase for 'color' changing with -webkit-transition-property: all,
        to test whether -webkit-text-fill-color animates.

        * transitions/color-transition-all-expected.txt: Added.
        * transitions/color-transition-all.html: Added.

2009-10-01  Victor Wang  <victorw@chromium.org>

        Reviewed by Oliver Hunt.

        Allow dragging a node who has child nodes.

        https://bugs.webkit.org/show_bug.cgi?id=28632

        * fast/events/drag-parent-node-expected.txt: Added.
        * fast/events/drag-parent-node.html: Added.
        * fast/events/resources/bookmark.gif: Added.

2009-10-01  Adam Roben  <aroben@apple.com>

        Land expected failure results for two tests on Windows

        These failures are covered by <http://webkit.org/b/29963> and
        <http://webkit.org/b/29964>.

        Rubber-stamped in advance by Eric Carlson.

        * platform/win/fast/events/mouse-drag-from-frame-to-other-frame-expected.txt:
        Added.
        * platform/win/fast/forms/basic-inputs-expected.txt: Added.

2009-10-01  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Simon Hausmann.

        [Qt] Skip fast/table/008.html until a solution for the crash on the buildbot is found.

        * platform/qt/Skipped:

2009-10-01  Jakub Wieczorek  <faw217@gmail.com>

        Reviewed by Simon Hausmann.

        [Qt] Implement eventSender.scheduleAsynchronousClick().

        https://bugs.webkit.org/show_bug.cgi?id=29931

        * platform/qt/Skipped:

2009-10-01  Jakub Wieczorek  <faw217@gmail.com>

        Reviewed by Simon Hausmann.

        [Qt] Implement setPopupBlockingEnabled() in the LayoutTestController and remove
        fast/events/open-window-from-another-frame.html from the Skipped list.

        https://bugs.webkit.org/show_bug.cgi?id=29930

        * platform/qt/Skipped:

2009-10-01  Martin Robinson  <martin.james.robinson@gmail.com>

        Reviewed by Xan Lopez.

        [GTK] GtkIMContext filtering interferes with DOM key events
        https://bugs.webkit.org/show_bug.cgi?id=28733

        Re-enable skipped tests which were previously failing.

        * platform/gtk/Skipped:

2009-10-01  Philippe Normand  <pnormand@igalia.com>

        Reviewed by Xan Lopez.

        [GTK] data: uri support in media player
        https://bugs.webkit.org/show_bug.cgi?id=29842

        Re-enable media/audio-data-url.html.

        * platform/gtk/Skipped:

2009-09-30  Daniel Bates  <dbates@webkit.org>

        Reviewed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=29944
        
        Tests that the XSSAuditor allows requests that do not contain illegal URI 
        characters.
        
        Added a notice regarding the failure of tests property-inject.html, 
        property-escape-noquotes.html and property-escape-noquotes-tab-slash-chars.html, 
        and rebased the expected results of these tests.

        * http/tests/security/xssAuditor/property-escape-noquotes-expected.txt:
        * http/tests/security/xssAuditor/property-escape-noquotes-tab-slash-chars-expected.txt:
        * http/tests/security/xssAuditor/property-escape-noquotes-tab-slash-chars.html:
        * http/tests/security/xssAuditor/property-escape-noquotes.html:
        * http/tests/security/xssAuditor/property-inject-expected.txt:
        * http/tests/security/xssAuditor/property-inject.html:
        * http/tests/security/xssAuditor/resources/safe-script-noquotes.js: Added.
        * http/tests/security/xssAuditor/resources/script-tag-safe2.html: Added.
        * http/tests/security/xssAuditor/resources/script-tag-safe3.html: Added.
        * http/tests/security/xssAuditor/script-tag-safe2-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-safe2.html: Added.
        * http/tests/security/xssAuditor/script-tag-safe3-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-safe3.html: Added.

2009-09-30  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        Add ValidityState.tooLong support for <input> and <textarea>.
        https://bugs.webkit.org/show_bug.cgi?id=27454

        * fast/forms/ValidityState-tooLong-input-expected.txt: Added.
        * fast/forms/ValidityState-tooLong-input.html: Added.
        * fast/forms/ValidityState-tooLong-textarea-expected.txt: Added.
        * fast/forms/ValidityState-tooLong-textarea.html: Added.
        * fast/forms/script-tests/ValidityState-tooLong-input.js: Added.
        * fast/forms/script-tests/ValidityState-tooLong-textarea.js: Added.

2009-09-30  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Brady Eidson.

        307 redirects should pass along http body and Content-Type header
        https://bugs.webkit.org/show_bug.cgi?id=29943

        Follow-up fix for:
        <rdar://problem/3802660> SAP: 307 (Temporary Redirect) responses should use POST, not GET

        * http/tests/loading/redirect-methods.html: Updated test to show the http body and content-type header.
        * http/tests/loading/redirect-methods-expected.txt:
        * http/tests/loading/resources/redirect-methods-result.php: 

2009-09-30  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Dimitri Glazkov.

        Use a script-tests directory rather than a resources directory for DOM Storage
        https://bugs.webkit.org/show_bug.cgi?id=29938

        Use a script-tests directory rather than a resources directory for DOM Storage.
        This matches up with what's been done elsewhere in the tree.

        * storage/domstorage/localstorage/clear.html:
        * storage/domstorage/resources: Removed.
        * storage/domstorage/resources/clear.js: Removed.
        * storage/domstorage/script-tests: Copied from LayoutTests/storage/domstorage/resources.
        * storage/domstorage/sessionstorage/clear.html:

2009-09-30  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        REGRESSION(r47440): drop down menus at americanexpress.com disappear on mouse out
        https://bugs.webkit.org/show_bug.cgi?id=29209

        * fast/inline/relative-positioned-overflow-expected.txt: Added.
        * fast/inline/relative-positioned-overflow.html: Added.
        * platform/mac/fast/repaint/transform-absolute-in-positioned-container-expected.txt:

2009-09-30  Jian Li  <jianli@chromium.org>

        Reviewed by Darin Adler.

        Need to check NULL frame in EventHandler::updateDragAndDrop.
        https://bugs.webkit.org/show_bug.cgi?id=29929

        Add a new test for the bug.

        * http/tests/misc/drag-over-iframe-invalid-source-crash-expected.txt: Added.
        * http/tests/misc/drag-over-iframe-invalid-source-crash.html: Added.

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

        Reviewed by Dan Bernstein.

        ASSERTION FAILED: !repaintContainer || repaintContainer == this
        https://bugs.webkit.org/show_bug.cgi?id=29755
        
        Testcase with multiple containers between the absolutely positioned div and its positioned
        ancestor.

        * compositing/repaint/opacity-between-absolute2.html: Added.
        * platform/mac/compositing/repaint/opacity-between-absolute2-expected.checksum: Added.
        * platform/mac/compositing/repaint/opacity-between-absolute2-expected.png: Added.
        * platform/mac/compositing/repaint/opacity-between-absolute2-expected.txt: Added.

2009-09-30  Renata Hodovan  <hodovan.renata@stud.u-szeged.hu>

        Reviewed by Simon Hausmann.

        [Qt] Update Skipped after #48873 and some expected files, whose
        problems are the same (default font size reconciliation
        16px/13px), but the previous update didn't contain them.

        * platform/qt/Skipped:
        * platform/qt/css2.1/t040103-ident-04-c-expected.txt:
        * platform/qt/css2.1/t0402-c71-fwd-parsing-00-f-expected.txt:
        * platform/qt/css2.1/t040304-c64-uri-00-a-g-expected.txt:
        * platform/qt/css2.1/t040306-syntax-01-f-expected.txt:
        * platform/qt/css2.1/t1202-counter-05-b-expected.txt:
        * platform/qt/css2.1/t140201-c535-bg-fixd-00-b-g-expected.txt:
        * platform/qt/css2.1/t1507-c526-font-sz-03-f-a-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-00-d-expected.txt:

2009-09-30  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by David Levin.

        Move message-port-multi.js from resources to script-tests
        https://bugs.webkit.org/show_bug.cgi?id=29798

        Revert r48823. message-port-multi.js needs custom HTML.

        * fast/events/message-port-multi-expected.txt:
        * fast/events/message-port-multi.html:
        * fast/events/resources/message-port-multi.js: Added.
        (channel.port2.onmessage):
        * fast/events/script-tests/message-port-multi.js: Removed.

2009-09-30  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by David Kilzer.

        Change remaining references in tests from bugzilla.opendarwin.org to bugs.webkit.org
        https://bugs.webkit.org/show_bug.cgi?id=12140

        Fixes for JS files.

        * fast/js/date-preserve-milliseconds-expected.txt:
        * fast/js/script-tests/array-float-delete.js:
        * fast/js/script-tests/array-tostring-ignore-separator.js:
        * fast/js/script-tests/date-big-setmonth.js:
        * fast/js/script-tests/date-negative-setmonth.js:
        * fast/js/script-tests/date-preserve-milliseconds.js:
        * fast/js/script-tests/number-tofixed.js:
        * fast/js/script-tests/object-extra-comma.js:
        * fast/js/script-tests/object-prototype-constructor.js:
        * fast/js/script-tests/object-prototype-toLocaleString.js:
        * fast/js/script-tests/regexp-lastindex.js:
        * fast/js/script-tests/regexp-stack-overflow.js:
        * fast/js/script-tests/string-split-ignore-case.js:
        * fast/js/script-tests/toString-exception.js:
        * fast/js/script-tests/toString-overrides.js:
        * fast/js/script-tests/toString-stack-overflow.js:
        * fast/js/toString-stack-overflow-expected.txt:

2009-09-30  Steve Block  <steveblock@google.com>

        Reviewed by Darin Adler.

        Geolocation LayoutTests should use an HTML template.
        https://bugs.webkit.org/show_bug.cgi?id=29179

        Updates Geolocation LayoutTests to correctly use an HTML template so that
        individual HTML files can be generated using make-script-test-wrappers.
        This requires a new js-test-post.js which allows for asynchronous tests.


        * fast/dom/Geolocation/resources/TEMPLATE.html: Modified. Updated to use new js-test-post.js.
        * fast/dom/Geolocation/resources/js-test-post.js: Added. Allows for asynchronous tests.

        * fast/dom/Geolocation/resources/argument-types.js: Modified. Sepcifies synchronous test.
        * fast/dom/Geolocation/argument-types.html: Modified. Updated to use new js-test-post.js.

        * fast/dom/Geolocation/resources/callback-exception.js: Modified. Specifies asynchronous test.
        * fast/dom/Geolocation/callback-exception.html: Modified. Updated to use new js-test-post.js.
        * fast/dom/Geolocation/callback-exception-expected.txt: Modified. Adds successfullyParsed.

        * fast/dom/Geolocation/resources/enabled.js: Modified. Sepcifies synchronous test.
        * fast/dom/Geolocation/enabled.html: Modified. Updated to use new js-test-post.js.

        * fast/dom/Geolocation/resources/error.js: Modified. Specifies asynchronous test.
        * fast/dom/Geolocation/error.html: Modified. Updated to use new js-test-post.js.
        * fast/dom/Geolocation/error-expected.txt: Modified. Adds successfullyParsed.

        * fast/dom/Geolocation/resources/permission-denied.js: Modified. Specifies asynchronous test.
        * fast/dom/Geolocation/permission-denied.html: Modified. Updated to use new js-test-post.js.
        * fast/dom/Geolocation/permission-denied-expected.txt: Modified. Adds successfullyParsed.

        * fast/dom/Geolocation/resources/permission-denied-stops-watches.js: Modified. Specifies asynchronous test.
        * fast/dom/Geolocation/permission-denied-stops-watches.html: Modified. Updated to use new js-test-post.js.
        * fast/dom/Geolocation/permission-denied-stops-watches-expected.txt: Modified. Adds successfullyParsed.

        * fast/dom/Geolocation/resources/position-string.js: Modified. Specifies asynchronous test.
        * fast/dom/Geolocation/position-string.html: Modified. Updated to use new js-test-post.js.
        * fast/dom/Geolocation/position-string-expected.txt: Modified. Adds successfullyParsed.

        * fast/dom/Geolocation/resources/reentrant-error.js: Modified. Specifies asynchronous test.
        * fast/dom/Geolocation/reentrant-error.html: Modified. Updated to use new js-test-post.js.
        * fast/dom/Geolocation/reentrant-error-expected.txt: Modified. Adds successfullyParsed.

        * fast/dom/Geolocation/resources/reentrant-success.js: Modified. Specifies asynchronous test.
        * fast/dom/Geolocation/reentrant-success.html: Modified. Updated to use new js-test-post.js.
        * fast/dom/Geolocation/reentrant-success-expected.txt: Modified. Adds successfullyParsed.

        * fast/dom/Geolocation/resources/success.js: Modified. Specifies asynchronous test.
        * fast/dom/Geolocation/success.html: Modified. Updated to use new js-test-post.js.
        * fast/dom/Geolocation/success-expected.txt: Modified. Adds successfullyParsed.

        * fast/dom/Geolocation/resources/timeout.js: Modified. Specifies asynchronous test.
        * fast/dom/Geolocation/timeout.html: Modified. Updated to use new js-test-post.js.
        * fast/dom/Geolocation/timeout-expected.txt: Modified. Adds successfullyParsed.

        * fast/dom/Geolocation/resources/timeout-zero.js: Modified. Specifies asynchronous test.
        * fast/dom/Geolocation/timeout-zero.html: Modified. Updated to use new js-test-post.js.
        * fast/dom/Geolocation/timeout-zero-expected.txt: Modified. Adds successfullyParsed.

        * fast/dom/Geolocation/resources/watch.js: Modified. Specifies asynchronous test.
        * fast/dom/Geolocation/watch.html: Updated to use new js-test-post.js.
        * fast/dom/Geolocation/watch-expected.txt: Modified. Adds successfullyParsed.

2009-09-29  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Eric Seidel.

        Change remaining references in tests from bugzilla.opendarwin.org to bugs.webkit.org
        https://bugs.webkit.org/show_bug.cgi?id=12140

        Remove opendarwin URLs from href="".
        This change doesn't change pixel test results.

        * editing/pasteboard/display-block-on-spans.html:
        * editing/pasteboard/drop-text-without-selection.html:
        * editing/pasteboard/paste-text-019.html:
        * editing/selection/6476.html:
        * editing/selection/7152-1.html:
        * editing/selection/7152-2.html:
        * editing/selection/after-line-wrap.html:
        * editing/selection/click-start-of-line.html:
        * editing/selection/leave-requested-block.html:
        * editing/selection/select-from-textfield-outwards.html:
        * fast/block/basic/text-indent-rtl.html:
        * fast/block/float/nopaint-after-layer-destruction.html:
        * fast/block/float/nopaint-after-layer-destruction2.html:
        * fast/block/float/table-relayout.html:
        * fast/block/float/vertical-move-relayout.html:
        * fast/block/positioning/height-change.html:
        * fast/block/positioning/relayout-on-position-change.html:
        * fast/block/positioning/window-height-change.html:
        * fast/css-generated-content/hover-style-change.html: Added property allow-tabs.
        * fast/css/error-in-last-decl.html:
        * fast/css/ex-after-font-variant.html:
        * fast/css/find-next-layer.html:
        * fast/css/first-letter-detach.html:
        * fast/css/font-shorthand-weight-only.html:
        * fast/css/hover-subselector.html:
        * fast/css/invalidation-errors-2.html:
        * fast/css/invalidation-errors-3.html:
        * fast/css/invalidation-errors.html:
        * fast/css/resize-corner-tracking.html:
        * fast/css/rtl-ordering.html:
        * fast/css/universal-hover-quirk.html:
        * fast/dom/Element/class-attribute-whitespace.html: Added property allow-tabs.
        * fast/dom/HTMLHeadElement/head-link-style-href-check.html:
        * fast/dom/HTMLLinkElement/pending-stylesheet-count.html:
        * fast/dynamic/layer-hit-test-crash.html:
        * fast/dynamic/selection-highlight-adjust.html:
        * fast/encoding/resources/%25%u0435 0 %xx%%%ulike.html:
        * fast/events/event-sender-mouse-moved.html:
        * fast/events/resources/drag-outside-window-frame.html:
        * fast/forms/button-cannot-be-nested.html:
        * fast/forms/button-generated-content.html:
        * fast/forms/button-inner-block-reuse.html:
        * fast/forms/button-white-space.html:
        * fast/forms/floating-textfield-relayout.html:
        * fast/forms/form-hides-table.html:
        * fast/forms/visual-hebrew-text-field.html:
        * fast/history/clicked-link-is-visited.html:
        * fast/history/resources/clicked-link-is-visited-2.html:
        * fast/inline-block/overflow-clip.html:
        * fast/invalid/missing-address-end-tag.html:
        * fast/invalid/missing-dl-end-tag.html:
        * fast/invalid/missing-dt-end-tag.html:
        * fast/invalid/missing-font-end-tag.html:
        * fast/js/exception-linenums-in-html-3.html:
        * fast/js/missing-style-end-tag-js.html:
        * fast/layers/opacity-outline.html:
        * fast/lists/list-style-none-crash.html:
        * fast/lists/markers-in-selection.html:
        * fast/lists/scrolled-marker-paint.html:
        * fast/overflow/image-selection-highlight.html:
        * fast/overflow/overflow-rtl-inline-scrollbar.html:
        * fast/parser/broken-comments-vs-parsing-mode.html:
        * fast/parser/nofoo-tags-inside-paragraph.html:
        * fast/parser/remove-block-in-residual-style.html:
        * fast/repaint/backgroundSizeRepaint.html:
        * fast/repaint/border-repaint-glitch.html:
        * fast/repaint/bugzilla-3509.html:
        * fast/repaint/bugzilla-5699.html:
        * fast/repaint/bugzilla-6278.html:
        * fast/repaint/bugzilla-6388.html:
        * fast/repaint/bugzilla-6473.html:
        * fast/repaint/bugzilla-7235.html:
        * fast/repaint/clipped-relative.html:
        * fast/repaint/containing-block-position-change.html:
        * fast/repaint/flexible-box-overflow-horizontal.html:
        * fast/repaint/flexible-box-overflow.html:
        * fast/repaint/float-move-during-layout.html:
        * fast/repaint/inline-outline-repaint.html:
        * fast/repaint/layer-outline-horizontal.html:
        * fast/repaint/layer-outline.html:
        * fast/repaint/line-overflow.html:
        * fast/repaint/outline-repaint-glitch.html:
        * fast/repaint/outline-shrinking.html:
        * fast/repaint/repaint-resized-overflow.html:
        * fast/repaint/static-to-positioned.html:
        * fast/repaint/table-cell-move.html:
        * fast/repaint/table-extra-bottom-grow.html:
        * fast/repaint/text-shadow-horizontal.html:
        * fast/repaint/text-shadow.html:
        * fast/replaced/applet-rendering-java-disabled.html:
        * fast/replaced/image-solid-color-with-alpha.html:
        * fast/replaced/inline-box-wrapper-handover.html:
        * fast/replaced/pdf-as-image.html:
        * fast/table/absolute-table-at-bottom.html:
        * fast/table/add-before-anonymous-child.html:
        * fast/table/border-collapsing/003.html:
        * fast/table/border-collapsing/border-collapsing-head-foot.html:
        * fast/table/border-collapsing/rtl-border-collapsing.html:
        * fast/table/cell-absolute-child.html:
        * fast/table/click-near-anonymous-table.html:
        * fast/table/edge-offsets.html:
        * fast/table/empty-section-crash.html:
        * fast/table/fixed-table-non-cell-in-row.html:
        * fast/table/form-with-table-style.html:
        * fast/table/row-height-recalc.html:
        * fast/table/rtl-cell-display-none-assert.html:
        * fast/table/text-field-baseline.html:
        * fast/text/atsui-small-caps-punctuation-size.html:
        * fast/text/atsui-spacing-features.html:
        * fast/text/basic/015.html:
        * fast/text/capitalize-empty-generated-string.html:
        * fast/text/in-rendered-text-rtl.html:
        * fast/text/international/rtl-caret.html:
        * fast/text/midword-break-hang.html:
        * fast/text/whitespace/pre-wrap-overflow-selection.html:
        * fast/text/whitespace/pre-wrap-spaces-after-newline.html:
        * fast/tokenizer/missing-style-end-tag-1.html:
        * fast/tokenizer/missing-style-end-tag-2.html:
        * fast/tokenizer/missing-title-end-tag-1.html:
        * fast/tokenizer/missing-title-end-tag-2.html:
        * http/tests/misc/iframe404.html:

2009-09-29  Brady Eidson  <beidson@apple.com>

        Reviewed by John Sullivan.

        WebKit Mac API should provide a delegate interface for global history.
        <rdar://problem/7042773> and https://webkit.org/b/29904

        * http/tests/globalhistory: Added.
        * http/tests/globalhistory/history-delegate-basic-302-redirect-expected.txt: Added.
        * http/tests/globalhistory/history-delegate-basic-302-redirect.html: Added.
        * http/tests/globalhistory/history-delegate-basic-refresh-redirect-expected.txt: Added.
        * http/tests/globalhistory/history-delegate-basic-refresh-redirect.html: Added.
        * http/tests/resources/notify-done.html: Added.
        * http/tests/resources/redirect.php: Augment to optionally do "Refresh:"-style redirects.

        Skip these new tests on all platforms that don't have history delegates (yet):
        * platform/gtk/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:

2009-09-29  Daniel Bates  <dbates@webkit.org>

        Reviewed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=29837
        
        More tests for the XSSAuditor.

        * http/tests/security/xssAuditor/embed-tag-javascript-url-expected.txt: Added.
        * http/tests/security/xssAuditor/embed-tag-javascript-url.html: Added.
        * http/tests/security/xssAuditor/meta-tag-http-refresh-javascript-url-expected.txt: Added.
        * http/tests/security/xssAuditor/meta-tag-http-refresh-javascript-url.html: Added.
        * http/tests/security/xssAuditor/object-tag-javascript-url-expected.txt: Added.
        * http/tests/security/xssAuditor/object-tag-javascript-url.html: Added.
        * http/tests/security/xssAuditor/property-escape-noquotes-expected.txt: Added.
        * http/tests/security/xssAuditor/property-escape-noquotes-tab-slash-chars-expected.txt: Added.
        * http/tests/security/xssAuditor/property-escape-noquotes-tab-slash-chars.html: Added.
        * http/tests/security/xssAuditor/property-escape-noquotes.html: Added.
        * http/tests/security/xssAuditor/property-inject-expected.txt: Added.
        * http/tests/security/xssAuditor/property-inject.html: Added.
        * http/tests/security/xssAuditor/resources/echo-head.pl: Added.
        * http/tests/security/xssAuditor/resources/echo-inner-tag.pl: Added.
        * http/tests/security/xssAuditor/resources/echo-property-noquotes.pl: Added.

2009-09-29  Enrica Casucci  <enrica@apple.com>

        Reviewed by Adele Peterson.

        Test case for <rdar://problem/7085453>.

        * editing/selection/blockquote-crash-expected.txt: Added.
        * editing/selection/blockquote-crash.html: Added.

2009-09-29  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        Update for .maxLength behavior change.
        https://bugs.webkit.org/show_bug.cgi?id=29796

        * fast/forms/input-maxlength-expected.txt:
        * fast/forms/input-maxlength.html:
        * fast/forms/script-tests/textarea-maxlength.js:
        * fast/forms/textarea-maxlength-expected.txt:

2009-09-29  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        Tests the feComposite implementation for SVG.

        * platform/mac/svg/filters/feComposite-expected.checksum: Added.
        * platform/mac/svg/filters/feComposite-expected.png: Added.
        * platform/mac/svg/filters/feComposite-expected.txt: Added.
        * svg/filters/feComposite.svg: Added.

2009-09-29  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by David Kilzer.

        Change remaining references in tests from bugzilla.opendarwin.org to bugs.webkit.org
        https://bugs.webkit.org/show_bug.cgi?id=12140

        Change the URLs in dumpAsText tests.

        * editing/deleting/delete-all-text-in-text-field-assertion-expected.txt:
        * editing/deleting/delete-all-text-in-text-field-assertion.html:
        * fast/dom/Document/doc-open-while-parsing.html:
        * fast/dom/Document/document-reopen.html:
        * fast/dom/Element/setAttribute-case-insensitivity.html:
        * fast/dom/HTMLHeadElement/head-check.html:
        * fast/dom/HTMLImageElement/image-without-renderer-width-expected.txt:
        * fast/dom/HTMLImageElement/image-without-renderer-width.html:
        * fast/dom/HTMLScriptElement/script-load-events-expected.txt:
        * fast/dom/HTMLScriptElement/script-load-events.html:
        * fast/dom/clone-node-form-elements-with-attr.html:
        * fast/dom/document-dir-property-expected.txt:
        * fast/dom/document-dir-property.html:
        * fast/dom/everything-to-string.html:
        * fast/dom/generic-form-element-assert-expected.txt:
        * fast/dom/generic-form-element-assert.html:
        * fast/dom/inner-text-rtl-expected.txt:
        * fast/dom/inner-text-rtl.html:
        * fast/dom/navigator-vendorSub.html:
        * fast/dom/option-properties-expected.txt:
        * fast/dom/option-properties.html:
        * fast/dom/replace-child-siblings-expected.txt:
        * fast/dom/replace-child-siblings.html:
        * fast/dom/replace-first-child.html:
        * fast/dom/setAttribute-using-initial-input-value.html:
        * fast/dom/space-to-text.html:
        * fast/dynamic/hovered-detach-expected.txt:
        * fast/dynamic/hovered-detach.html:
        * fast/encoding/charset-koi8-u.html:
        * fast/encoding/css-charset-dom.html:
        * fast/encoding/css-charset-evil.html:
        * fast/encoding/css-charset.html:
        * fast/encoding/latin1-winlatin.html:
        * fast/encoding/mispositioned-meta.html:
        * fast/encoding/percent-escaping.html:
        * fast/encoding/pseudo-xml-2.html:
        * fast/encoding/pseudo-xml-3.html:
        * fast/encoding/pseudo-xml-4.html:
        * fast/encoding/pseudo-xml.html:
        * fast/events/init-event-null-view.html:
        * fast/events/mouseover-mouseout.html:
        * fast/events/mouseover-mouseout2.html:
        * fast/events/onload-webkit-before-webcore.html:
        * fast/forms/button-in-forms-collection.html:
        * fast/forms/document-write.html:
        * fast/forms/domstring-replace-crash-expected.txt:
        * fast/forms/domstring-replace-crash.html:
        * fast/forms/element-by-name.html:
        * fast/forms/empty-get.html:
        * fast/forms/form-data-encoding-normalization-overrun.html:
        * fast/forms/radio-button-no-change-event.html:
        * fast/forms/selected-index-assert-expected.txt:
        * fast/forms/selected-index-assert.html:
        * fast/forms/textarea-hard-linewrap-empty-expected.txt:
        * fast/forms/textarea-hard-linewrap-empty.html:
        * fast/forms/textfield-focus-out-expected.txt:
        * fast/forms/textfield-focus-out.html:
        * fast/frames/empty-frame-document-expected.txt:
        * fast/frames/empty-frame-document.html:
        * fast/frames/frame-name-reset.html:
        * fast/frames/frame-set-same-location.html:
        * fast/frames/frame-set-same-src.html:
        * fast/frames/frameElement-widthheight.html:
        * fast/frames/iframe-name-and-id-expected.txt:
        * fast/frames/iframe-name-and-id.html:
        * fast/frames/iframe-set-same-location.html:
        * fast/frames/iframe-set-same-src.html:
        * fast/frames/repaint-display-none-crash-expected.txt:
        * fast/frames/repaint-display-none-crash.html:
        * fast/js/exception-linenums-in-html-2.html:
        * fast/js/missing-title-end-tag-js.html:
        * fast/loader/link-no-URL.html:
        * fast/loader/url-strip-cr-lf-tab.html:
        * fast/overflow/generated-content-crash-expected.txt:
        * fast/overflow/generated-content-crash.html:
        * fast/parser/number-sign-in-map-name.html:
        * fast/parser/remove-current-node-parent.html:
        * fast/parser/script-after-frameset-assert.html:
        * fast/tokenizer/image-empty-crash-expected.txt:
        * fast/tokenizer/image-empty-crash.html:
        * fast/tokenizer/nested-cached-scripts-expected.txt:
        * fast/tokenizer/nested-cached-scripts.html:
        * fast/tokenizer/write-unclosed-script-expected.txt:
        * fast/tokenizer/write-unclosed-script.html:
        * fast/xsl/transformToFragment-XML-declaration.html:
        * http/tests/misc/text-refresh.html:
        * http/tests/plugins/npapi-response-headers.html:
        * http/tests/uri/utf8-path.html:
        * http/tests/xmlhttprequest/cache-override.html:
        * http/tests/xmlhttprequest/event-listener-gc-expected.txt:
        * http/tests/xmlhttprequest/event-listener-gc.html:
        * http/tests/xmlhttprequest/event-target.html:
        * http/tests/xmlhttprequest/frame-load-cancelled-abort.html:
        * http/tests/xmlhttprequest/interactive-state.html:
        * http/tests/xmlhttprequest/methods-async.html:
        * http/tests/xmlhttprequest/methods-lower-case.html:
        * http/tests/xmlhttprequest/methods.html:
        * http/tests/xmlhttprequest/post-content-type.html:
        * http/tests/xmlhttprequest/readystatechange.html:
        * http/tests/xmlhttprequest/supported-xml-content-types.html:
        * http/tests/xmlhttprequest/xhr-onunload.html:
        * http/tests/xmlhttprequest/zero-length-response.html:
        * platform/mac/fast/events/objc-event-api.html:
        * platform/mac/fast/events/objc-keyboard-event-creation.html:
        * plugins/get-empty-url.html:
        * plugins/geturl-replace-query.html:
        * plugins/invoke.html:
        * plugins/mouse-events.html:

2009-09-29  Nate Chapin  <japhet@chromium.org>

        Reviewed by Eric Seidel.

        Test for https://bugs.webkit.org/show_bug.cgi?id=27860.

        * fast/events/node-event-anchor-lock-expected.txt: Added.
        * fast/events/node-event-anchor-lock.html: Added.

2009-09-28  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler and Sam Weinig.

        Onclick not fired for an element copied with cloneContents() or cloneNode()
        https://bugs.webkit.org/show_bug.cgi?id=25130

        * fast/events/attribute-listener-cloned-from-frameless-doc-context-2-expected.txt: Added.
        * fast/events/attribute-listener-cloned-from-frameless-doc-context-2.html: Added.
        * fast/events/attribute-listener-cloned-from-frameless-doc-context-expected.txt: Added.
        * fast/events/attribute-listener-cloned-from-frameless-doc-context.html: Added.
        * fast/events/attribute-listener-cloned-from-frameless-doc-expected.txt: Added.
        * fast/events/attribute-listener-cloned-from-frameless-doc.xhtml: Added.
        * fast/events/attribute-listener-extracted-from-frameless-doc-context-2-expected.txt: Added.
        * fast/events/attribute-listener-extracted-from-frameless-doc-context-2.html: Added.
        * fast/events/attribute-listener-extracted-from-frameless-doc-context-expected.txt: Added.
        * fast/events/attribute-listener-extracted-from-frameless-doc-context.html: Added.

2009-09-28  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Brady Eidson.

        <rdar://problem/7259965> REGRESSION: http/tests/xmlhttprequest/cross-origin-authorization.html
        is failing/crashing intermittently
        https://bugs.webkit.org/show_bug.cgi?id=29322

        * http/tests/xmlhttprequest/cross-origin-authorization.html: While at it, made the test
        detect more error conditions

2009-09-29  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Tor Arne Vestbø.

        [Qt] Update the mertics after default font size reconciliation to match other ports 16px/13px size.

        Done together with Renata Hodovan <renata.hodovan@stud.u-szeged.hu>

        * platform/qt/Skipped:
        * platform/qt/css1/basic/class_as_selector-expected.txt:
        * platform/qt/css1/basic/comments-expected.txt:
        * platform/qt/css1/basic/containment-expected.txt:
        * platform/qt/css1/basic/contextual_selectors-expected.txt:
        * platform/qt/css1/basic/grouping-expected.txt:
        * platform/qt/css1/basic/id_as_selector-expected.txt:
        * platform/qt/css1/basic/inheritance-expected.txt:
        * platform/qt/css1/box_properties/border-expected.txt:
        * platform/qt/css1/box_properties/border_bottom-expected.txt:
        * platform/qt/css1/box_properties/border_bottom_inline-expected.txt:
        * platform/qt/css1/box_properties/border_bottom_width-expected.txt:
        * platform/qt/css1/box_properties/border_bottom_width_inline-expected.txt:
        * platform/qt/css1/box_properties/border_color-expected.txt:
        * platform/qt/css1/box_properties/border_color_inline-expected.txt:
        * platform/qt/css1/box_properties/border_inline-expected.txt:
        * platform/qt/css1/box_properties/border_left-expected.txt:
        * platform/qt/css1/box_properties/border_left_inline-expected.txt:
        * platform/qt/css1/box_properties/border_left_width-expected.txt:
        * platform/qt/css1/box_properties/border_left_width_inline-expected.txt:
        * platform/qt/css1/box_properties/border_right-expected.txt:
        * platform/qt/css1/box_properties/border_right_inline-expected.txt:
        * platform/qt/css1/box_properties/border_right_width-expected.txt:
        * platform/qt/css1/box_properties/border_right_width_inline-expected.txt:
        * platform/qt/css1/box_properties/border_style-expected.txt:
        * platform/qt/css1/box_properties/border_style_inline-expected.txt:
        * platform/qt/css1/box_properties/border_top-expected.txt:
        * platform/qt/css1/box_properties/border_top_inline-expected.txt:
        * platform/qt/css1/box_properties/border_top_width-expected.txt:
        * platform/qt/css1/box_properties/border_top_width_inline-expected.txt:
        * platform/qt/css1/box_properties/border_width-expected.txt:
        * platform/qt/css1/box_properties/border_width_inline-expected.txt:
        * platform/qt/css1/box_properties/clear-expected.txt:
        * platform/qt/css1/box_properties/clear_float-expected.txt:
        * platform/qt/css1/box_properties/float-expected.txt:
        * platform/qt/css1/box_properties/float_elements_in_series-expected.txt:
        * platform/qt/css1/box_properties/float_margin-expected.txt:
        * platform/qt/css1/box_properties/float_on_text_elements-expected.txt:
        * platform/qt/css1/box_properties/height-expected.txt:
        * platform/qt/css1/box_properties/margin-expected.txt:
        * platform/qt/css1/box_properties/margin_bottom-expected.txt:
        * platform/qt/css1/box_properties/margin_bottom_inline-expected.txt:
        * platform/qt/css1/box_properties/margin_inline-expected.txt:
        * platform/qt/css1/box_properties/margin_left-expected.txt:
        * platform/qt/css1/box_properties/margin_left_inline-expected.txt:
        * platform/qt/css1/box_properties/margin_right-expected.txt:
        * platform/qt/css1/box_properties/margin_right_inline-expected.txt:
        * platform/qt/css1/box_properties/margin_top-expected.txt:
        * platform/qt/css1/box_properties/margin_top_inline-expected.txt:
        * platform/qt/css1/box_properties/padding-expected.txt:
        * platform/qt/css1/box_properties/padding_bottom-expected.txt:
        * platform/qt/css1/box_properties/padding_bottom_inline-expected.txt:
        * platform/qt/css1/box_properties/padding_inline-expected.txt:
        * platform/qt/css1/box_properties/padding_left-expected.txt:
        * platform/qt/css1/box_properties/padding_left_inline-expected.txt:
        * platform/qt/css1/box_properties/padding_right-expected.txt:
        * platform/qt/css1/box_properties/padding_right_inline-expected.txt:
        * platform/qt/css1/box_properties/padding_top-expected.txt:
        * platform/qt/css1/box_properties/padding_top_inline-expected.txt:
        * platform/qt/css1/box_properties/width-expected.txt:
        * platform/qt/css1/cascade/cascade_order-expected.txt:
        * platform/qt/css1/cascade/important-expected.txt:
        * platform/qt/css1/classification/display-expected.txt:
        * platform/qt/css1/classification/list_style-expected.txt:
        * platform/qt/css1/classification/list_style_image-expected.txt:
        * platform/qt/css1/classification/list_style_position-expected.txt:
        * platform/qt/css1/classification/list_style_type-expected.txt:
        * platform/qt/css1/classification/white_space-expected.txt:
        * platform/qt/css1/color_and_background/background-expected.txt:
        * platform/qt/css1/color_and_background/background_attachment-expected.txt:
        * platform/qt/css1/color_and_background/background_color-expected.txt:
        * platform/qt/css1/color_and_background/background_image-expected.txt:
        * platform/qt/css1/color_and_background/background_position-expected.txt:
        * platform/qt/css1/color_and_background/background_repeat-expected.txt:
        * platform/qt/css1/color_and_background/color-expected.txt:
        * platform/qt/css1/conformance/forward_compatible_parsing-expected.txt:
        * platform/qt/css1/font_properties/font-expected.txt:
        * platform/qt/css1/font_properties/font_family-expected.txt:
        * platform/qt/css1/font_properties/font_size-expected.txt:
        * platform/qt/css1/font_properties/font_style-expected.txt:
        * platform/qt/css1/font_properties/font_variant-expected.txt:
        * platform/qt/css1/font_properties/font_weight-expected.txt:
        * platform/qt/css1/formatting_model/canvas-expected.txt:
        * platform/qt/css1/formatting_model/floating_elements-expected.txt:
        * platform/qt/css1/formatting_model/height_of_lines-expected.txt:
        * platform/qt/css1/formatting_model/horizontal_formatting-expected.txt:
        * platform/qt/css1/formatting_model/inline_elements-expected.txt:
        * platform/qt/css1/formatting_model/replaced_elements-expected.txt:
        * platform/qt/css1/formatting_model/vertical_formatting-expected.txt:
        * platform/qt/css1/pseudo/anchor-expected.txt:
        * platform/qt/css1/pseudo/firstletter-expected.txt:
        * platform/qt/css1/pseudo/firstline-expected.txt:
        * platform/qt/css1/pseudo/multiple_pseudo_elements-expected.txt:
        * platform/qt/css1/pseudo/pseudo_elements_in_selectors-expected.txt:
        * platform/qt/css1/text_properties/letter_spacing-expected.txt:
        * platform/qt/css1/text_properties/line_height-expected.txt:
        * platform/qt/css1/text_properties/text_align-expected.txt:
        * platform/qt/css1/text_properties/text_decoration-expected.txt:
        * platform/qt/css1/text_properties/text_indent-expected.txt:
        * platform/qt/css1/text_properties/text_transform-expected.txt:
        * platform/qt/css1/text_properties/vertical_align-expected.txt:
        * platform/qt/css1/text_properties/word_spacing-expected.txt:
        * platform/qt/css1/units/color_units-expected.txt:
        * platform/qt/css1/units/length_units-expected.txt:
        * platform/qt/css1/units/percentage_units-expected.txt:
        * platform/qt/css1/units/urls-expected.txt:
        * platform/qt/css2.1/t010403-shand-font-00-b-expected.txt:
        * platform/qt/css2.1/t010403-shand-font-01-b-expected.txt:
        * platform/qt/css2.1/t010403-shand-font-02-b-expected.txt:
        * platform/qt/css2.1/t010403-shand-font-03-b-expected.txt:
        * platform/qt/css2.1/t040102-keywords-00-b-expected.txt:
        * platform/qt/css2.1/t040102-keywords-01-b-expected.txt:
        * platform/qt/css2.1/t040103-case-00-b-expected.txt:
        * platform/qt/css2.1/t040103-case-01-c-expected.txt:
        * platform/qt/css2.1/t040103-escapes-00-b-expected.txt:
        * platform/qt/css2.1/t040103-escapes-01-b-expected.txt:
        * platform/qt/css2.1/t040103-escapes-02-d-expected.txt:
        * platform/qt/css2.1/t040103-escapes-03-b-expected.txt:
        * platform/qt/css2.1/t040103-escapes-04-b-expected.txt:
        * platform/qt/css2.1/t040103-escapes-05-c-expected.txt:
        * platform/qt/css2.1/t040103-escapes-06-b-expected.txt:
        * platform/qt/css2.1/t040103-escapes-07-b-expected.txt:
        * platform/qt/css2.1/t040103-escapes-08-b-expected.txt:
        * platform/qt/css2.1/t040103-ident-00-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-01-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-02-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-03-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-05-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-06-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-07-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-08-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-09-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-10-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-11-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-12-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-13-c-expected.txt:
        * platform/qt/css2.1/t040105-atkeyw-00-b-expected.txt:
        * platform/qt/css2.1/t040105-atkeyw-01-b-expected.txt:
        * platform/qt/css2.1/t040105-atkeyw-02-b-expected.txt:
        * platform/qt/css2.1/t040105-atrule-00-b-expected.txt:
        * platform/qt/css2.1/t040105-atrule-01-b-expected.txt:
        * platform/qt/css2.1/t040105-atrule-02-b-expected.txt:
        * platform/qt/css2.1/t040105-atrule-03-b-expected.txt:
        * platform/qt/css2.1/t040105-atrule-04-b-expected.txt:
        * platform/qt/css2.1/t040105-import-00-b-expected.txt:
        * platform/qt/css2.1/t040105-import-01-b-expected.txt:
        * platform/qt/css2.1/t040109-c17-comments-00-b-expected.txt:
        * platform/qt/css2.1/t040109-c17-comments-01-b-expected.txt:
        * platform/qt/css2.1/t0402-c71-fwd-parsing-01-f-expected.txt:
        * platform/qt/css2.1/t0402-c71-fwd-parsing-02-f-expected.txt:
        * platform/qt/css2.1/t0402-c71-fwd-parsing-03-f-expected.txt:
        * platform/qt/css2.1/t0402-c71-fwd-parsing-04-f-expected.txt:
        * platform/qt/css2.1/t0402-syntax-01-f-expected.txt:
        * platform/qt/css2.1/t0402-syntax-02-f-expected.txt:
        * platform/qt/css2.1/t0402-syntax-03-f-expected.txt:
        * platform/qt/css2.1/t0402-syntax-04-f-expected.txt:
        * platform/qt/css2.1/t0402-syntax-05-f-expected.txt:
        * platform/qt/css2.1/t0402-syntax-06-f-expected.txt:
        * platform/qt/css2.1/t040302-c61-ex-len-00-b-a-expected.txt:
        * platform/qt/css2.1/t040302-c61-phys-len-00-b-expected.txt:
        * platform/qt/css2.1/t040302-c61-rel-len-00-b-ag-expected.txt:
        * platform/qt/css2.1/t040306-c63-color-00-b-ag-expected.txt:
        * platform/qt/css2.1/t040307-syntax-01-b-expected.txt:
        * platform/qt/css2.1/t050201-c12-grouping-00-b-expected.txt:
        * platform/qt/css2.1/t0505-c16-descendant-00-e-expected.txt:
        * platform/qt/css2.1/t0505-c16-descendant-01-e-expected.txt:
        * platform/qt/css2.1/t0505-c16-descendant-02-e-expected.txt:
        * platform/qt/css2.1/t050803-c14-classes-00-e-expected.txt:
        * platform/qt/css2.1/t0509-c15-ids-00-a-expected.txt:
        * platform/qt/css2.1/t0509-c15-ids-01-e-expected.txt:
        * platform/qt/css2.1/t0509-id-sel-syntax-01-f-expected.txt:
        * platform/qt/css2.1/t0509-id-sel-syntax-02-b-expected.txt:
        * platform/qt/css2.1/t0510-c25-pseudo-elmnt-00-c-expected.txt:
        * platform/qt/css2.1/t0511-c21-pseud-anch-00-e-i-expected.txt:
        * platform/qt/css2.1/t0511-c21-pseud-link-00-e-expected.txt:
        * platform/qt/css2.1/t0511-c21-pseud-link-01-e-expected.txt:
        * platform/qt/css2.1/t0511-c21-pseud-link-02-e-expected.txt:
        * platform/qt/css2.1/t051103-c21-activ-ln-00-e-i-expected.txt:
        * platform/qt/css2.1/t051103-c21-focus-ln-00-e-i-expected.txt:
        * platform/qt/css2.1/t051103-dom-hover-01-c-io-expected.txt:
        * platform/qt/css2.1/t051103-dom-hover-02-c-io-expected.txt:
        * platform/qt/css2.1/t051201-c23-first-line-00-b-expected.txt:
        * platform/qt/css2.1/t051202-c24-first-lttr-00-b-expected.txt:
        * platform/qt/css2.1/t051202-c26-psudo-nest-00-c-expected.txt:
        * platform/qt/css2.1/t0602-c13-inheritance-00-e-expected.txt:
        * platform/qt/css2.1/t0602-inherit-bdr-pad-b-00-expected.txt:
        * platform/qt/css2.1/t0603-c11-import-00-b-expected.txt:
        * platform/qt/css2.1/t060401-c32-cascading-00-b-expected.txt:
        * platform/qt/css2.1/t060402-c31-important-00-b-expected.txt:
        * platform/qt/css2.1/t060403-c21-pseu-cls-00-e-i-expected.txt:
        * platform/qt/css2.1/t060403-c21-pseu-id-00-e-i-expected.txt:
        * platform/qt/css2.1/t0801-c412-hz-box-00-b-a-expected.txt:
        * platform/qt/css2.1/t0803-c5501-imrgn-t-00-b-ag-expected.txt:
        * platform/qt/css2.1/t0803-c5502-imrgn-r-00-b-ag-expected.txt:
        * platform/qt/css2.1/t0803-c5502-imrgn-r-01-b-ag-expected.txt:
        * platform/qt/css2.1/t0803-c5502-imrgn-r-06-b-ag-expected.txt:
        * platform/qt/css2.1/t0803-c5502-mrgn-r-00-c-ag-expected.txt:
        * platform/qt/css2.1/t0803-c5502-mrgn-r-01-c-a-expected.txt:
        * platform/qt/css2.1/t0803-c5502-mrgn-r-02-c-expected.txt:
        * platform/qt/css2.1/t0803-c5502-mrgn-r-03-c-expected.txt:
        * platform/qt/css2.1/t0803-c5503-imrgn-b-00-b-a-expected.txt:
        * platform/qt/css2.1/t0803-c5504-imrgn-l-00-b-ag-expected.txt:
        * platform/qt/css2.1/t0803-c5504-imrgn-l-01-b-ag-expected.txt:
        * platform/qt/css2.1/t0803-c5504-imrgn-l-02-b-ag-expected.txt:
        * platform/qt/css2.1/t0803-c5504-imrgn-l-05-b-ag-expected.txt:
        * platform/qt/css2.1/t0803-c5504-imrgn-l-06-b-ag-expected.txt:
        * platform/qt/css2.1/t0803-c5504-mrgn-l-00-c-ag-expected.txt:
        * platform/qt/css2.1/t0803-c5504-mrgn-l-01-c-a-expected.txt:
        * platform/qt/css2.1/t0803-c5504-mrgn-l-02-c-expected.txt:
        * platform/qt/css2.1/t0803-c5504-mrgn-l-03-c-expected.txt:
        * platform/qt/css2.1/t0803-c5505-imrgn-00-a-ag-expected.txt:
        * platform/qt/css2.1/t0803-c5505-mrgn-00-b-ag-expected.txt:
        * platform/qt/css2.1/t0803-c5505-mrgn-01-e-a-expected.txt:
        * platform/qt/css2.1/t0803-c5505-mrgn-02-c-expected.txt:
        * platform/qt/css2.1/t0803-c5505-mrgn-03-c-ag-expected.txt:
        * platform/qt/css2.1/t080301-c411-vt-mrgn-00-b-expected.txt:
        * platform/qt/css2.1/t0804-c5506-ipadn-t-00-b-a-expected.txt:
        * platform/qt/css2.1/t0804-c5506-ipadn-t-01-b-a-expected.txt:
        * platform/qt/css2.1/t0804-c5506-ipadn-t-02-b-a-expected.txt:
        * platform/qt/css2.1/t0804-c5506-padn-t-00-b-a-expected.txt:
        * platform/qt/css2.1/t0804-c5507-ipadn-r-00-b-ag-expected.txt:
        * platform/qt/css2.1/t0804-c5507-ipadn-r-01-b-ag-expected.txt:
        * platform/qt/css2.1/t0804-c5507-padn-r-00-c-ag-expected.txt:
        * platform/qt/css2.1/t0804-c5507-padn-r-01-c-a-expected.txt:
        * platform/qt/css2.1/t0804-c5507-padn-r-02-f-expected.txt:
        * platform/qt/css2.1/t0804-c5507-padn-r-03-f-expected.txt:
        * platform/qt/css2.1/t0804-c5508-ipadn-b-00-b-a-expected.txt:
        * platform/qt/css2.1/t0804-c5509-ipadn-l-01-b-ag-expected.txt:
        * platform/qt/css2.1/t0804-c5509-padn-l-00-b-ag-expected.txt:
        * platform/qt/css2.1/t0804-c5509-padn-l-01-b-a-expected.txt:
        * platform/qt/css2.1/t0804-c5509-padn-l-02-f-expected.txt:
        * platform/qt/css2.1/t0804-c5509-padn-l-03-f-g-expected.txt:
        * platform/qt/css2.1/t0804-c5510-ipadn-00-b-ag-expected.txt:
        * platform/qt/css2.1/t0804-c5510-padn-00-b-ag-expected.txt:
        * platform/qt/css2.1/t0804-c5510-padn-01-e-a-expected.txt:
        * platform/qt/css2.1/t0804-c5510-padn-02-f-expected.txt:
        * platform/qt/css2.1/t0805-c5511-brdr-tw-00-b-expected.txt:
        * platform/qt/css2.1/t0805-c5511-brdr-tw-01-b-g-expected.txt:
        * platform/qt/css2.1/t0805-c5511-brdr-tw-02-b-expected.txt:
        * platform/qt/css2.1/t0805-c5511-brdr-tw-03-b-expected.txt:
        * platform/qt/css2.1/t0805-c5511-ibrdr-tw-00-a-expected.txt:
        * platform/qt/css2.1/t0805-c5512-brdr-rw-00-b-expected.txt:
        * platform/qt/css2.1/t0805-c5512-brdr-rw-01-b-g-expected.txt:
        * platform/qt/css2.1/t0805-c5512-brdr-rw-02-b-expected.txt:
        * platform/qt/css2.1/t0805-c5512-brdr-rw-03-b-expected.txt:
        * platform/qt/css2.1/t0805-c5512-ibrdr-rw-00-a-expected.txt:
        * platform/qt/css2.1/t0805-c5513-brdr-bw-00-b-expected.txt:
        * platform/qt/css2.1/t0805-c5513-brdr-bw-01-b-g-expected.txt:
        * platform/qt/css2.1/t0805-c5513-brdr-bw-02-b-expected.txt:
        * platform/qt/css2.1/t0805-c5513-brdr-bw-03-b-expected.txt:
        * platform/qt/css2.1/t0805-c5513-ibrdr-bw-00-a-expected.txt:
        * platform/qt/css2.1/t0805-c5514-brdr-lw-00-b-expected.txt:
        * platform/qt/css2.1/t0805-c5514-brdr-lw-01-b-g-expected.txt:
        * platform/qt/css2.1/t0805-c5514-brdr-lw-02-b-expected.txt:
        * platform/qt/css2.1/t0805-c5514-brdr-lw-03-b-expected.txt:
        * platform/qt/css2.1/t0805-c5514-ibrdr-lw-00-a-expected.txt:
        * platform/qt/css2.1/t0805-c5515-brdr-w-00-a-expected.txt:
        * platform/qt/css2.1/t0805-c5515-brdr-w-01-b-g-expected.txt:
        * platform/qt/css2.1/t0805-c5515-brdr-w-02-b-expected.txt:
        * platform/qt/css2.1/t0805-c5515-ibrdr-00-b-expected.txt:
        * platform/qt/css2.1/t0805-c5516-brdr-c-00-a-expected.txt:
        * platform/qt/css2.1/t0805-c5516-ibrdr-c-00-a-expected.txt:
        * platform/qt/css2.1/t0805-c5517-brdr-s-00-c-expected.txt:
        * platform/qt/css2.1/t0805-c5517-ibrdr-s-00-a-expected.txt:
        * platform/qt/css2.1/t0805-c5518-brdr-t-00-a-expected.txt:
        * platform/qt/css2.1/t0805-c5518-brdr-t-01-e-expected.txt:
        * platform/qt/css2.1/t0805-c5518-ibrdr-t-00-a-expected.txt:
        * platform/qt/css2.1/t0805-c5519-brdr-r-00-a-expected.txt:
        * platform/qt/css2.1/t0805-c5519-brdr-r-01-e-expected.txt:
        * platform/qt/css2.1/t0805-c5519-brdr-r-02-e-expected.txt:
        * platform/qt/css2.1/t0805-c5519-ibrdr-r-00-a-expected.txt:
        * platform/qt/css2.1/t0805-c5520-brdr-b-00-a-expected.txt:
        * platform/qt/css2.1/t0805-c5520-brdr-b-01-e-expected.txt:
        * platform/qt/css2.1/t0805-c5520-ibrdr-b-00-a-expected.txt:
        * platform/qt/css2.1/t0805-c5521-brdr-l-00-a-expected.txt:
        * platform/qt/css2.1/t0805-c5521-brdr-l-01-e-expected.txt:
        * platform/qt/css2.1/t0805-c5521-brdr-l-02-e-expected.txt:
        * platform/qt/css2.1/t0805-c5521-ibrdr-l-00-a-expected.txt:
        * platform/qt/css2.1/t0805-c5522-brdr-00-b-expected.txt:
        * platform/qt/css2.1/t0805-c5522-brdr-01-b-g-expected.txt:
        * platform/qt/css2.1/t0805-c5522-brdr-02-e-expected.txt:
        * platform/qt/css2.1/t0805-c5522-ibrdr-00-a-expected.txt:
        * platform/qt/css2.1/t09-c5526c-display-00-e-expected.txt:
        * platform/qt/css2.1/t090204-display-change-01-b-ao-expected.txt:
        * platform/qt/css2.1/t0905-c414-flt-00-d-expected.txt:
        * platform/qt/css2.1/t0905-c414-flt-01-d-g-expected.txt:
        * platform/qt/css2.1/t0905-c414-flt-02-c-expected.txt:
        * platform/qt/css2.1/t0905-c414-flt-03-c-expected.txt:
        * platform/qt/css2.1/t0905-c414-flt-04-c-expected.txt:
        * platform/qt/css2.1/t0905-c414-flt-fit-00-d-expected.txt:
        * platform/qt/css2.1/t0905-c414-flt-fit-01-d-g-expected.txt:
        * platform/qt/css2.1/t0905-c414-flt-wrap-00-e-expected.txt:
        * platform/qt/css2.1/t0905-c414-flt-wrap-01-d-g-expected.txt:
        * platform/qt/css2.1/t0905-c5525-fltclr-00-c-ag-expected.txt:
        * platform/qt/css2.1/t0905-c5525-fltwidth-00-c-g-expected.txt:
        * platform/qt/css2.1/t0905-c5525-fltwidth-01-c-g-expected.txt:
        * platform/qt/css2.1/t0905-c5525-fltwidth-02-c-g-expected.txt:
        * platform/qt/css2.1/t0905-c5525-fltwidth-03-c-g-expected.txt:
        * platform/qt/css2.1/t0905-c5525-fltwrap-00-b-expected.txt:
        * platform/qt/css2.1/t0905-c5526-fltclr-00-c-ag-expected.txt:
        * platform/qt/css2.1/t090501-c414-flt-00-d-expected.txt:
        * platform/qt/css2.1/t090501-c414-flt-01-b-expected.txt:
        * platform/qt/css2.1/t090501-c414-flt-02-d-g-expected.txt:
        * platform/qt/css2.1/t090501-c414-flt-03-b-g-expected.txt:
        * platform/qt/css2.1/t090501-c414-flt-ln-00-d-expected.txt:
        * platform/qt/css2.1/t090501-c414-flt-ln-01-d-g-expected.txt:
        * platform/qt/css2.1/t090501-c414-flt-ln-02-d-expected.txt:
        * platform/qt/css2.1/t090501-c414-flt-ln-03-d-expected.txt:
        * platform/qt/css2.1/t090501-c5525-flt-l-00-b-g-expected.txt:
        * platform/qt/css2.1/t090501-c5525-flt-r-00-b-g-expected.txt:
        * platform/qt/css2.1/t1001-abs-pos-cb-01-b-expected.txt:
        * platform/qt/css2.1/t1001-abs-pos-cb-02-b-expected.txt:
        * platform/qt/css2.1/t1001-abs-pos-cb-03-b-expected.txt:
        * platform/qt/css2.1/t1001-abs-pos-cb-04-b-expected.txt:
        * platform/qt/css2.1/t1001-abs-pos-cb-05-b-expected.txt:
        * platform/qt/css2.1/t1001-abs-pos-cb-06-b-expected.txt:
        * platform/qt/css2.1/t1001-abs-pos-cb-07-b-expected.txt:
        * platform/qt/css2.1/t1001-abs-pos-cb-08-b-expected.txt:
        * platform/qt/css2.1/t1001-abs-pos-cb-09-b-expected.txt:
        * platform/qt/css2.1/t1002-c5523-width-00-b-g-expected.txt:
        * platform/qt/css2.1/t1002-c5523-width-01-b-g-expected.txt:
        * platform/qt/css2.1/t1002-c5523-width-02-b-g-expected.txt:
        * platform/qt/css2.1/t100303-c412-blockw-00-d-ag-expected.txt:
        * platform/qt/css2.1/t100304-c43-rpl-bbx-01-d-g-expected.txt:
        * platform/qt/css2.1/t1004-c43-rpl-bbx-00-d-ag-expected.txt:
        * platform/qt/css2.1/t1004-c43-rpl-ibx-00-d-ag-expected.txt:
        * platform/qt/css2.1/t1005-c5524-width-00-b-g-expected.txt:
        * platform/qt/css2.1/t1005-c5524-width-01-b-g-expected.txt:
        * platform/qt/css2.1/t1008-c44-ln-box-00-d-ag-expected.txt:
        * platform/qt/css2.1/t100801-c42-ibx-ht-00-d-a-expected.txt:
        * platform/qt/css2.1/t100801-c544-valgn-01-d-ag-expected.txt:
        * platform/qt/css2.1/t100801-c544-valgn-03-d-agi-expected.txt:
        * platform/qt/css2.1/t100801-c544-valgn-04-d-agi-expected.txt:
        * platform/qt/css2.1/t100801-c548-leadin-00-d-a-expected.txt:
        * platform/qt/css2.1/t100801-c548-ln-ht-01-b-ag-expected.txt:
        * platform/qt/css2.1/t100801-c548-ln-ht-02-b-ag-expected.txt:
        * platform/qt/css2.1/t100801-c548-ln-ht-03-d-ag-expected.txt:
        * platform/qt/css2.1/t1202-counter-00-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-01-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-02-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-03-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-04-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-06-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-07-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-08-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-09-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-11-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-12-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-13-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-14-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-15-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-16-f-expected.txt:
        * platform/qt/css2.1/t1202-counters-00-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-01-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-02-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-03-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-05-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-06-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-07-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-08-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-09-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-11-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-12-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-13-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-14-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-15-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-16-c-expected.txt:
        * platform/qt/css2.1/t1202-counters-17-d-expected.txt:
        * platform/qt/css2.1/t1202-counters-18-f-expected.txt:
        * platform/qt/css2.1/t1204-implied-01-c-expected.txt:
        * platform/qt/css2.1/t1204-implied-02-d-expected.txt:
        * platform/qt/css2.1/t1204-increment-00-c-o-expected.txt:
        * platform/qt/css2.1/t1204-increment-01-c-o-expected.txt:
        * platform/qt/css2.1/t1204-multiple-01-c-expected.txt:
        * platform/qt/css2.1/t1204-order-00-c-expected.txt:
        * platform/qt/css2.1/t1204-order-01-d-expected.txt:
        * platform/qt/css2.1/t1204-reset-02-c-o-expected.txt:
        * platform/qt/css2.1/t120401-scope-01-c-expected.txt:
        * platform/qt/css2.1/t120401-scope-02-c-expected.txt:
        * platform/qt/css2.1/t120401-scope-03-c-expected.txt:
        * platform/qt/css2.1/t120401-scope-04-d-expected.txt:
        * platform/qt/css2.1/t120403-content-none-00-c-expected.txt:
        * platform/qt/css2.1/t120403-display-none-00-c-expected.txt:
        * platform/qt/css2.1/t120403-visibility-00-c-expected.txt:
        * platform/qt/css2.1/t1205-c561-list-displ-00-b-expected.txt:
        * platform/qt/css2.1/t1205-c563-list-type-00-b-expected.txt:
        * platform/qt/css2.1/t1205-c563-list-type-01-b-expected.txt:
        * platform/qt/css2.1/t1205-c564-list-img-00-b-g-expected.txt:
        * platform/qt/css2.1/t1205-c565-list-pos-00-b-expected.txt:
        * platform/qt/css2.1/t1205-c566-list-stl-00-e-ag-expected.txt:
        * platform/qt/css2.1/t1205-c566-list-stl-01-c-g-expected.txt:
        * platform/qt/css2.1/t1402-c45-bg-canvas-00-b-expected.txt:
        * platform/qt/css2.1/t140201-c532-bgcolor-00-a-expected.txt:
        * platform/qt/css2.1/t140201-c532-bgcolor-01-b-expected.txt:
        * platform/qt/css2.1/t140201-c533-bgimage-00-a-expected.txt:
        * platform/qt/css2.1/t140201-c533-bgimage-01-b-g-expected.txt:
        * platform/qt/css2.1/t140201-c534-bgre-00-b-ag-expected.txt:
        * platform/qt/css2.1/t140201-c536-bgpos-00-b-ag-expected.txt:
        * platform/qt/css2.1/t1503-c522-font-family-00-b-expected.txt:
        * platform/qt/css2.1/t1504-c523-font-style-00-b-expected.txt:
        * platform/qt/css2.1/t1504-c543-txt-decor-00-d-g-expected.txt:
        * platform/qt/css2.1/t1505-c524-font-var-00-b-expected.txt:
        * platform/qt/css2.1/t1506-c525-font-wt-00-b-expected.txt:
        * platform/qt/css2.1/t1507-c526-font-sz-00-b-expected.txt:
        * platform/qt/css2.1/t1507-c526-font-sz-01-b-a-expected.txt:
        * platform/qt/css2.1/t1507-c526-font-sz-02-b-a-expected.txt:
        * platform/qt/css2.1/t1508-c527-font-03-b-expected.txt:
        * platform/qt/css2.1/t1601-c547-indent-00-b-a-expected.txt:
        * platform/qt/css2.1/t1601-c547-indent-01-d-expected.txt:
        * platform/qt/css2.1/t1602-c43-center-00-d-ag-expected.txt:
        * platform/qt/css2.1/t1604-c541-word-sp-00-b-a-expected.txt:
        * platform/qt/css2.1/t1604-c541-word-sp-01-b-a-expected.txt:
        * platform/qt/css2.1/t1604-c542-letter-sp-00-b-a-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-01-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-02-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-03-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-04-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-05-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-06-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-07-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-08-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-09-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-10-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-11-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-12-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-13-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-14-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-15-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-16-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-17-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-18-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-19-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-20-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-21-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-22-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-23-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-24-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-25-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-26-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-27-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-28-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-29-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-30-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-31-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-32-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-33-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-34-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-35-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-36-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-37-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-38-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-39-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-40-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-41-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-42-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-43-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-44-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-45-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-46-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-47-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-48-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-49-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-50-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-51-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-52-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-53-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-54-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-55-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-56-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-57-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-58-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-59-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-60-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-61-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-62-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-63-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-64-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-65-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-66-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-67-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-68-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-69-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-70-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-71-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-72-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-73-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-74-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-75-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-76-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-77-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-78-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-79-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-80-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-81-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-82-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-83-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-84-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-85-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-86-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-87-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-88-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-89-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-90-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-91-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-92-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-93-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-94-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-95-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-96-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-97-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-98-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-99-d-expected.txt:
        * platform/qt/editing/inserting/break-blockquote-after-delete-expected.txt:
        * platform/qt/fast/backgrounds/001-expected.txt:
        * platform/qt/fast/backgrounds/animated-gif-as-background-expected.txt:
        * platform/qt/fast/backgrounds/animated-svg-as-background-expected.txt:
        * platform/qt/fast/backgrounds/animated-svg-as-mask-expected.txt:
        * platform/qt/fast/backgrounds/background-clip-text-expected.txt:
        * platform/qt/fast/backgrounds/background-inherit-color-bug-expected.txt:
        * platform/qt/fast/backgrounds/background-origin-root-element-expected.txt:
        * platform/qt/fast/backgrounds/background-position-1-expected.txt:
        * platform/qt/fast/backgrounds/background-position-rounding-expected.txt:
        * platform/qt/fast/backgrounds/body-generated-image-propagated-to-root-expected.txt:
        * platform/qt/fast/backgrounds/mask-composite-expected.txt:
        * platform/qt/fast/backgrounds/repeat/mask-negative-offset-repeat-expected.txt:
        * platform/qt/fast/backgrounds/repeat/negative-offset-repeat-expected.txt:
        * platform/qt/fast/backgrounds/repeat/noRepeatCorrectClip-expected.txt:
        * platform/qt/fast/backgrounds/size/backgroundSize15-expected.txt:
        * platform/qt/fast/backgrounds/size/backgroundSize16-expected.txt:
        * platform/qt/fast/backgrounds/size/zero-expected.txt:
        * platform/qt/fast/backgrounds/solid-color-context-restore-expected.txt:
        * platform/qt/fast/backgrounds/svg-as-background-1-expected.txt:
        * platform/qt/fast/backgrounds/svg-as-background-2-expected.txt:
        * platform/qt/fast/backgrounds/svg-as-background-3-expected.txt:
        * platform/qt/fast/backgrounds/svg-as-background-4-expected.txt:
        * platform/qt/fast/backgrounds/svg-as-background-5-expected.txt:
        * platform/qt/fast/backgrounds/svg-as-background-6-expected.txt:
        * platform/qt/fast/backgrounds/svg-as-mask-expected.txt:
        * platform/qt/fast/block/float/009-expected.txt:
        * platform/qt/fast/block/float/avoidance-percent-width-compat-expected.txt:
        * platform/qt/fast/block/float/avoidance-percent-width-strict-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/001-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/002-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/003-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/004-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/005-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/006-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/010-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/011-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/012-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/015-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/016-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/017-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/018-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/019-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/020-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/021-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/022-expected.txt:
        * platform/qt/fast/block/margin-collapse/block-inside-inline/025-expected.txt:
        * platform/qt/fast/borders/border-radius-constraints-expected.txt:
        * platform/qt/fast/borders/border-radius-split-inline-expected.txt:
        * platform/qt/fast/box-shadow/basic-shadows-expected.txt:
        * platform/qt/fast/box-shadow/inset-expected.txt:
        * platform/qt/fast/box-shadow/transform-fringing-expected.txt:
        * platform/qt/fast/canvas/canvas-before-css-expected.txt:
        * platform/qt/fast/canvas/canvas-composite-expected.txt:
        * platform/qt/fast/canvas/canvas-transform-identity-expected.txt:
        * platform/qt/fast/canvas/canvas-transform-infinity-expected.txt:
        * platform/qt/fast/canvas/canvas-transform-multiply-expected.txt:
        * platform/qt/fast/canvas/canvas-transform-nan-expected.txt:
        * platform/qt/fast/canvas/canvas-transform-non-invertible-expected.txt:
        * platform/qt/fast/canvas/canvas-transform-skewed-expected.txt:
        * platform/qt/fast/canvas/canvas-transforms-during-path-expected.txt:
        * platform/qt/fast/canvas/canvas-zoom-expected.txt:
        * platform/qt/fast/canvas/drawImage-expected.txt:
        * platform/qt/fast/canvas/drawImage-with-globalAlpha-expected.txt:
        * platform/qt/fast/canvas/image-pattern-rotate-expected.txt:
        * platform/qt/fast/canvas/shadow-offset-1-expected.txt:
        * platform/qt/fast/canvas/shadow-offset-2-expected.txt:
        * platform/qt/fast/canvas/shadow-offset-3-expected.txt:
        * platform/qt/fast/canvas/shadow-offset-4-expected.txt:
        * platform/qt/fast/canvas/shadow-offset-5-expected.txt:
        * platform/qt/fast/canvas/shadow-offset-6-expected.txt:
        * platform/qt/fast/canvas/shadow-offset-7-expected.txt:
        * platform/qt/fast/css/attribute-selector-dynamic-expected.txt:
        * platform/qt/fast/css/font-smoothing-expected.txt:
        * platform/qt/fast/css/nested-floating-relative-position-percentages-expected.txt:
        * platform/qt/fast/css/nth-child-dynamic-expected.txt:
        * platform/qt/fast/css/pseudo-cache-stale-expected.txt:
        * platform/qt/fast/css/rem-units-on-root-expected.txt:
        * platform/qt/fast/doctypes/001-expected.txt:
        * platform/qt/fast/doctypes/002-expected.txt:
        * platform/qt/fast/doctypes/004-expected.txt:
        * platform/qt/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.txt:
        * platform/qt/fast/dynamic/anchor-lock-expected.txt:
        * platform/qt/fast/dynamic/genContentDestroyChildren-expected.txt:
        * platform/qt/fast/dynamic/window-resize-scrollbars-test-expected.txt:
        * platform/qt/fast/dynamic/window-scrollbars-test-expected.txt:
        * platform/qt/fast/forms/button-style-color-expected.txt:
        * platform/qt/fast/forms/isindex-placeholder-expected.txt:
        * platform/qt/fast/forms/menulist-style-color-expected.txt:
        * platform/qt/fast/forms/search-vertical-alignment-expected.txt:
        * platform/qt/fast/forms/text-style-color-expected.txt:
        * platform/qt/fast/forms/textarea-placeholder-pseudo-style-expected.txt:
        * platform/qt/fast/forms/textarea-placeholder-set-attribute-expected.txt:
        * platform/qt/fast/forms/textarea-placeholder-set-value-expected.txt:
        * platform/qt/fast/frames/frame-navigation-expected.txt:
        * platform/qt/fast/frames/frame-scrolling-attribute-expected.txt:
        * platform/qt/fast/frames/frameset-style-recalc-expected.txt:
        * platform/qt/fast/frames/iframe-scrolling-attribute-expected.txt:
        * platform/qt/fast/frames/viewsource-on-image-file-expected.txt:
        * platform/qt/fast/gradients/crash-on-zero-radius-expected.txt:
        * platform/qt/fast/images/animated-gif-with-offsets-expected.txt:
        * platform/qt/fast/images/favicon-as-image-expected.txt:
        * platform/qt/fast/images/image-in-map-expected.txt:
        * platform/qt/fast/images/svg-as-background-expected.txt:
        * platform/qt/fast/images/svg-width-100p-as-background-expected.txt:
        * platform/qt/fast/inline-block/004-expected.txt:
        * platform/qt/fast/inline-block/005-expected.txt:
        * platform/qt/fast/lists/ol-start-parsing-expected.txt:
        * platform/qt/fast/overflow/overflow-with-local-background-attachment-expected.txt:
        * platform/qt/fast/reflections/abs-position-in-reflection-expected.txt:
        * platform/qt/fast/reflections/transparent-reflected-sublayers-expected.txt:
        * platform/qt/fast/repaint/rel-positioned-inline-with-overflow-expected.txt:
        * platform/qt/fast/table/giantRowspan-expected.txt:
        * platform/qt/fast/table/height-percent-test-expected.txt:
        * platform/qt/fast/text/international/hindi-whitespace-expected.txt:
        * platform/qt/fast/text/international/khmer-selection-expected.txt:
        * platform/qt/fast/text/shadow-translucent-fill-expected.txt:
        * platform/qt/fast/text/text-letter-spacing-expected.txt:
        * platform/qt/fast/transforms/bounding-rect-zoom-expected.txt:
        * platform/qt/plugins/netscape-dom-access-expected.txt:
        * platform/qt/svg/custom/createImageElement2-expected.txt:
        * platform/qt/tables/mozilla/bugs/adforce_imgis_com-expected.txt:
        * platform/qt/tables/mozilla/bugs/bug50695-2-expected.txt:
        * platform/qt/tables/mozilla/bugs/bug92647-2-expected.txt:
        * platform/qt/tables/mozilla_expected_failures/bugs/bug23847-expected.txt:

2009-09-29  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Simon Hausmann.

        [Qt] Update Skipped list after test refactoring done in r48806.

        * platform/qt/Skipped:

2009-09-29  Jakub Wieczorek  <faw217@gmail.com>

        Reviewed by Simon Hausmann.

        [Qt] Unskip the passing tests that make use of eventSender.contextClick().
        https://bugs.webkit.org/show_bug.cgi?id=29821

        * platform/qt/Skipped:

2009-09-29  Fumitoshi Ukai  <ukai@chromium.org>

        Unreviewed.  Fix 4 layout test failures by webkit r48861.
        http://bugs.webkit.org/show_bug.cgi?id=29840

        r48861 introduced experimentalWebSocketsEnabled, and false by default.
        When experimentalWebSocketsEnabled is false, window.WebSocket is
        undefined, instead of a constructor.

        * fast/dom/Window/window-properties-expected.txt:
        * fast/dom/prototype-inheritance-2-expected.txt:
        * fast/dom/prototype-inheritance-expected.txt:
        * fast/js/global-constructors-expected.txt:

2009-09-28  Zan Dobersek  <zandobersek@gmail.com>

        Reviewed by David Kilzer.

        [Gtk][Layout tests] Generate results for css3 tests
        https://bugs.webkit.org/show_bug.cgi?id=29784

        Add results for css3 tests and enable these tests in the Skipped.

        * platform/gtk/Skipped:
        * platform/gtk/css3/css3-modsel-33-expected.txt: Added.
        * platform/gtk/css3/css3-modsel-35-expected.txt: Added.
        * platform/gtk/css3/css3-modsel-36-expected.txt: Added.
        * platform/gtk/css3/css3-modsel-37-expected.txt: Added.

2009-09-28  Zan Dobersek  <zandobersek@gmail.com>

        Reviewed by David Kilzer.

        [Gtk][Layout tests] Generate results for transitions tests
        https://bugs.webkit.org/show_bug.cgi?id=29786

        Add results for transitions tests and enable these tests in the Skipped.

        * platform/gtk/Skipped:
        * platform/gtk/transitions/transition-drt-api-expected.txt: Added.

2009-09-28  Zan Dobersek  <zandobersek@gmail.com>

        Reviewed by David Kilzer.

        [Gtk][Layout tests] Generate results for animations tests
        https://bugs.webkit.org/show_bug.cgi?id=29783

        Add results for animations tests and enable these tests in the Skipped.

        * platform/gtk/Skipped:
        * platform/gtk/animations/animation-drt-api-expected.txt: Added.
        * platform/gtk/animations/animation-drt-api-multiple-keyframes-expected.txt: Added.

2009-09-28  Zan Dobersek  <zandobersek@gmail.com>

        Reviewed by David Kilzer.

        [Gtk][Layout tests] Generate results for transforms tests
        https://bugs.webkit.org/show_bug.cgi?id=29785

        Add results for transforms tests and enable these tests in the Skipped.

        * platform/gtk/Skipped:
        * platform/gtk/transforms/2d/compound-transforms-vs-containers-expected.txt: Added.
        * platform/gtk/transforms/2d/transform-borderbox-expected.txt: Added.
        * platform/gtk/transforms/2d/transform-origin-borderbox-expected.txt: Added.
        * platform/gtk/transforms/no_transform_hit_testing-expected.txt: Added.

2009-09-28  Jakub Wieczorek  <faw217@gmail.com>

        Reviewed by Simon Hausmann.

        [Qt] Update the Skipped list after adding XSLT support.
        https://bugs.webkit.org/show_bug.cgi?id=29817

        Remove the tests that are passing now and skip these that are not,
        with a reason of failure for each of them.

        * platform/qt/Skipped:

2009-09-28  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        11 transforms/3d tests failing on the Leopard Debug bot after r48833
        https://bugs.webkit.org/show_bug.cgi?id=29828

        Leopard has HW compositing disabled until rdar://problem/7228836 can be fixed.
        So skip tests which depend on it being enabled per Simon's request.

        * platform/mac-leopard/Skipped:

2009-09-28  Jakub Wieczorek  <faw217@gmail.com>

        Reviewed by Simon Hausmann.

        [Qt] Add the expected result for the fast/xsl/document-function test.
        https://bugs.webkit.org/show_bug.cgi?id=29817

        * platform/qt/fast/xsl/document-function-expected.txt: Added.

2009-09-25  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        REGRESSION: media/video-pause-empty-events.html is occasionally timing out on bots
        https://bugs.webkit.org/show_bug.cgi?id=28624

        No longer skip media tests now that we're disabling hardware compositing instead.
        Add leopard-specific results for 2 tests expected to fail with HW compositing disabled.

        * platform/mac-leopard/Skipped:
        * platform/mac-leopard/fast/media/mq-transform-02-expected.checksum: Copied from LayoutTests/platform/mac-tiger/fast/media/mq-transform-02-expected.checksum.
        * platform/mac-leopard/fast/media/mq-transform-02-expected.png: Copied from LayoutTests/platform/mac-tiger/fast/media/mq-transform-02-expected.png.
        * platform/mac-leopard/fast/media/mq-transform-02-expected.txt: Copied from LayoutTests/platform/mac-tiger/fast/media/mq-transform-02-expected.txt.
        * platform/mac-leopard/fast/media/mq-transform-03-expected.checksum: Copied from LayoutTests/platform/mac-tiger/fast/media/mq-transform-03-expected.checksum.
        * platform/mac-leopard/fast/media/mq-transform-03-expected.png: Copied from LayoutTests/platform/mac-tiger/fast/media/mq-transform-03-expected.png.
        * platform/mac-leopard/fast/media/mq-transform-03-expected.txt: Copied from LayoutTests/platform/mac-tiger/fast/media/mq-transform-03-expected.txt.

2009-09-28  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Darin Adler.

        Move message-port-multi.js from resources to script-tests
        https://bugs.webkit.org/show_bug.cgi?id=29798

        * fast/events/message-port-multi-expected.txt:
        * fast/events/message-port-multi.html:
        * fast/events/resources/message-port-multi.js: Removed.
        * fast/events/script-tests/message-port-multi.js: Added.
        (channel.port2.onmessage):

2009-09-28  Charles Wei  <charles.wei@torchmobile.com.cn>

        Reviewed by Nikolas Zimmermann.

        Fix the crash of SVG that crashes when use a non-exist symbol
        https://bugs.webkit.org/show_bug.cgi?id=27693

        * svg/custom/use-non-existing-symbol-crash-expected.txt: Added.
        * svg/custom/use-non-existing-symbol-crash.svg: Added.

2009-09-27  Sam Weinig  <sam@webkit.org>

        Reviewed by Dan Bernstein.

        Tests for https://bugs.webkit.org/show_bug.cgi?id=29760
        Implement CSSOM Range.getClientRects/getBoundingClientRect 

        * fast/dom/Element/getBoundingClientRect-expected.txt: Copied from LayoutTests/fast/dom/getBoundingClientRect-expected.txt.
        * fast/dom/Element/getBoundingClientRect-getClientRects-relative-to-viewport-expected.txt: Copied from LayoutTests/fast/dom/getBoundingClientRect-getClientRects-relative-to-viewport-expected.txt.
        * fast/dom/Element/getBoundingClientRect-getClientRects-relative-to-viewport.html: Copied from LayoutTests/fast/dom/getBoundingClientRect-getClientRects-relative-to-viewport.html.
        * fast/dom/Element/getBoundingClientRect.html: Copied from LayoutTests/fast/dom/getBoundingClientRect.html.
        * fast/dom/Element/getClientRects-expected.txt: Copied from LayoutTests/fast/dom/getClientRects-expected.txt.
        * fast/dom/Element/getClientRects.html: Copied from LayoutTests/fast/dom/getClientRects.html.
        * fast/dom/Range/getBoundingClientRect-expected.txt: Added.
        * fast/dom/Range/getBoundingClientRect-getClientRects-relative-to-viewport-expected.txt: Added.
        * fast/dom/Range/getBoundingClientRect-getClientRects-relative-to-viewport.html: Added.
        * fast/dom/Range/getBoundingClientRect.html: Added.
        * fast/dom/Range/getClientRects-expected.txt: Added.
        * fast/dom/Range/getClientRects.html: Added.
        * fast/dom/Window/window-properties-expected.txt:
        * fast/dom/getBoundingClientRect-expected.txt: Removed.
        * fast/dom/getBoundingClientRect-getClientRects-relative-to-viewport-expected.txt: Removed.
        * fast/dom/getBoundingClientRect-getClientRects-relative-to-viewport.html: Removed.
        * fast/dom/getBoundingClientRect.html: Removed.
        * fast/dom/getClientRects-expected.txt: Removed.
        * fast/dom/getClientRects.html: Removed.

2009-09-27  Jakub Wieczorek  <faw217@gmail.com>

        Reviewed by Simon Hausmann.

        [Qt] Remove tests that are passing from the Skipped list after implementing
        the waitForPolicyDelegate() function in LayoutTestController.
        https://bugs.webkit.org/show_bug.cgi?id=25037

        * platform/qt/Skipped:

2009-09-25  Adam Barth  <abarth@webkit.org>

        Reviewed by Darin Adler.

        Load blocks during unload should not affect targeted loads
        https://bugs.webkit.org/show_bug.cgi?id=29747

        Test that we can follow targeted hyperlinks in an unload handler.

        * fast/loader/resources/unload-hyperlink-targeted-subframe.html: Added.
        * fast/loader/unload-hyperlink-targeted-expected.txt: Added.
        * fast/loader/unload-hyperlink-targeted.html: Added.

2009-09-25  Alexey Proskuryakov  <ap@apple.com>

        Reverting r48767, as it broke Windows build in a non-trivial way.

        * fast/events/attribute-listener-cloned-from-frameless-doc-context-2-expected.txt: Removed.
        * fast/events/attribute-listener-cloned-from-frameless-doc-context-2.html: Removed.
        * fast/events/attribute-listener-cloned-from-frameless-doc-context-expected.txt: Removed.
        * fast/events/attribute-listener-cloned-from-frameless-doc-context.html: Removed.
        * fast/events/attribute-listener-cloned-from-frameless-doc-expected.txt: Removed.
        * fast/events/attribute-listener-cloned-from-frameless-doc.xhtml: Removed.
        * fast/events/attribute-listener-extracted-from-frameless-doc-context-2-expected.txt: Removed.
        * fast/events/attribute-listener-extracted-from-frameless-doc-context-2.html: Removed.
        * fast/events/attribute-listener-extracted-from-frameless-doc-context-expected.txt: Removed.
        * fast/events/attribute-listener-extracted-from-frameless-doc-context.html: Removed.

2009-09-25  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Darin Adler.

        ASSERTION FAILED: !repaintContainer || repaintContainer == this
        https://bugs.webkit.org/show_bug.cgi?id=29755
        
        Testcase with an opacity-fading element between two absolutely positioned elements.

        * compositing/repaint/opacity-between-absolute.html: Added.
        * platform/mac/compositing/repaint/opacity-between-absolute-expected.checksum: Added.
        * platform/mac/compositing/repaint/opacity-between-absolute-expected.png: Added.
        * platform/mac/compositing/repaint/opacity-between-absolute-expected.txt: Added.

2009-09-25  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Darin Adler.

        Crash with hardware accelerated rotation of a PDF image in a data URL
        <rdar://problem/7250378>
        
        Testcase for a PDF image as the contents of a compositing layer.

        * compositing/color-matching/pdf-image-match.html: Added.
        * platform/mac/compositing/color-matching/pdf-image-match-expected.checksum: Added.
        * platform/mac/compositing/color-matching/pdf-image-match-expected.png: Added.
        * platform/mac/compositing/color-matching/pdf-image-match-expected.txt: Added.

2009-09-25  Darin Adler  <darin@apple.com>

        Reviewed by Geoffrey Garen.

        Null-deref when first access to an Attr node is after its Element is destroyed
        https://bugs.webkit.org/show_bug.cgi?id=29748

        * fast/dom/Attr/access-after-element-destruction-expected.txt: Added.
        * fast/dom/Attr/access-after-element-destruction.html: Added.
        * fast/dom/Attr/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/dom/Node/script-tests/TEMPLATE.html.
        * fast/dom/Attr/script-tests/access-after-element-destruction.js: Added.

2009-09-24  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler and Sam Weinig.

        Onclick not fired for an element copied with cloneContents() or cloneNode()
        https://bugs.webkit.org/show_bug.cgi?id=25130

        * fast/events/attribute-listener-cloned-from-frameless-doc-context-2-expected.txt: Added.
        * fast/events/attribute-listener-cloned-from-frameless-doc-context-2.html: Added.
        * fast/events/attribute-listener-cloned-from-frameless-doc-context-expected.txt: Added.
        * fast/events/attribute-listener-cloned-from-frameless-doc-context.html: Added.
        * fast/events/attribute-listener-cloned-from-frameless-doc-expected.txt: Added.
        * fast/events/attribute-listener-cloned-from-frameless-doc.xhtml: Added.
        * fast/events/attribute-listener-extracted-from-frameless-doc-context-2-expected.txt: Added.
        * fast/events/attribute-listener-extracted-from-frameless-doc-context-2.html: Added.
        * fast/events/attribute-listener-extracted-from-frameless-doc-context-expected.txt: Added.
        * fast/events/attribute-listener-extracted-from-frameless-doc-context.html: Added.

2009-09-25  Darin Adler  <darin@apple.com>

        Checked in a file that was created by make-script-test-wrappers.

        * platform/gtk/editing/pasteboard/middle-click-onpaste.html: Added.

2009-09-25  Enrica Casucci  <enrica@apple.com>

        Reviewed by Darin Adler, Dan Bernstein, Adele Peterson, and others.

        Updated the expected results to reflect the changes in the way the new paragraph
        is created and added test case for https://bugs.webkit.org/show_bug.cgi?id=29740
        <rdar://problem/7168738> Gmail: After changing a foreground text color, pressing return doesn't apply background to new line

        * editing/inserting/insert-bg-font.html: Added.
        * platform/mac/editing/inserting/insert-bg-font-expected.txt: Added.
        * platform/mac/editing/pasteboard/5478250-expected.txt:

2009-09-25  Yuan Song  <song.yuan@ericsson.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=14566

        Add test "invalid-domain-change-throws-exception.html" to ensure a SECURITY_ERR exception is raised if an attempt is made to change document.domain to an invalid value. In the existing test case "basic-textareas.html", fix the faulty behavior of setting document.domain to invalid value, and replace the data URL to a file URL that points to "basic-textareas-standards.html" in order to make "basic-textareas.html" runnable in a browser.

        * fast/forms/basic-textareas.html:
        * fast/forms/resources/basic-textareas-standards.html: Added.
        * fast/js/invalid-domain-change-throws-exception-expected.txt: Added.
        * fast/js/invalid-domain-change-throws-exception.html: Added.
        * fast/js/resources/invalid-domain-change-throws-exception.js: Added.

2009-09-25  Adam Barth  <abarth@webkit.org>

        Reviewed by Dimitri Glazkov.

        [V8] Teach ScheduledAction::execute about isolated worlds
        https://bugs.webkit.org/show_bug.cgi?id=27703

        Test a strange error condition after clearing a setInterval
        timer.  The key point is not to crash on this test.

        * fast/dom/timer-clear-interval-in-handler-and-generate-error-expected.txt: Added.
        * fast/dom/timer-clear-interval-in-handler-and-generate-error.html: Added.

2009-09-24  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        REGRESSION: webkit-transform scale no longer works properly in nightly build
        https://bugs.webkit.org/show_bug.cgi?id=29730
        
        Test that a scale transition with no initial value uses a starting scale of 1.

        * compositing/transitions/scale-transition-no-start.html: Added.
        * platform/mac/compositing/transitions/scale-transition-no-start-expected.checksum: Added.
        * platform/mac/compositing/transitions/scale-transition-no-start-expected.png: Added.
        * platform/mac/compositing/transitions/scale-transition-no-start-expected.txt: Added.

2009-09-24  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        Test for <rdar://problem/7162000> Crash while trying to
        calculate the horizontal position of image

        * fast/inline-block/relative-positioned-rtl-crash-expected.txt: Added.
        * fast/inline-block/relative-positioned-rtl-crash.html: Added.

2009-09-24  Carol Szabo  <carol.szabo@nokia.com>

        Reviewed by Alexey Proskuryakov.

        WebKit returns "" instead of null when getting
        inexistent, forbidden or invalidly named headers.
        https://bugs.webkit.org/show_bug.cgi?id=29140

        * http/tests/xmlhttprequest/get-dangerous-headers.html:
          Updated to test for null instead of ""
        * http/tests/xmlhttprequest/getResponseHeader-expected.txt:
        * http/tests/xmlhttprequest/getResponseHeader.html:
          Extended to also test for headers that should return null.
        * http/tests/xmlhttprequest/xmlhttprequest-invalidHeader-getRequestHeader.html: Removed.
          getResponseHeader.html now covers this case as well.

2009-09-24  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Oliver Hunt.

        Test for correct wheel scrolling behavior.

        https://bugs.webkit.org/show_bug.cgi?id=29348
        [Gtk] Scrollwheel on horizontal scrollbars should slide horizontally

        * platform/gtk/scrollbars/overflow-scrollbar-horizontal-wheel-scroll.html: Added.
        * platform/gtk/scrollbars/overflow-scrollbar-horizontal-wheel-scroll-expected.txt: Added.

2009-09-24  Philippe Normand  <pnormand@igalia.com>

        Reviewed by Gustavo Noronha.

        [GTK] re-enable some media tests
        https://bugs.webkit.org/show_bug.cgi?id=29716

        * platform/gtk/Skipped:

2009-09-24  Sam Weinig  <sam@webkit.org>

        Reviewed by Dan Bernstein.

        Update tests for https://bugs.webkit.org/show_bug.cgi?id=29703
        Add a function to element to check whether it matches a CSS selector

        Add webkitMatchesSelector to SelectorAPI tests.

        * fast/dom/SelectorAPI/caseID-almost-strict-expected.txt:
        * fast/dom/SelectorAPI/caseID-almost-strict.html:
        * fast/dom/SelectorAPI/caseID-expected.txt:
        * fast/dom/SelectorAPI/caseID-strict-expected.txt:
        * fast/dom/SelectorAPI/caseID-strict.html:
        * fast/dom/SelectorAPI/caseID.html:
        * fast/dom/SelectorAPI/caseTag-expected.txt:
        * fast/dom/SelectorAPI/caseTag.html:
        * fast/dom/SelectorAPI/caseTagX-expected.txt:
        * fast/dom/SelectorAPI/caseTagX.xhtml:
        * fast/dom/SelectorAPI/detached-element-expected.txt:
        * fast/dom/SelectorAPI/not-supported-namespace-in-selector-expected.txt:
        * fast/dom/SelectorAPI/not-supported-namespace-in-selector.html:
        * fast/dom/SelectorAPI/script-tests/detached-element.js:
        * fast/dom/SelectorAPI/script-tests/undefined-null-stringify.js:
        * fast/dom/SelectorAPI/script-tests/viewless-document.js:
        * fast/dom/SelectorAPI/undefined-null-stringify-expected.txt:
        * fast/dom/SelectorAPI/viewless-document-expected.txt:
        * fast/dom/Window/window-properties-expected.txt:
        * fast/dom/domListEnumeration-expected.txt:
        * fast/dom/script-tests/domListEnumeration.js:

2009-09-24  Oliver Hunt  <oliver@apple.com>

        Reviewed by NOBODY(rollout)

        Roll out r48712 as it is incorrect.

        Rolling out test as test depends on patch.

        * platform/mac/fast/dom/wrapper-classes-objc-expected.txt:
        * platform/mac/fast/dom/wrapper-classes-objc.html:

2009-09-24  Xan Lopez  <xlopez@igalia.com>

        Revert r48697, since it broke key handling notification to GTK+.

        * platform/gtk/Skipped:

2009-09-24  Benjamin Poulain  <benjamin.poulain@nokia.com>

        Reviewed by Eric Seidel.

        The indices of RuntimeArray should be enumerated like for a regular array.
        https://bugs.webkit.org/show_bug.cgi?id=29005

        * platform/mac/fast/dom/wrapper-classes-objc-expected.txt:
        * platform/mac/fast/dom/wrapper-classes-objc.html:

2009-09-23  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.

        Layout tests for event target sanitization.
        
        New tests for event dispatch:

        * fast/events/event-attributes-after-exception-expected.txt: Added.
        * fast/events/event-attributes-after-exception.html: Added.
        * fast/events/event-fire-order-expected.txt: Added.
        * fast/events/event-fire-order.html: Added.
        * fast/events/event-fired-after-removal-expected.txt: Added.
        * fast/events/event-fired-after-removal.html: Added.
        
        Fixed these tests:

        * fast/xmlhttprequest/xmlhttprequest-get-expected.txt: eventPhase should
        be AT_TARGET (2) when firing an event on an XHR, not INVALID (0).
        * http/tests/xmlhttprequest/infoOnProgressEvent-expected.txt: ditto

        * http/tests/xmlhttprequest/event-target-expected.txt:
        * http/tests/xmlhttprequest/event-target.html: Removing an event listener
        during event dispatch should prevent it from firing. (This test was backwards.)
        
        * svg/custom/loadevents-capturing.svg: Enhanced this test to tell you
        why it fails when it fails. Changed it to register runTest() (now named 
        reportResults()) using addEventListener() instead of the 'onload' attribute.
        The test relies on reportResults() running after handler(), so it needs
        to register reportResults() after handler().

2009-09-23  Karen Grünberg  <karen+webkit@chromium.org>

        Reviewed by Eric Seidel.

        This tests all types of inputs text and password, 
        both enabled and disabled, the existing tests 
        weren't thorough enough for chromium.

        https://bugs.webkit.org/show_bug.cgi?id=29502

        * fast/forms/basic-inputs.html: Added.
        * platform/mac/fast/forms/basic-inputs-expected.checksum: Added.
        * platform/mac/fast/forms/basic-inputs-expected.png: Added.
        * platform/mac/fast/forms/basic-inputs-expected.txt: Added.

2009-09-23  Kent Tamura  <tkent@chromium.org>

        Reviewed by Darin Adler.

        Tests for maxLength of <textarea>
        https://bugs.webkit.org/show_bug.cgi?id=29292

        * fast/forms/script-tests/textarea-maxlength.js: Added.
        * fast/forms/textarea-maxlength-expected.txt: Added.
        * fast/forms/textarea-maxlength.html: Added.

2009-09-23  Martin Robinson  <martin.james.robinson@gmail.com>

        Reviewed by Xan Lopez.

        [GTK] REGRESSION: BitmapImage::getGdkPixbuf fails for non-square images
        https://bugs.webkit.org/show_bug.cgi?id=29654

        Enable tests which are now passing because of key event fixes.

        * platform/gtk/Skipped:

2009-09-23  Eric Seidel  <eric@webkit.org>

        No review, just adding missing pixel test results from recent test additions.

        * platform/mac/compositing/generated-content-expected.checksum: Added.
        * platform/mac/compositing/generated-content-expected.png: Added.
        * platform/mac/compositing/masks/masked-ancestor-expected.png: Added.
        * platform/mac/compositing/masks/multiple-masks-expected.png: Added.
        * platform/mac/compositing/masks/simple-composited-mask-expected.png: Added.
        * platform/mac/compositing/reflections/reflection-on-composited-expected.checksum: Added.
        * platform/mac/compositing/reflections/reflection-on-composited-expected.png: Added.
        * platform/mac/compositing/self-painting-layers-expected.checksum: Added.
        * platform/mac/compositing/self-painting-layers-expected.png: Added.
        * platform/mac/compositing/sibling-positioning-expected.checksum: Added.
        * platform/mac/compositing/sibling-positioning-expected.png: Added.
        * platform/mac/fast/forms/button-style-color-expected.checksum: Added.
        * platform/mac/fast/forms/button-style-color-expected.png: Added.
        * platform/mac/fast/forms/text-style-color-expected.checksum: Added.
        * platform/mac/fast/forms/text-style-color-expected.png: Added.
        * platform/mac/fast/forms/textarea-placeholder-pseudo-style-expected.checksum: Added.
        * platform/mac/fast/forms/textarea-placeholder-pseudo-style-expected.png: Added.
        * platform/mac/fast/forms/textarea-placeholder-set-attribute-expected.checksum: Added.
        * platform/mac/fast/forms/textarea-placeholder-set-attribute-expected.png: Added.
        * platform/mac/fast/forms/textarea-placeholder-set-value-expected.checksum: Added.
        * platform/mac/fast/forms/textarea-placeholder-set-value-expected.png: Added.
        * platform/mac/fast/frames/viewsource-on-image-file-expected.checksum: Added.
        * platform/mac/fast/frames/viewsource-on-image-file-expected.png: Added.
        * platform/mac/fast/text/international/khmer-selection-expected.checksum: Added.
        * platform/mac/fast/text/international/khmer-selection-expected.png: Added.
        * platform/mac/media/audio-no-installed-engines-expected.checksum: Added.
        * platform/mac/media/audio-no-installed-engines-expected.png: Added.
        * platform/mac/media/controls-strict-expected.checksum: Added.
        * platform/mac/media/controls-strict-expected.png: Added.
        * platform/mac/media/controls-styling-expected.checksum: Added.
        * platform/mac/media/controls-styling-expected.png: Added.
        * platform/mac/media/video-no-audio-expected.checksum: Added.
        * platform/mac/media/video-no-audio-expected.png: Added.

2009-09-23  Sam Weinig  <sam@webkit.org>

        Reviewed by Adam Barth.

        Test for https://bugs.webkit.org/show_bug.cgi?id=26989
        Should allow navigation of top-level openers
        <rdar://problem/7034025>

        * http/tests/security/frameNavigation/cross-origin-opener-expected.txt: Added.
        * http/tests/security/frameNavigation/cross-origin-opener.html: Added.
        * http/tests/security/frameNavigation/resources/cross-origin-opener-opener.html: Added.
        * http/tests/security/frameNavigation/resources/navigate-opener.html: Added.

2009-09-23  Andrew Scherkus  <scherkus@chromium.org>

        Reviewed by Eric Carlson.

        Updating 17 media layout tests to provide different media files based on supported codecs.

        https://bugs.webkit.org/show_bug.cgi?id=29625

        * media/audio-constructor-autobuffer.html: Switched to findMediaFile().
        * media/audio-constructor-src.html: Ditto.
        * media/audio-constructor.html: Ditto.
        * media/audio-controls-rendering.html: Ditto.
        * media/audio-delete-while-slider-thumb-clicked.html: Ditto.
        * media/audio-delete-while-step-button-clicked.html: Ditto.
        * media/broken-video.html: Ditto.
        * media/controls-after-reload.html: Ditto, and also changed initial video to counting.mp4 since scaled-matrix.mov is QuickTime specific.
        * media/controls-right-click-on-timebar.html: Ditto.
        * media/event-attributes.html: Ditto.
        * media/media-load-event.html: Ditto.
        * media/media-startTime.html: Ditto.
        * media/progress-event-total-expected.txt: Added new total value.
        * media/progress-event-total.html: Switched to for loop and findMediaFile(), added new total value.
        * media/progress-event.html: Switched to findMediaFile().
        * media/remove-from-document-no-load.html: Ditto.
        * media/remove-from-document.html: Ditto.
        * media/unsupported-tracks.html: Ditto.

2009-09-23  Karen Grünberg  <karen+webkit@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=29493

        Added layout test to test buttons extensively 
        with different paddings. Testing both buttons
        with images and text. Existing tests were not
        comprehensive enough.

        * fast/forms/basic-buttons.html: Added.
        * platform/mac/fast/forms/basic-buttons-expected.checksum: Added.
        * platform/mac/fast/forms/basic-buttons-expected.png: Added.
        * platform/mac/fast/forms/basic-buttons-expected.txt: Added.

2009-09-23  Daniel Bates  <dbates@webkit.org>

        Reviewed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=29523
        
        Tests that JavaScript URLs that were URL-encoded twice do not bypass the XSSAuditor.

        * http/tests/security/xssAuditor/iframe-javascript-url-url-encoded-expected.txt: Added.
        * http/tests/security/xssAuditor/iframe-javascript-url-url-encoded.html: Added.
        * http/tests/security/xssAuditor/javascript-link-url-encoded-expected.txt: Added.
        * http/tests/security/xssAuditor/javascript-link-url-encoded.html: Added.

2009-09-23  Dave Hyatt  <hyatt@apple.com>

        Reviewed by John Sullivan.

        https://bugs.webkit.org/show_bug.cgi?id=29657
        Columns don't break properly in positioned elements with a fixed height.  Make sure that
        a block is still considered to have columns even when the column count is 1 if the column
        width is non-auto.
    
        Added fast/multicol/positioned-with-constrained-height.html

        * fast/multicol/positioned-with-constrained-height.html: Added.
        * platform/mac/fast/multicol/float-multicol-expected.txt:
        * platform/mac/fast/multicol/positioned-with-constrained-height-expected.checksum: Added.
        * platform/mac/fast/multicol/positioned-with-constrained-height-expected.png: Added.
        * platform/mac/fast/multicol/positioned-with-constrained-height-expected.txt: Added.

2009-09-23  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Unreviewed. Skipping new tests, and
        plugins/destroy-during-npp-new.html, after reporting
        https://bugs.webkit.org/show_bug.cgi?id=29683.

        * platform/gtk/Skipped:

2009-09-23  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Unreviewed. Updated to match the changes done in r48566.

        * platform/gtk/fast/dom/prototype-inheritance-2-expected.txt:

2009-09-23  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Tor Arne Vestbø.

        [Qt] Skipping test added in r48644 due to missing layoutTestController features.

        * platform/qt/Skipped:

2009-09-22  Charles Wei  <charles.wei@torchmobile.com.cn>

        Reviewed by Eric Seidel.

        Fix the crash problem with absolte positioned children in foreignobject
        htts://bugs.webkit.org/show_bug.cgi?id=26342

        * svg/custom/foreignobject-crash-with-absolute-positioned-children-expected.txt: Added.
        * svg/custom/foreignobject-crash-with-absolute-positioned-children.svg: Added.

2009-09-22  Alpha Lam  <hclam@chromium.org>

        Reviewed by Eric Carlson.

        Media test files in Ogg and Theora formats
        https://bugs.webkit.org/show_bug.cgi?id=29623

        Adding test files for media layout tests in Ogg and Theora. They are transcoded
        from their originals in H264/AAC using ffmpeg2theora.

        * media/content/counting.ogv: Added.
        * media/content/empty.oga: Added.
        * media/content/garbage.ogv: Added.
        * media/content/silence.oga: Added.
        * media/content/test.oga: Added.
        * media/content/test.ogv: Added.

2009-09-22  Drew Wilson  <atwilson@google.com>

        Reviewed by David Levin.

        SharedWorkers "name" attribute is now optional
        https://bugs.webkit.org/show_bug.cgi?id=28897

        * fast/workers/resources/worker-name.js:
        New tests for optional name parameter.
        * fast/workers/resources/worker-util.js:
        (done):
        Now invokes done via a timer to ensure any pending console errors are written out.
        * fast/workers/shared-worker-constructor-expected.txt:
        * fast/workers/shared-worker-constructor.html:
        Updated test/expectations now that constructor's "name" param is optional.
        * fast/workers/shared-worker-name-expected.txt:
        * fast/workers/shared-worker-name.html:
        New tests for optional name parameter.

2009-09-22  Darin Adler  <darin@apple.com>

        Reviewed by Sam Weinig.

        Tighten up the ScheduledRedirection machinery to prepare for a bug fix
        https://bugs.webkit.org/show_bug.cgi?id=29663

        * http/tests/loading/deleted-host-in-resource-load-delegate-callback-expected.txt:
        Updated test to reflect progression. The willPerformClientRedirectToURL
        call was called an extra time before.

2009-09-22  Sam Weinig  <sam@webkit.org>

        Reviewed by Alexey Proskuryakov.

        Test for XMLHttpRequest.abort() should destroy the response text.
        https://bugs.webkit.org/show_bug.cgi?id=29658
        <rdar://problem/5301430>

        * http/tests/xmlhttprequest/abort-should-destroy-responseText-expected.txt: Added.
        * http/tests/xmlhttprequest/abort-should-destroy-responseText.html: Added.

2009-09-22  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Eric Seidel.

        fast/backgrounds/repeat tests are different from their TEMPLATE
        https://bugs.webkit.org/show_bug.cgi?id=29659

        * fast/backgrounds/repeat/parsing-background-repeat.html:
        * fast/backgrounds/repeat/resources/TEMPLATE.html: Removed.
        * fast/backgrounds/repeat/resources/parsing-background-repeat.js: Removed.
        * fast/backgrounds/repeat/script-tests: Added.
        * fast/backgrounds/repeat/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/backgrounds/repeat/resources/TEMPLATE.html.
        * fast/backgrounds/repeat/script-tests/parsing-background-repeat.js: Copied from LayoutTests/fast/backgrounds/repeat/resources/parsing-background-repeat.js.

2009-09-22  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        media/controls-after-reload.html crashes occasionally
        https://bugs.webkit.org/show_bug.cgi?id=29037

        Skip media/controls-after-reload.html for the same CVDisplayLink
        issue as seen with media/video-size-intrinsic-scale.html.

        * platform/mac-leopard/Skipped:

2009-09-22  Dumitru Daniliuc  <dumi@chromium.org>

        Reviewed by Dimitri Glazkov.

        1. Adding two tests for the transaction coordinator.
        2. Fixing an incorrect <head> tag in some tests.

        https://bugs.webkit.org/show_bug.cgi?id=29115

        * storage/multiple-transactions-on-different-handles.html: Fixed a
        <head> tag (should've been </head>).
        * storage/open-database-while-transaction-in-progress.html: Fixed
        a <head> tag (should've been </head>).
        * storage/read-and-write-transactions-dont-run-together-expected.txt: Added.
        * storage/read-and-write-transactions-dont-run-together.html: Added.
        * storage/read-transactions-running-concurrently-expected.txt: Added.
        * storage/read-transactions-running-concurrently.html: Added.
        * storage/test-authorizer.html: Fixed a <head> tag (should've been
        </head>).

2009-09-22  Shinichiro Hamaji  <hamaji@chromium.org>

        Rubber-stamped by Eric Seidel.

        js tests should move into jstests subdirectory instead of resources/
        https://bugs.webkit.org/show_bug.cgi?id=25880

        Migration for js directory.

        * fast/js/Array-isArray.html:
        * fast/js/JSON-parse-reviver.html:
        * fast/js/JSON-stringify-replacer.html:
        * fast/js/Object-create.html:
        * fast/js/Object-defineProperties.html:
        * fast/js/Object-defineProperty.html:
        * fast/js/Object-keys.html:
        * fast/js/activation-proto.html:
        * fast/js/arguments-bad-index.html:
        * fast/js/arguments.html:
        * fast/js/array-enumerators-functions.html:
        * fast/js/array-every.html:
        * fast/js/array-filter.html:
        * fast/js/array-float-delete.html:
        * fast/js/array-functions-non-arrays.html:
        * fast/js/array-holes.html:
        * fast/js/array-index-immediate-types.html:
        * fast/js/array-indexing.html:
        * fast/js/array-iterate-backwards.html:
        * fast/js/array-join-bug-11524.html:
        * fast/js/array-lastIndexOf.html:
        * fast/js/array-reduce.html:
        * fast/js/array-reduceRight.html:
        * fast/js/array-reset-large-index.html:
        * fast/js/array-sort-reentrance.html:
        * fast/js/array-splice.html:
        * fast/js/array-tostring-and-join.html:
        * fast/js/array-tostring-ignore-separator.html:
        * fast/js/assign.html:
        * fast/js/avl-crash.html:
        * fast/js/cached-eval-gc.html:
        * fast/js/caller-property.html:
        * fast/js/char-at.html:
        * fast/js/closure-inside-extra-arg-call.html:
        * fast/js/code-serialize-paren.html:
        * fast/js/codegen-loops-logical-nodes.html:
        * fast/js/codegen-peephole-locals.html:
        * fast/js/codegen-temporaries.html:
        * fast/js/comparefn-sort-stability.html:
        * fast/js/const-without-initializer.html:
        * fast/js/constant-count.html:
        * fast/js/constant-folding.html:
        * fast/js/constructor-attributes.html:
        * fast/js/constructor.html:
        * fast/js/continue-break-multiple-labels.html:
        * fast/js/convert-nan-to-bool.html:
        * fast/js/cyclic-proto.html:
        * fast/js/cyclic-prototypes.html:
        * fast/js/cyclic-ref-toString.html:
        * fast/js/date-DST-pre-1970.html:
        * fast/js/date-DST-time-cusps.html:
        * fast/js/date-big-constructor.html:
        * fast/js/date-big-setdate.html:
        * fast/js/date-big-setmonth.html:
        * fast/js/date-constructor.html:
        * fast/js/date-negative-setmonth.html:
        * fast/js/date-parse-comments-test.html:
        * fast/js/date-parse-test.html:
        * fast/js/date-preserve-milliseconds.html:
        * fast/js/date-proto-generic-invocation.html:
        * fast/js/date-set-to-nan.html:
        * fast/js/date-toisostring.html:
        * fast/js/debugger.html:
        * fast/js/declaration-in-block.html:
        * fast/js/delete-getters-setters.html:
        * fast/js/delete-syntax.html:
        * fast/js/delete-then-put.html:
        * fast/js/dictionary-no-cache.html:
        * fast/js/do-while-semicolon.html:
        * fast/js/dot-node-base-exception.html:
        * fast/js/duplicate-param-crash.html:
        * fast/js/duplicate-param-gc-crash.html:
        * fast/js/equality.html:
        * fast/js/eval-cache-crash.html:
        * fast/js/eval-throw-return.html:
        * fast/js/eval-var-decl.html:
        * fast/js/exception-expression-offset.html:
        * fast/js/exception-for-nonobject.html:
        * fast/js/exception-linenums.html:
        * fast/js/exception-try-finally-scope-error.html:
        * fast/js/exception-with-handler-inside-eval-with-dynamic-scope.html:
        * fast/js/excessive-comma-usage.html:
        * fast/js/finally-codegen-failure.html:
        * fast/js/for-in-avoid-duplicates.html:
        * fast/js/for-in-cached.html:
        * fast/js/for-in-exeception.html:
        * fast/js/for-in-to-text.html:
        * fast/js/for-in-var-scope.html:
        * fast/js/function-apply-aliased.html:
        * fast/js/function-apply.html:
        * fast/js/function-call-aliased.html:
        * fast/js/function-call-register-allocation.html:
        * fast/js/function-constructor-newline-after-brace.html:
        * fast/js/function-constructor-single-line-comment.html:
        * fast/js/function-declaration-statement.html:
        * fast/js/function-declaration.html:
        * fast/js/function-declarations-in-switch-statement.html:
        * fast/js/function-dot-arguments.html:
        * fast/js/function-name.html:
        * fast/js/function-names.html:
        * fast/js/function-toString-object-literals.html:
        * fast/js/function-toString-parentheses.html:
        * fast/js/function-toString-semicolon-insertion.html:
        * fast/js/getter-setter-gc.html:
        * fast/js/global-constructors.html:
        * fast/js/global-function-resolve.html:
        * fast/js/gmail-re-re.html:
        * fast/js/has-own-property.html:
        * fast/js/ignored-result-null-comparison-crash.html:
        * fast/js/ignored-result-ref-crash.html:
        * fast/js/implicit-call-with-global-reentry.html:
        * fast/js/instance-of-immediates.html:
        * fast/js/instanceof-operator.html:
        * fast/js/integer-extremes.html:
        * fast/js/isPrototypeOf.html:
        * fast/js/kde/Array.html:
        * fast/js/kde/Boolean.html:
        * fast/js/kde/Date-setYear.html:
        * fast/js/kde/Error.html:
        * fast/js/kde/GlobalObject.html:
        * fast/js/kde/Number.html:
        * fast/js/kde/Object.html:
        * fast/js/kde/Prototype.html:
        * fast/js/kde/RegExp.html:
        * fast/js/kde/StringObject.html:
        * fast/js/kde/arguments-scope.html:
        * fast/js/kde/assignments.html:
        * fast/js/kde/cast.html:
        * fast/js/kde/comment-1.html:
        * fast/js/kde/comment-2.html:
        * fast/js/kde/completion.html:
        * fast/js/kde/conditional.html:
        * fast/js/kde/constructor_length.html:
        * fast/js/kde/crash-1.html:
        * fast/js/kde/crash-2.html:
        * fast/js/kde/delete.html:
        * fast/js/kde/empty.html:
        * fast/js/kde/encode_decode_uri.html:
        * fast/js/kde/eval.html:
        * fast/js/kde/evil-n.html:
        * fast/js/kde/exception_propagation.html:
        * fast/js/kde/exceptions.html:
        * fast/js/kde/func-decl.html:
        * fast/js/kde/function.html:
        * fast/js/kde/function_arguments.html:
        * fast/js/kde/function_constructor.html:
        * fast/js/kde/function_length.html:
        * fast/js/kde/garbage-n.html:
        * fast/js/kde/inbuilt_function_proto.html:
        * fast/js/kde/inbuilt_function_tostring.html:
        * fast/js/kde/iteration.html:
        * fast/js/kde/j-comment-3.html:
        * fast/js/kde/j-comment-4.html:
        * fast/js/kde/literals.html:
        * fast/js/kde/lval-exceptions.html:
        * fast/js/kde/math.html:
        * fast/js/kde/md5-1.html:
        * fast/js/kde/md5-2.html:
        * fast/js/kde/object_prototype.html:
        * fast/js/kde/object_prototype_tostring.html:
        * fast/js/kde/operators.html:
        * fast/js/kde/parse.html:
        * fast/js/kde/prototype_length.html:
        * fast/js/kde/prototype_proto.html:
        * fast/js/kde/resources/Array.js: Removed.
        * fast/js/kde/resources/Boolean.js: Removed.
        * fast/js/kde/resources/Date-setYear.js: Removed.
        * fast/js/kde/resources/Error.js: Removed.
        * fast/js/kde/resources/GlobalObject.js: Removed.
        * fast/js/kde/resources/Number.js: Removed.
        * fast/js/kde/resources/Object.js: Removed.
        * fast/js/kde/resources/Prototype.js: Removed.
        * fast/js/kde/resources/RegExp.js: Removed.
        * fast/js/kde/resources/StringObject.js: Removed.
        * fast/js/kde/resources/TEMPLATE-n.html: Removed.
        * fast/js/kde/resources/TEMPLATE.html: Removed.
        * fast/js/kde/resources/arguments-scope.js: Removed.
        * fast/js/kde/resources/assignments.js: Removed.
        * fast/js/kde/resources/cast.js: Removed.
        * fast/js/kde/resources/comment-1.js: Removed.
        * fast/js/kde/resources/comment-2.js: Removed.
        * fast/js/kde/resources/completion.js: Removed.
        * fast/js/kde/resources/conditional.js: Removed.
        * fast/js/kde/resources/constructor_length.js: Removed.
        * fast/js/kde/resources/crash-1.js: Removed.
        * fast/js/kde/resources/crash-2.js: Removed.
        * fast/js/kde/resources/delete.js: Removed.
        * fast/js/kde/resources/empty.js: Removed.
        * fast/js/kde/resources/encode_decode_uri.js: Removed.
        * fast/js/kde/resources/eval.js: Removed.
        * fast/js/kde/resources/evil-n.js: Removed.
        * fast/js/kde/resources/exception_propagation.js: Removed.
        * fast/js/kde/resources/exceptions.js: Removed.
        * fast/js/kde/resources/func-decl.js: Removed.
        * fast/js/kde/resources/function.js: Removed.
        * fast/js/kde/resources/function_arguments.js: Removed.
        * fast/js/kde/resources/function_constructor.js: Removed.
        * fast/js/kde/resources/function_length.js: Removed.
        * fast/js/kde/resources/garbage-n.js: Removed.
        * fast/js/kde/resources/inbuilt_function_proto.js: Removed.
        * fast/js/kde/resources/inbuilt_function_tostring.js: Removed.
        * fast/js/kde/resources/iteration.js: Removed.
        * fast/js/kde/resources/j-comment-3.js: Removed.
        * fast/js/kde/resources/j-comment-4.js: Removed.
        * fast/js/kde/resources/literals.js: Removed.
        * fast/js/kde/resources/lval-exceptions.js: Removed.
        * fast/js/kde/resources/math.js: Removed.
        * fast/js/kde/resources/md5-1.js: Removed.
        * fast/js/kde/resources/md5-2.js: Removed.
        * fast/js/kde/resources/object_prototype.js: Removed.
        * fast/js/kde/resources/object_prototype_tostring.js: Removed.
        * fast/js/kde/resources/operators.js: Removed.
        * fast/js/kde/resources/parse.js: Removed.
        * fast/js/kde/resources/prototype_length.js: Removed.
        * fast/js/kde/resources/prototype_proto.js: Removed.
        * fast/js/kde/resources/scope.js: Removed.
        * fast/js/kde/resources/statements.js: Removed.
        * fast/js/kde/resources/string-1-n.js: Removed.
        * fast/js/kde/resources/string-2-n.js: Removed.
        * fast/js/kde/resources/var_decl_init.js: Removed.
        * fast/js/kde/scope.html:
        * fast/js/kde/script-tests: Added.
        * fast/js/kde/script-tests/Array.js: Copied from LayoutTests/fast/js/kde/resources/Array.js.
        * fast/js/kde/script-tests/Boolean.js: Copied from LayoutTests/fast/js/kde/resources/Boolean.js.
        * fast/js/kde/script-tests/Date-setYear.js: Copied from LayoutTests/fast/js/kde/resources/Date-setYear.js.
        * fast/js/kde/script-tests/Error.js: Copied from LayoutTests/fast/js/kde/resources/Error.js.
        * fast/js/kde/script-tests/GlobalObject.js: Copied from LayoutTests/fast/js/kde/resources/GlobalObject.js.
        * fast/js/kde/script-tests/Number.js: Copied from LayoutTests/fast/js/kde/resources/Number.js.
        * fast/js/kde/script-tests/Object.js: Copied from LayoutTests/fast/js/kde/resources/Object.js.
        * fast/js/kde/script-tests/Prototype.js: Copied from LayoutTests/fast/js/kde/resources/Prototype.js.
        * fast/js/kde/script-tests/RegExp.js: Copied from LayoutTests/fast/js/kde/resources/RegExp.js.
        * fast/js/kde/script-tests/StringObject.js: Copied from LayoutTests/fast/js/kde/resources/StringObject.js.
        * fast/js/kde/script-tests/TEMPLATE-n.html: Copied from LayoutTests/fast/js/kde/resources/TEMPLATE-n.html.
        * fast/js/kde/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/js/kde/resources/TEMPLATE.html.
        * fast/js/kde/script-tests/arguments-scope.js: Copied from LayoutTests/fast/js/kde/resources/arguments-scope.js.
        * fast/js/kde/script-tests/assignments.js: Copied from LayoutTests/fast/js/kde/resources/assignments.js.
        * fast/js/kde/script-tests/cast.js: Copied from LayoutTests/fast/js/kde/resources/cast.js.
        * fast/js/kde/script-tests/comment-1.js: Copied from LayoutTests/fast/js/kde/resources/comment-1.js.
        * fast/js/kde/script-tests/comment-2.js: Copied from LayoutTests/fast/js/kde/resources/comment-2.js.
        * fast/js/kde/script-tests/completion.js: Copied from LayoutTests/fast/js/kde/resources/completion.js.
        * fast/js/kde/script-tests/conditional.js: Copied from LayoutTests/fast/js/kde/resources/conditional.js.
        * fast/js/kde/script-tests/constructor_length.js: Copied from LayoutTests/fast/js/kde/resources/constructor_length.js.
        * fast/js/kde/script-tests/crash-1.js: Copied from LayoutTests/fast/js/kde/resources/crash-1.js.
        * fast/js/kde/script-tests/crash-2.js: Copied from LayoutTests/fast/js/kde/resources/crash-2.js.
        * fast/js/kde/script-tests/delete.js: Copied from LayoutTests/fast/js/kde/resources/delete.js.
        * fast/js/kde/script-tests/empty.js: Copied from LayoutTests/fast/js/kde/resources/empty.js.
        * fast/js/kde/script-tests/encode_decode_uri.js: Copied from LayoutTests/fast/js/kde/resources/encode_decode_uri.js.
        * fast/js/kde/script-tests/eval.js: Copied from LayoutTests/fast/js/kde/resources/eval.js.
        * fast/js/kde/script-tests/evil-n.js: Copied from LayoutTests/fast/js/kde/resources/evil-n.js.
        * fast/js/kde/script-tests/exception_propagation.js: Copied from LayoutTests/fast/js/kde/resources/exception_propagation.js.
        * fast/js/kde/script-tests/exceptions.js: Copied from LayoutTests/fast/js/kde/resources/exceptions.js.
        * fast/js/kde/script-tests/func-decl.js: Copied from LayoutTests/fast/js/kde/resources/func-decl.js.
        * fast/js/kde/script-tests/function.js: Copied from LayoutTests/fast/js/kde/resources/function.js.
        * fast/js/kde/script-tests/function_arguments.js: Copied from LayoutTests/fast/js/kde/resources/function_arguments.js.
        * fast/js/kde/script-tests/function_constructor.js: Copied from LayoutTests/fast/js/kde/resources/function_constructor.js.
        * fast/js/kde/script-tests/function_length.js: Copied from LayoutTests/fast/js/kde/resources/function_length.js.
        * fast/js/kde/script-tests/garbage-n.js: Copied from LayoutTests/fast/js/kde/resources/garbage-n.js.
        * fast/js/kde/script-tests/inbuilt_function_proto.js: Copied from LayoutTests/fast/js/kde/resources/inbuilt_function_proto.js.
        * fast/js/kde/script-tests/inbuilt_function_tostring.js: Copied from LayoutTests/fast/js/kde/resources/inbuilt_function_tostring.js.
        * fast/js/kde/script-tests/iteration.js: Copied from LayoutTests/fast/js/kde/resources/iteration.js.
        * fast/js/kde/script-tests/j-comment-3.js: Copied from LayoutTests/fast/js/kde/resources/j-comment-3.js.
        * fast/js/kde/script-tests/j-comment-4.js: Copied from LayoutTests/fast/js/kde/resources/j-comment-4.js.
        * fast/js/kde/script-tests/literals.js: Copied from LayoutTests/fast/js/kde/resources/literals.js.
        * fast/js/kde/script-tests/lval-exceptions.js: Copied from LayoutTests/fast/js/kde/resources/lval-exceptions.js.
        * fast/js/kde/script-tests/math.js: Copied from LayoutTests/fast/js/kde/resources/math.js.
        * fast/js/kde/script-tests/md5-1.js: Copied from LayoutTests/fast/js/kde/resources/md5-1.js.
        * fast/js/kde/script-tests/md5-2.js: Copied from LayoutTests/fast/js/kde/resources/md5-2.js.
        * fast/js/kde/script-tests/object_prototype.js: Copied from LayoutTests/fast/js/kde/resources/object_prototype.js.
        * fast/js/kde/script-tests/object_prototype_tostring.js: Copied from LayoutTests/fast/js/kde/resources/object_prototype_tostring.js.
        * fast/js/kde/script-tests/operators.js: Copied from LayoutTests/fast/js/kde/resources/operators.js.
        * fast/js/kde/script-tests/parse.js: Copied from LayoutTests/fast/js/kde/resources/parse.js.
        * fast/js/kde/script-tests/prototype_length.js: Copied from LayoutTests/fast/js/kde/resources/prototype_length.js.
        * fast/js/kde/script-tests/prototype_proto.js: Copied from LayoutTests/fast/js/kde/resources/prototype_proto.js.
        * fast/js/kde/script-tests/scope.js: Copied from LayoutTests/fast/js/kde/resources/scope.js.
        * fast/js/kde/script-tests/statements.js: Copied from LayoutTests/fast/js/kde/resources/statements.js.
        * fast/js/kde/script-tests/string-1-n.js: Copied from LayoutTests/fast/js/kde/resources/string-1-n.js.
        * fast/js/kde/script-tests/string-2-n.js: Copied from LayoutTests/fast/js/kde/resources/string-2-n.js.
        * fast/js/kde/script-tests/var_decl_init.js: Copied from LayoutTests/fast/js/kde/resources/var_decl_init.js.
        * fast/js/kde/statements.html:
        * fast/js/kde/string-1-n.html:
        * fast/js/kde/string-2-n.html:
        * fast/js/kde/var_decl_init.html:
        * fast/js/large-expressions.html:
        * fast/js/lastModified.html:
        * fast/js/logical-or-jless.html:
        * fast/js/math-transforms.html:
        * fast/js/math.html:
        * fast/js/method-check.html:
        * fast/js/mod-crash.html:
        * fast/js/modify-non-references.html:
        * fast/js/named-function-expression.html:
        * fast/js/navigator-mimeTypes-length.html:
        * fast/js/nested-object-gc.html:
        * fast/js/non-object-proto.html:
        * fast/js/null-char-in-string.html:
        * fast/js/number-cell-reuse.html:
        * fast/js/number-parsing-crash.html:
        * fast/js/number-toExponential.html:
        * fast/js/number-toString.html:
        * fast/js/number-tofixed.html:
        * fast/js/number-toprecision.html:
        * fast/js/numeric-conversion.html:
        * fast/js/object-extra-comma.html:
        * fast/js/object-prototype-constructor.html:
        * fast/js/object-prototype-toLocaleString.html:
        * fast/js/order-of-operations.html:
        * fast/js/parse-backslash-before-newline.html:
        * fast/js/postfix-syntax.html:
        * fast/js/prefix-syntax.html:
        * fast/js/pretty-print.html:
        * fast/js/primitive-method-this.html:
        * fast/js/primitive-property-access-edge-cases.html:
        * fast/js/property-getters-and-setters.html:
        * fast/js/propertyIsEnumerable.html:
        * fast/js/prototypes.html:
        * fast/js/read-modify-eval.html:
        * fast/js/recursion-limit-equal.html:
        * fast/js/reentrant-call-unwind.html:
        * fast/js/regexp-backreferences.html:
        * fast/js/regexp-char-insensitive.html:
        * fast/js/regexp-character-match-out-of-order.html:
        * fast/js/regexp-compile-crash.html:
        * fast/js/regexp-compile.html:
        * fast/js/regexp-divequal.html:
        * fast/js/regexp-extended-characters-crash.html:
        * fast/js/regexp-extended-characters-match.html:
        * fast/js/regexp-extended-characters-more.html:
        * fast/js/regexp-find-first-asserted.html:
        * fast/js/regexp-lastindex.html:
        * fast/js/regexp-many-brackets.html:
        * fast/js/regexp-negative-special-characters.html:
        * fast/js/regexp-no-extensions.html:
        * fast/js/regexp-non-bmp.html:
        * fast/js/regexp-non-capturing-groups.html:
        * fast/js/regexp-non-character.html:
        * fast/js/regexp-overflow-too-big.html:
        * fast/js/regexp-overflow.html:
        * fast/js/regexp-range-bound-ffff.html:
        * fast/js/regexp-range-out-of-order.html:
        * fast/js/regexp-ranges-and-escaped-hyphens.html:
        * fast/js/regexp-stack-overflow.html:
        * fast/js/regexp-unicode-handling.html:
        * fast/js/regexp-unicode-overflow.html:
        * fast/js/registerCachingAcrossBranchTargets.html:
        * fast/js/rehash-assign.html:
        * fast/js/removing-Cf-characters.html:
        * fast/js/reparsing-semicolon-insertion.html:
        * fast/js/repeat-cached-vm-reentry.html:
        * fast/js/reserved-words.html:
        * fast/js/resize-array-assign.html:
        * fast/js/resources/Array-isArray.js: Removed.
        * fast/js/resources/JSON-parse-reviver.js: Removed.
        * fast/js/resources/JSON-stringify-replacer.js: Removed.
        * fast/js/resources/Object-create.js: Removed.
        * fast/js/resources/Object-defineProperties.js: Removed.
        * fast/js/resources/Object-defineProperty.js: Removed.
        * fast/js/resources/Object-keys.js: Removed.
        * fast/js/resources/TEMPLATE.html: Removed.
        * fast/js/resources/activation-proto.js: Removed.
        * fast/js/resources/arguments-bad-index.js: Removed.
        * fast/js/resources/arguments.js: Removed.
        * fast/js/resources/array-enumerators-functions.js: Removed.
        * fast/js/resources/array-every.js: Removed.
        * fast/js/resources/array-filter.js: Removed.
        * fast/js/resources/array-float-delete.js: Removed.
        * fast/js/resources/array-functions-non-arrays.js: Removed.
        * fast/js/resources/array-holes.js: Removed.
        * fast/js/resources/array-index-immediate-types.js: Removed.
        * fast/js/resources/array-indexing.js: Removed.
        * fast/js/resources/array-iterate-backwards.js: Removed.
        * fast/js/resources/array-join-bug-11524.js: Removed.
        * fast/js/resources/array-lastIndexOf.js: Removed.
        * fast/js/resources/array-reduce.js: Removed.
        * fast/js/resources/array-reduceRight.js: Removed.
        * fast/js/resources/array-reset-large-index.js: Removed.
        * fast/js/resources/array-sort-reentrance.js: Removed.
        * fast/js/resources/array-splice.js: Removed.
        * fast/js/resources/array-tostring-and-join.js: Removed.
        * fast/js/resources/array-tostring-ignore-separator.js: Removed.
        * fast/js/resources/assign.js: Removed.
        * fast/js/resources/avl-crash.js: Removed.
        * fast/js/resources/cached-eval-gc.js: Removed.
        * fast/js/resources/caller-property.js: Removed.
        * fast/js/resources/char-at.js: Removed.
        * fast/js/resources/closure-inside-extra-arg-call.js: Removed.
        * fast/js/resources/code-serialize-paren.js: Removed.
        * fast/js/resources/codegen-loops-logical-nodes.js: Removed.
        * fast/js/resources/codegen-peephole-locals.js: Removed.
        * fast/js/resources/codegen-temporaries.js: Removed.
        * fast/js/resources/comparefn-sort-stability.js: Removed.
        * fast/js/resources/const-without-initializer.js: Removed.
        * fast/js/resources/constant-count.js: Removed.
        * fast/js/resources/constant-folding.js: Removed.
        * fast/js/resources/constructor-attributes.js: Removed.
        * fast/js/resources/constructor.js: Removed.
        * fast/js/resources/continue-break-multiple-labels.js: Removed.
        * fast/js/resources/convert-nan-to-bool.js: Removed.
        * fast/js/resources/cyclic-proto.js: Removed.
        * fast/js/resources/cyclic-prototypes.js: Removed.
        * fast/js/resources/cyclic-ref-toString.js: Removed.
        * fast/js/resources/date-DST-pre-1970.js: Removed.
        * fast/js/resources/date-DST-time-cusps.js: Removed.
        * fast/js/resources/date-big-constructor.js: Removed.
        * fast/js/resources/date-big-setdate.js: Removed.
        * fast/js/resources/date-big-setmonth.js: Removed.
        * fast/js/resources/date-constructor.js: Removed.
        * fast/js/resources/date-negative-setmonth.js: Removed.
        * fast/js/resources/date-parse-comments-test.js: Removed.
        * fast/js/resources/date-parse-test.js: Removed.
        * fast/js/resources/date-preserve-milliseconds.js: Removed.
        * fast/js/resources/date-proto-generic-invocation.js: Removed.
        * fast/js/resources/date-set-to-nan.js: Removed.
        * fast/js/resources/date-toisostring.js: Removed.
        * fast/js/resources/debugger.js: Removed.
        * fast/js/resources/declaration-in-block.js: Removed.
        * fast/js/resources/delete-getters-setters.js: Removed.
        * fast/js/resources/delete-syntax.js: Removed.
        * fast/js/resources/delete-then-put.js: Removed.
        * fast/js/resources/dictionary-no-cache.js: Removed.
        * fast/js/resources/do-while-semicolon.js: Removed.
        * fast/js/resources/dot-node-base-exception.js: Removed.
        * fast/js/resources/duplicate-param-crash.js: Removed.
        * fast/js/resources/duplicate-param-gc-crash.js: Removed.
        * fast/js/resources/equality.js: Removed.
        * fast/js/resources/eval-cache-crash.js: Removed.
        * fast/js/resources/eval-throw-return.js: Removed.
        * fast/js/resources/eval-var-decl.js: Removed.
        * fast/js/resources/exception-expression-offset.js: Removed.
        * fast/js/resources/exception-for-nonobject.js: Removed.
        * fast/js/resources/exception-linenums.js: Removed.
        * fast/js/resources/exception-try-finally-scope-error.js: Removed.
        * fast/js/resources/exception-with-handler-inside-eval-with-dynamic-scope.js: Removed.
        * fast/js/resources/excessive-comma-usage.js: Removed.
        * fast/js/resources/finally-codegen-failure.js: Removed.
        * fast/js/resources/for-in-avoid-duplicates.js: Removed.
        * fast/js/resources/for-in-cached.js: Removed.
        * fast/js/resources/for-in-exeception.js: Removed.
        * fast/js/resources/for-in-to-text.js: Removed.
        * fast/js/resources/for-in-var-scope.js: Removed.
        * fast/js/resources/function-apply-aliased.js: Removed.
        * fast/js/resources/function-apply.js: Removed.
        * fast/js/resources/function-call-aliased.js: Removed.
        * fast/js/resources/function-call-register-allocation.js: Removed.
        * fast/js/resources/function-constructor-newline-after-brace.js: Removed.
        * fast/js/resources/function-constructor-single-line-comment.js: Removed.
        * fast/js/resources/function-declaration-statement.js: Removed.
        * fast/js/resources/function-declaration.js: Removed.
        * fast/js/resources/function-declarations-in-switch-statement.js: Removed.
        * fast/js/resources/function-dot-arguments.js: Removed.
        * fast/js/resources/function-name.js: Removed.
        * fast/js/resources/function-names.js: Removed.
        * fast/js/resources/function-toString-object-literals.js: Removed.
        * fast/js/resources/function-toString-parentheses.js: Removed.
        * fast/js/resources/function-toString-semicolon-insertion.js: Removed.
        * fast/js/resources/getter-setter-gc.js: Removed.
        * fast/js/resources/global-constructors.js: Removed.
        * fast/js/resources/global-function-resolve.js: Removed.
        * fast/js/resources/gmail-re-re.js: Removed.
        * fast/js/resources/has-own-property.js: Removed.
        * fast/js/resources/ignored-result-null-comparison-crash.js: Removed.
        * fast/js/resources/ignored-result-ref-crash.js: Removed.
        * fast/js/resources/implicit-call-with-global-reentry.js: Removed.
        * fast/js/resources/instance-of-immediates.js: Removed.
        * fast/js/resources/instanceof-operator.js: Removed.
        * fast/js/resources/integer-extremes.js: Removed.
        * fast/js/resources/isPrototypeOf.js: Removed.
        * fast/js/resources/large-expressions.js: Removed.
        * fast/js/resources/lastModified.js: Removed.
        * fast/js/resources/logical-or-jless.js: Removed.
        * fast/js/resources/math-transforms.js: Removed.
        * fast/js/resources/math.js: Removed.
        * fast/js/resources/method-check.js: Removed.
        * fast/js/resources/mod-crash.js: Removed.
        * fast/js/resources/modify-non-references.js: Removed.
        * fast/js/resources/named-function-expression.js: Removed.
        * fast/js/resources/navigator-mimeTypes-length.js: Removed.
        * fast/js/resources/nested-object-gc.js: Removed.
        * fast/js/resources/non-object-proto.js: Removed.
        * fast/js/resources/null-char-in-string.js: Removed.
        * fast/js/resources/number-cell-reuse.js: Removed.
        * fast/js/resources/number-parsing-crash.js: Removed.
        * fast/js/resources/number-toExponential.js: Removed.
        * fast/js/resources/number-toString.js: Removed.
        * fast/js/resources/number-tofixed.js: Removed.
        * fast/js/resources/number-toprecision.js: Removed.
        * fast/js/resources/numeric-conversion.js: Removed.
        * fast/js/resources/object-extra-comma.js: Removed.
        * fast/js/resources/object-prototype-constructor.js: Removed.
        * fast/js/resources/object-prototype-toLocaleString.js: Removed.
        * fast/js/resources/order-of-operations.js: Removed.
        * fast/js/resources/parse-backslash-before-newline.js: Removed.
        * fast/js/resources/postfix-syntax.js: Removed.
        * fast/js/resources/prefix-syntax.js: Removed.
        * fast/js/resources/pretty-print.js: Removed.
        * fast/js/resources/primitive-method-this.js: Removed.
        * fast/js/resources/primitive-property-access-edge-cases.js: Removed.
        * fast/js/resources/property-getters-and-setters.js: Removed.
        * fast/js/resources/propertyIsEnumerable.js: Removed.
        * fast/js/resources/prototypes.js: Removed.
        * fast/js/resources/read-modify-eval.js: Removed.
        * fast/js/resources/recursion-limit-equal.js: Removed.
        * fast/js/resources/reentrant-call-unwind.js: Removed.
        * fast/js/resources/regexp-backreferences.js: Removed.
        * fast/js/resources/regexp-char-insensitive.js: Removed.
        * fast/js/resources/regexp-character-match-out-of-order.js: Removed.
        * fast/js/resources/regexp-compile-crash.js: Removed.
        * fast/js/resources/regexp-compile.js: Removed.
        * fast/js/resources/regexp-divequal.js: Removed.
        * fast/js/resources/regexp-extended-characters-crash.js: Removed.
        * fast/js/resources/regexp-extended-characters-match.js: Removed.
        * fast/js/resources/regexp-extended-characters-more.js: Removed.
        * fast/js/resources/regexp-find-first-asserted.js: Removed.
        * fast/js/resources/regexp-lastindex.js: Removed.
        * fast/js/resources/regexp-many-brackets.js: Removed.
        * fast/js/resources/regexp-negative-special-characters.js: Removed.
        * fast/js/resources/regexp-no-extensions.js: Removed.
        * fast/js/resources/regexp-non-bmp.js: Removed.
        * fast/js/resources/regexp-non-capturing-groups.js: Removed.
        * fast/js/resources/regexp-non-character.js: Removed.
        * fast/js/resources/regexp-overflow-too-big.js: Removed.
        * fast/js/resources/regexp-overflow.js: Removed.
        * fast/js/resources/regexp-range-bound-ffff.js: Removed.
        * fast/js/resources/regexp-range-out-of-order.js: Removed.
        * fast/js/resources/regexp-ranges-and-escaped-hyphens.js: Removed.
        * fast/js/resources/regexp-stack-overflow.js: Removed.
        * fast/js/resources/regexp-unicode-handling.js: Removed.
        * fast/js/resources/regexp-unicode-overflow.js: Removed.
        * fast/js/resources/registerCachingAcrossBranchTargets.js: Removed.
        * fast/js/resources/rehash-assign.js: Removed.
        * fast/js/resources/removing-Cf-characters.js: Removed.
        * fast/js/resources/reparsing-semicolon-insertion.js: Removed.
        * fast/js/resources/repeat-cached-vm-reentry.js: Removed.
        * fast/js/resources/reserved-words.js: Removed.
        * fast/js/resources/resize-array-assign.js: Removed.
        * fast/js/resources/select-options-add.js: Removed.
        * fast/js/resources/slash-lineterminator-parse.js: Removed.
        * fast/js/resources/sort-large-array.js: Removed.
        * fast/js/resources/sort-no-jit-code-crash.js: Removed.
        * fast/js/resources/sort-non-numbers.js: Removed.
        * fast/js/resources/sort-randomly.js: Removed.
        * fast/js/resources/sort-stability.js: Removed.
        * fast/js/resources/sparse-array.js: Removed.
        * fast/js/resources/stack-unwinding.js: Removed.
        * fast/js/resources/statement-list-register-crash.js: Removed.
        * fast/js/resources/static-scope-object.js: Removed.
        * fast/js/resources/string-capitalization.js: Removed.
        * fast/js/resources/string-from-char-code.js: Removed.
        * fast/js/resources/string-index-overflow.js: Removed.
        * fast/js/resources/string-property-iteration.js: Removed.
        * fast/js/resources/string-replace-2.js: Removed.
        * fast/js/resources/string-replace-3.js: Removed.
        * fast/js/resources/string-slice-abnormal-values.js: Removed.
        * fast/js/resources/string-sort.js: Removed.
        * fast/js/resources/string-split-ignore-case.js: Removed.
        * fast/js/resources/string-substr.js: Removed.
        * fast/js/resources/string_replace.js: Removed.
        * fast/js/resources/switch-behaviour.js: Removed.
        * fast/js/resources/this-non-object-proto.js: Removed.
        * fast/js/resources/toString-elision-trailing-comma.js: Removed.
        * fast/js/resources/toString-exception.js: Removed.
        * fast/js/resources/toString-for-var-decl.js: Removed.
        * fast/js/resources/toString-number-dot-expr.js: Removed.
        * fast/js/resources/toString-overrides.js: Removed.
        * fast/js/resources/toString-prefix-postfix-preserve-parens.js: Removed.
        * fast/js/resources/toString-stack-overflow.js: Removed.
        * fast/js/resources/tostring-exception-in-property-access.js: Removed.
        * fast/js/resources/transition-cache-dictionary-crash.js: Removed.
        * fast/js/resources/typeof-codegen-crash.js: Removed.
        * fast/js/resources/typeof-constant-string.js: Removed.
        * fast/js/resources/typeof-syntax.js: Removed.
        * fast/js/resources/unexpected-constant-crash.js: Removed.
        * fast/js/resources/unmatching-argument-count.js: Removed.
        * fast/js/resources/var-shadows-arg-crash.js: Removed.
        * fast/js/resources/var-shadows-arg-gc-crash.js: Removed.
        * fast/js/resources/vardecl-blocks-init.js: Removed.
        * fast/js/resources/vardecl-preserve-arguments.js: Removed.
        * fast/js/resources/with-scope-gc.js: Removed.
        * fast/js/script-tests: Added.
        * fast/js/script-tests/Array-isArray.js: Copied from LayoutTests/fast/js/resources/Array-isArray.js.
        * fast/js/script-tests/JSON-parse-reviver.js: Copied from LayoutTests/fast/js/resources/JSON-parse-reviver.js.
        * fast/js/script-tests/JSON-stringify-replacer.js: Copied from LayoutTests/fast/js/resources/JSON-stringify-replacer.js.
        * fast/js/script-tests/Object-create.js: Copied from LayoutTests/fast/js/resources/Object-create.js.
        * fast/js/script-tests/Object-defineProperties.js: Copied from LayoutTests/fast/js/resources/Object-defineProperties.js.
        * fast/js/script-tests/Object-defineProperty.js: Copied from LayoutTests/fast/js/resources/Object-defineProperty.js.
        * fast/js/script-tests/Object-keys.js: Copied from LayoutTests/fast/js/resources/Object-keys.js.
        * fast/js/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/js/resources/TEMPLATE.html.
        * fast/js/script-tests/activation-proto.js: Copied from LayoutTests/fast/js/resources/activation-proto.js.
        * fast/js/script-tests/arguments-bad-index.js: Copied from LayoutTests/fast/js/resources/arguments-bad-index.js.
        * fast/js/script-tests/arguments.js: Copied from LayoutTests/fast/js/resources/arguments.js.
        * fast/js/script-tests/array-enumerators-functions.js: Copied from LayoutTests/fast/js/resources/array-enumerators-functions.js.
        * fast/js/script-tests/array-every.js: Copied from LayoutTests/fast/js/resources/array-every.js.
        * fast/js/script-tests/array-filter.js: Copied from LayoutTests/fast/js/resources/array-filter.js.
        * fast/js/script-tests/array-float-delete.js: Copied from LayoutTests/fast/js/resources/array-float-delete.js.
        * fast/js/script-tests/array-functions-non-arrays.js: Copied from LayoutTests/fast/js/resources/array-functions-non-arrays.js.
        * fast/js/script-tests/array-holes.js: Copied from LayoutTests/fast/js/resources/array-holes.js.
        * fast/js/script-tests/array-index-immediate-types.js: Copied from LayoutTests/fast/js/resources/array-index-immediate-types.js.
        * fast/js/script-tests/array-indexing.js: Copied from LayoutTests/fast/js/resources/array-indexing.js.
        * fast/js/script-tests/array-iterate-backwards.js: Copied from LayoutTests/fast/js/resources/array-iterate-backwards.js.
        * fast/js/script-tests/array-join-bug-11524.js: Copied from LayoutTests/fast/js/resources/array-join-bug-11524.js.
        * fast/js/script-tests/array-lastIndexOf.js: Copied from LayoutTests/fast/js/resources/array-lastIndexOf.js.
        * fast/js/script-tests/array-reduce.js: Copied from LayoutTests/fast/js/resources/array-reduce.js.
        * fast/js/script-tests/array-reduceRight.js: Copied from LayoutTests/fast/js/resources/array-reduceRight.js.
        * fast/js/script-tests/array-reset-large-index.js: Copied from LayoutTests/fast/js/resources/array-reset-large-index.js.
        * fast/js/script-tests/array-sort-reentrance.js: Copied from LayoutTests/fast/js/resources/array-sort-reentrance.js.
        * fast/js/script-tests/array-splice.js: Copied from LayoutTests/fast/js/resources/array-splice.js.
        * fast/js/script-tests/array-tostring-and-join.js: Copied from LayoutTests/fast/js/resources/array-tostring-and-join.js.
        * fast/js/script-tests/array-tostring-ignore-separator.js: Copied from LayoutTests/fast/js/resources/array-tostring-ignore-separator.js.
        * fast/js/script-tests/assign.js: Copied from LayoutTests/fast/js/resources/assign.js.
        * fast/js/script-tests/avl-crash.js: Copied from LayoutTests/fast/js/resources/avl-crash.js.
        * fast/js/script-tests/cached-eval-gc.js: Copied from LayoutTests/fast/js/resources/cached-eval-gc.js.
        * fast/js/script-tests/caller-property.js: Copied from LayoutTests/fast/js/resources/caller-property.js.
        * fast/js/script-tests/char-at.js: Copied from LayoutTests/fast/js/resources/char-at.js.
        * fast/js/script-tests/closure-inside-extra-arg-call.js: Copied from LayoutTests/fast/js/resources/closure-inside-extra-arg-call.js.
        * fast/js/script-tests/code-serialize-paren.js: Copied from LayoutTests/fast/js/resources/code-serialize-paren.js.
        * fast/js/script-tests/codegen-loops-logical-nodes.js: Copied from LayoutTests/fast/js/resources/codegen-loops-logical-nodes.js.
        * fast/js/script-tests/codegen-peephole-locals.js: Copied from LayoutTests/fast/js/resources/codegen-peephole-locals.js.
        * fast/js/script-tests/codegen-temporaries.js: Copied from LayoutTests/fast/js/resources/codegen-temporaries.js.
        * fast/js/script-tests/comparefn-sort-stability.js: Copied from LayoutTests/fast/js/resources/comparefn-sort-stability.js.
        * fast/js/script-tests/const-without-initializer.js: Copied from LayoutTests/fast/js/resources/const-without-initializer.js.
        * fast/js/script-tests/constant-count.js: Copied from LayoutTests/fast/js/resources/constant-count.js.
        * fast/js/script-tests/constant-folding.js: Copied from LayoutTests/fast/js/resources/constant-folding.js.
        * fast/js/script-tests/constructor-attributes.js: Copied from LayoutTests/fast/js/resources/constructor-attributes.js.
        * fast/js/script-tests/constructor.js: Copied from LayoutTests/fast/js/resources/constructor.js.
        * fast/js/script-tests/continue-break-multiple-labels.js: Copied from LayoutTests/fast/js/resources/continue-break-multiple-labels.js.
        * fast/js/script-tests/convert-nan-to-bool.js: Copied from LayoutTests/fast/js/resources/convert-nan-to-bool.js.
        * fast/js/script-tests/cyclic-proto.js: Copied from LayoutTests/fast/js/resources/cyclic-proto.js.
        * fast/js/script-tests/cyclic-prototypes.js: Copied from LayoutTests/fast/js/resources/cyclic-prototypes.js.
        * fast/js/script-tests/cyclic-ref-toString.js: Copied from LayoutTests/fast/js/resources/cyclic-ref-toString.js.
        * fast/js/script-tests/date-DST-pre-1970.js: Copied from LayoutTests/fast/js/resources/date-DST-pre-1970.js.
        * fast/js/script-tests/date-DST-time-cusps.js: Copied from LayoutTests/fast/js/resources/date-DST-time-cusps.js.
        * fast/js/script-tests/date-big-constructor.js: Copied from LayoutTests/fast/js/resources/date-big-constructor.js.
        * fast/js/script-tests/date-big-setdate.js: Copied from LayoutTests/fast/js/resources/date-big-setdate.js.
        * fast/js/script-tests/date-big-setmonth.js: Copied from LayoutTests/fast/js/resources/date-big-setmonth.js.
        * fast/js/script-tests/date-constructor.js: Copied from LayoutTests/fast/js/resources/date-constructor.js.
        * fast/js/script-tests/date-negative-setmonth.js: Copied from LayoutTests/fast/js/resources/date-negative-setmonth.js.
        * fast/js/script-tests/date-parse-comments-test.js: Copied from LayoutTests/fast/js/resources/date-parse-comments-test.js.
        * fast/js/script-tests/date-parse-test.js: Copied from LayoutTests/fast/js/resources/date-parse-test.js.
        * fast/js/script-tests/date-preserve-milliseconds.js: Copied from LayoutTests/fast/js/resources/date-preserve-milliseconds.js.
        * fast/js/script-tests/date-proto-generic-invocation.js: Copied from LayoutTests/fast/js/resources/date-proto-generic-invocation.js.
        * fast/js/script-tests/date-set-to-nan.js: Copied from LayoutTests/fast/js/resources/date-set-to-nan.js.
        * fast/js/script-tests/date-toisostring.js: Copied from LayoutTests/fast/js/resources/date-toisostring.js.
        * fast/js/script-tests/debugger.js: Copied from LayoutTests/fast/js/resources/debugger.js.
        * fast/js/script-tests/declaration-in-block.js: Copied from LayoutTests/fast/js/resources/declaration-in-block.js.
        * fast/js/script-tests/delete-getters-setters.js: Copied from LayoutTests/fast/js/resources/delete-getters-setters.js.
        * fast/js/script-tests/delete-syntax.js: Copied from LayoutTests/fast/js/resources/delete-syntax.js.
        * fast/js/script-tests/delete-then-put.js: Copied from LayoutTests/fast/js/resources/delete-then-put.js.
        * fast/js/script-tests/dictionary-no-cache.js: Copied from LayoutTests/fast/js/resources/dictionary-no-cache.js.
        * fast/js/script-tests/do-while-semicolon.js: Copied from LayoutTests/fast/js/resources/do-while-semicolon.js.
        * fast/js/script-tests/dot-node-base-exception.js: Copied from LayoutTests/fast/js/resources/dot-node-base-exception.js.
        * fast/js/script-tests/duplicate-param-crash.js: Copied from LayoutTests/fast/js/resources/duplicate-param-crash.js.
        * fast/js/script-tests/duplicate-param-gc-crash.js: Copied from LayoutTests/fast/js/resources/duplicate-param-gc-crash.js.
        * fast/js/script-tests/equality.js: Copied from LayoutTests/fast/js/resources/equality.js.
        * fast/js/script-tests/eval-cache-crash.js: Copied from LayoutTests/fast/js/resources/eval-cache-crash.js.
        * fast/js/script-tests/eval-throw-return.js: Copied from LayoutTests/fast/js/resources/eval-throw-return.js.
        * fast/js/script-tests/eval-var-decl.js: Copied from LayoutTests/fast/js/resources/eval-var-decl.js.
        * fast/js/script-tests/exception-expression-offset.js: Copied from LayoutTests/fast/js/resources/exception-expression-offset.js.
        * fast/js/script-tests/exception-for-nonobject.js: Copied from LayoutTests/fast/js/resources/exception-for-nonobject.js.
        * fast/js/script-tests/exception-linenums.js: Copied from LayoutTests/fast/js/resources/exception-linenums.js.
        * fast/js/script-tests/exception-try-finally-scope-error.js: Copied from LayoutTests/fast/js/resources/exception-try-finally-scope-error.js.
        * fast/js/script-tests/exception-with-handler-inside-eval-with-dynamic-scope.js: Copied from LayoutTests/fast/js/resources/exception-with-handler-inside-eval-with-dynamic-scope.js.
        * fast/js/script-tests/excessive-comma-usage.js: Copied from LayoutTests/fast/js/resources/excessive-comma-usage.js.
        * fast/js/script-tests/finally-codegen-failure.js: Copied from LayoutTests/fast/js/resources/finally-codegen-failure.js.
        * fast/js/script-tests/for-in-avoid-duplicates.js: Copied from LayoutTests/fast/js/resources/for-in-avoid-duplicates.js.
        * fast/js/script-tests/for-in-cached.js: Copied from LayoutTests/fast/js/resources/for-in-cached.js.
        * fast/js/script-tests/for-in-exeception.js: Copied from LayoutTests/fast/js/resources/for-in-exeception.js.
        * fast/js/script-tests/for-in-to-text.js: Copied from LayoutTests/fast/js/resources/for-in-to-text.js.
        * fast/js/script-tests/for-in-var-scope.js: Copied from LayoutTests/fast/js/resources/for-in-var-scope.js.
        * fast/js/script-tests/function-apply-aliased.js: Copied from LayoutTests/fast/js/resources/function-apply-aliased.js.
        * fast/js/script-tests/function-apply.js: Copied from LayoutTests/fast/js/resources/function-apply.js.
        * fast/js/script-tests/function-call-aliased.js: Copied from LayoutTests/fast/js/resources/function-call-aliased.js.
        * fast/js/script-tests/function-call-register-allocation.js: Copied from LayoutTests/fast/js/resources/function-call-register-allocation.js.
        * fast/js/script-tests/function-constructor-newline-after-brace.js: Copied from LayoutTests/fast/js/resources/function-constructor-newline-after-brace.js.
        * fast/js/script-tests/function-constructor-single-line-comment.js: Copied from LayoutTests/fast/js/resources/function-constructor-single-line-comment.js.
        * fast/js/script-tests/function-declaration-statement.js: Copied from LayoutTests/fast/js/resources/function-declaration-statement.js.
        * fast/js/script-tests/function-declaration.js: Copied from LayoutTests/fast/js/resources/function-declaration.js.
        * fast/js/script-tests/function-declarations-in-switch-statement.js: Copied from LayoutTests/fast/js/resources/function-declarations-in-switch-statement.js.
        * fast/js/script-tests/function-dot-arguments.js: Copied from LayoutTests/fast/js/resources/function-dot-arguments.js.
        * fast/js/script-tests/function-name.js: Copied from LayoutTests/fast/js/resources/function-name.js.
        * fast/js/script-tests/function-names.js: Copied from LayoutTests/fast/js/resources/function-names.js.
        * fast/js/script-tests/function-toString-object-literals.js: Copied from LayoutTests/fast/js/resources/function-toString-object-literals.js.
        * fast/js/script-tests/function-toString-parentheses.js: Copied from LayoutTests/fast/js/resources/function-toString-parentheses.js.
        * fast/js/script-tests/function-toString-semicolon-insertion.js: Copied from LayoutTests/fast/js/resources/function-toString-semicolon-insertion.js.
        * fast/js/script-tests/getter-setter-gc.js: Copied from LayoutTests/fast/js/resources/getter-setter-gc.js.
        * fast/js/script-tests/global-constructors.js: Copied from LayoutTests/fast/js/resources/global-constructors.js.
        * fast/js/script-tests/global-function-resolve.js: Copied from LayoutTests/fast/js/resources/global-function-resolve.js.
        * fast/js/script-tests/gmail-re-re.js: Copied from LayoutTests/fast/js/resources/gmail-re-re.js.
        * fast/js/script-tests/has-own-property.js: Copied from LayoutTests/fast/js/resources/has-own-property.js.
        * fast/js/script-tests/ignored-result-null-comparison-crash.js: Copied from LayoutTests/fast/js/resources/ignored-result-null-comparison-crash.js.
        * fast/js/script-tests/ignored-result-ref-crash.js: Copied from LayoutTests/fast/js/resources/ignored-result-ref-crash.js.
        * fast/js/script-tests/implicit-call-with-global-reentry.js: Copied from LayoutTests/fast/js/resources/implicit-call-with-global-reentry.js.
        * fast/js/script-tests/instance-of-immediates.js: Copied from LayoutTests/fast/js/resources/instance-of-immediates.js.
        * fast/js/script-tests/instanceof-operator.js: Copied from LayoutTests/fast/js/resources/instanceof-operator.js.
        * fast/js/script-tests/integer-extremes.js: Copied from LayoutTests/fast/js/resources/integer-extremes.js.
        * fast/js/script-tests/isPrototypeOf.js: Copied from LayoutTests/fast/js/resources/isPrototypeOf.js.
        * fast/js/script-tests/large-expressions.js: Copied from LayoutTests/fast/js/resources/large-expressions.js.
        * fast/js/script-tests/lastModified.js: Copied from LayoutTests/fast/js/resources/lastModified.js.
        * fast/js/script-tests/logical-or-jless.js: Copied from LayoutTests/fast/js/resources/logical-or-jless.js.
        * fast/js/script-tests/math-transforms.js: Copied from LayoutTests/fast/js/resources/math-transforms.js.
        * fast/js/script-tests/math.js: Copied from LayoutTests/fast/js/resources/math.js.
        * fast/js/script-tests/method-check.js: Copied from LayoutTests/fast/js/resources/method-check.js.
        * fast/js/script-tests/mod-crash.js: Copied from LayoutTests/fast/js/resources/mod-crash.js.
        * fast/js/script-tests/modify-non-references.js: Copied from LayoutTests/fast/js/resources/modify-non-references.js.
        * fast/js/script-tests/named-function-expression.js: Copied from LayoutTests/fast/js/resources/named-function-expression.js.
        * fast/js/script-tests/navigator-mimeTypes-length.js: Copied from LayoutTests/fast/js/resources/navigator-mimeTypes-length.js.
        * fast/js/script-tests/nested-object-gc.js: Copied from LayoutTests/fast/js/resources/nested-object-gc.js.
        * fast/js/script-tests/non-object-proto.js: Copied from LayoutTests/fast/js/resources/non-object-proto.js.
        * fast/js/script-tests/null-char-in-string.js: Copied from LayoutTests/fast/js/resources/null-char-in-string.js.
        * fast/js/script-tests/number-cell-reuse.js: Copied from LayoutTests/fast/js/resources/number-cell-reuse.js.
        * fast/js/script-tests/number-parsing-crash.js: Copied from LayoutTests/fast/js/resources/number-parsing-crash.js.
        * fast/js/script-tests/number-toExponential.js: Copied from LayoutTests/fast/js/resources/number-toExponential.js.
        * fast/js/script-tests/number-toString.js: Copied from LayoutTests/fast/js/resources/number-toString.js.
        * fast/js/script-tests/number-tofixed.js: Copied from LayoutTests/fast/js/resources/number-tofixed.js.
        * fast/js/script-tests/number-toprecision.js: Copied from LayoutTests/fast/js/resources/number-toprecision.js.
        * fast/js/script-tests/numeric-conversion.js: Copied from LayoutTests/fast/js/resources/numeric-conversion.js.
        * fast/js/script-tests/object-extra-comma.js: Copied from LayoutTests/fast/js/resources/object-extra-comma.js.
        * fast/js/script-tests/object-prototype-constructor.js: Copied from LayoutTests/fast/js/resources/object-prototype-constructor.js.
        * fast/js/script-tests/object-prototype-toLocaleString.js: Copied from LayoutTests/fast/js/resources/object-prototype-toLocaleString.js.
        * fast/js/script-tests/order-of-operations.js: Copied from LayoutTests/fast/js/resources/order-of-operations.js.
        * fast/js/script-tests/parse-backslash-before-newline.js: Copied from LayoutTests/fast/js/resources/parse-backslash-before-newline.js.
        * fast/js/script-tests/postfix-syntax.js: Copied from LayoutTests/fast/js/resources/postfix-syntax.js.
        * fast/js/script-tests/prefix-syntax.js: Copied from LayoutTests/fast/js/resources/prefix-syntax.js.
        * fast/js/script-tests/pretty-print.js: Copied from LayoutTests/fast/js/resources/pretty-print.js.
        * fast/js/script-tests/primitive-method-this.js: Copied from LayoutTests/fast/js/resources/primitive-method-this.js.
        * fast/js/script-tests/primitive-property-access-edge-cases.js: Copied from LayoutTests/fast/js/resources/primitive-property-access-edge-cases.js.
        * fast/js/script-tests/property-getters-and-setters.js: Copied from LayoutTests/fast/js/resources/property-getters-and-setters.js.
        * fast/js/script-tests/propertyIsEnumerable.js: Copied from LayoutTests/fast/js/resources/propertyIsEnumerable.js.
        * fast/js/script-tests/prototypes.js: Copied from LayoutTests/fast/js/resources/prototypes.js.
        * fast/js/script-tests/read-modify-eval.js: Copied from LayoutTests/fast/js/resources/read-modify-eval.js.
        * fast/js/script-tests/recursion-limit-equal.js: Copied from LayoutTests/fast/js/resources/recursion-limit-equal.js.
        * fast/js/script-tests/reentrant-call-unwind.js: Copied from LayoutTests/fast/js/resources/reentrant-call-unwind.js.
        * fast/js/script-tests/regexp-backreferences.js: Copied from LayoutTests/fast/js/resources/regexp-backreferences.js.
        * fast/js/script-tests/regexp-char-insensitive.js: Copied from LayoutTests/fast/js/resources/regexp-char-insensitive.js.
        * fast/js/script-tests/regexp-character-match-out-of-order.js: Copied from LayoutTests/fast/js/resources/regexp-character-match-out-of-order.js.
        * fast/js/script-tests/regexp-compile-crash.js: Copied from LayoutTests/fast/js/resources/regexp-compile-crash.js.
        * fast/js/script-tests/regexp-compile.js: Copied from LayoutTests/fast/js/resources/regexp-compile.js.
        * fast/js/script-tests/regexp-divequal.js: Copied from LayoutTests/fast/js/resources/regexp-divequal.js.
        * fast/js/script-tests/regexp-extended-characters-crash.js: Copied from LayoutTests/fast/js/resources/regexp-extended-characters-crash.js.
        * fast/js/script-tests/regexp-extended-characters-match.js: Copied from LayoutTests/fast/js/resources/regexp-extended-characters-match.js.
        * fast/js/script-tests/regexp-extended-characters-more.js: Copied from LayoutTests/fast/js/resources/regexp-extended-characters-more.js.
        * fast/js/script-tests/regexp-find-first-asserted.js: Copied from LayoutTests/fast/js/resources/regexp-find-first-asserted.js.
        * fast/js/script-tests/regexp-lastindex.js: Copied from LayoutTests/fast/js/resources/regexp-lastindex.js.
        * fast/js/script-tests/regexp-many-brackets.js: Copied from LayoutTests/fast/js/resources/regexp-many-brackets.js.
        * fast/js/script-tests/regexp-negative-special-characters.js: Copied from LayoutTests/fast/js/resources/regexp-negative-special-characters.js.
        * fast/js/script-tests/regexp-no-extensions.js: Copied from LayoutTests/fast/js/resources/regexp-no-extensions.js.
        * fast/js/script-tests/regexp-non-bmp.js: Copied from LayoutTests/fast/js/resources/regexp-non-bmp.js.
        * fast/js/script-tests/regexp-non-capturing-groups.js: Copied from LayoutTests/fast/js/resources/regexp-non-capturing-groups.js.
        * fast/js/script-tests/regexp-non-character.js: Copied from LayoutTests/fast/js/resources/regexp-non-character.js.
        * fast/js/script-tests/regexp-overflow-too-big.js: Copied from LayoutTests/fast/js/resources/regexp-overflow-too-big.js.
        * fast/js/script-tests/regexp-overflow.js: Copied from LayoutTests/fast/js/resources/regexp-overflow.js.
        * fast/js/script-tests/regexp-range-bound-ffff.js: Copied from LayoutTests/fast/js/resources/regexp-range-bound-ffff.js.
        * fast/js/script-tests/regexp-range-out-of-order.js: Copied from LayoutTests/fast/js/resources/regexp-range-out-of-order.js.
        * fast/js/script-tests/regexp-ranges-and-escaped-hyphens.js: Copied from LayoutTests/fast/js/resources/regexp-ranges-and-escaped-hyphens.js.
        * fast/js/script-tests/regexp-stack-overflow.js: Copied from LayoutTests/fast/js/resources/regexp-stack-overflow.js.
        * fast/js/script-tests/regexp-unicode-handling.js: Copied from LayoutTests/fast/js/resources/regexp-unicode-handling.js.
        * fast/js/script-tests/regexp-unicode-overflow.js: Copied from LayoutTests/fast/js/resources/regexp-unicode-overflow.js.
        * fast/js/script-tests/registerCachingAcrossBranchTargets.js: Copied from LayoutTests/fast/js/resources/registerCachingAcrossBranchTargets.js.
        * fast/js/script-tests/rehash-assign.js: Copied from LayoutTests/fast/js/resources/rehash-assign.js.
        * fast/js/script-tests/removing-Cf-characters.js: Copied from LayoutTests/fast/js/resources/removing-Cf-characters.js.
        * fast/js/script-tests/reparsing-semicolon-insertion.js: Copied from LayoutTests/fast/js/resources/reparsing-semicolon-insertion.js.
        * fast/js/script-tests/repeat-cached-vm-reentry.js: Copied from LayoutTests/fast/js/resources/repeat-cached-vm-reentry.js.
        * fast/js/script-tests/reserved-words.js: Copied from LayoutTests/fast/js/resources/reserved-words.js.
        * fast/js/script-tests/resize-array-assign.js: Copied from LayoutTests/fast/js/resources/resize-array-assign.js.
        * fast/js/script-tests/select-options-add.js: Copied from LayoutTests/fast/js/resources/select-options-add.js.
        * fast/js/script-tests/slash-lineterminator-parse.js: Copied from LayoutTests/fast/js/resources/slash-lineterminator-parse.js.
        * fast/js/script-tests/sort-large-array.js: Copied from LayoutTests/fast/js/resources/sort-large-array.js.
        * fast/js/script-tests/sort-no-jit-code-crash.js: Copied from LayoutTests/fast/js/resources/sort-no-jit-code-crash.js.
        * fast/js/script-tests/sort-non-numbers.js: Copied from LayoutTests/fast/js/resources/sort-non-numbers.js.
        * fast/js/script-tests/sort-randomly.js: Copied from LayoutTests/fast/js/resources/sort-randomly.js.
        * fast/js/script-tests/sort-stability.js: Copied from LayoutTests/fast/js/resources/sort-stability.js.
        * fast/js/script-tests/sparse-array.js: Copied from LayoutTests/fast/js/resources/sparse-array.js.
        * fast/js/script-tests/stack-unwinding.js: Copied from LayoutTests/fast/js/resources/stack-unwinding.js.
        * fast/js/script-tests/statement-list-register-crash.js: Copied from LayoutTests/fast/js/resources/statement-list-register-crash.js.
        * fast/js/script-tests/static-scope-object.js: Copied from LayoutTests/fast/js/resources/static-scope-object.js.
        * fast/js/script-tests/string-capitalization.js: Copied from LayoutTests/fast/js/resources/string-capitalization.js.
        * fast/js/script-tests/string-from-char-code.js: Copied from LayoutTests/fast/js/resources/string-from-char-code.js.
        * fast/js/script-tests/string-index-overflow.js: Copied from LayoutTests/fast/js/resources/string-index-overflow.js.
        * fast/js/script-tests/string-property-iteration.js: Copied from LayoutTests/fast/js/resources/string-property-iteration.js.
        * fast/js/script-tests/string-replace-2.js: Copied from LayoutTests/fast/js/resources/string-replace-2.js.
        * fast/js/script-tests/string-replace-3.js: Copied from LayoutTests/fast/js/resources/string-replace-3.js.
        * fast/js/script-tests/string-slice-abnormal-values.js: Copied from LayoutTests/fast/js/resources/string-slice-abnormal-values.js.
        * fast/js/script-tests/string-sort.js: Copied from LayoutTests/fast/js/resources/string-sort.js.
        * fast/js/script-tests/string-split-ignore-case.js: Copied from LayoutTests/fast/js/resources/string-split-ignore-case.js.
        * fast/js/script-tests/string-substr.js: Copied from LayoutTests/fast/js/resources/string-substr.js.
        * fast/js/script-tests/string_replace.js: Copied from LayoutTests/fast/js/resources/string_replace.js.
        * fast/js/script-tests/switch-behaviour.js: Copied from LayoutTests/fast/js/resources/switch-behaviour.js.
        * fast/js/script-tests/this-non-object-proto.js: Copied from LayoutTests/fast/js/resources/this-non-object-proto.js.
        * fast/js/script-tests/toString-elision-trailing-comma.js: Copied from LayoutTests/fast/js/resources/toString-elision-trailing-comma.js.
        * fast/js/script-tests/toString-exception.js: Copied from LayoutTests/fast/js/resources/toString-exception.js.
        * fast/js/script-tests/toString-for-var-decl.js: Copied from LayoutTests/fast/js/resources/toString-for-var-decl.js.
        * fast/js/script-tests/toString-number-dot-expr.js: Copied from LayoutTests/fast/js/resources/toString-number-dot-expr.js.
        * fast/js/script-tests/toString-overrides.js: Copied from LayoutTests/fast/js/resources/toString-overrides.js.
        * fast/js/script-tests/toString-prefix-postfix-preserve-parens.js: Copied from LayoutTests/fast/js/resources/toString-prefix-postfix-preserve-parens.js.
        * fast/js/script-tests/toString-stack-overflow.js: Copied from LayoutTests/fast/js/resources/toString-stack-overflow.js.
        * fast/js/script-tests/tostring-exception-in-property-access.js: Copied from LayoutTests/fast/js/resources/tostring-exception-in-property-access.js.
        * fast/js/script-tests/transition-cache-dictionary-crash.js: Copied from LayoutTests/fast/js/resources/transition-cache-dictionary-crash.js.
        * fast/js/script-tests/typeof-codegen-crash.js: Copied from LayoutTests/fast/js/resources/typeof-codegen-crash.js.
        * fast/js/script-tests/typeof-constant-string.js: Copied from LayoutTests/fast/js/resources/typeof-constant-string.js.
        * fast/js/script-tests/typeof-syntax.js: Copied from LayoutTests/fast/js/resources/typeof-syntax.js.
        * fast/js/script-tests/unexpected-constant-crash.js: Copied from LayoutTests/fast/js/resources/unexpected-constant-crash.js.
        * fast/js/script-tests/unmatching-argument-count.js: Copied from LayoutTests/fast/js/resources/unmatching-argument-count.js.
        * fast/js/script-tests/var-shadows-arg-crash.js: Copied from LayoutTests/fast/js/resources/var-shadows-arg-crash.js.
        * fast/js/script-tests/var-shadows-arg-gc-crash.js: Copied from LayoutTests/fast/js/resources/var-shadows-arg-gc-crash.js.
        * fast/js/script-tests/vardecl-blocks-init.js: Copied from LayoutTests/fast/js/resources/vardecl-blocks-init.js.
        * fast/js/script-tests/vardecl-preserve-arguments.js: Copied from LayoutTests/fast/js/resources/vardecl-preserve-arguments.js.
        * fast/js/script-tests/with-scope-gc.js: Copied from LayoutTests/fast/js/resources/with-scope-gc.js.
        * fast/js/select-options-add.html:
        * fast/js/slash-lineterminator-parse.html:
        * fast/js/sort-large-array.html:
        * fast/js/sort-no-jit-code-crash.html:
        * fast/js/sort-non-numbers.html:
        * fast/js/sort-randomly.html:
        * fast/js/sort-stability.html:
        * fast/js/sparse-array.html:
        * fast/js/stack-unwinding.html:
        * fast/js/statement-list-register-crash.html:
        * fast/js/static-scope-object.html:
        * fast/js/string-capitalization.html:
        * fast/js/string-from-char-code.html:
        * fast/js/string-index-overflow.html:
        * fast/js/string-property-iteration.html:
        * fast/js/string-replace-2.html:
        * fast/js/string-replace-3.html:
        * fast/js/string-slice-abnormal-values.html:
        * fast/js/string-sort.html:
        * fast/js/string-split-ignore-case.html:
        * fast/js/string-substr.html:
        * fast/js/string_replace.html:
        * fast/js/switch-behaviour.html:
        * fast/js/this-non-object-proto.html:
        * fast/js/toString-elision-trailing-comma.html:
        * fast/js/toString-exception.html:
        * fast/js/toString-for-var-decl.html:
        * fast/js/toString-number-dot-expr.html:
        * fast/js/toString-overrides.html:
        * fast/js/toString-prefix-postfix-preserve-parens.html:
        * fast/js/toString-stack-overflow.html:
        * fast/js/tostring-exception-in-property-access.html:
        * fast/js/transition-cache-dictionary-crash.html:
        * fast/js/typeof-codegen-crash.html:
        * fast/js/typeof-constant-string.html:
        * fast/js/typeof-syntax.html:
        * fast/js/unexpected-constant-crash.html:
        * fast/js/unmatching-argument-count.html:
        * fast/js/var-shadows-arg-crash.html:
        * fast/js/var-shadows-arg-gc-crash.html:
        * fast/js/vardecl-blocks-init.html:
        * fast/js/vardecl-preserve-arguments.html:
        * fast/js/with-scope-gc.html:

2009-09-22  Beth Dakin  <bdakin@apple.com>

        Reviewed by Dave Hyatt.

        Tests for <rdar://problem/6925121> SAP: Wrong width calculation in 
        table with fixed layout
        -and corresponding-
        https://bugs.webkit.org/show_bug.cgi?id=29501

        * fast/table/fixed-table-with-percent-inside-percent-table.html: Added.
        * fast/table/fixed-table-with-percent-width-inside-auto-table.html: Added.
        * fast/table/fixed-table-with-percent-width-inside-div.html: Added.
        * fast/table/fixed-table-with-percent-width-inside-extra-large-div.html: Added.
        * fast/table/fixed-table-with-percent-width-inside-fixed-width-table.html: Added.
        * fast/table/fixed-table-with-small-percent-width.html: Added.
        * platform/mac/fast/table/fixed-table-with-percent-inside-percent-table-expected.checksum: Added.
        * platform/mac/fast/table/fixed-table-with-percent-inside-percent-table-expected.png: Added.
        * platform/mac/fast/table/fixed-table-with-percent-inside-percent-table-expected.txt: Added.
        * platform/mac/fast/table/fixed-table-with-percent-width-inside-auto-table-expected.checksum: Added.
        * platform/mac/fast/table/fixed-table-with-percent-width-inside-auto-table-expected.png: Added.
        * platform/mac/fast/table/fixed-table-with-percent-width-inside-auto-table-expected.txt: Added.
        * platform/mac/fast/table/fixed-table-with-percent-width-inside-div-expected.checksum: Added.
        * platform/mac/fast/table/fixed-table-with-percent-width-inside-div-expected.png: Added.
        * platform/mac/fast/table/fixed-table-with-percent-width-inside-div-expected.txt: Added.
        * platform/mac/fast/table/fixed-table-with-percent-width-inside-extra-large-div-expected.checksum: Added.
        * platform/mac/fast/table/fixed-table-with-percent-width-inside-extra-large-div-expected.png: Added.
        * platform/mac/fast/table/fixed-table-with-percent-width-inside-extra-large-div-expected.txt: Added.
        * platform/mac/fast/table/fixed-table-with-percent-width-inside-fixed-width-table-expected.checksum: Added.
        * platform/mac/fast/table/fixed-table-with-percent-width-inside-fixed-width-table-expected.png: Added.
        * platform/mac/fast/table/fixed-table-with-percent-width-inside-fixed-width-table-expected.txt: Added.
        * platform/mac/fast/table/fixed-table-with-small-percent-width-expected.checksum: Added.
        * platform/mac/fast/table/fixed-table-with-small-percent-width-expected.png: Added.
        * platform/mac/fast/table/fixed-table-with-small-percent-width-expected.txt: Added.

        New and improved results for this test.
        * platform/mac/tables/mozilla/bugs/bug34176-expected.checksum:
        * platform/mac/tables/mozilla/bugs/bug34176-expected.png:
        * platform/mac/tables/mozilla/bugs/bug34176-expected.txt:

2009-09-22  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin Adler.

        Back list isn't properly updated for fragment changes after a redirect.
        <rdar://problem/6142803> and https://bugs.webkit.org/show_bug.cgi?id=20355

        * fast/loader/fragment-after-redirect-gets-back-entry-expected.txt: Added.
        * fast/loader/fragment-after-redirect-gets-back-entry.html: Added.
        * fast/loader/resources/click-fragment-link.html: Added.

        * http/tests/navigation/relativeanchor-frames-expected.txt: Updated results (a progression!)

2009-09-22  Victor Wang  <victorw@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=28914

        Add layout test to test iframe shim can be used
        to overlay html above a windowed plugin. It checks
        premutations of iframe shims in relationship to 
        plugin.

        * plugins/iframe-shims-expected.txt: Added with property svn:eol-style.
        * plugins/iframe-shims.html: Added with property svn:eol-style.
        * plugins/resources/simple_blank.swf: Added with property svn:mime-type.

2009-09-22  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Rubber-stamped by Tor Arne Vestbø.

        [Qt] Skip fluctuating animations/change-one-anim.html test.

        * platform/qt/Skipped:

2009-09-22  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Tor Arne Vestbø. 

        [Qt] Skip fast/events/drag-file-crash because DRT doesn't support eventSender.beginDragWithFiles yet.

        * platform/qt/Skipped:

2009-09-21  Adam Barth  <abarth@webkit.org>

        Reviewed by Alexey Proskuryakov.

        add a layout test for mishandling of an invalid sequence in multibyte
        encodings
        https://bugs.webkit.org/show_bug.cgi?id=27395

        * fast/encoding/invalid-multi-byte-over-consumption-expected.txt: Added.
        * fast/encoding/invalid-multi-byte-over-consumption.html: Added.

2009-09-21  Brian Weinstein  <bweinstein@apple.com>

        Reviewed by Sam Weinig.

        Add fast/events/drag-file-crash.html to Windows Skipped List because
        DRT doesn't support eventSender.beginDragWithFiles on Windows yet.

        * platform/win/Skipped:

2009-09-15  John Abd-El-Malek  <jam@chromium.org>

        Reviewed by Darin Fisher.

        Prevent sleeps in unload handlers.
        https://bugs.webkit.org/show_bug.cgi?id=29193

        * fast/dom/Window/resources/slow_unload_handler1.html: Added.
        * fast/dom/Window/slow_unload_handler-expected.txt: Added.
        * fast/dom/Window/slow_unload_handler.html: Added.
        * platform/gtk/Skipped:
        * platform/mac/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:

2009-09-21  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        Incorrect clipping with accelerated compositing content, and position:fixed
        https://bugs.webkit.org/show_bug.cgi?id=29347

        New test with a position:fixed element that clips a composited child,
        and a new pixel result.
        
        * platform/mac/compositing/overflow/ancestor-overflow-expected.checksum:
        * platform/mac/compositing/overflow/ancestor-overflow-expected.png:
        Updating the pixel result to account for a progression in this test.
        
        * compositing/overflow/fixed-position-ancestor-clip.html: Added.
        * platform/mac/compositing/overflow/fixed-position-ancestor-clip-expected.checksum: Added.
        * platform/mac/compositing/overflow/fixed-position-ancestor-clip-expected.png: Added.
        * platform/mac/compositing/overflow/fixed-position-ancestor-clip-expected.txt: Added.

2009-09-21  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Brady Eidson.

        HTMLMediaElement: media file should not reload when page comes out of page cache
        https://bugs.webkit.org/show_bug.cgi?id=29604

        * media/restore-from-page-cache-expected.txt: Added.
        * media/restore-from-page-cache.html: Added.

2009-09-21  Oliver Hunt  <oliver@apple.com>

        Reviewed by Geoff Garen.

        REGRESSION (r48582): Crash in StructureStubInfo::initPutByIdTransition when reloading trac.webkit.org
        https://bugs.webkit.org/show_bug.cgi?id=29599

        Add test case for preventing property addition transition caching on dictionaries.

        * fast/js/resources/transition-cache-dictionary-crash.js: Added.
        (f):
        * fast/js/transition-cache-dictionary-crash-expected.txt: Added.
        * fast/js/transition-cache-dictionary-crash.html: Added.

2009-09-20  Adam Barth  <abarth@webkit.org>

        Reviewed by Maciej Stachowiak.

        Crash when clicking link in unload handler
        https://bugs.webkit.org/show_bug.cgi?id=29525

        Test that the first navigation always wins when the page tries to start
        a new navigation in an unload handler.

        * fast/loader/resources/fail-and-notify-done.html: Added.
        * fast/loader/resources/pass-and-notify-done.html: Added.
        * fast/loader/unload-form-about-blank-expected.txt: Added.
        * fast/loader/unload-form-about-blank.html: Added.
        * fast/loader/unload-form-expected.txt: Added.
        * fast/loader/unload-form-post-about-blank-expected.txt: Added.
        * fast/loader/unload-form-post-about-blank.html: Added.
        * fast/loader/unload-form-post-expected.txt: Added.
        * fast/loader/unload-form-post.html: Added.
        * fast/loader/unload-form.html: Added.
        * fast/loader/unload-hyperlink-expected.txt: Added.
        * fast/loader/unload-hyperlink.html: Added.
        * fast/loader/unload-javascript-url-expected.txt: Added.
        * fast/loader/unload-javascript-url.html: Added.
        * fast/loader/unload-reload-expected.txt: Added.
        * fast/loader/unload-reload.html: Added.
        * fast/loader/unload-window-location-expected.txt: Added.
        * fast/loader/unload-window-location.html: Added.

2009-09-19  Oliver Hunt  <oliver@apple.com>

        Reviewed by Maciej Stachowiak.

        Implement ES5 Object.create function
        https://bugs.webkit.org/show_bug.cgi?id=29524

        Add tests for Object.create API

        * fast/js/Object-create-expected.txt: Added.
        * fast/js/Object-create.html: Added.
        * fast/js/resources/Object-create.js: Added.

2009-09-19  Sam Weinig  <sam@webkit.org>

        Reviewed by Oliver Hunt.

        Update tests for https://bugs.webkit.org/show_bug.cgi?id=29519
        Remove JSNameNodeCollection and just use StaticNodeList

        * fast/dom/HTMLSelectElement/named-options-expected.txt:
        * fast/dom/HTMLSelectElement/script-tests/named-options.js:
        * fast/dom/prototype-inheritance-2-expected.txt:

2009-09-19  Oliver Hunt  <oliver@apple.com>

        Reviewed by Sam Weinig.

        Implement ES5 Object.defineProperties function
        https://bugs.webkit.org/show_bug.cgi?id=29522

        Add tests for Object.defineProperties API.

        * fast/js/Object-defineProperties-expected.txt: Added.
        * fast/js/Object-defineProperties.html: Added.
        * fast/js/resources/Object-defineProperties.js: Added.

2009-09-19  Daniel Bates  <dbates@webkit.org>

        Reviewed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=29511
        
        Tests that scripts that contain non-ASCII characters do not bypass the XSSAuditor.

        * http/tests/security/xssAuditor/img-onerror-non-ASCII-char-expected.txt: Added.
        * http/tests/security/xssAuditor/img-onerror-non-ASCII-char.html: Added.
        * http/tests/security/xssAuditor/img-onerror-non-ASCII-char-default-encoding-expected: Added.
        * http/tests/security/xssAuditor/img-onerror-non-ASCII-char-default-encoding.html: Added.
        * http/tests/security/xssAuditor/img-onerror-non-ASCII-char2-default-encoding-expected.txt: Added.
        * http/tests/security/xssAuditor/img-onerror-non-ASCII-char2-default-encoding.html: Added.
        * http/tests/security/xssAuditor/img-onerror-non-ASCII-char2-expected.txt: Added.
        * http/tests/security/xssAuditor/img-onerror-non-ASCII-char2.html: Added.

2009-09-19  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        Incorrect animation with scale(0) transform (singular matrix)
        https://bugs.webkit.org/show_bug.cgi?id=29465
        
        Testcase for an accelerated transform animation that starts with a scale(0),
        which gives a singular matrix.

        * compositing/transitions/singular-scale-transition.html: Added.
        * platform/mac/compositing/transitions/singular-scale-transition-expected.checksum: Added.
        * platform/mac/compositing/transitions/singular-scale-transition-expected.png: Added.
        * platform/mac/compositing/transitions/singular-scale-transition-expected.txt: Added.

2009-09-19  Alex Milowski  <alex@milowski.com>

        Reviewed by Maciej Stachowiak.

        Basic tests for msub, msup, and mtable/mtr/mtd

        * mathml: Added.
        * mathml/presentation: Added.
        * mathml/presentation/sub.xhtml: Added.
        * mathml/presentation/sup.xhtml: Added.
        * mathml/presentation/tables.xhtml: Added.
        * platform/mac/mathml: Added.
        * platform/mac/mathml/presentation: Added.
        * platform/mac/mathml/presentation/sub-expected.txt: Added.
        * platform/mac/mathml/presentation/sup-expected.txt: Added.
        * platform/mac/mathml/presentation/tables-expected.txt: Added.

2009-09-19  Adam Barth  <abarth@webkit.org>

        Reviewed by Oliver Hunt.

        Canvas drawn with data URL image raises SECURITY_ERR when toDataUrl() called.
        https://bugs.webkit.org/show_bug.cgi?id=29305

        Test that drawing a data URL image onto a canvas behaves as expected.
        Note the tricky case involving a data URL SVG image with an embedded
        remote image.
        
        Also, test that document.domain state doesn't affect canvas taint
        state.

        * http/tests/security/canvas-remote-read-data-url-image-expected.txt: Added.
        * http/tests/security/canvas-remote-read-data-url-image.html: Added.
        * http/tests/security/canvas-remote-read-data-url-svg-image-expected.txt: Added.
        * http/tests/security/canvas-remote-read-data-url-svg-image.html: Added.
        * http/tests/security/canvas-remote-read-remote-image-document-domain-expected.txt: Added.
        * http/tests/security/canvas-remote-read-remote-image-document-domain.html: Added.

2009-09-19  Shinichiro Hamaji  <hamaji@chromium.org>

        Rubber-stamped by Eric Seidel.

        js tests should move into jstests subdirectory instead of resources/
        https://bugs.webkit.org/show_bug.cgi?id=25880

        Migration for svg directory.

        * svg/custom/SVGException.html:
        * svg/custom/getSubStringLength.html:
        * svg/custom/immutable-properties.html:
        * svg/custom/resources/SVGException.js: Removed.
        * svg/custom/resources/TEMPLATE.html: Removed.
        * svg/custom/resources/getSubStringLength.js: Removed.
        * svg/custom/resources/immutable-properties.js: Removed.
        * svg/custom/resources/selectSubString.js: Removed.
        * svg/custom/resources/svg-fonts-in-text-controls.js: Removed.
        * svg/custom/resources/svg-modify-currentTranslate.js: Removed.
        * svg/custom/resources/svg-xml-dom-sync.js: Removed.
        * svg/custom/resources/tearoffs-with-tearoffs.js: Removed.
        * svg/custom/script-tests: Added.
        * svg/custom/script-tests/SVGException.js: Copied from LayoutTests/svg/custom/resources/SVGException.js.
        * svg/custom/script-tests/TEMPLATE.html: Copied from LayoutTests/svg/custom/resources/TEMPLATE.html.
        * svg/custom/script-tests/getSubStringLength.js: Copied from LayoutTests/svg/custom/resources/getSubStringLength.js.
        * svg/custom/script-tests/immutable-properties.js: Copied from LayoutTests/svg/custom/resources/immutable-properties.js.
        * svg/custom/script-tests/selectSubString.js: Copied from LayoutTests/svg/custom/resources/selectSubString.js.
        * svg/custom/script-tests/svg-fonts-in-text-controls.js: Copied from LayoutTests/svg/custom/resources/svg-fonts-in-text-controls.js.
        * svg/custom/script-tests/svg-modify-currentTranslate.js: Copied from LayoutTests/svg/custom/resources/svg-modify-currentTranslate.js.
        * svg/custom/script-tests/svg-xml-dom-sync.js: Copied from LayoutTests/svg/custom/resources/svg-xml-dom-sync.js.
        * svg/custom/script-tests/tearoffs-with-tearoffs.js: Copied from LayoutTests/svg/custom/resources/tearoffs-with-tearoffs.js.
        * svg/custom/selectSubString.html:
        * svg/custom/svg-fonts-in-text-controls.html:
        * svg/custom/svg-modify-currentTranslate.html:
        * svg/custom/svg-xml-dom-sync.html:
        * svg/custom/tearoffs-with-tearoffs.html:
        * svg/dom/SVGStyleElement/resources/TEMPLATE.html: Removed.
        * svg/dom/SVGStyleElement/resources/style-langspace.js: Removed.
        * svg/dom/SVGStyleElement/script-tests: Added.
        * svg/dom/SVGStyleElement/script-tests/TEMPLATE.html: Copied from LayoutTests/svg/dom/SVGStyleElement/resources/TEMPLATE.html.
        * svg/dom/SVGStyleElement/script-tests/style-langspace.js: Copied from LayoutTests/svg/dom/SVGStyleElement/resources/style-langspace.js.
        * svg/dom/SVGStyleElement/style-langspace.html:
        * svg/dom/path-parser.html:
        * svg/dom/path-segments.html:
        * svg/dom/resources/TEMPLATE.html: Removed.
        * svg/dom/resources/path-parser.js: Removed.
        * svg/dom/resources/path-segments.js: Removed.
        * svg/dom/resources/style-reflect.js: Removed.
        * svg/dom/resources/text-rotate-live.js: Removed.
        * svg/dom/script-tests: Added.
        * svg/dom/script-tests/TEMPLATE.html: Copied from LayoutTests/svg/dom/resources/TEMPLATE.html.
        * svg/dom/script-tests/path-parser.js: Copied from LayoutTests/svg/dom/resources/path-parser.js.
        * svg/dom/script-tests/path-segments.js: Copied from LayoutTests/svg/dom/resources/path-segments.js.
        * svg/dom/script-tests/style-reflect.js: Copied from LayoutTests/svg/dom/resources/style-reflect.js.
        * svg/dom/script-tests/text-rotate-live.js: Copied from LayoutTests/svg/dom/resources/text-rotate-live.js.
        * svg/dom/style-reflect.html:
        * svg/dom/text-rotate-live.html:
        * svg/dynamic-updates/SVGAElement-dom-href-attr.html:
        * svg/dynamic-updates/SVGAElement-dom-target-attr.html:
        * svg/dynamic-updates/SVGAElement-svgdom-href-prop.html:
        * svg/dynamic-updates/SVGAElement-svgdom-target-prop.html:
        * svg/dynamic-updates/SVGCircleElement-dom-cx-attr.html:
        * svg/dynamic-updates/SVGCircleElement-dom-cy-attr.html:
        * svg/dynamic-updates/SVGCircleElement-dom-r-attr.html:
        * svg/dynamic-updates/SVGCircleElement-svgdom-cx-prop.html:
        * svg/dynamic-updates/SVGCircleElement-svgdom-cy-prop.html:
        * svg/dynamic-updates/SVGCircleElement-svgdom-r-prop.html:
        * svg/dynamic-updates/SVGClipPathElement-dom-clipPathUnits-attr.html:
        * svg/dynamic-updates/SVGClipPathElement-svgdom-clipPathUnits-prop.html:
        * svg/dynamic-updates/SVGCursorElement-dom-x-attr.html:
        * svg/dynamic-updates/SVGCursorElement-dom-y-attr.html:
        * svg/dynamic-updates/SVGCursorElement-svgdom-x-prop.html:
        * svg/dynamic-updates/SVGCursorElement-svgdom-y-prop.html:
        * svg/dynamic-updates/SVGEllipseElement-dom-cx-attr.html:
        * svg/dynamic-updates/SVGEllipseElement-dom-cy-attr.html:
        * svg/dynamic-updates/SVGEllipseElement-dom-rx-attr.html:
        * svg/dynamic-updates/SVGEllipseElement-dom-ry-attr.html:
        * svg/dynamic-updates/SVGEllipseElement-svgdom-cx-prop.html:
        * svg/dynamic-updates/SVGEllipseElement-svgdom-cy-prop.html:
        * svg/dynamic-updates/SVGEllipseElement-svgdom-rx-prop.html:
        * svg/dynamic-updates/SVGEllipseElement-svgdom-ry-prop.html:
        * svg/dynamic-updates/SVGForeignObjectElement-dom-height-attr.html:
        * svg/dynamic-updates/SVGForeignObjectElement-dom-width-attr.html:
        * svg/dynamic-updates/SVGForeignObjectElement-dom-x-attr.html:
        * svg/dynamic-updates/SVGForeignObjectElement-dom-y-attr.html:
        * svg/dynamic-updates/SVGForeignObjectElement-svgdom-height-prop.html:
        * svg/dynamic-updates/SVGForeignObjectElement-svgdom-width-prop.html:
        * svg/dynamic-updates/SVGForeignObjectElement-svgdom-x-prop.html:
        * svg/dynamic-updates/SVGForeignObjectElement-svgdom-y-prop.html:
        * svg/dynamic-updates/SVGImageElement-dom-height-attr.html:
        * svg/dynamic-updates/SVGImageElement-dom-preserveAspectRatio-attr.html:
        * svg/dynamic-updates/SVGImageElement-dom-width-attr.html:
        * svg/dynamic-updates/SVGImageElement-dom-x-attr.html:
        * svg/dynamic-updates/SVGImageElement-dom-y-attr.html:
        * svg/dynamic-updates/SVGImageElement-svgdom-height-prop.html:
        * svg/dynamic-updates/SVGImageElement-svgdom-preserveAspectRatio-prop.html:
        * svg/dynamic-updates/SVGImageElement-svgdom-width-prop.html:
        * svg/dynamic-updates/SVGImageElement-svgdom-x-prop.html:
        * svg/dynamic-updates/SVGImageElement-svgdom-y-prop.html:
        * svg/dynamic-updates/SVGLineElement-dom-x1-attr.html:
        * svg/dynamic-updates/SVGLineElement-dom-x2-attr.html:
        * svg/dynamic-updates/SVGLineElement-dom-y1-attr.html:
        * svg/dynamic-updates/SVGLineElement-dom-y2-attr.html:
        * svg/dynamic-updates/SVGLineElement-svgdom-x1-prop.html:
        * svg/dynamic-updates/SVGLineElement-svgdom-x2-prop.html:
        * svg/dynamic-updates/SVGLineElement-svgdom-y1-prop.html:
        * svg/dynamic-updates/SVGLineElement-svgdom-y2-prop.html:
        * svg/dynamic-updates/SVGLinearGradientElement-dom-gradientTransform-attr.html:
        * svg/dynamic-updates/SVGLinearGradientElement-dom-gradientUnits-attr.html:
        * svg/dynamic-updates/SVGLinearGradientElement-dom-x1-attr.html:
        * svg/dynamic-updates/SVGLinearGradientElement-dom-x2-attr.html:
        * svg/dynamic-updates/SVGLinearGradientElement-dom-y1-attr.html:
        * svg/dynamic-updates/SVGLinearGradientElement-dom-y2-attr.html:
        * svg/dynamic-updates/SVGLinearGradientElement-svgdom-gradientTransform-prop.html:
        * svg/dynamic-updates/SVGLinearGradientElement-svgdom-gradientUnits-prop.html:
        * svg/dynamic-updates/SVGLinearGradientElement-svgdom-x1-prop.html:
        * svg/dynamic-updates/SVGLinearGradientElement-svgdom-x2-prop.html:
        * svg/dynamic-updates/SVGLinearGradientElement-svgdom-y1-prop.html:
        * svg/dynamic-updates/SVGLinearGradientElement-svgdom-y2-prop.html:
        * svg/dynamic-updates/SVGMarkerElement-dom-markerHeight-attr.html:
        * svg/dynamic-updates/SVGMarkerElement-dom-markerUnits-attr.html:
        * svg/dynamic-updates/SVGMarkerElement-dom-markerWidth-attr.html:
        * svg/dynamic-updates/SVGMarkerElement-dom-orient-attr.html:
        * svg/dynamic-updates/SVGMarkerElement-dom-refX-attr.html:
        * svg/dynamic-updates/SVGMarkerElement-dom-refY-attr.html:
        * svg/dynamic-updates/SVGMarkerElement-svgdom-markerHeight-prop.html:
        * svg/dynamic-updates/SVGMarkerElement-svgdom-markerUnits-prop.html:
        * svg/dynamic-updates/SVGMarkerElement-svgdom-markerWidth-prop.html:
        * svg/dynamic-updates/SVGMarkerElement-svgdom-orientAngle-prop.html:
        * svg/dynamic-updates/SVGMarkerElement-svgdom-orientType-prop.html:
        * svg/dynamic-updates/SVGMarkerElement-svgdom-refX-prop.html:
        * svg/dynamic-updates/SVGMarkerElement-svgdom-refY-prop.html:
        * svg/dynamic-updates/SVGMarkerElement-svgdom-setOrientToAngle-call.html:
        * svg/dynamic-updates/SVGMarkerElement-svgdom-setOrientToAuto-call.html:
        * svg/dynamic-updates/SVGMaskElement-dom-height-attr.html:
        * svg/dynamic-updates/SVGMaskElement-dom-maskContentUnits-attr.html:
        * svg/dynamic-updates/SVGMaskElement-dom-maskUnits-attr.html:
        * svg/dynamic-updates/SVGMaskElement-dom-width-attr.html:
        * svg/dynamic-updates/SVGMaskElement-dom-x-attr.html:
        * svg/dynamic-updates/SVGMaskElement-dom-y-attr.html:
        * svg/dynamic-updates/SVGMaskElement-svgdom-height-prop.html:
        * svg/dynamic-updates/SVGMaskElement-svgdom-maskContentUnits-prop.html:
        * svg/dynamic-updates/SVGMaskElement-svgdom-maskUnits-prop.html:
        * svg/dynamic-updates/SVGMaskElement-svgdom-width-prop.html:
        * svg/dynamic-updates/SVGMaskElement-svgdom-x-prop.html:
        * svg/dynamic-updates/SVGMaskElement-svgdom-y-prop.html:
        * svg/dynamic-updates/SVGPatternElement-dom-height-attr.html:
        * svg/dynamic-updates/SVGPatternElement-dom-patternContentUnits-attr.html:
        * svg/dynamic-updates/SVGPatternElement-dom-patternTransform-attr.html:
        * svg/dynamic-updates/SVGPatternElement-dom-patternUnits-attr.html:
        * svg/dynamic-updates/SVGPatternElement-dom-width-attr.html:
        * svg/dynamic-updates/SVGPatternElement-dom-x-attr.html:
        * svg/dynamic-updates/SVGPatternElement-dom-y-attr.html:
        * svg/dynamic-updates/SVGPatternElement-svgdom-height-prop.html:
        * svg/dynamic-updates/SVGPatternElement-svgdom-patternContentUnits-prop.html:
        * svg/dynamic-updates/SVGPatternElement-svgdom-patternTransform-prop.html:
        * svg/dynamic-updates/SVGPatternElement-svgdom-patternUnits-prop.html:
        * svg/dynamic-updates/SVGPatternElement-svgdom-width-prop.html:
        * svg/dynamic-updates/SVGPatternElement-svgdom-x-prop.html:
        * svg/dynamic-updates/SVGPatternElement-svgdom-y-prop.html:
        * svg/dynamic-updates/SVGRadialGradientElement-dom-cx-attr.html:
        * svg/dynamic-updates/SVGRadialGradientElement-dom-cy-attr.html:
        * svg/dynamic-updates/SVGRadialGradientElement-dom-fx-attr.html:
        * svg/dynamic-updates/SVGRadialGradientElement-dom-fy-attr.html:
        * svg/dynamic-updates/SVGRadialGradientElement-dom-gradientTransform-attr.html:
        * svg/dynamic-updates/SVGRadialGradientElement-dom-gradientUnits-attr.html:
        * svg/dynamic-updates/SVGRadialGradientElement-dom-r-attr.html:
        * svg/dynamic-updates/SVGRadialGradientElement-svgdom-cx-prop.html:
        * svg/dynamic-updates/SVGRadialGradientElement-svgdom-cy-prop.html:
        * svg/dynamic-updates/SVGRadialGradientElement-svgdom-fx-prop.html:
        * svg/dynamic-updates/SVGRadialGradientElement-svgdom-fy-prop.html:
        * svg/dynamic-updates/SVGRadialGradientElement-svgdom-gradientTransform-prop.html:
        * svg/dynamic-updates/SVGRadialGradientElement-svgdom-gradientUnits-prop.html:
        * svg/dynamic-updates/SVGRadialGradientElement-svgdom-r-prop.html:
        * svg/dynamic-updates/SVGRectElement-dom-height-attr.html:
        * svg/dynamic-updates/SVGRectElement-dom-width-attr.html:
        * svg/dynamic-updates/SVGRectElement-dom-x-attr.html:
        * svg/dynamic-updates/SVGRectElement-dom-y-attr.html:
        * svg/dynamic-updates/SVGRectElement-svgdom-height-prop.html:
        * svg/dynamic-updates/SVGRectElement-svgdom-width-prop.html:
        * svg/dynamic-updates/SVGRectElement-svgdom-x-prop.html:
        * svg/dynamic-updates/SVGRectElement-svgdom-y-prop.html:
        * svg/dynamic-updates/resources/SVGAElement-dom-href-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGAElement-dom-target-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGAElement-svgdom-href-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGAElement-svgdom-target-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGCircleElement-dom-cx-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGCircleElement-dom-cy-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGCircleElement-dom-r-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGCircleElement-svgdom-cx-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGCircleElement-svgdom-cy-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGCircleElement-svgdom-r-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGClipPathElement-dom-clipPathUnits-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGClipPathElement-svgdom-clipPathUnits-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGCursorElement-dom-x-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGCursorElement-dom-y-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGCursorElement-svgdom-x-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGCursorElement-svgdom-y-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGEllipseElement-dom-cx-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGEllipseElement-dom-cy-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGEllipseElement-dom-rx-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGEllipseElement-dom-ry-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGEllipseElement-svgdom-cx-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGEllipseElement-svgdom-cy-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGEllipseElement-svgdom-rx-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGEllipseElement-svgdom-ry-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGForeignObjectElement-dom-height-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGForeignObjectElement-dom-width-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGForeignObjectElement-dom-x-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGForeignObjectElement-dom-y-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGForeignObjectElement-svgdom-height-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGForeignObjectElement-svgdom-width-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGForeignObjectElement-svgdom-x-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGForeignObjectElement-svgdom-y-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGImageElement-dom-height-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGImageElement-dom-preserveAspectRatio-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGImageElement-dom-width-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGImageElement-dom-x-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGImageElement-dom-y-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGImageElement-svgdom-height-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGImageElement-svgdom-preserveAspectRatio-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGImageElement-svgdom-width-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGImageElement-svgdom-x-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGImageElement-svgdom-y-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGLineElement-dom-x1-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGLineElement-dom-x2-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGLineElement-dom-y1-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGLineElement-dom-y2-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGLineElement-svgdom-x1-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGLineElement-svgdom-x2-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGLineElement-svgdom-y1-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGLineElement-svgdom-y2-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGLinearGradientElement-dom-gradientTransform-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGLinearGradientElement-dom-gradientUnits-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGLinearGradientElement-dom-x1-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGLinearGradientElement-dom-x2-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGLinearGradientElement-dom-y1-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGLinearGradientElement-dom-y2-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGLinearGradientElement-svgdom-gradientTransform-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGLinearGradientElement-svgdom-gradientUnits-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGLinearGradientElement-svgdom-x1-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGLinearGradientElement-svgdom-x2-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGLinearGradientElement-svgdom-y1-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGLinearGradientElement-svgdom-y2-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGMarkerElement-dom-markerHeight-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGMarkerElement-dom-markerUnits-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGMarkerElement-dom-markerWidth-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGMarkerElement-dom-orient-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGMarkerElement-dom-refX-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGMarkerElement-dom-refY-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGMarkerElement-svgdom-markerHeight-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGMarkerElement-svgdom-markerUnits-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGMarkerElement-svgdom-markerWidth-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGMarkerElement-svgdom-orientAngle-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGMarkerElement-svgdom-orientType-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGMarkerElement-svgdom-refX-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGMarkerElement-svgdom-refY-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGMarkerElement-svgdom-setOrientToAngle-call.js: Removed.
        * svg/dynamic-updates/resources/SVGMarkerElement-svgdom-setOrientToAuto-call.js: Removed.
        * svg/dynamic-updates/resources/SVGMaskElement-dom-height-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGMaskElement-dom-maskContentUnits-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGMaskElement-dom-maskUnits-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGMaskElement-dom-width-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGMaskElement-dom-x-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGMaskElement-dom-y-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGMaskElement-svgdom-height-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGMaskElement-svgdom-maskContentUnits-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGMaskElement-svgdom-maskUnits-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGMaskElement-svgdom-width-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGMaskElement-svgdom-x-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGMaskElement-svgdom-y-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGPatternElement-dom-height-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGPatternElement-dom-patternContentUnits-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGPatternElement-dom-patternTransform-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGPatternElement-dom-patternUnits-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGPatternElement-dom-width-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGPatternElement-dom-x-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGPatternElement-dom-y-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGPatternElement-svgdom-height-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGPatternElement-svgdom-patternContentUnits-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGPatternElement-svgdom-patternTransform-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGPatternElement-svgdom-patternUnits-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGPatternElement-svgdom-width-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGPatternElement-svgdom-x-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGPatternElement-svgdom-y-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGRadialGradientElement-dom-cx-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGRadialGradientElement-dom-cy-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGRadialGradientElement-dom-fx-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGRadialGradientElement-dom-fy-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGRadialGradientElement-dom-gradientTransform-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGRadialGradientElement-dom-gradientUnits-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGRadialGradientElement-dom-r-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGRadialGradientElement-svgdom-cx-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGRadialGradientElement-svgdom-cy-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGRadialGradientElement-svgdom-fx-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGRadialGradientElement-svgdom-fy-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGRadialGradientElement-svgdom-gradientTransform-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGRadialGradientElement-svgdom-gradientUnits-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGRadialGradientElement-svgdom-r-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGRectElement-dom-height-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGRectElement-dom-width-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGRectElement-dom-x-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGRectElement-dom-y-attr.js: Removed.
        * svg/dynamic-updates/resources/SVGRectElement-svgdom-height-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGRectElement-svgdom-width-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGRectElement-svgdom-x-prop.js: Removed.
        * svg/dynamic-updates/resources/SVGRectElement-svgdom-y-prop.js: Removed.
        * svg/dynamic-updates/resources/TEMPLATE.html: Removed.
        * svg/dynamic-updates/script-tests: Added.
        * svg/dynamic-updates/script-tests/SVGAElement-dom-href-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGAElement-dom-href-attr.js.
        * svg/dynamic-updates/script-tests/SVGAElement-dom-target-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGAElement-dom-target-attr.js.
        * svg/dynamic-updates/script-tests/SVGAElement-svgdom-href-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGAElement-svgdom-href-prop.js.
        * svg/dynamic-updates/script-tests/SVGAElement-svgdom-target-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGAElement-svgdom-target-prop.js.
        * svg/dynamic-updates/script-tests/SVGCircleElement-dom-cx-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGCircleElement-dom-cx-attr.js.
        * svg/dynamic-updates/script-tests/SVGCircleElement-dom-cy-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGCircleElement-dom-cy-attr.js.
        * svg/dynamic-updates/script-tests/SVGCircleElement-dom-r-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGCircleElement-dom-r-attr.js.
        * svg/dynamic-updates/script-tests/SVGCircleElement-svgdom-cx-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGCircleElement-svgdom-cx-prop.js.
        * svg/dynamic-updates/script-tests/SVGCircleElement-svgdom-cy-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGCircleElement-svgdom-cy-prop.js.
        * svg/dynamic-updates/script-tests/SVGCircleElement-svgdom-r-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGCircleElement-svgdom-r-prop.js.
        * svg/dynamic-updates/script-tests/SVGClipPathElement-dom-clipPathUnits-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGClipPathElement-dom-clipPathUnits-attr.js.
        * svg/dynamic-updates/script-tests/SVGClipPathElement-svgdom-clipPathUnits-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGClipPathElement-svgdom-clipPathUnits-prop.js.
        * svg/dynamic-updates/script-tests/SVGCursorElement-dom-x-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGCursorElement-dom-x-attr.js.
        * svg/dynamic-updates/script-tests/SVGCursorElement-dom-y-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGCursorElement-dom-y-attr.js.
        * svg/dynamic-updates/script-tests/SVGCursorElement-svgdom-x-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGCursorElement-svgdom-x-prop.js.
        * svg/dynamic-updates/script-tests/SVGCursorElement-svgdom-y-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGCursorElement-svgdom-y-prop.js.
        * svg/dynamic-updates/script-tests/SVGEllipseElement-dom-cx-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGEllipseElement-dom-cx-attr.js.
        * svg/dynamic-updates/script-tests/SVGEllipseElement-dom-cy-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGEllipseElement-dom-cy-attr.js.
        * svg/dynamic-updates/script-tests/SVGEllipseElement-dom-rx-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGEllipseElement-dom-rx-attr.js.
        * svg/dynamic-updates/script-tests/SVGEllipseElement-dom-ry-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGEllipseElement-dom-ry-attr.js.
        * svg/dynamic-updates/script-tests/SVGEllipseElement-svgdom-cx-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGEllipseElement-svgdom-cx-prop.js.
        * svg/dynamic-updates/script-tests/SVGEllipseElement-svgdom-cy-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGEllipseElement-svgdom-cy-prop.js.
        * svg/dynamic-updates/script-tests/SVGEllipseElement-svgdom-rx-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGEllipseElement-svgdom-rx-prop.js.
        * svg/dynamic-updates/script-tests/SVGEllipseElement-svgdom-ry-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGEllipseElement-svgdom-ry-prop.js.
        * svg/dynamic-updates/script-tests/SVGForeignObjectElement-dom-height-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGForeignObjectElement-dom-height-attr.js.
        * svg/dynamic-updates/script-tests/SVGForeignObjectElement-dom-width-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGForeignObjectElement-dom-width-attr.js.
        * svg/dynamic-updates/script-tests/SVGForeignObjectElement-dom-x-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGForeignObjectElement-dom-x-attr.js.
        * svg/dynamic-updates/script-tests/SVGForeignObjectElement-dom-y-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGForeignObjectElement-dom-y-attr.js.
        * svg/dynamic-updates/script-tests/SVGForeignObjectElement-svgdom-height-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGForeignObjectElement-svgdom-height-prop.js.
        * svg/dynamic-updates/script-tests/SVGForeignObjectElement-svgdom-width-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGForeignObjectElement-svgdom-width-prop.js.
        * svg/dynamic-updates/script-tests/SVGForeignObjectElement-svgdom-x-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGForeignObjectElement-svgdom-x-prop.js.
        * svg/dynamic-updates/script-tests/SVGForeignObjectElement-svgdom-y-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGForeignObjectElement-svgdom-y-prop.js.
        * svg/dynamic-updates/script-tests/SVGImageElement-dom-height-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGImageElement-dom-height-attr.js.
        * svg/dynamic-updates/script-tests/SVGImageElement-dom-preserveAspectRatio-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGImageElement-dom-preserveAspectRatio-attr.js.
        * svg/dynamic-updates/script-tests/SVGImageElement-dom-width-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGImageElement-dom-width-attr.js.
        * svg/dynamic-updates/script-tests/SVGImageElement-dom-x-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGImageElement-dom-x-attr.js.
        * svg/dynamic-updates/script-tests/SVGImageElement-dom-y-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGImageElement-dom-y-attr.js.
        * svg/dynamic-updates/script-tests/SVGImageElement-svgdom-height-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGImageElement-svgdom-height-prop.js.
        * svg/dynamic-updates/script-tests/SVGImageElement-svgdom-preserveAspectRatio-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGImageElement-svgdom-preserveAspectRatio-prop.js.
        * svg/dynamic-updates/script-tests/SVGImageElement-svgdom-width-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGImageElement-svgdom-width-prop.js.
        * svg/dynamic-updates/script-tests/SVGImageElement-svgdom-x-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGImageElement-svgdom-x-prop.js.
        * svg/dynamic-updates/script-tests/SVGImageElement-svgdom-y-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGImageElement-svgdom-y-prop.js.
        * svg/dynamic-updates/script-tests/SVGLineElement-dom-x1-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGLineElement-dom-x1-attr.js.
        * svg/dynamic-updates/script-tests/SVGLineElement-dom-x2-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGLineElement-dom-x2-attr.js.
        * svg/dynamic-updates/script-tests/SVGLineElement-dom-y1-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGLineElement-dom-y1-attr.js.
        * svg/dynamic-updates/script-tests/SVGLineElement-dom-y2-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGLineElement-dom-y2-attr.js.
        * svg/dynamic-updates/script-tests/SVGLineElement-svgdom-x1-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGLineElement-svgdom-x1-prop.js.
        * svg/dynamic-updates/script-tests/SVGLineElement-svgdom-x2-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGLineElement-svgdom-x2-prop.js.
        * svg/dynamic-updates/script-tests/SVGLineElement-svgdom-y1-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGLineElement-svgdom-y1-prop.js.
        * svg/dynamic-updates/script-tests/SVGLineElement-svgdom-y2-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGLineElement-svgdom-y2-prop.js.
        * svg/dynamic-updates/script-tests/SVGLinearGradientElement-dom-gradientTransform-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGLinearGradientElement-dom-gradientTransform-attr.js.
        * svg/dynamic-updates/script-tests/SVGLinearGradientElement-dom-gradientUnits-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGLinearGradientElement-dom-gradientUnits-attr.js.
        * svg/dynamic-updates/script-tests/SVGLinearGradientElement-dom-x1-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGLinearGradientElement-dom-x1-attr.js.
        * svg/dynamic-updates/script-tests/SVGLinearGradientElement-dom-x2-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGLinearGradientElement-dom-x2-attr.js.
        * svg/dynamic-updates/script-tests/SVGLinearGradientElement-dom-y1-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGLinearGradientElement-dom-y1-attr.js.
        * svg/dynamic-updates/script-tests/SVGLinearGradientElement-dom-y2-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGLinearGradientElement-dom-y2-attr.js.
        * svg/dynamic-updates/script-tests/SVGLinearGradientElement-svgdom-gradientTransform-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGLinearGradientElement-svgdom-gradientTransform-prop.js.
        * svg/dynamic-updates/script-tests/SVGLinearGradientElement-svgdom-gradientUnits-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGLinearGradientElement-svgdom-gradientUnits-prop.js.
        * svg/dynamic-updates/script-tests/SVGLinearGradientElement-svgdom-x1-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGLinearGradientElement-svgdom-x1-prop.js.
        * svg/dynamic-updates/script-tests/SVGLinearGradientElement-svgdom-x2-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGLinearGradientElement-svgdom-x2-prop.js.
        * svg/dynamic-updates/script-tests/SVGLinearGradientElement-svgdom-y1-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGLinearGradientElement-svgdom-y1-prop.js.
        * svg/dynamic-updates/script-tests/SVGLinearGradientElement-svgdom-y2-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGLinearGradientElement-svgdom-y2-prop.js.
        * svg/dynamic-updates/script-tests/SVGMarkerElement-dom-markerHeight-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMarkerElement-dom-markerHeight-attr.js.
        * svg/dynamic-updates/script-tests/SVGMarkerElement-dom-markerUnits-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMarkerElement-dom-markerUnits-attr.js.
        * svg/dynamic-updates/script-tests/SVGMarkerElement-dom-markerWidth-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMarkerElement-dom-markerWidth-attr.js.
        * svg/dynamic-updates/script-tests/SVGMarkerElement-dom-orient-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMarkerElement-dom-orient-attr.js.
        * svg/dynamic-updates/script-tests/SVGMarkerElement-dom-refX-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMarkerElement-dom-refX-attr.js.
        * svg/dynamic-updates/script-tests/SVGMarkerElement-dom-refY-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMarkerElement-dom-refY-attr.js.
        * svg/dynamic-updates/script-tests/SVGMarkerElement-svgdom-markerHeight-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMarkerElement-svgdom-markerHeight-prop.js.
        * svg/dynamic-updates/script-tests/SVGMarkerElement-svgdom-markerUnits-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMarkerElement-svgdom-markerUnits-prop.js.
        * svg/dynamic-updates/script-tests/SVGMarkerElement-svgdom-markerWidth-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMarkerElement-svgdom-markerWidth-prop.js.
        * svg/dynamic-updates/script-tests/SVGMarkerElement-svgdom-orientAngle-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMarkerElement-svgdom-orientAngle-prop.js.
        * svg/dynamic-updates/script-tests/SVGMarkerElement-svgdom-orientType-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMarkerElement-svgdom-orientType-prop.js.
        * svg/dynamic-updates/script-tests/SVGMarkerElement-svgdom-refX-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMarkerElement-svgdom-refX-prop.js.
        * svg/dynamic-updates/script-tests/SVGMarkerElement-svgdom-refY-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMarkerElement-svgdom-refY-prop.js.
        * svg/dynamic-updates/script-tests/SVGMarkerElement-svgdom-setOrientToAngle-call.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMarkerElement-svgdom-setOrientToAngle-call.js.
        * svg/dynamic-updates/script-tests/SVGMarkerElement-svgdom-setOrientToAuto-call.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMarkerElement-svgdom-setOrientToAuto-call.js.
        * svg/dynamic-updates/script-tests/SVGMaskElement-dom-height-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMaskElement-dom-height-attr.js.
        * svg/dynamic-updates/script-tests/SVGMaskElement-dom-maskContentUnits-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMaskElement-dom-maskContentUnits-attr.js.
        * svg/dynamic-updates/script-tests/SVGMaskElement-dom-maskUnits-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMaskElement-dom-maskUnits-attr.js.
        * svg/dynamic-updates/script-tests/SVGMaskElement-dom-width-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMaskElement-dom-width-attr.js.
        * svg/dynamic-updates/script-tests/SVGMaskElement-dom-x-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMaskElement-dom-x-attr.js.
        * svg/dynamic-updates/script-tests/SVGMaskElement-dom-y-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMaskElement-dom-y-attr.js.
        * svg/dynamic-updates/script-tests/SVGMaskElement-svgdom-height-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMaskElement-svgdom-height-prop.js.
        * svg/dynamic-updates/script-tests/SVGMaskElement-svgdom-maskContentUnits-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMaskElement-svgdom-maskContentUnits-prop.js.
        * svg/dynamic-updates/script-tests/SVGMaskElement-svgdom-maskUnits-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMaskElement-svgdom-maskUnits-prop.js.
        * svg/dynamic-updates/script-tests/SVGMaskElement-svgdom-width-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMaskElement-svgdom-width-prop.js.
        * svg/dynamic-updates/script-tests/SVGMaskElement-svgdom-x-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMaskElement-svgdom-x-prop.js.
        * svg/dynamic-updates/script-tests/SVGMaskElement-svgdom-y-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGMaskElement-svgdom-y-prop.js.
        * svg/dynamic-updates/script-tests/SVGPatternElement-dom-height-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGPatternElement-dom-height-attr.js.
        * svg/dynamic-updates/script-tests/SVGPatternElement-dom-patternContentUnits-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGPatternElement-dom-patternContentUnits-attr.js.
        * svg/dynamic-updates/script-tests/SVGPatternElement-dom-patternTransform-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGPatternElement-dom-patternTransform-attr.js.
        * svg/dynamic-updates/script-tests/SVGPatternElement-dom-patternUnits-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGPatternElement-dom-patternUnits-attr.js.
        * svg/dynamic-updates/script-tests/SVGPatternElement-dom-width-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGPatternElement-dom-width-attr.js.
        * svg/dynamic-updates/script-tests/SVGPatternElement-dom-x-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGPatternElement-dom-x-attr.js.
        * svg/dynamic-updates/script-tests/SVGPatternElement-dom-y-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGPatternElement-dom-y-attr.js.
        * svg/dynamic-updates/script-tests/SVGPatternElement-svgdom-height-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGPatternElement-svgdom-height-prop.js.
        * svg/dynamic-updates/script-tests/SVGPatternElement-svgdom-patternContentUnits-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGPatternElement-svgdom-patternContentUnits-prop.js.
        * svg/dynamic-updates/script-tests/SVGPatternElement-svgdom-patternTransform-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGPatternElement-svgdom-patternTransform-prop.js.
        * svg/dynamic-updates/script-tests/SVGPatternElement-svgdom-patternUnits-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGPatternElement-svgdom-patternUnits-prop.js.
        * svg/dynamic-updates/script-tests/SVGPatternElement-svgdom-width-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGPatternElement-svgdom-width-prop.js.
        * svg/dynamic-updates/script-tests/SVGPatternElement-svgdom-x-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGPatternElement-svgdom-x-prop.js.
        * svg/dynamic-updates/script-tests/SVGPatternElement-svgdom-y-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGPatternElement-svgdom-y-prop.js.
        * svg/dynamic-updates/script-tests/SVGRadialGradientElement-dom-cx-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGRadialGradientElement-dom-cx-attr.js.
        * svg/dynamic-updates/script-tests/SVGRadialGradientElement-dom-cy-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGRadialGradientElement-dom-cy-attr.js.
        * svg/dynamic-updates/script-tests/SVGRadialGradientElement-dom-fx-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGRadialGradientElement-dom-fx-attr.js.
        * svg/dynamic-updates/script-tests/SVGRadialGradientElement-dom-fy-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGRadialGradientElement-dom-fy-attr.js.
        * svg/dynamic-updates/script-tests/SVGRadialGradientElement-dom-gradientTransform-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGRadialGradientElement-dom-gradientTransform-attr.js.
        * svg/dynamic-updates/script-tests/SVGRadialGradientElement-dom-gradientUnits-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGRadialGradientElement-dom-gradientUnits-attr.js.
        * svg/dynamic-updates/script-tests/SVGRadialGradientElement-dom-r-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGRadialGradientElement-dom-r-attr.js.
        * svg/dynamic-updates/script-tests/SVGRadialGradientElement-svgdom-cx-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGRadialGradientElement-svgdom-cx-prop.js.
        * svg/dynamic-updates/script-tests/SVGRadialGradientElement-svgdom-cy-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGRadialGradientElement-svgdom-cy-prop.js.
        * svg/dynamic-updates/script-tests/SVGRadialGradientElement-svgdom-fx-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGRadialGradientElement-svgdom-fx-prop.js.
        * svg/dynamic-updates/script-tests/SVGRadialGradientElement-svgdom-fy-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGRadialGradientElement-svgdom-fy-prop.js.
        * svg/dynamic-updates/script-tests/SVGRadialGradientElement-svgdom-gradientTransform-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGRadialGradientElement-svgdom-gradientTransform-prop.js.
        * svg/dynamic-updates/script-tests/SVGRadialGradientElement-svgdom-gradientUnits-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGRadialGradientElement-svgdom-gradientUnits-prop.js.
        * svg/dynamic-updates/script-tests/SVGRadialGradientElement-svgdom-r-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGRadialGradientElement-svgdom-r-prop.js.
        * svg/dynamic-updates/script-tests/SVGRectElement-dom-height-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGRectElement-dom-height-attr.js.
        * svg/dynamic-updates/script-tests/SVGRectElement-dom-width-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGRectElement-dom-width-attr.js.
        * svg/dynamic-updates/script-tests/SVGRectElement-dom-x-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGRectElement-dom-x-attr.js.
        * svg/dynamic-updates/script-tests/SVGRectElement-dom-y-attr.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGRectElement-dom-y-attr.js.
        * svg/dynamic-updates/script-tests/SVGRectElement-svgdom-height-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGRectElement-svgdom-height-prop.js.
        * svg/dynamic-updates/script-tests/SVGRectElement-svgdom-width-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGRectElement-svgdom-width-prop.js.
        * svg/dynamic-updates/script-tests/SVGRectElement-svgdom-x-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGRectElement-svgdom-x-prop.js.
        * svg/dynamic-updates/script-tests/SVGRectElement-svgdom-y-prop.js: Copied from LayoutTests/svg/dynamic-updates/resources/SVGRectElement-svgdom-y-prop.js.
        * svg/dynamic-updates/script-tests/TEMPLATE.html: Copied from LayoutTests/svg/dynamic-updates/resources/TEMPLATE.html.

2009-09-19  Shinichiro Hamaji  <hamaji@chromium.org>

        Rubber-stamped by Eric Seidel.

        js tests should move into jstests subdirectory instead of resources/
        https://bugs.webkit.org/show_bug.cgi?id=25880

        Migration for http, platform, plugins, traversal, and wml directories.

        * http/tests/cookies/double-quoted-value-with-semi-colon.html:
        * http/tests/cookies/multiple-cookies.html:
        * http/tests/cookies/resources/TEMPLATE.html: Removed.
        * http/tests/cookies/resources/double-quoted-value-with-semi-colon.js: Removed.
        * http/tests/cookies/resources/multiple-cookies.js: Removed.
        * http/tests/cookies/resources/simple-cookies-expired.js: Removed.
        * http/tests/cookies/resources/simple-cookies-max-age.js: Removed.
        * http/tests/cookies/script-tests: Added.
        * http/tests/cookies/script-tests/TEMPLATE.html: Copied from LayoutTests/http/tests/cookies/resources/TEMPLATE.html.
        * http/tests/cookies/script-tests/double-quoted-value-with-semi-colon.js: Copied from LayoutTests/http/tests/cookies/resources/double-quoted-value-with-semi-colon.js.
        * http/tests/cookies/script-tests/multiple-cookies.js: Copied from LayoutTests/http/tests/cookies/resources/multiple-cookies.js.
        * http/tests/cookies/script-tests/simple-cookies-expired.js: Copied from LayoutTests/http/tests/cookies/resources/simple-cookies-expired.js.
        * http/tests/cookies/script-tests/simple-cookies-max-age.js: Copied from LayoutTests/http/tests/cookies/resources/simple-cookies-max-age.js.
        * http/tests/cookies/simple-cookies-expired.html:
        * http/tests/cookies/simple-cookies-max-age.html:
        * http/tests/security/clipboard/clipboard-file-access.html:
        * http/tests/security/clipboard/resources/TEMPLATE.html: Removed.
        * http/tests/security/clipboard/resources/clipboard-file-access.js: Removed.
        * http/tests/security/clipboard/script-tests: Added.
        * http/tests/security/clipboard/script-tests/TEMPLATE.html: Copied from LayoutTests/http/tests/security/clipboard/resources/TEMPLATE.html.
        * http/tests/security/clipboard/script-tests/clipboard-file-access.js: Copied from LayoutTests/http/tests/security/clipboard/resources/clipboard-file-access.js.
        * http/tests/wml/access-target-domain-deny.html:
        * http/tests/wml/access-target-path-deny.html:
        * http/tests/wml/access-target.html:
        * http/tests/wml/go-task-get-method-accept-charset.html:
        * http/tests/wml/go-task-get-method.html:
        * http/tests/wml/go-task-post-method-accept-charset.html:
        * http/tests/wml/go-task-post-method.html:
        * http/tests/wml/post-data-to-server.html:
        * http/tests/wml/resources/TEMPLATE.html: Removed.
        * http/tests/wml/resources/access-target-domain-deny.js: Removed.
        * http/tests/wml/resources/access-target-path-deny.js: Removed.
        * http/tests/wml/resources/access-target.js: Removed.
        * http/tests/wml/resources/go-task-get-method-accept-charset.js: Removed.
        * http/tests/wml/resources/go-task-get-method.js: Removed.
        * http/tests/wml/resources/go-task-post-method-accept-charset.js: Removed.
        * http/tests/wml/resources/go-task-post-method.js: Removed.
        * http/tests/wml/resources/post-data-to-server.js: Removed.
        * http/tests/wml/script-tests: Added.
        * http/tests/wml/script-tests/TEMPLATE.html: Copied from LayoutTests/http/tests/wml/resources/TEMPLATE.html.
        * http/tests/wml/script-tests/access-target-domain-deny.js: Copied from LayoutTests/http/tests/wml/resources/access-target-domain-deny.js.
        * http/tests/wml/script-tests/access-target-path-deny.js: Copied from LayoutTests/http/tests/wml/resources/access-target-path-deny.js.
        * http/tests/wml/script-tests/access-target.js: Copied from LayoutTests/http/tests/wml/resources/access-target.js.
        * http/tests/wml/script-tests/go-task-get-method-accept-charset.js: Copied from LayoutTests/http/tests/wml/resources/go-task-get-method-accept-charset.js.
        * http/tests/wml/script-tests/go-task-get-method.js: Copied from LayoutTests/http/tests/wml/resources/go-task-get-method.js.
        * http/tests/wml/script-tests/go-task-post-method-accept-charset.js: Copied from LayoutTests/http/tests/wml/resources/go-task-post-method-accept-charset.js.
        * http/tests/wml/script-tests/go-task-post-method.js: Copied from LayoutTests/http/tests/wml/resources/go-task-post-method.js.
        * http/tests/wml/script-tests/post-data-to-server.js: Copied from LayoutTests/http/tests/wml/resources/post-data-to-server.js.
        * platform/gtk/editing/pasteboard/resources/TEMPLATE.html: Removed.
        * platform/gtk/editing/pasteboard/resources/middle-click-onpaste.js: Removed.
        * platform/gtk/editing/pasteboard/script-tests: Added.
        * platform/gtk/editing/pasteboard/script-tests/TEMPLATE.html: Copied from LayoutTests/platform/gtk/editing/pasteboard/resources/TEMPLATE.html.
        * platform/gtk/editing/pasteboard/script-tests/middle-click-onpaste.js: Copied from LayoutTests/platform/gtk/editing/pasteboard/resources/middle-click-onpaste.js.
        * platform/win/fast/events/context-click-events.html:
        * platform/win/fast/events/resources/TEMPLATE.html: Removed.
        * platform/win/fast/events/resources/context-click-events.js: Removed.
        * platform/win/fast/events/script-tests: Added.
        * platform/win/fast/events/script-tests/TEMPLATE.html: Copied from LayoutTests/platform/win/fast/events/resources/TEMPLATE.html.
        * platform/win/fast/events/script-tests/context-click-events.js: Copied from LayoutTests/platform/win/fast/events/resources/context-click-events.js.
        * plugins/netscape-identifier-conversion.html:
        * plugins/resources/TEMPLATE.html: Removed.
        * plugins/resources/netscape-identifier-conversion.js: Removed.
        * plugins/script-tests: Added.
        * plugins/script-tests/TEMPLATE.html: Copied from LayoutTests/plugins/resources/TEMPLATE.html.
        * plugins/script-tests/netscape-identifier-conversion.js: Copied from LayoutTests/plugins/resources/netscape-identifier-conversion.js.
        * traversal/acid3-test-2.html:
        * traversal/exception-forwarding.html:
        * traversal/resources/TEMPLATE.html: Removed.
        * traversal/resources/acid3-test-2.js: Removed.
        * traversal/resources/exception-forwarding.js: Removed.
        * traversal/script-tests: Added.
        * traversal/script-tests/TEMPLATE.html: Copied from LayoutTests/traversal/resources/TEMPLATE.html.
        * traversal/script-tests/acid3-test-2.js: Copied from LayoutTests/traversal/resources/acid3-test-2.js.
        * traversal/script-tests/exception-forwarding.js: Copied from LayoutTests/traversal/resources/exception-forwarding.js.
        * wml/access-target-deny.html:
        * wml/access-target.html:
        * wml/enter-card-with-events.html:
        * wml/enter-first-card-with-events.html:
        * wml/go-task-get-method-external-deck-with-href.html:
        * wml/go-task-get-method-external-deck.html:
        * wml/go-task-get-method-same-deck.html:
        * wml/input-format.html:
        * wml/newcontext-same-deck.html:
        * wml/onenterforward-event.html:
        * wml/onenterforward-inline-event.html:
        * wml/ontimer-event.html:
        * wml/ontimer-inline-event.html:
        * wml/option-element-onpick-recursion.html:
        * wml/option-element-onpick.html:
        * wml/resources/TEMPLATE.html: Removed.
        * wml/resources/access-target-deny.js: Removed.
        * wml/resources/access-target.js: Removed.
        * wml/resources/enter-card-with-events.js: Removed.
        * wml/resources/enter-first-card-with-events.js: Removed.
        * wml/resources/go-task-get-method-external-deck-with-href.js: Removed.
        * wml/resources/go-task-get-method-external-deck.js: Removed.
        * wml/resources/go-task-get-method-same-deck.js: Removed.
        * wml/resources/input-format.js: Removed.
        * wml/resources/newcontext-same-deck.js: Removed.
        * wml/resources/onenterforward-event.js: Removed.
        * wml/resources/onenterforward-inline-event.js: Removed.
        * wml/resources/ontimer-event.js: Removed.
        * wml/resources/ontimer-inline-event.js: Removed.
        * wml/resources/option-element-onpick-recursion.js: Removed.
        * wml/resources/option-element-onpick.js: Removed.
        * wml/resources/select-element-variables.js: Removed.
        * wml/resources/variable-reference-invalid-character.js: Removed.
        * wml/resources/variable-reference-valid.js: Removed.
        * wml/script-tests: Added.
        * wml/script-tests/TEMPLATE.html: Copied from LayoutTests/wml/resources/TEMPLATE.html.
        * wml/script-tests/access-target-deny.js: Copied from LayoutTests/wml/resources/access-target-deny.js.
        * wml/script-tests/access-target.js: Copied from LayoutTests/wml/resources/access-target.js.
        * wml/script-tests/enter-card-with-events.js: Copied from LayoutTests/wml/resources/enter-card-with-events.js.
        * wml/script-tests/enter-first-card-with-events.js: Copied from LayoutTests/wml/resources/enter-first-card-with-events.js.
        * wml/script-tests/go-task-get-method-external-deck-with-href.js: Copied from LayoutTests/wml/resources/go-task-get-method-external-deck-with-href.js.
        * wml/script-tests/go-task-get-method-external-deck.js: Copied from LayoutTests/wml/resources/go-task-get-method-external-deck.js.
        * wml/script-tests/go-task-get-method-same-deck.js: Copied from LayoutTests/wml/resources/go-task-get-method-same-deck.js.
        * wml/script-tests/input-format.js: Copied from LayoutTests/wml/resources/input-format.js.
        * wml/script-tests/newcontext-same-deck.js: Copied from LayoutTests/wml/resources/newcontext-same-deck.js.
        * wml/script-tests/onenterforward-event.js: Copied from LayoutTests/wml/resources/onenterforward-event.js.
        * wml/script-tests/onenterforward-inline-event.js: Copied from LayoutTests/wml/resources/onenterforward-inline-event.js.
        * wml/script-tests/ontimer-event.js: Copied from LayoutTests/wml/resources/ontimer-event.js.
        * wml/script-tests/ontimer-inline-event.js: Copied from LayoutTests/wml/resources/ontimer-inline-event.js.
        * wml/script-tests/option-element-onpick-recursion.js: Copied from LayoutTests/wml/resources/option-element-onpick-recursion.js.
        * wml/script-tests/option-element-onpick.js: Copied from LayoutTests/wml/resources/option-element-onpick.js.
        * wml/script-tests/select-element-variables.js: Copied from LayoutTests/wml/resources/select-element-variables.js.
        * wml/script-tests/variable-reference-invalid-character.js: Copied from LayoutTests/wml/resources/variable-reference-invalid-character.js.
        * wml/script-tests/variable-reference-valid.js: Copied from LayoutTests/wml/resources/variable-reference-valid.js.
        * wml/select-element-variables.html:
        * wml/variable-reference-invalid-character.html:
        * wml/variable-reference-valid.html:

2009-09-19  Shinichiro Hamaji  <hamaji@chromium.org>

        Rubber-stamped by Eric Seidel.

        js tests should move into jstests subdirectory instead of resources/
        https://bugs.webkit.org/show_bug.cgi?id=25880

        Migration for fast/* directories except fast js directory.

        * fast/events/blur-focus-window-should-blur-focus-element.html:
        * fast/events/create-document-crash-on-attach-event.html:
        * fast/events/event-function-toString.html:
        * fast/events/event-instanceof.html:
        * fast/events/event-listener-sharing.html:
        * fast/events/init-events.html:
        * fast/events/mouse-click-events.html:
        * fast/events/resources/TEMPLATE.html: Removed.
        * fast/events/resources/blur-focus-window-should-blur-focus-element.js: Removed.
        * fast/events/resources/create-document-crash-on-attach-event.js: Removed.
        * fast/events/resources/event-function-toString.js: Removed.
        * fast/events/resources/event-instanceof.js: Removed.
        * fast/events/resources/event-listener-sharing.js: Removed.
        * fast/events/resources/init-events.js: Removed.
        * fast/events/resources/mouse-click-events.js: Removed.
        * fast/events/resources/tab-is-focusable-assert.js: Removed.
        * fast/events/script-tests: Added.
        * fast/events/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/events/resources/TEMPLATE.html.
        * fast/events/script-tests/blur-focus-window-should-blur-focus-element.js: Copied from LayoutTests/fast/events/resources/blur-focus-window-should-blur-focus-element.js.
        * fast/events/script-tests/create-document-crash-on-attach-event.js: Copied from LayoutTests/fast/events/resources/create-document-crash-on-attach-event.js.
        * fast/events/script-tests/event-function-toString.js: Copied from LayoutTests/fast/events/resources/event-function-toString.js.
        * fast/events/script-tests/event-instanceof.js: Copied from LayoutTests/fast/events/resources/event-instanceof.js.
        * fast/events/script-tests/event-listener-sharing.js: Copied from LayoutTests/fast/events/resources/event-listener-sharing.js.
        * fast/events/script-tests/init-events.js: Copied from LayoutTests/fast/events/resources/init-events.js.
        * fast/events/script-tests/mouse-click-events.js: Copied from LayoutTests/fast/events/resources/mouse-click-events.js.
        * fast/events/script-tests/tab-is-focusable-assert.js: Copied from LayoutTests/fast/events/resources/tab-is-focusable-assert.js.
        * fast/events/tab-is-focusable-assert.html:
        * fast/forms/ValidityState-patternMismatch-unsupported.html:
        * fast/forms/ValidityState-typeMismatch-color.html:
        * fast/forms/ValidityState-typeMismatch-number.html:
        * fast/forms/ValidityState-typeMismatch-url.html:
        * fast/forms/formnovalidate-attribute.html:
        * fast/forms/input-maxlength-ime-completed.html:
        * fast/forms/input-maxlength-ime-preedit.html:
        * fast/forms/novalidate-attribute.html:
        * fast/forms/placeholder-dom-property.html:
        * fast/forms/resources/TEMPLATE.html: Removed.
        * fast/forms/resources/ValidityState-patternMismatch-unsupported.js: Removed.
        * fast/forms/resources/ValidityState-typeMismatch-color.js: Removed.
        * fast/forms/resources/ValidityState-typeMismatch-number.js: Removed.
        * fast/forms/resources/ValidityState-typeMismatch-url.js: Removed.
        * fast/forms/resources/formnovalidate-attribute.js: Removed.
        * fast/forms/resources/input-maxlength-ime-completed.js: Removed.
        * fast/forms/resources/input-maxlength-ime-preedit.js: Removed.
        * fast/forms/resources/novalidate-attribute.js: Removed.
        * fast/forms/resources/placeholder-dom-property.js: Removed.
        * fast/forms/resources/shadow-tree-exposure.js: Removed.
        * fast/forms/resources/text-control-intrinsic-widths.js: Removed.
        * fast/forms/resources/textarea-metrics.js: Removed.
        * fast/forms/resources/textarea-placeholder-dom-property.js: Removed.
        * fast/forms/resources/textarea-textlength.js: Removed.
        * fast/forms/script-tests: Added.
        * fast/forms/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/forms/resources/TEMPLATE.html.
        * fast/forms/script-tests/ValidityState-patternMismatch-unsupported.js: Copied from LayoutTests/fast/forms/resources/ValidityState-patternMismatch-unsupported.js.
        * fast/forms/script-tests/ValidityState-typeMismatch-color.js: Copied from LayoutTests/fast/forms/resources/ValidityState-typeMismatch-color.js.
        * fast/forms/script-tests/ValidityState-typeMismatch-number.js: Copied from LayoutTests/fast/forms/resources/ValidityState-typeMismatch-number.js.
        * fast/forms/script-tests/ValidityState-typeMismatch-url.js: Copied from LayoutTests/fast/forms/resources/ValidityState-typeMismatch-url.js.
        * fast/forms/script-tests/formnovalidate-attribute.js: Copied from LayoutTests/fast/forms/resources/formnovalidate-attribute.js.
        * fast/forms/script-tests/input-maxlength-ime-completed.js: Copied from LayoutTests/fast/forms/resources/input-maxlength-ime-completed.js.
        * fast/forms/script-tests/input-maxlength-ime-preedit.js: Copied from LayoutTests/fast/forms/resources/input-maxlength-ime-preedit.js.
        * fast/forms/script-tests/novalidate-attribute.js: Copied from LayoutTests/fast/forms/resources/novalidate-attribute.js.
        * fast/forms/script-tests/placeholder-dom-property.js: Copied from LayoutTests/fast/forms/resources/placeholder-dom-property.js.
        * fast/forms/script-tests/shadow-tree-exposure.js: Copied from LayoutTests/fast/forms/resources/shadow-tree-exposure.js.
        * fast/forms/script-tests/text-control-intrinsic-widths.js: Copied from LayoutTests/fast/forms/resources/text-control-intrinsic-widths.js.
        * fast/forms/script-tests/textarea-metrics.js: Copied from LayoutTests/fast/forms/resources/textarea-metrics.js.
        * fast/forms/script-tests/textarea-placeholder-dom-property.js: Copied from LayoutTests/fast/forms/resources/textarea-placeholder-dom-property.js.
        * fast/forms/script-tests/textarea-textlength.js: Copied from LayoutTests/fast/forms/resources/textarea-textlength.js.
        * fast/forms/shadow-tree-exposure.html:
        * fast/forms/text-control-intrinsic-widths.html:
        * fast/forms/textarea-metrics.html:
        * fast/forms/textarea-placeholder-dom-property.html:
        * fast/forms/textarea-textlength.html:
        * fast/images/border.html:
        * fast/images/resources/TEMPLATE.html: Removed.
        * fast/images/resources/border.js: Removed.
        * fast/images/script-tests: Added.
        * fast/images/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/images/resources/TEMPLATE.html.
        * fast/images/script-tests/border.js: Copied from LayoutTests/fast/images/resources/border.js.
        * fast/parser/block-nesting-cap.html:
        * fast/parser/pre-first-line-break.html:
        * fast/parser/resources/TEMPLATE.html: Removed.
        * fast/parser/resources/block-nesting-cap.js: Removed.
        * fast/parser/resources/pre-first-line-break.js: Removed.
        * fast/parser/script-tests: Added.
        * fast/parser/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/parser/resources/TEMPLATE.html.
        * fast/parser/script-tests/block-nesting-cap.js: Copied from LayoutTests/fast/parser/resources/block-nesting-cap.js.
        * fast/parser/script-tests/pre-first-line-break.js: Copied from LayoutTests/fast/parser/resources/pre-first-line-break.js.
        * fast/regex/alternative-length-miscalculation.html:
        * fast/regex/cross-frame-callable.html:
        * fast/regex/early-acid3-86.html:
        * fast/regex/malformed-escapes.html:
        * fast/regex/non-capturing-backtracking.html:
        * fast/regex/non-pattern-characters.html:
        * fast/regex/quantified-assertions.html:
        * fast/regex/resources/TEMPLATE.html: Removed.
        * fast/regex/resources/alternative-length-miscalculation.js: Removed.
        * fast/regex/resources/cross-frame-callable.js: Removed.
        * fast/regex/resources/early-acid3-86.js: Removed.
        * fast/regex/resources/malformed-escapes.js: Removed.
        * fast/regex/resources/non-capturing-backtracking.js: Removed.
        * fast/regex/resources/non-pattern-characters.js: Removed.
        * fast/regex/resources/quantified-assertions.js: Removed.
        * fast/regex/resources/slow.js: Removed.
        * fast/regex/script-tests: Added.
        * fast/regex/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/regex/resources/TEMPLATE.html.
        * fast/regex/script-tests/alternative-length-miscalculation.js: Copied from LayoutTests/fast/regex/resources/alternative-length-miscalculation.js.
        * fast/regex/script-tests/cross-frame-callable.js: Copied from LayoutTests/fast/regex/resources/cross-frame-callable.js.
        * fast/regex/script-tests/early-acid3-86.js: Copied from LayoutTests/fast/regex/resources/early-acid3-86.js.
        * fast/regex/script-tests/malformed-escapes.js: Copied from LayoutTests/fast/regex/resources/malformed-escapes.js.
        * fast/regex/script-tests/non-capturing-backtracking.js: Copied from LayoutTests/fast/regex/resources/non-capturing-backtracking.js.
        * fast/regex/script-tests/non-pattern-characters.js: Copied from LayoutTests/fast/regex/resources/non-pattern-characters.js.
        * fast/regex/script-tests/quantified-assertions.js: Copied from LayoutTests/fast/regex/resources/quantified-assertions.js.
        * fast/regex/script-tests/slow.js: Copied from LayoutTests/fast/regex/resources/slow.js.
        * fast/regex/slow.html:
        * fast/table/border-changes.html:
        * fast/table/resources/TEMPLATE.html: Removed.
        * fast/table/resources/border-changes.js: Removed.
        * fast/table/script-tests: Added.
        * fast/table/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/table/resources/TEMPLATE.html.
        * fast/table/script-tests/border-changes.js: Copied from LayoutTests/fast/table/resources/border-changes.js.
        * fast/text/find-backwards.html:
        * fast/text/resources/TEMPLATE.html: Removed.
        * fast/text/resources/find-backwards.js: Removed.
        * fast/text/script-tests: Added.
        * fast/text/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/text/resources/TEMPLATE.html.
        * fast/text/script-tests/find-backwards.js: Copied from LayoutTests/fast/text/resources/find-backwards.js.

2009-09-19  Shinichiro Hamaji  <hamaji@chromium.org>

        Rubber-stamped by Eric Seidel.

        js tests should move into jstests subdirectory instead of resources/
        https://bugs.webkit.org/show_bug.cgi?id=25880

        Migration for fast/dom directories.

        * fast/dom/CSSStyleDeclaration/css-properties-case-sensitive.html:
        * fast/dom/CSSStyleDeclaration/resources/TEMPLATE.html: Removed.
        * fast/dom/CSSStyleDeclaration/resources/css-properties-case-sensitive.js: Removed.
        * fast/dom/CSSStyleDeclaration/resources/transition-property-names.js: Removed.
        * fast/dom/CSSStyleDeclaration/script-tests: Added.
        * fast/dom/CSSStyleDeclaration/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/dom/CSSStyleDeclaration/resources/TEMPLATE.html.
        * fast/dom/CSSStyleDeclaration/script-tests/css-properties-case-sensitive.js: Copied from LayoutTests/fast/dom/CSSStyleDeclaration/resources/css-properties-case-sensitive.js.
        * fast/dom/CSSStyleDeclaration/script-tests/transition-property-names.js: Copied from LayoutTests/fast/dom/CSSStyleDeclaration/resources/transition-property-names.js.
        * fast/dom/CSSStyleDeclaration/transition-property-names.html:
        * fast/dom/DOMImplementation/createDocument-namespace-err.html:
        * fast/dom/DOMImplementation/createDocumentType-err.html:
        * fast/dom/DOMImplementation/resources/TEMPLATE.html: Removed.
        * fast/dom/DOMImplementation/resources/createDocument-namespace-err.js: Removed.
        * fast/dom/DOMImplementation/resources/createDocumentType-err.js: Removed.
        * fast/dom/DOMImplementation/script-tests: Added.
        * fast/dom/DOMImplementation/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/dom/DOMImplementation/resources/TEMPLATE.html.
        * fast/dom/DOMImplementation/script-tests/createDocument-namespace-err.js: Copied from LayoutTests/fast/dom/DOMImplementation/resources/createDocument-namespace-err.js.
        * fast/dom/DOMImplementation/script-tests/createDocumentType-err.js: Copied from LayoutTests/fast/dom/DOMImplementation/resources/createDocumentType-err.js.
        * fast/dom/Document/createAttributeNS-namespace-err.html:
        * fast/dom/Document/createElementNS-namespace-err.html:
        * fast/dom/Document/document-write-doctype.html:
        * fast/dom/Document/replaceChild-null-oldChild.html:
        * fast/dom/Document/resources/TEMPLATE.html: Removed.
        * fast/dom/Document/resources/createAttributeNS-namespace-err.js: Removed.
        * fast/dom/Document/resources/createElementNS-namespace-err.js: Removed.
        * fast/dom/Document/resources/document-write-doctype.js: Removed.
        * fast/dom/Document/resources/replaceChild-null-oldChild.js: Removed.
        * fast/dom/Document/script-tests: Added.
        * fast/dom/Document/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/dom/Document/resources/TEMPLATE.html.
        * fast/dom/Document/script-tests/createAttributeNS-namespace-err.js: Copied from LayoutTests/fast/dom/Document/resources/createAttributeNS-namespace-err.js.
        * fast/dom/Document/script-tests/createElementNS-namespace-err.js: Copied from LayoutTests/fast/dom/Document/resources/createElementNS-namespace-err.js.
        * fast/dom/Document/script-tests/document-write-doctype.js: Copied from LayoutTests/fast/dom/Document/resources/document-write-doctype.js.
        * fast/dom/Document/script-tests/replaceChild-null-oldChild.js: Copied from LayoutTests/fast/dom/Document/resources/replaceChild-null-oldChild.js.
        * fast/dom/Element/attr-param-typechecking.html:
        * fast/dom/Element/contains-method.html:
        * fast/dom/Element/dimension-properties-unrendered.html:
        * fast/dom/Element/element-traversal.html:
        * fast/dom/Element/getAttribute-check-case-sensitivity.html:
        * fast/dom/Element/resources/TEMPLATE.html: Removed.
        * fast/dom/Element/resources/attr-param-typechecking.js: Removed.
        * fast/dom/Element/resources/contains-method.js: Removed.
        * fast/dom/Element/resources/dimension-properties-unrendered.js: Removed.
        * fast/dom/Element/resources/element-traversal.js: Removed.
        * fast/dom/Element/resources/getAttribute-check-case-sensitivity.js: Removed.
        * fast/dom/Element/script-tests: Added.
        * fast/dom/Element/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/dom/Element/resources/TEMPLATE.html.
        * fast/dom/Element/script-tests/attr-param-typechecking.js: Copied from LayoutTests/fast/dom/Element/resources/attr-param-typechecking.js.
        * fast/dom/Element/script-tests/contains-method.js: Copied from LayoutTests/fast/dom/Element/resources/contains-method.js.
        * fast/dom/Element/script-tests/dimension-properties-unrendered.js: Copied from LayoutTests/fast/dom/Element/resources/dimension-properties-unrendered.js.
        * fast/dom/Element/script-tests/element-traversal.js: Copied from LayoutTests/fast/dom/Element/resources/element-traversal.js.
        * fast/dom/Element/script-tests/getAttribute-check-case-sensitivity.js: Copied from LayoutTests/fast/dom/Element/resources/getAttribute-check-case-sensitivity.js.
        * fast/dom/EntityReference/readonly-exceptions.html:
        * fast/dom/EntityReference/resources/TEMPLATE.html: Removed.
        * fast/dom/EntityReference/resources/readonly-exceptions.js: Removed.
        * fast/dom/EntityReference/script-tests: Added.
        * fast/dom/EntityReference/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/dom/EntityReference/resources/TEMPLATE.html.
        * fast/dom/EntityReference/script-tests/readonly-exceptions.js: Copied from LayoutTests/fast/dom/EntityReference/resources/readonly-exceptions.js.
        * fast/dom/HTMLFontElement/resources/TEMPLATE.html: Removed.
        * fast/dom/HTMLFontElement/resources/size-attribute.js: Removed.
        * fast/dom/HTMLFontElement/script-tests: Added.
        * fast/dom/HTMLFontElement/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/dom/HTMLFontElement/resources/TEMPLATE.html.
        * fast/dom/HTMLFontElement/script-tests/size-attribute.js: Copied from LayoutTests/fast/dom/HTMLFontElement/resources/size-attribute.js.
        * fast/dom/HTMLFontElement/size-attribute.html:
        * fast/dom/HTMLFormElement/elements-not-in-document.html:
        * fast/dom/HTMLFormElement/resources/TEMPLATE.html: Removed.
        * fast/dom/HTMLFormElement/resources/elements-not-in-document.js: Removed.
        * fast/dom/HTMLFormElement/script-tests: Added.
        * fast/dom/HTMLFormElement/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/dom/HTMLFormElement/resources/TEMPLATE.html.
        * fast/dom/HTMLFormElement/script-tests/elements-not-in-document.js: Copied from LayoutTests/fast/dom/HTMLFormElement/resources/elements-not-in-document.js.
        * fast/dom/HTMLInputElement/checked-pseudo-selector.html:
        * fast/dom/HTMLInputElement/resources/TEMPLATE.html: Removed.
        * fast/dom/HTMLInputElement/resources/checked-pseudo-selector.js: Removed.
        * fast/dom/HTMLInputElement/resources/size-attribute.js: Removed.
        * fast/dom/HTMLInputElement/script-tests: Added.
        * fast/dom/HTMLInputElement/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/dom/HTMLInputElement/resources/TEMPLATE.html.
        * fast/dom/HTMLInputElement/script-tests/checked-pseudo-selector.js: Copied from LayoutTests/fast/dom/HTMLInputElement/resources/checked-pseudo-selector.js.
        * fast/dom/HTMLInputElement/script-tests/size-attribute.js: Copied from LayoutTests/fast/dom/HTMLInputElement/resources/size-attribute.js.
        * fast/dom/HTMLInputElement/size-attribute.html:
        * fast/dom/HTMLSelectElement/named-options.html:
        * fast/dom/HTMLSelectElement/resources/TEMPLATE.html: Removed.
        * fast/dom/HTMLSelectElement/resources/named-options.js: Removed.
        * fast/dom/HTMLSelectElement/script-tests: Added.
        * fast/dom/HTMLSelectElement/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/dom/HTMLSelectElement/resources/TEMPLATE.html.
        * fast/dom/HTMLSelectElement/script-tests/named-options.js: Copied from LayoutTests/fast/dom/HTMLSelectElement/resources/named-options.js.
        * fast/dom/HTMLTableElement/cellpadding-attribute.html:
        * fast/dom/HTMLTableElement/early-acid3-65-excerpt.html:
        * fast/dom/HTMLTableElement/early-acid3-66-excerpt.html:
        * fast/dom/HTMLTableElement/resources/TEMPLATE.html: Removed.
        * fast/dom/HTMLTableElement/resources/cellpadding-attribute.js: Removed.
        * fast/dom/HTMLTableElement/resources/early-acid3-65-excerpt.js: Removed.
        * fast/dom/HTMLTableElement/resources/early-acid3-66-excerpt.js: Removed.
        * fast/dom/HTMLTableElement/resources/rows.js: Removed.
        * fast/dom/HTMLTableElement/resources/tBodies.js: Removed.
        * fast/dom/HTMLTableElement/rows.html:
        * fast/dom/HTMLTableElement/script-tests: Added.
        * fast/dom/HTMLTableElement/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/dom/HTMLTableElement/resources/TEMPLATE.html.
        * fast/dom/HTMLTableElement/script-tests/cellpadding-attribute.js: Copied from LayoutTests/fast/dom/HTMLTableElement/resources/cellpadding-attribute.js.
        * fast/dom/HTMLTableElement/script-tests/early-acid3-65-excerpt.js: Copied from LayoutTests/fast/dom/HTMLTableElement/resources/early-acid3-65-excerpt.js.
        * fast/dom/HTMLTableElement/script-tests/early-acid3-66-excerpt.js: Copied from LayoutTests/fast/dom/HTMLTableElement/resources/early-acid3-66-excerpt.js.
        * fast/dom/HTMLTableElement/script-tests/rows.js: Copied from LayoutTests/fast/dom/HTMLTableElement/resources/rows.js.
        * fast/dom/HTMLTableElement/script-tests/tBodies.js: Copied from LayoutTests/fast/dom/HTMLTableElement/resources/tBodies.js.
        * fast/dom/HTMLTableElement/tBodies.html:
        * fast/dom/HTMLTableRowElement/cells.html:
        * fast/dom/HTMLTableRowElement/resources/TEMPLATE.html: Removed.
        * fast/dom/HTMLTableRowElement/resources/cells.js: Removed.
        * fast/dom/HTMLTableRowElement/script-tests: Added.
        * fast/dom/HTMLTableRowElement/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/dom/HTMLTableRowElement/resources/TEMPLATE.html.
        * fast/dom/HTMLTableRowElement/script-tests/cells.js: Copied from LayoutTests/fast/dom/HTMLTableRowElement/resources/cells.js.
        * fast/dom/HTMLTableSectionElement/resources/TEMPLATE.html: Removed.
        * fast/dom/HTMLTableSectionElement/resources/rows.js: Removed.
        * fast/dom/HTMLTableSectionElement/rows.html:
        * fast/dom/HTMLTableSectionElement/script-tests: Added.
        * fast/dom/HTMLTableSectionElement/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/dom/HTMLTableSectionElement/resources/TEMPLATE.html.
        * fast/dom/HTMLTableSectionElement/script-tests/rows.js: Copied from LayoutTests/fast/dom/HTMLTableSectionElement/resources/rows.js.
        * fast/dom/Node/DOMNodeRemovedEvent.html:
        * fast/dom/Node/initial-values.html:
        * fast/dom/Node/resources/DOMNodeRemovedEvent.js: Removed.
        * fast/dom/Node/resources/TEMPLATE.html: Removed.
        * fast/dom/Node/resources/initial-values.js: Removed.
        * fast/dom/Node/script-tests: Added.
        * fast/dom/Node/script-tests/DOMNodeRemovedEvent.js: Copied from LayoutTests/fast/dom/Node/resources/DOMNodeRemovedEvent.js.
        * fast/dom/Node/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/dom/Node/resources/TEMPLATE.html.
        * fast/dom/Node/script-tests/initial-values.js: Copied from LayoutTests/fast/dom/Node/resources/initial-values.js.
        * fast/dom/Range/mutation.html:
        * fast/dom/Range/range-clone-empty.html:
        * fast/dom/Range/range-exceptions.html:
        * fast/dom/Range/range-insertNode-separate-endContainer.html:
        * fast/dom/Range/range-insertNode-splittext.html:
        * fast/dom/Range/range-modifycontents.html:
        * fast/dom/Range/resources/TEMPLATE.html: Removed.
        * fast/dom/Range/resources/mutation.js: Removed.
        * fast/dom/Range/resources/range-clone-empty.js: Removed.
        * fast/dom/Range/resources/range-exceptions.js: Removed.
        * fast/dom/Range/resources/range-insertNode-separate-endContainer.js: Removed.
        * fast/dom/Range/resources/range-insertNode-splittext.js: Removed.
        * fast/dom/Range/resources/range-modifycontents.js: Removed.
        * fast/dom/Range/script-tests: Added.
        * fast/dom/Range/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/dom/Range/resources/TEMPLATE.html.
        * fast/dom/Range/script-tests/mutation.js: Copied from LayoutTests/fast/dom/Range/resources/mutation.js.
        * fast/dom/Range/script-tests/range-clone-empty.js: Copied from LayoutTests/fast/dom/Range/resources/range-clone-empty.js.
        * fast/dom/Range/script-tests/range-exceptions.js: Copied from LayoutTests/fast/dom/Range/resources/range-exceptions.js.
        * fast/dom/Range/script-tests/range-insertNode-separate-endContainer.js: Copied from LayoutTests/fast/dom/Range/resources/range-insertNode-separate-endContainer.js.
        * fast/dom/Range/script-tests/range-insertNode-splittext.js: Copied from LayoutTests/fast/dom/Range/resources/range-insertNode-splittext.js.
        * fast/dom/Range/script-tests/range-modifycontents.js: Copied from LayoutTests/fast/dom/Range/resources/range-modifycontents.js.
        * fast/dom/Selection/getRangeAt.html:
        * fast/dom/Selection/resources/TEMPLATE.html: Removed.
        * fast/dom/Selection/resources/getRangeAt.js: Removed.
        * fast/dom/Selection/script-tests: Added.
        * fast/dom/Selection/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/dom/Selection/resources/TEMPLATE.html.
        * fast/dom/Selection/script-tests/getRangeAt.js: Copied from LayoutTests/fast/dom/Selection/resources/getRangeAt.js.
        * fast/dom/SelectorAPI/detached-element.html:
        * fast/dom/SelectorAPI/elementRoot.html:
        * fast/dom/SelectorAPI/id-fastpath.html:
        * fast/dom/SelectorAPI/resources/TEMPLATE.html: Removed.
        * fast/dom/SelectorAPI/resources/detached-element.js: Removed.
        * fast/dom/SelectorAPI/resources/elementRoot.js: Removed.
        * fast/dom/SelectorAPI/resources/id-fastpath.js: Removed.
        * fast/dom/SelectorAPI/resources/undefined-null-stringify.js: Removed.
        * fast/dom/SelectorAPI/resources/viewless-document.js: Removed.
        * fast/dom/SelectorAPI/script-tests: Added.
        * fast/dom/SelectorAPI/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/dom/SelectorAPI/resources/TEMPLATE.html.
        * fast/dom/SelectorAPI/script-tests/detached-element.js: Copied from LayoutTests/fast/dom/SelectorAPI/resources/detached-element.js.
        * fast/dom/SelectorAPI/script-tests/elementRoot.js: Copied from LayoutTests/fast/dom/SelectorAPI/resources/elementRoot.js.
        * fast/dom/SelectorAPI/script-tests/id-fastpath.js: Copied from LayoutTests/fast/dom/SelectorAPI/resources/id-fastpath.js.
        * fast/dom/SelectorAPI/script-tests/undefined-null-stringify.js: Copied from LayoutTests/fast/dom/SelectorAPI/resources/undefined-null-stringify.js.
        * fast/dom/SelectorAPI/script-tests/viewless-document.js: Copied from LayoutTests/fast/dom/SelectorAPI/resources/viewless-document.js.
        * fast/dom/SelectorAPI/undefined-null-stringify.html:
        * fast/dom/SelectorAPI/viewless-document.html:
        * fast/dom/Text/replaceWholeText.html:
        * fast/dom/Text/resources/TEMPLATE.html: Removed.
        * fast/dom/Text/resources/replaceWholeText.js: Removed.
        * fast/dom/Text/script-tests: Added.
        * fast/dom/Text/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/dom/Text/resources/TEMPLATE.html.
        * fast/dom/Text/script-tests/replaceWholeText.js: Copied from LayoutTests/fast/dom/Text/resources/replaceWholeText.js.
        * fast/dom/Window/HTMLBodyElement-window-eventListener-attributes.html:
        * fast/dom/Window/HTMLFrameSetElement-window-eventListener-attributes.html:
        * fast/dom/Window/dispatchEvent.html:
        * fast/dom/Window/resources/HTMLBodyElement-window-eventListener-attributes.js: Removed.
        * fast/dom/Window/resources/HTMLFrameSetElement-window-eventListener-attributes.js: Removed.
        * fast/dom/Window/resources/TEMPLATE.html: Removed.
        * fast/dom/Window/resources/dispatchEvent.js: Removed.
        * fast/dom/Window/resources/window-custom-prototype.js: Removed.
        * fast/dom/Window/script-tests: Added.
        * fast/dom/Window/script-tests/HTMLBodyElement-window-eventListener-attributes.js: Copied from LayoutTests/fast/dom/Window/resources/HTMLBodyElement-window-eventListener-attributes.js.
        * fast/dom/Window/script-tests/HTMLFrameSetElement-window-eventListener-attributes.js: Copied from LayoutTests/fast/dom/Window/resources/HTMLFrameSetElement-window-eventListener-attributes.js.
        * fast/dom/Window/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/dom/Window/resources/TEMPLATE.html.
        * fast/dom/Window/script-tests/dispatchEvent.js: Copied from LayoutTests/fast/dom/Window/resources/dispatchEvent.js.
        * fast/dom/Window/script-tests/window-custom-prototype.js: Copied from LayoutTests/fast/dom/Window/resources/window-custom-prototype.js.
        * fast/dom/Window/window-custom-prototype.html:
        * fast/dom/constructed-objects-prototypes.html:
        * fast/dom/constructors-cached.html:
        * fast/dom/css-RGBValue.html:
        * fast/dom/domListEnumeration.html:
        * fast/dom/event-attribute-availability.html:
        * fast/dom/javascript-url-exception-isolation.html:
        * fast/dom/location-new-window-no-crash.html:
        * fast/dom/non-numeric-values-numeric-parameters.html:
        * fast/dom/prototype-inheritance-2.html:
        * fast/dom/prototype-inheritance.html:
        * fast/dom/resources/TEMPLATE.html: Removed.
        * fast/dom/resources/constructed-objects-prototypes.js: Removed.
        * fast/dom/resources/constructors-cached.js: Removed.
        * fast/dom/resources/css-RGBValue.js: Removed.
        * fast/dom/resources/domListEnumeration.js: Removed.
        * fast/dom/resources/event-attribute-availability.js: Removed.
        * fast/dom/resources/javascript-url-exception-isolation.js: Removed.
        * fast/dom/resources/location-new-window-no-crash.js: Removed.
        * fast/dom/resources/non-numeric-values-numeric-parameters.js: Removed.
        * fast/dom/resources/prototype-inheritance-2.js: Removed.
        * fast/dom/resources/prototype-inheritance.js: Removed.
        * fast/dom/script-tests: Added.
        * fast/dom/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/dom/resources/TEMPLATE.html.
        * fast/dom/script-tests/constructed-objects-prototypes.js: Copied from LayoutTests/fast/dom/resources/constructed-objects-prototypes.js.
        * fast/dom/script-tests/constructors-cached.js: Copied from LayoutTests/fast/dom/resources/constructors-cached.js.
        * fast/dom/script-tests/css-RGBValue.js: Copied from LayoutTests/fast/dom/resources/css-RGBValue.js.
        * fast/dom/script-tests/domListEnumeration.js: Copied from LayoutTests/fast/dom/resources/domListEnumeration.js.
        * fast/dom/script-tests/event-attribute-availability.js: Copied from LayoutTests/fast/dom/resources/event-attribute-availability.js.
        * fast/dom/script-tests/javascript-url-exception-isolation.js: Copied from LayoutTests/fast/dom/resources/javascript-url-exception-isolation.js.
        * fast/dom/script-tests/location-new-window-no-crash.js: Copied from LayoutTests/fast/dom/resources/location-new-window-no-crash.js.
        * fast/dom/script-tests/non-numeric-values-numeric-parameters.js: Copied from LayoutTests/fast/dom/resources/non-numeric-values-numeric-parameters.js.
        * fast/dom/script-tests/prototype-inheritance-2.js: Copied from LayoutTests/fast/dom/resources/prototype-inheritance-2.js.
        * fast/dom/script-tests/prototype-inheritance.js: Copied from LayoutTests/fast/dom/resources/prototype-inheritance.js.

2009-09-19  Shinichiro Hamaji  <hamaji@chromium.org>

        Rubber-stamped by Eric Seidel.

        js tests should move into jstests subdirectory instead of resources/
        https://bugs.webkit.org/show_bug.cgi?id=25880

        Migration for fast/canvas and fast/css directories.

        * fast/canvas/canvas-copyPixels.html:
        * fast/canvas/canvas-gradient-addStop-error.html:
        * fast/canvas/canvas-gradient-without-path.html:
        * fast/canvas/canvas-modify-emptyPath.html:
        * fast/canvas/canvas-set-properties-with-non-invertible-ctm.html:
        * fast/canvas/canvas-setTransform.html:
        * fast/canvas/canvas-strokeRect.html:
        * fast/canvas/canvas-transparency-and-composite.html:
        * fast/canvas/gradient-addColorStop-with-invalid-color.html:
        * fast/canvas/gradient-with-clip.html:
        * fast/canvas/linearGradient-infinite-values.html:
        * fast/canvas/pattern-with-transform.html:
        * fast/canvas/radialGradient-infinite-values.html:
        * fast/canvas/resources/TEMPLATE.html: Removed.
        * fast/canvas/resources/canvas-copyPixels.js: Removed.
        * fast/canvas/resources/canvas-gradient-addStop-error.js: Removed.
        * fast/canvas/resources/canvas-gradient-without-path.js: Removed.
        * fast/canvas/resources/canvas-modify-emptyPath.js: Removed.
        * fast/canvas/resources/canvas-set-properties-with-non-invertible-ctm.js: Removed.
        * fast/canvas/resources/canvas-setTransform.js: Removed.
        * fast/canvas/resources/canvas-strokeRect.js: Removed.
        * fast/canvas/resources/canvas-transparency-and-composite.js: Removed.
        * fast/canvas/resources/gradient-addColorStop-with-invalid-color.js: Removed.
        * fast/canvas/resources/gradient-with-clip.js: Removed.
        * fast/canvas/resources/linearGradient-infinite-values.js: Removed.
        * fast/canvas/resources/pattern-with-transform.js: Removed.
        * fast/canvas/resources/radialGradient-infinite-values.js: Removed.
        * fast/canvas/resources/set-colors.js: Removed.
        * fast/canvas/resources/translate-text.js: Removed.
        * fast/canvas/script-tests: Added.
        * fast/canvas/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/canvas/resources/TEMPLATE.html.
        * fast/canvas/script-tests/canvas-copyPixels.js: Copied from LayoutTests/fast/canvas/resources/canvas-copyPixels.js.
        * fast/canvas/script-tests/canvas-gradient-addStop-error.js: Copied from LayoutTests/fast/canvas/resources/canvas-gradient-addStop-error.js.
        * fast/canvas/script-tests/canvas-gradient-without-path.js: Copied from LayoutTests/fast/canvas/resources/canvas-gradient-without-path.js.
        * fast/canvas/script-tests/canvas-modify-emptyPath.js: Copied from LayoutTests/fast/canvas/resources/canvas-modify-emptyPath.js.
        * fast/canvas/script-tests/canvas-set-properties-with-non-invertible-ctm.js: Copied from LayoutTests/fast/canvas/resources/canvas-set-properties-with-non-invertible-ctm.js.
        * fast/canvas/script-tests/canvas-setTransform.js: Copied from LayoutTests/fast/canvas/resources/canvas-setTransform.js.
        * fast/canvas/script-tests/canvas-strokeRect.js: Copied from LayoutTests/fast/canvas/resources/canvas-strokeRect.js.
        * fast/canvas/script-tests/canvas-transparency-and-composite.js: Copied from LayoutTests/fast/canvas/resources/canvas-transparency-and-composite.js.
        * fast/canvas/script-tests/gradient-addColorStop-with-invalid-color.js: Copied from LayoutTests/fast/canvas/resources/gradient-addColorStop-with-invalid-color.js.
        * fast/canvas/script-tests/gradient-with-clip.js: Copied from LayoutTests/fast/canvas/resources/gradient-with-clip.js.
        * fast/canvas/script-tests/linearGradient-infinite-values.js: Copied from LayoutTests/fast/canvas/resources/linearGradient-infinite-values.js.
        * fast/canvas/script-tests/pattern-with-transform.js: Copied from LayoutTests/fast/canvas/resources/pattern-with-transform.js.
        * fast/canvas/script-tests/radialGradient-infinite-values.js: Copied from LayoutTests/fast/canvas/resources/radialGradient-infinite-values.js.
        * fast/canvas/script-tests/set-colors.js: Copied from LayoutTests/fast/canvas/resources/set-colors.js.
        * fast/canvas/script-tests/translate-text.js: Copied from LayoutTests/fast/canvas/resources/translate-text.js.
        * fast/canvas/set-colors.html:
        * fast/canvas/translate-text.html:
        * fast/css/getComputedStyle/computed-style-font-family-monospace.html:
        * fast/css/getComputedStyle/font-family-fallback-reset.html:
        * fast/css/getComputedStyle/getComputedStyle-text-decoration.html:
        * fast/css/getComputedStyle/resources/TEMPLATE.html: Removed.
        * fast/css/getComputedStyle/resources/computed-style-font-family-monospace.js: Removed.
        * fast/css/getComputedStyle/resources/font-family-fallback-reset.js: Removed.
        * fast/css/getComputedStyle/resources/getComputedStyle-text-decoration.js: Removed.
        * fast/css/getComputedStyle/script-tests: Added.
        * fast/css/getComputedStyle/script-tests/TEMPLATE.html: Copied from LayoutTests/fast/css/getComputedStyle/resources/TEMPLATE.html.
        * fast/css/getComputedStyle/script-tests/computed-style-font-family-monospace.js: Copied from LayoutTests/fast/css/getComputedStyle/resources/computed-style-font-family-monospace.js.
        * fast/css/getComputedStyle/script-tests/font-family-fallback-reset.js: Copied from LayoutTests/fast/css/getComputedStyle/resources/font-family-fallback-reset.js.
        * fast/css/getComputedStyle/script-tests/getComputedStyle-text-decoration.js: Copied from LayoutTests/fast/css/getComputedStyle/resources/getComputedStyle-text-decoration.js.

2009-09-19  Shinichiro Hamaji  <hamaji@chromium.org>

        Rubber-stamped by Eric Seidel.

        js tests should move into jstests subdirectory instead of resources/
        https://bugs.webkit.org/show_bug.cgi?id=25880

        Migration for editing directory.

        * editing/inserting/font-size-clears-from-typing-style.html:
        * editing/inserting/resources/TEMPLATE.html: Removed.
        * editing/inserting/resources/font-size-clears-from-typing-style.js: Removed.
        * editing/inserting/script-tests: Added.
        * editing/inserting/script-tests/TEMPLATE.html: Copied from LayoutTests/editing/inserting/resources/TEMPLATE.html.
        * editing/inserting/script-tests/font-size-clears-from-typing-style.js: Copied from LayoutTests/editing/inserting/resources/font-size-clears-from-typing-style.js.
        * editing/pasteboard/file-input-files-access.html:
        * editing/pasteboard/files-during-page-drags.html:
        * editing/pasteboard/get-data-text-plain-paste.html:
        * editing/pasteboard/resources/TEMPLATE.html: Removed.
        * editing/pasteboard/resources/file-input-files-access.js: Removed.
        * editing/pasteboard/resources/files-during-page-drags.js: Removed.
        * editing/pasteboard/resources/get-data-text-plain-paste.js: Removed.
        * editing/pasteboard/script-tests: Added.
        * editing/pasteboard/script-tests/TEMPLATE.html: Copied from LayoutTests/editing/pasteboard/resources/TEMPLATE.html.
        * editing/pasteboard/script-tests/file-input-files-access.js: Copied from LayoutTests/editing/pasteboard/resources/file-input-files-access.js.
        * editing/pasteboard/script-tests/files-during-page-drags.js: Copied from LayoutTests/editing/pasteboard/resources/files-during-page-drags.js.
        * editing/pasteboard/script-tests/get-data-text-plain-paste.js: Copied from LayoutTests/editing/pasteboard/resources/get-data-text-plain-paste.js.
        * editing/selection/click-in-margins-inside-editable-div.html:
        * editing/selection/click-in-padding-with-multiple-line-boxes.html:
        * editing/selection/click-outside-editable-div.html:
        * editing/selection/resources/TEMPLATE.html: Removed.
        * editing/selection/resources/click-in-margins-inside-editable-div.js: Removed.
        * editing/selection/resources/click-in-padding-with-multiple-line-boxes.js: Removed.
        * editing/selection/resources/click-outside-editable-div.js: Removed.
        * editing/selection/script-tests: Added.
        * editing/selection/script-tests/TEMPLATE.html: Copied from LayoutTests/editing/selection/resources/TEMPLATE.html.
        * editing/selection/script-tests/click-in-margins-inside-editable-div.js: Copied from LayoutTests/editing/selection/resources/click-in-margins-inside-editable-div.js.
        * editing/selection/script-tests/click-in-padding-with-multiple-line-boxes.js: Copied from LayoutTests/editing/selection/resources/click-in-padding-with-multiple-line-boxes.js.
        * editing/selection/script-tests/click-outside-editable-div.js: Copied from LayoutTests/editing/selection/resources/click-outside-editable-div.js.
        * editing/style/resources/TEMPLATE.html: Removed.
        * editing/style/resources/text-decoration-state.js: Removed.
        * editing/style/script-tests: Added.
        * editing/style/script-tests/TEMPLATE.html: Copied from LayoutTests/editing/style/resources/TEMPLATE.html.
        * editing/style/script-tests/text-decoration-state.js: Copied from LayoutTests/editing/style/resources/text-decoration-state.js.
        * editing/style/text-decoration-state.html:
        * editing/text-iterator/basic-iteration.html:
        * editing/text-iterator/resources/TEMPLATE.html: Removed.
        * editing/text-iterator/resources/basic-iteration.js: Removed.
        * editing/text-iterator/script-tests: Added.
        * editing/text-iterator/script-tests/TEMPLATE.html: Copied from LayoutTests/editing/text-iterator/resources/TEMPLATE.html.
        * editing/text-iterator/script-tests/basic-iteration.js: Copied from LayoutTests/editing/text-iterator/resources/basic-iteration.js.

2009-09-19  Shinichiro Hamaji  <hamaji@chromium.org>

        Rubber-stamped by Eric Seidel.

        js tests should move into jstests subdirectory instead of resources/
        https://bugs.webkit.org/show_bug.cgi?id=25880

        Attempt to split the huge patch as I failed to commit it...

        * editing/execCommand/break-out-of-empty-list-item.html:
        * editing/execCommand/convert-style-elements-to-spans.html:
        * editing/execCommand/empty-span-removal.html:
        * editing/execCommand/enabling-and-selection-2.html:
        * editing/execCommand/enabling-and-selection.html:
        * editing/execCommand/inline-style-after-indentoutdent.html:
        * editing/execCommand/resources/TEMPLATE.html: Removed.
        * editing/execCommand/resources/break-out-of-empty-list-item.js: Removed.
        * editing/execCommand/resources/convert-style-elements-to-spans.js: Removed.
        * editing/execCommand/resources/empty-span-removal.js: Removed.
        * editing/execCommand/resources/enabling-and-selection-2.js: Removed.
        * editing/execCommand/resources/enabling-and-selection.js: Removed.
        * editing/execCommand/resources/inline-style-after-indentoutdent.js: Removed.
        * editing/execCommand/resources/toggle-compound-styles.js: Removed.
        * editing/execCommand/resources/toggle-style-2.js: Removed.
        * editing/execCommand/resources/toggle-styles.js: Removed.
        * editing/execCommand/resources/toggle-text-decorations.js: Removed.
        * editing/execCommand/script-tests: Added.
        * editing/execCommand/script-tests/TEMPLATE.html: Copied from LayoutTests/editing/execCommand/resources/TEMPLATE.html.
        * editing/execCommand/script-tests/break-out-of-empty-list-item.js: Copied from LayoutTests/editing/execCommand/resources/break-out-of-empty-list-item.js.
        * editing/execCommand/script-tests/convert-style-elements-to-spans.js: Copied from LayoutTests/editing/execCommand/resources/convert-style-elements-to-spans.js.
        * editing/execCommand/script-tests/empty-span-removal.js: Copied from LayoutTests/editing/execCommand/resources/empty-span-removal.js.
        * editing/execCommand/script-tests/enabling-and-selection-2.js: Copied from LayoutTests/editing/execCommand/resources/enabling-and-selection-2.js.
        * editing/execCommand/script-tests/enabling-and-selection.js: Copied from LayoutTests/editing/execCommand/resources/enabling-and-selection.js.
        * editing/execCommand/script-tests/inline-style-after-indentoutdent.js: Copied from LayoutTests/editing/execCommand/resources/inline-style-after-indentoutdent.js.
        * editing/execCommand/script-tests/toggle-compound-styles.js: Copied from LayoutTests/editing/execCommand/resources/toggle-compound-styles.js.
        * editing/execCommand/script-tests/toggle-style-2.js: Copied from LayoutTests/editing/execCommand/resources/toggle-style-2.js.
        * editing/execCommand/script-tests/toggle-styles.js: Copied from LayoutTests/editing/execCommand/resources/toggle-styles.js.
        * editing/execCommand/script-tests/toggle-text-decorations.js: Copied from LayoutTests/editing/execCommand/resources/toggle-text-decorations.js.
        * editing/execCommand/toggle-compound-styles.html:
        * editing/execCommand/toggle-style-2.html:
        * editing/execCommand/toggle-styles.html:
        * editing/execCommand/toggle-text-decorations.html:

2009-09-18  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        Element is misplaced during opacity transition with certain configuration of transform-origin and clipping
        https://bugs.webkit.org/show_bug.cgi?id=29495
        
        Testcase that has a transform-origin on a layer with zero size.

        * compositing/geometry/transfrom-origin-on-zero-size-layer.html: Added.
        * platform/mac/compositing/geometry/transfrom-origin-on-zero-size-layer-expected.checksum: Added.
        * platform/mac/compositing/geometry/transfrom-origin-on-zero-size-layer-expected.png: Added.
        * platform/mac/compositing/geometry/transfrom-origin-on-zero-size-layer-expected.txt: Added.

2009-09-18  Drew Wilson  <atwilson@google.com>

        Reviewed by Eric Seidel.

        REGRESSION: fast/workers/worker-cloneport.html failing intermttently on leopard bot
        https://bugs.webkit.org/show_bug.cgi?id=29341

        * fast/workers/worker-cloneport-expected.txt:
        Updated to reflect new output (lower clone count threshold).
        * fast/workers/worker-cloneport.html:
        Updated test to have a more lenient performance requirement and timeout, to address flakiness on Leopard and Chromium.

2009-09-18  Oliver Hunt  <oliver@apple.com>

        Reviewed by Geoff Garen.

        Implement ES5 Object.defineProperty function
        https://bugs.webkit.org/show_bug.cgi?id=29503

        Add testcases for Object.defineProperty.

        * fast/js/Object-defineProperty-expected.txt: Added.
        * fast/js/Object-defineProperty.html: Added.
        * fast/js/resources/Object-defineProperty.js: Added.
        * http/tests/security/resources/xss-DENIED-defineProperty-attacker.html: Added.
        * http/tests/security/xss-DENIED-defineProperty-expected.txt: Added.
        * http/tests/security/xss-DENIED-defineProperty.html: Added.

2009-09-18  Brady Eidson  <beidson@apple.com>

        Reviewed by Alexey Proskuryakov.

        Speculative fix for:
        https://bugs.webkit.org/show_bug.cgi?id=29322
        and
        https://bugs.webkit.org/show_bug.cgi?id=29505

        Adding a "Connection: close" header might make the tests work more reliably, 
        and doesn't seem to make anything worse: They all continue to pass on my machine!

        * http/tests/loading/resources/basic-auth-testing.php:
        * http/tests/loading/resources/othersubresources/protected-resource.php:
        * http/tests/loading/resources/protected-resource.php:
        * http/tests/loading/resources/subresources/protected-resource.php:
        * http/tests/xmlhttprequest/resources/cross-origin-authorization.php:
        * http/tests/xmlhttprequest/resources/cross-origin-check-cookies.php:
        * http/tests/xmlhttprequest/resources/cross-origin-no-authorization.php:

2009-09-18  Alpha Lam  <hclam@chromium.org>

        Reviewed by Eric Carlson.

        Media layout tests should have a way to provide test files in different formats
        https://bugs.webkit.org/show_bug.cgi?id=28327

        Updating 25 media layout tests to use media files based on supported codecs.

        * media/progress-event-at-least-one.html: Use findMediaFile() to locate a supported media file.
        * media/video-pause-empty-events.html: ditto.
        * media/video-play-empty-events.html: ditto.
        * media/video-play-pause-events.html: ditto.
        * media/video-played-collapse.html: ditto.
        * media/video-played-ranges-1.html: ditto.
        * media/video-played-reset.html: ditto.
        * media/video-played.js: ditto.
        (videoPlayedMain):
        * media/video-seek-past-end-paused.html: ditto.
        * media/video-seek-past-end-playing.html: ditto.
        * media/video-seekable.html: ditto.
        * media/video-seeking.html: ditto.
        * media/video-size.html: ditto.
        * media/video-source-error.html: ditto.
        * media/video-source-type-params.html: ditto.
        * media/video-source-type.html: ditto.
        * media/video-source.html: ditto.
        * media/video-src-change.html: ditto.
        * media/video-src-invalid-remove.html: ditto.
        * media/video-src-remove.html: ditto. Use counting.mp4 instead of silence.mpg.
        * media/video-src-remove-expected.txt: Updated results.
        * media/video-src-set.html: ditto.
        * media/video-src-source.html: ditto.
        * media/video-src.html: ditto.
        * media/video-timeupdate-during-playback.html: ditto.
        * media/video-volume.html: ditto.
        * media/video-zoom.html: ditto.

2009-09-18  Anders Carlsson  <andersca@apple.com>

        Add failing tests to the skipped list.
        
        * platform/mac-snowleopard/Skipped:

2009-09-18  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dave Hyatt.

        Compositing layers are incorrectly positioned after scrolling with position:fixed
        https://bugs.webkit.org/show_bug.cgi?id=29262
        
        Add testcase for scrolling a page with position:fixed composited content.

        * compositing/geometry/fixed-position.html: Added.
        * platform/mac/compositing/geometry/fixed-position-expected.checksum: Added.
        * platform/mac/compositing/geometry/fixed-position-expected.png: Added.
        * platform/mac/compositing/geometry/fixed-position-expected.txt: Added.

2009-09-18  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dave Hyatt.

        Transformed elements inside position:fixed container are clipped incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=29346
        
        Testcase for clipping a transformed element inside a position:fixed parent.

        * fast/overflow/position-fixed-transform-clipping.html: Added.
        * platform/mac/fast/overflow/position-fixed-transform-clipping-expected.checksum: Added.
        * platform/mac/fast/overflow/position-fixed-transform-clipping-expected.png: Added.
        * platform/mac/fast/overflow/position-fixed-transform-clipping-expected.txt: Added.

2009-09-18  Dan Bernstein  <mitz@apple.com>

        Updated test result for <rdar://problem/7050773>

        * platform/mac/accessibility/document-attributes-expected.txt:

2009-09-18  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        Test for <rdar://problem/7050773> REGRESSION (r40098) Crash at
        WebCore::RenderBlock::layoutBlock()
        https://bugs.webkit.org/show_bug.cgi?id=29498

        * accessibility/nested-layout-crash-expected.txt: Added.
        * accessibility/nested-layout-crash.html: Added.

2009-09-18  Sam Weinig  <sam@webkit.org>

        Reviewed by Adele Peterson.

        Test for https://bugs.webkit.org/show_bug.cgi?id=29276
        REGRESSION(r48334): WebKit crashes on file select by drag

        * fast/events/drag-file-crash-expected.txt: Added.
        * fast/events/drag-file-crash.html: Added.

2009-09-18  Steve Block  <steveblock@google.com>

        Reviewed by Dimitri Glazkov.

        Geolocation does not correctly handle Infinity for PositionOptions properties.
        https://bugs.webkit.org/show_bug.cgi?id=29099

        * fast/dom/Geolocation/resources/argument-types.js: Modified. Test passing positive and negative Infinity to Geolocation methods.
        * fast/dom/Geolocation/argument-types-expected.txt: Modified. Expected result for above test.

2009-09-17  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Steve Falkenburg.

        Add failing test on both Windows Debug and Release to the
        Windows Skipped List.
        
        http/tests/xmlhttprequest/xmlhttprequest-missing-file-exception.html is
        being tracked by <https://bugs.webkit.org/show_bug.cgi?id=29353>.

        * platform/win/Skipped:

2009-09-17  Alpha Lam  <hclam@chromium.org>

        Reviewed by Eric Carlson.

        Media layout tests should have a way to provide test files in different formats
        https://bugs.webkit.org/show_bug.cgi?id=28327

        Updating 19 media layout tests to use media files based on supported codecs.

        * media/media-file.js: Prefer .wav over other formats as this is used the most in tests for mac port.
        Most of audio tests use media/content/test.wav as test file for mac, so this change would make sure
        findMediaFile() will return test.wav but not test.mp3 or other formats.
        (setSrcById): Fixing bug in code.
        * media/video-canvas-source.html: Use findMediaFile() to locate a media file based on supported types.
        * media/video-click-dblckick-standalone.html: ditto.
        * media/video-controls-transformed.html: ditto.
        * media/video-controls-visible-audio-only.html: ditto.
        * media/video-controls-zoomed.html: ditto.
        * media/video-controls.html: ditto.
        * media/video-currentTime-set.html: ditto.
        * media/video-currentTime-set2.html: ditto.
        * media/video-currentTime.html: ditto.
        * media/video-display-none-crash.html: ditto.
        * media/video-display-toggle.html: ditto.
        * media/video-dom-autoplay.html: ditto.
        * media/video-dom-src.html: ditto.
        * media/video-error-abort.html: ditto.
        * media/video-load-networkState.html: ditto.
        * media/video-load-readyState.html: ditto.
        * media/video-loop.html: ditto.
        * media/video-muted.html: ditto.
        * media/video-no-autoplay.html: ditto.

2009-09-17  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dave Hyatt.

        Hardware-accelerated opacity transition on inline asserts
        https://bugs.webkit.org/show_bug.cgi?id=29342

        Test that runs a hardware-accelerated opacity transition on an inline element.
        
        * compositing/transitions/opacity-on-inline-expected.txt: Added.
        * compositing/transitions/opacity-on-inline.html: Added.

2009-09-17  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Rubber-stamped by Brady Eidson.

        Tiger fails test http/tests/loading/redirect-with-no-location-crash.html added in r48413
        https://bugs.webkit.org/show_bug.cgi?id=29329

        Skip test that fails on Tiger because of a bug in its version of
        CFNetwork.

        * platform/mac-tiger/Skipped:

2009-09-17  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        REGRESSION: media/video-size-intrinsic-scale.html (and other media tests?) crashing/timing-out intermittently
        https://bugs.webkit.org/show_bug.cgi?id=28845

        Skip media/video-size-intrinsic-scale.html in hopes of stopping the crashers.
        I ran the media tests with --iterations 30 w/o seeing a crash.
        I also re-enabled media/video-source-add-src.html now that we know it is not at fault.

        * media/video-source-add-src.html: Renamed from LayoutTests/media/video-source-add-src.html-disabled.
        * platform/mac-leopard/Skipped:

2009-09-17  Anton Muhin  <antonm@chromium.org>

        Reviewed by Adam Barth.

        Add layout tests to verify there is no security leaks if someone sets a prototype of top
        window to its child window.
        https://bugs.webkit.org/show_bug.cgi?id=29334

        * http/tests/security/resources/iframe-with-element.html: Added.
        * http/tests/security/xss-DENIED-htmlelelment-with-iframe-proto-expected.txt: Added.
        * http/tests/security/xss-DENIED-htmlelelment-with-iframe-proto.html: Added.
        * http/tests/security/xss-DENIED-method-with-iframe-proto-expected.txt: Added.
        * http/tests/security/xss-DENIED-method-with-iframe-proto.html: Added.
        * http/tests/security/xss-DENIED-non-shadowable-propterty-with-iframe-proto-expected.txt: Added.
        * http/tests/security/xss-DENIED-non-shadowable-propterty-with-iframe-proto.html: Added.
        * http/tests/security/xss-DENIED-regular-propterty-with-iframe-proto-expected.txt: Added.
        * http/tests/security/xss-DENIED-regular-propterty-with-iframe-proto.html: Added.

2009-09-17  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Beth Dakin.

        AX: labels of checkboxes should, when hit-tested, return the checkbox
        https://bugs.webkit.org/show_bug.cgi?id=29335

        * accessibility/label-for-control-hittest-expected.txt: Added.
        * accessibility/label-for-control-hittest.html: Added.
        * platform/gtk/Skipped:
        * platform/win/Skipped:

2009-09-17  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Adam Roben.

        Add a newline to the end of the expected file, should fix results.

        * platform/win/transforms/2d/hindi-rotated-expected.txt:

2009-09-17  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Adam Roben.

        Updated Windows results on three failing tests, adding font-smoothing to computed-style,
        and udpated the hindi-rotated-expected to what it has been getting on the bots.

        * platform/win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/win/transforms/2d/hindi-rotated-expected.txt:

2009-09-16  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        Elements appear behind <video> when they should be in front sometimes
        https://bugs.webkit.org/show_bug.cgi?id=29314
        
        Testcase for a div layered on top of a video element, with a particular configuration
        of position and opacity.

        * compositing/geometry/video-opacity-overlay.html: Added.
        * platform/mac/compositing/geometry/video-opacity-overlay-expected.checksum: Added.
        * platform/mac/compositing/geometry/video-opacity-overlay-expected.png: Added.
        * platform/mac/compositing/geometry/video-opacity-overlay-expected.txt: Added.

2009-09-17  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Simon Hausmann.

        [Qt] Add expected file for passing font-smoothing test and update computed style tests since font smoothing is auto by default.

        * platform/qt/fast/css/font-smoothing-expected.txt: Added.
        * platform/qt/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/qt/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:

2009-09-17  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Simon Hausmann.

        [Qt] Skip failing tests for now to prepare default font size reconciliation.

        * platform/qt/Skipped:

2009-09-16  Daniel Bates  <dbates@webkit.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=29306
        
        Tests that scripts with accented characters do not bypass the XSSAuditor.

        * http/tests/security/xssAuditor/img-onerror-accented-char-expected.txt: Added.
        * http/tests/security/xssAuditor/img-onerror-accented-char.html: Added.

2009-09-16  Adam Barth  <abarth@webkit.org>

        Unreviewed.  Added new isolated world test to the skipped list.

        * platform/gtk/Skipped:
        * platform/mac/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:

2009-09-16  Adam Barth  <abarth@webkit.org>

        Reviewed by Dimitri Glazkov.

        [V8] Teach ScheduledAction::execute about isolated worlds
        https://bugs.webkit.org/show_bug.cgi?id=27703

        Add test coverage for the interaction between setTimeout and isolated
        worlds.

        * http/tests/security/isolatedWorld/window-setTimeout-function-expected.txt: Added.
        * http/tests/security/isolatedWorld/window-setTimeout-function.html: Added.
        * http/tests/security/isolatedWorld/window-setTimeout-string-expected.txt: Added.
        * http/tests/security/isolatedWorld/window-setTimeout-string.html: Added.

2009-09-15  Kent Tamura  <tkent@chromium.org>

        Reviewed by Eric Seidel.

        <input maxlength=> should restrict only values specified by users.
        https://bugs.webkit.org/show_bug.cgi?id=21271

        * fast/forms/input-appearance-maxlength-expected.txt:
        * fast/forms/input-appearance-maxlength.html:
        * fast/forms/input-maxlength-expected.txt:
        * fast/forms/input-maxlength.html:
        * fast/forms/input-text-maxlength-expected.txt: Added.
        * fast/forms/input-text-maxlength.html:
        * fast/forms/input-text-paste-maxlength-expected.txt: Added.
        * fast/forms/input-text-paste-maxlength.html:
        * platform/mac-leopard/fast/forms/input-text-maxlength-expected.checksum: Removed.
        * platform/mac-leopard/fast/forms/input-text-maxlength-expected.png: Removed.
        * platform/mac-leopard/fast/forms/input-text-maxlength-expected.txt: Removed.
        * platform/mac-leopard/fast/forms/input-text-paste-maxlength-expected.checksum: Removed.
        * platform/mac-leopard/fast/forms/input-text-paste-maxlength-expected.png: Removed.
        * platform/mac-leopard/fast/forms/input-text-paste-maxlength-expected.txt: Removed.
        * platform/mac/fast/forms/input-text-maxlength-expected.txt: Removed.
        * platform/mac/fast/forms/input-text-paste-maxlength-expected.txt: Removed.
        * platform/qt/fast/forms/input-text-maxlength-expected.txt: Removed.
        * platform/qt/fast/forms/input-text-paste-maxlength-expected.txt: Removed.
        * platform/win/fast/forms/input-text-maxlength-expected.txt: Removed.
        * platform/win/fast/forms/input-text-paste-maxlength-expected.txt: Removed.

2009-09-16  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.

        Added a test for a potential crash when adding an event listener to a
        doctype node.

        * fast/dom/doctype-event-listener-crash-expected.txt: Added.
        * fast/dom/doctype-event-listener-crash.html: Added.

2009-09-16  Beth Dakin  <bdakin@apple.com>

        Reviewed by Darin Adler.

        Tests for <rdar://problem/7083741> Implement a CSS extension to 
        adjust sub-pixel anti-aliasing for text

        New tests:
        * fast/css/font-smoothing.html: Added.
        * fast/css/parsing-webkit-font-smoothing-expected.txt: Added.
        * fast/css/parsing-webkit-font-smoothing.html: Added.
        * fast/css/resources/parsing-webkit-font-smoothing.js: Added.
        (test):
        * platform/mac/fast/css/font-smoothing-expected.checksum: Added.
        * platform/mac/fast/css/font-smoothing-expected.png: Added.
        * platform/mac/fast/css/font-smoothing-expected.txt: Added.

        These tests have updated results now that -webkit-font-smoothing is 
        reported with computed style.
        * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * svg/css/getComputedStyle-basic-expected.txt:

2009-09-16  Yury Semikhatsky  <yurys@chromium.org>

        Reviewed by Timothy Hatcher.

        Added a test that checks that margin property shorthand has correct value
        when there is background-repeat property in the style declaration. 

        https://bugs.webkit.org/show_bug.cgi?id=28973

        * fast/backgrounds/repeat/margin-shorthand-expected.txt: Added.
        * fast/backgrounds/repeat/margin-shorthand.html: Added.
        * fast/backgrounds/repeat/resources/TEMPLATE.html: Added.
        * fast/backgrounds/repeat/resources/margin-shorthand.css: Added.
        * fast/backgrounds/repeat/resources/margin-shorthand.js: Added.
        (iconMarginValue):

2009-09-16  Carol Szabo  <carol.szabo@nokia.com>

        Reviewed by Alexey Proskuryakov.

        Incorrect behavior of XMLHttpRequest::getAllResponseHeaders and XMLHttpRequest::getResponseHeader in the
        HEADERS_RECEIVED readyState.
        https://bugs.webkit.org/show_bug.cgi?id=29121

        * http/tests/xmlhttprequest/getAllResponseHeaders-expected.txt: Copied from LayoutTests/http/tests/xmlhttprequest/xmlhttprequest-InvalidStateException-getAllRequestHeaders-expected.txt.
        * http/tests/xmlhttprequest/getAllResponseHeaders.html: Copied from LayoutTests/http/tests/xmlhttprequest/xmlhttprequest-InvalidStateException-getAllRequestHeaders.html.
        * http/tests/xmlhttprequest/getResponseHeader-expected.txt: Copied from LayoutTests/http/tests/xmlhttprequest/xmlhttprequest-InvalidStateException-getRequestHeader-expected.txt.
        * http/tests/xmlhttprequest/getResponseHeader.html: Copied from LayoutTests/http/tests/xmlhttprequest/xmlhttprequest-InvalidStateException-getRequestHeader.html.
        * http/tests/xmlhttprequest/xmlhttprequest-InvalidStateException-getAllRequestHeaders-expected.txt: Removed.
        * http/tests/xmlhttprequest/xmlhttprequest-InvalidStateException-getAllRequestHeaders.html: Removed.
        * http/tests/xmlhttprequest/xmlhttprequest-InvalidStateException-getRequestHeader-expected.txt: Removed.
        * http/tests/xmlhttprequest/xmlhttprequest-InvalidStateException-getRequestHeader.html: Removed.
        Modified xmlhttprequest-InvalidStateException-getAllRequestHeaders and xmlhttprequest-InvalidStateException-getRequestHeader to match the current spec and code behavior.
        Extended the first test to cover other aspects of the getAllResponseHeaders method and planning the same extension for the second test.
        The extension for the second test is to be submitted with the patch for bug 29140.
        Renamed the 2 tests to a shorter more accurate name, given their new intended scope.

2009-09-16  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        One more try at rebaselining the tests for those who dump frame
        loader delegates.

        * http/tests/loading/redirect-with-no-location-crash-expected.txt:

2009-09-16  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Unreviewed. Rebaseline for those who support dumping of frame
        loader delegates, add specific expected result to GTK+

        * http/tests/loading/redirect-with-no-location-crash-expected.txt:
        * platform/gtk/http/tests/loading/redirect-with-no-location-crash-expected.txt: Copied from LayoutTests/http/tests/loading/redirect-with-no-location-crash-expected.txt.

2009-09-16  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Xan Lopez.

        [GTK] Crash when visiting http://flipper.googlelabs.com/
        https://bugs.webkit.org/show_bug.cgi?id=29293

        * http/tests/loading/redirect-with-no-location-crash.html: Added.
        * http/tests/loading/redirect-with-no-location-crash-expected.html: Added.
        * http/tests/loading/resources/redirect-with-no-location-crash.php: Added.

2009-09-15  Chris Fleizach  <cfleizach@apple.com>

        WAI-ARIA: add support for ranges, including the progressbar, slider, and spinbutton roles
        https://bugs.webkit.org/show_bug.cgi?id=28841

        Layout test fix redux. 
        The paths to the fast/js resources needed to be updated.

        * platform/mac/accessibility/aria-slider-value-change.html:

2009-09-15  Chris Fleizach  <cfleizach@apple.com>

        Layout test fix. 
        This test should only be for Mac, since the other platforms don't support the necessary features.

        WAI-ARIA: add support for ranges, including the progressbar, slider, and spinbutton roles
        https://bugs.webkit.org/show_bug.cgi?id=28841

        * accessibility/aria-slider-value-change-expected.txt: Removed.
        * accessibility/aria-slider-value-change.html: Removed.
        * platform/mac/accessibility/aria-slider-value-change-expected.txt: Copied from LayoutTests/accessibility/aria-slider-value-change-expected.txt.
        * platform/mac/accessibility/aria-slider-value-change.html: Copied from LayoutTests/accessibility/aria-slider-value-change.html.

2009-09-15  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Beth Dakin.

        WAI-ARIA: add support for ranges, including the progressbar, slider, and spinbutton roles
        https://bugs.webkit.org/show_bug.cgi?id=28841

        * accessibility/aria-slider-value-change-expected.txt: Added.
        * accessibility/aria-slider-value-change.html: Added.

2009-09-15  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Steve Falkenburg.

        Add four currently failing tests to the Skipped list so we can figure out what's wrong
        with them and try to get the bot closer to green. Bugs have been filed for each test.

        * platform/win/Skipped:

2009-09-14  Andrew Richards  <randrew@gmail.com>

        Reviewed by Sam Weinig.

        Document.elementFromPoint() and Document.caretRangeFromPoint() returning null at points visible only after scrolling.
        https://bugs.webkit.org/show_bug.cgi?id=29245

        Extend tests to include hits in areas that are not in the initial containing block of the page.

        * fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt:
        * fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport.html:
        * fast/dom/elementFromPoint-relative-to-viewport-expected.txt:
        * fast/dom/elementFromPoint-relative-to-viewport.html:

2009-09-15  Jungshik Shin  <jshin@chromium.org>

        Reviewed by Eric Seidel

        http://bugs.webkit.org/show_bug.cgi?id=26660

        Chromium Windows: When rotated, the baseline for a span of complex
        script is completely misaligned with that of the adjacent simple
        script text.

        * transforms/2d/hindi-rotated.html: Added.
        * platform/mac/transforms/2d/hindi-rotated-expected.checksum: Added.
        * platform/mac/transforms/2d/hindi-rotated-expected.png: Added.
        * platform/mac/transforms/2d/hindi-rotated-expected.txt: Added.
        * platform/win/transforms: Added.
        * platform/win/transforms/2d: Added.
        * platform/win/transforms/2d/hindi-rotated-expected.checksum: Added.
        * platform/win/transforms/2d/hindi-rotated-expected.png: Added.
        * platform/win/transforms/2d/hindi-rotated-expected.txt: Added.

2009-09-15  Drew Wilson  <atwilson@google.com>

        Reviewed by Darin Adler.

        MessageEvent should not be cancelable by default
        https://bugs.webkit.org/show_bug.cgi?id=27846

        * fast/events/message-port-expected.txt:
        * fast/events/message-port.html:
        Added test case to check state of MessageEvent.cancelable attribute.

2009-09-15  Charles Wei  <charles.wei@torchmobile.com.cn>

        Reviewed by George Staikos.

        Add a new test case for SVG Path parsing with a default command and starts with dot '.'
        https://bugs.webkit.org/show_bug.cgi?id=29123

        * svg/dom/path-parser-expected.txt:
        * svg/dom/resources/path-parser.js:

2009-09-14  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin Adler.

        Page cache should support pages with unload handlers as an experiment.
        <rdar://problem/7196485> and https://bugs.webkit.org/show_bug.cgi?id=29021

        Disable fast/loader/frames-with-unload-handlers-in-page-cache.html as it doesn't
        make sense in the context of this experiment.

        * platform/mac/Skipped: 
        * platform/win/Skipped:

2009-09-14  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Oliver Hunt.

        Add a sample webgl test
        https://bugs.webkit.org/show_bug.cgi?id=29254

        * fast/canvas/webgl: Added.
        * fast/canvas/webgl/gl-get-calls-expected.txt: Added.
        * fast/canvas/webgl/gl-get-calls.html: Added.

2009-09-14  Brady Eidson  <beidson@apple.com>

        Rubberstamped by Alexey Proskuryakov.

        <rdar://problem/7223068> - Tiger NSURLConnection sometimes doesn't send a credential you told it to.

        * platform/mac-tiger/Skipped:

2009-09-14  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        <rdar://problem/7047282> Safari crashes at WebCore::RenderMenuList::adjustInnerStyle() 436

        Test that changes the <select> from a popup to a list inside a mouse event handler.

        * fast/forms/select-change-popup-to-listbox-in-event-handler-expected.txt: Added.
        * fast/forms/select-change-popup-to-listbox-in-event-handler.html: Added.

2009-09-11  Jon Honeycutt  <jhoneycutt@apple.com>

        DRT/test part of
        <rdar://problem/7197644> WebKit should broadcast an MSAA event when
        jumping to a named anchor

        https://bugs.webkit.org/show_bug.cgi?id=28899

        Reviewed by Adam Roben.

        * platform/win/accessibility/scroll-to-anchor-expected.txt: Added.
        * platform/win/accessibility/scroll-to-anchor.html:
        Added. Turns on scrolling start event logging, then jumps to an
        anchor at the bottom of the page.

2009-09-14  Brady Eidson  <beidson@apple.com>

        Reviewed by Alexey Proskuryakov.

        Safari 4 cannot be used to update firmware on Linksys routers.
        <rdar://problem/7174050> and https://bugs.webkit.org/show_bug.cgi?id=29160

        * http/tests/loading/basic-auth-resend-wrong-credentials-expected.txt: Added.
        * http/tests/loading/basic-auth-resend-wrong-credentials.html: Added.
        * http/tests/loading/basic-credentials-sent-automatically-expected.txt: Added.
        * http/tests/loading/basic-credentials-sent-automatically.html: Added.
        * http/tests/loading/resources/basic-auth-testing.php: Added.
        * http/tests/loading/resources/othersubresources: Added.
        * http/tests/loading/resources/othersubresources/protected-resource.php: Added.
        * http/tests/loading/resources/protected-resource.php: Added.
        * http/tests/loading/resources/subresources: Added.
        * http/tests/loading/resources/subresources/protected-resource.php: Added.
        * http/tests/loading/resources/test2: Added.
        * http/tests/loading/resources/test2/basic-auth-testing.php: Added.
        * http/tests/loading/resources/test2/protected-resource.php: Added.
        * platform/gtk/Skipped:
        * platform/qt/Skipped:

2009-09-14  Zan Dobersek  <zandobersek@gmail.com>

        Reviewed by Gustavo Noronha.

        Add some tests that fail to the skipped list and rebaseline two tests
        to pass them.

        * platform/gtk/Skipped: Populate with more failing tests.
        * platform/gtk/fast/dom/Window/window-properties-expected.txt: Rebaseline.
        * platform/gtk/fast/dom/prototype-inheritance-2-expected.txt: Ditto.

2009-09-12  Mark Rowe  <mrowe@apple.com>

        Reviewed by Dan Bernstein.

        Test for <rdar://problem/6954546> and <rdar://problem/7090444>.

        * plugins/destroy-during-npp-new-expected.txt: Added.
        * plugins/destroy-during-npp-new.html: Added.

2009-09-12  Oliver Hunt  <oliver@apple.com>

        Reviewed by Maciej Stachowiak.

        [ES5] Implement Object.keys
        https://bugs.webkit.org/show_bug.cgi?id=29170

        Add tests for Object.keys(o), both standard usage and cross origin.

        * fast/js/Object-keys-expected.txt: Added.
        * fast/js/Object-keys.html: Added.
        * fast/js/resources/Object-keys.js: Added.
        * http/tests/security/cross-frame-access-enumeration-expected.txt:
        * http/tests/security/cross-frame-access-enumeration.html:

2009-09-12  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Test for https://bugs.webkit.org/show_bug.cgi?id=29219
        Document.elementFromPoint() should take page scroll into consideration

        * fast/dom/elementFromPoint-relative-to-viewport-expected.txt: Added.
        * fast/dom/elementFromPoint-relative-to-viewport.html: Added.
        * fast/events/offsetX-offsetY.html: Change to use clientX/Y instead of pageX/Y.
        * fast/forms/slider-transformed.html: Ditto.
        * fast/forms/slider-zoomed.html: Ditto.

2009-09-12  Sam Weinig  <sam@webkit.org>

        Reviewed by Maciej Stachowiak.

        Test for https://bugs.webkit.org/show_bug.cgi?id=29217
        Document.caretRangeFromPoint should take the scroll offset into account before hit testing

        * fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt: Added.
        * fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport.html: Added.

2009-09-11  Oliver Hunt  <oliver@apple.com>

        Reviewed by Sam Weinig.

        getPropertyNames caching is invalid when the prototype chain contains objects with custom getPropertyNames
        https://bugs.webkit.org/show_bug.cgi?id=29214

        Add test case for for-in caching.

        * fast/js/for-in-cached-expected.txt:
        * fast/js/resources/for-in-cached.js:
        (forIn4):

2009-09-10  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        aria definition role spelled wrong "defintion"
        https://bugs.webkit.org/show_bug.cgi?id=28840

        * platform/mac/accessibility/aria-grouping-roles-expected.txt:
        * platform/mac/accessibility/aria-grouping-roles.html:

2009-09-11  Erik Arvidsson  <arv@chromium.org>

        Reviewed by Eric Seidel.

        Fixes an assert in Node::isFocusable which was causing crashes in certain cases.
        https://bugs.webkit.org/show_bug.cgi?id=29210

        * fast/events/resources/tab-is-focusable-assert.js:
        * fast/events/tab-is-focusable-assert-expected.txt: Added.

2009-09-11  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Mark Rowe.

        Add the http/tests/security/mixedContent to the Skipped list while
        test failures are being investigated.

        * platform/win/Skipped:

2009-09-11  Eric Seidel  <eric@webkit.org>

        No review, rolling out r48229.
        http://trac.webkit.org/changeset/48229

        * fast/events/drag-dropeffect-expected.txt: Removed.
        * fast/events/drag-dropeffect.html: Removed.

2009-09-11  Michelangelo De Simone  <micdesim@gmail.com>

        Reviewed by Antti Koivisto.

        https://bugs.webkit.org/show_bug.cgi?id=27456
        Test case for url validation in ValidityState.

        * fast/forms/ValidityState-typeMismatch-url-expected.txt: Added.
        * fast/forms/ValidityState-typeMismatch-url.html: Added.
        * fast/forms/resources/ValidityState-typeMismatch-url.js: Added.
        (check):

2009-09-11  Cameron McCormack  <cam@mcc.id.au>

        Reviewed by Eric Seidel.

        Make ElementTimeControl methods return void and not throw.
        https://bugs.webkit.org/show_bug.cgi?id=28831

        SVG 1.1 erratum:
        http://www.w3.org/2003/01/REC-SVG11-20030114-errata#elementtimecontrol-interface

        * svg/dom/smil-methods-expected.txt: Added.
        * svg/dom/smil-methods.svg: Added.

2009-09-11  Adam Roben  <aroben@apple.com>

        Get user script/stylesheet tests running on Windows

        Fixes <http://webkit.org/b/29181> User script/stylesheet tests are
        skipped on Windows

        Reviewed by John Sullivan.

        * platform/win/Skipped: Removed the userscripts directory.

2009-09-10  Adam Barth  <abarth@webkit.org>

        Reviewed by Sam Weinig.

        Detect mixed content
        https://bugs.webkit.org/show_bug.cgi?id=29003

        Add some tests for mixed content.  All but one of these tests pass
        currently.  The one that fails is pretty tricky, but I wanted to get it
        into the tree with a FIXME so we won't forget it.  I'll file a followup
        bug about fixing it.

        * http/tests/security/mixedContent/about-blank-iframe-in-main-frame-expected.txt: Added.
        * http/tests/security/mixedContent/about-blank-iframe-in-main-frame.html: Added.
        * http/tests/security/mixedContent/data-url-iframe-in-main-frame-expected.txt: Added.
        * http/tests/security/mixedContent/data-url-iframe-in-main-frame.html: Added.
        * http/tests/security/mixedContent/data-url-script-in-iframe-expected.txt: Added.
        * http/tests/security/mixedContent/data-url-script-in-iframe.html: Added.
        * http/tests/security/mixedContent/insecure-css-in-iframe-expected.txt: Added.
        * http/tests/security/mixedContent/insecure-css-in-iframe.html: Added.
        * http/tests/security/mixedContent/insecure-css-in-main-frame-expected.txt: Added.
        * http/tests/security/mixedContent/insecure-css-in-main-frame.html: Added.
        * http/tests/security/mixedContent/insecure-iframe-in-iframe-expected.txt: Added.
        * http/tests/security/mixedContent/insecure-iframe-in-iframe.html: Added.
        * http/tests/security/mixedContent/insecure-iframe-in-main-frame-expected.txt: Added.
        * http/tests/security/mixedContent/insecure-iframe-in-main-frame.html: Added.
        * http/tests/security/mixedContent/insecure-image-in-iframe-expected.txt: Added.
        * http/tests/security/mixedContent/insecure-image-in-iframe.html: Added.
        * http/tests/security/mixedContent/insecure-image-in-main-frame-expected.txt: Added.
        * http/tests/security/mixedContent/insecure-image-in-main-frame.html: Added.
        * http/tests/security/mixedContent/insecure-script-in-iframe-expected.txt: Added.
        * http/tests/security/mixedContent/insecure-script-in-iframe.html: Added.
        * http/tests/security/mixedContent/redirect-http-to-https-iframe-in-main-frame-expected.txt: Added.
        * http/tests/security/mixedContent/redirect-http-to-https-iframe-in-main-frame.html: Added.
        * http/tests/security/mixedContent/redirect-http-to-https-script-in-iframe-expected.txt: Added.
        * http/tests/security/mixedContent/redirect-http-to-https-script-in-iframe.html: Added.
        * http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame-expected.txt: Added.
        * http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame.html: Added.
        * http/tests/security/mixedContent/redirect-https-to-http-script-in-iframe-expected.txt: Added.
        * http/tests/security/mixedContent/redirect-https-to-http-script-in-iframe.html: Added.
        * http/tests/security/mixedContent/resources/boring.html: Added.
        * http/tests/security/mixedContent/resources/frame-with-about-blank-frame.html: Added.
        * http/tests/security/mixedContent/resources/frame-with-data-url-frame.html: Added.
        * http/tests/security/mixedContent/resources/frame-with-data-url-script.html: Added.
        * http/tests/security/mixedContent/resources/frame-with-insecure-css.html: Added.
        * http/tests/security/mixedContent/resources/frame-with-insecure-frame.html: Added.
        * http/tests/security/mixedContent/resources/frame-with-insecure-image.html: Added.
        * http/tests/security/mixedContent/resources/frame-with-insecure-script.html: Added.
        * http/tests/security/mixedContent/resources/frame-with-redirect-http-to-https-frame.html: Added.
        * http/tests/security/mixedContent/resources/frame-with-redirect-http-to-https-script.html: Added.
        * http/tests/security/mixedContent/resources/frame-with-redirect-https-to-http-frame.html: Added.
        * http/tests/security/mixedContent/resources/frame-with-redirect-https-to-http-script.html: Added.
        * http/tests/security/mixedContent/resources/script.js: Added.
        * http/tests/security/mixedContent/resources/style.css: Added.

2009-09-10  Xiaomei Ji  <xji@chromium.org>

        Reviewed by Eric Seidel.

        Implement Range.expand().
        https://bugs.webkit.org/show_bug.cgi?id=27632

        * fast/dom/Range/range-expand-expected.txt: Added.
        * fast/dom/Range/range-expand.html: Added.
        * fast/dom/Window/window-properties-expected.txt:

2009-09-10  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by Alexey Proskuryakov.

        Add WebSocket API.
        https://bugs.webkit.org/show_bug.cgi?id=28038
        
        WebSocket constructor is available in window object.

        * fast/dom/Window/window-properties-expected.txt:
        * fast/dom/prototype-inheritance-2-expected.txt:
        * fast/dom/prototype-inheritance-expected.txt:
        * fast/js/global-constructors-expected.txt:

2009-09-10  Jian Li  <jianli@chromium.org>

        Reviewed by Eric Seidel.

        [V8] Make XMLHttpRequest.send handle File object.
        https://bugs.webkit.org/show_bug.cgi?id=28924

        Add a new layout test.

        * http/tests/local/resources/file-for-drag-to-send.txt: Added.
        * http/tests/local/resources/send-dragged-file.js: Added.
        * http/tests/local/send-dragged-file-expected.txt: Added.
        * http/tests/local/send-dragged-file.html: Added.

2009-09-09  Steve Block  <steveblock@google.com>

        Reviewed by Darin Adler.

        Geolocation does not correctly handle reentrant calls from callbacks.
        https://bugs.webkit.org/show_bug.cgi?id=29040

        * fast/dom/Geolocation/resources/reentrant-error.js: Added. Tests that reentrant calls from the error callback are OK.
        * fast/dom/Geolocation/reentrant-error.html: Added. Wrapper for above test.
        * fast/dom/Geolocation/reentrant-error-expected.txt: Added. Expected result for above test.
        * fast/dom/Geolocation/resources/reentrant-success.js: Added. Tests that reentrant calls from the success callback are OK.
        * fast/dom/Geolocation/reentrant-success.html: Added. Wrapper for above test.
        * fast/dom/Geolocation/reentrant-success-expected.txt: Added. Expected result for above test.
        * platform/gtk/Skipped: Modified. Skips above tests.

2009-09-10  Erik Arvidsson  <arv@chromium.org>

        Reviewed by Eric Seidel.

        Fixes issue where focused elements did not get blur and focus events when the window was blurred and focused.
        https://bugs.webkit.org/show_bug.cgi?id=27105

        * fast/events/blur-focus-window-should-blur-focus-element-expected.txt: Added.
        * fast/events/blur-focus-window-should-blur-focus-element.html: Added.
        * fast/events/resources/blur-focus-window-should-blur-focus-element.js: Added.
        (divElement.onfocus.divElement.onblur.window.onfocus.window.onblur.innerDiv.onfocus.innerDiv.onblur.iframe.onfocus.iframe.onblur):
        (testNextEvent):
        * fast/events/resources/tabindex-focus-blur-all.js:
        (test):
        * fast/events/tabindex-focus-blur-all-expected.txt:

2009-09-10  Adam Barth  <abarth@webkit.org>

        Reviewed by Alexey Proskuryakov.

        https://bugs.webkit.org/show_bug.cgi?id=24205

        Added a test case for inserting a new line character into the
        request-uri.

        * http/tests/xmlhttprequest/newline-in-request-uri-expected.txt: Added.
        * http/tests/xmlhttprequest/newline-in-request-uri.html: Added.

2009-09-09  Steve Block  <steveblock@google.com>

        Reviewed by Maciej Stachowiak.

        Geolocation Coordinates::toString() prints bogus values for unspecified properties.
        https://bugs.webkit.org/show_bug.cgi?id=29080

        * fast/dom/Geolocation/resources/position-string.js: Added. Tests output of position.toString().
        * fast/dom/Geolocation/position-string.html: Added. Wrapper for above test.
        * fast/dom/Geolocation/position-string-expected.txt: Added. Expected result for above test.
        * platform/gtk/Skipped: Modified. Skips above test.

2009-09-09  Steve Block  <steveblock@google.com>

        Reviewed by Adam Barth.

        Correctly applies the Geolocation timeout property.
        https://bugs.webkit.org/show_bug.cgi?id=27256

        * fast/dom/Geolocation/resources/timeout.js: Added. Tests that when a non-zero timeout is used, the success callback is invoked as expected.
        * fast/dom/Geolocation/timeout.html: Added. Wrapper for above test.
        * fast/dom/Geolocation/timeout-expected.txt: Added. Expected result for above test.
        * fast/dom/Geolocation/resources/timeout-zero.js: Added. Tests that when a zero timeout is used, the error callback is invoked with code TIMEOUT.
        * fast/dom/Geolocation/timeout-zero.html: Added. Wrapper for above test.
        * fast/dom/Geolocation/timeout-zero-expected.txt: Added. Expected result for above test.
        * platform/gtk/Skipped: Modified. Skips the above tests.

2009-09-08  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        Missing checkout for getSVGDocument()
        https://bugs.webkit.org/show_bug.cgi?id=29064

        Add tests that getSVGDocument() has the proper checks.

        * http/tests/security/resources/flag.php: Added.
        * http/tests/security/xss-DENIED-getSVGDocument-iframe-expected.txt: Added.
        * http/tests/security/xss-DENIED-getSVGDocument-iframe.html: Added.
        * http/tests/security/xss-DENIED-getSVGDocument-object-expected.txt: Added.
        * http/tests/security/xss-DENIED-getSVGDocument-object.html: Added.

2009-09-09  Cameron McCormack  <cam@mcc.id.au>

        Reviewed by Eric Seidel.

        Make SVGStyleElement inherit from SVGLangSpace
        https://bugs.webkit.org/show_bug.cgi?id=29058

        Required by SVG 1.1 Second Edition:
        http://dev.w3.org/SVG/profiles/1.1F2/publish/styling.html#InterfaceSVGStyleElement

        * svg/dom/SVGStyleElement: Added.
        * svg/dom/SVGStyleElement/resources: Added.
        * svg/dom/SVGStyleElement/resources/TEMPLATE.html: Copied from
        LayoutTests/svg/dom/resources/TEMPLATE.html with some "../"s added.
        * svg/dom/SVGStyleElement/resources/style-langspace.js: Added.
        * svg/dom/SVGStyleElement/style-langspace-expected.txt: Added.
        * svg/dom/SVGStyleElement/style-langspace.html: Added.

2009-09-09  Alpha Lam  <hclam@chromium.org>

        Reviewed by Eric Carlson.

        Media layout tests should have a way to provide test files in different formats
        https://bugs.webkit.org/show_bug.cgi?id=28327

        Added media-file.js which has a findMediaFile(type, name) method
        to find a proper media file to load according to supported codecs.

        Also changed 10 layout tests to use above method to locate the test file.

        * media/controls-strict.html: Use findMediaFile(type, name).
        * media/controls-styling.html: ditto.
        * media/media-file.js: Added. Provide findMediaFile(type, name).
        * media/video-append-source.html: Use findMediaFile(type, name).
        * media/video-aspect-ratio.html: ditto.
        * media/video-autoplay.html: ditto.
        * media/video-buffered.html: ditto.
        * media/video-controls-rendering.html: ditto.
        * media/video-layer-crash.html: ditto.
        * media/video-transformed.html: Use findMediaFile(type, name).
        * media/video-zoom-controls.html: ditto.

2009-09-09  Jens Alfke  <snej@chromium.org>

        Reviewed by Eric Seidel.

        Initialize DataTransfer's effectAllowed and dropEffect properties correctly
        according to HTML5 spec (sec. 7.9.2-7.9.3).
        https://bugs.webkit.org/show_bug.cgi?id=26700

        * fast/events/drag-dropeffect-expected.txt: Added.
        * fast/events/drag-dropeffect.html: Added.

2009-09-09  Zan Dobersek  <zandobersek@gmail.com>

        Reviewed by Gustavo Noronha.

        [GTK] DumpRenderTree needs eventSender object and implementation
        https://bugs.webkit.org/show_bug.cgi?id=25990

        Enable plenty of tests that now pass thanks to (only) partial
        EventSender implementation.

        * platform/gtk/Skipped:

2009-09-09  Dumitru Daniliuc  <dumi@chromium.org>

        Reviewed by Dimitri Glazkov.

        Adding a test for the database authorizer.

        https://bugs.webkit.org/show_bug.cgi?id=28918

        * storage/test-authorizer-expected.txt: Added.
        * storage/test-authorizer.html: Added.

2009-09-09  Dave Hyatt  <hyatt@apple.com>

        Reviewed by Adam Roben.

        https://bugs.webkit.org/show_bug.cgi?id=29102, add support for user stylesheet injection.  This is similar
        to user script injection but allows for user stylesheets to be added.  The stylesheets are applied immediately
        to all Frames in the PageGroup.

        Added userscripts/simple-stylesheet.html test case.

        * platform/mac/userscripts/simple-stylesheet-expected.checksum: Added.
        * platform/mac/userscripts/simple-stylesheet-expected.png: Added.
        * platform/mac/userscripts/simple-stylesheet-expected.txt: Added.
        * userscripts/simple-stylesheet.html: Added.

2009-09-09  Carol Szabo  <carol.szabo@nokia.com>

        Reviewed by Ariya Hidayat.

        [Qt] -webkit-box-shadow CSS Style is not rendered correctly on
        Qt platform
        https://bugs.webkit.org/show_bug.cgi?id=23291

        * platform/qt/fast/box-shadow/basic-shadows-expected.checksum:
        * platform/qt/fast/box-shadow/basic-shadows-expected.png:
        * platform/qt/fast/box-shadow/inset-expected.checksum:
        * platform/qt/fast/box-shadow/inset-expected.png:
        * platform/qt/fast/box-shadow/spread-expected.checksum:
        * platform/qt/fast/box-shadow/spread-expected.png:
          Updated to show the new shadows.

2009-09-09  Erik Arvidsson  <arv@chromium.org>

        Reviewed by David Levin.

        Fix preference name in layout test.
        https://bugs.webkit.org/show_bug.cgi?id=29038

        * fast/events/click-focus-anchor.html:
        * fast/events/tab-focus-anchor.html:

2009-09-09  Steve Block  <steveblock@google.com>

        Reviewed by Adam Barth.

        Geolocation incorrectly calls error callback in case of exception in success callback.
        https://bugs.webkit.org/show_bug.cgi?id=27255

        * fast/dom/Geolocation/resources/callback-exception.js: Added. Tests that when an exception is thrown from the success callback, the error callback is not invoked.
        * fast/dom/Geolocation/callback-exception.html: Added. Wrapper for above test.
        * fast/dom/Geolocation/callback-exception-expected.txt: Added. Expected result for above test.
        * platform/gtk/Skipped: Modified. Adds the above tests to the skipped list.

2009-09-09  Steve Block  <steveblock@google.com>

        Reviewed by Darin Adler.

        When Geolocation permission is denied, stops watches as well as one-shots.
        https://bugs.webkit.org/show_bug.cgi?id=28305.

        * fast/dom/Geolocation/resources/watch.js: Added. Tests that a watch correctly reports updates from the Geolocation service.
        * fast/dom/Geolocation/watch.html: Added. Wrapper for above test.
        * fast/dom/Geolocation/watch-expected.txt: Added. Expected result for above test.
        * fast/dom/Geolocation/resources/permission-denied-stops-watches.js: Added. Tests that when Geolocation permission is denied, watches are stopped, as well as one-shots.
        * fast/dom/Geolocation/permission-denied-stops-watches.html: Added. Wrapper for above test.
        * fast/dom/Geolocation/permission-denied-stops-watches-expected.txt: Added. Expected result for above test.

2009-09-08  Oliver Hunt  <oliver@apple.com>

        Reviewed by Maciej Stachowiak.

        JSON.stringify(Date) loses the milliseconds information
        https://bugs.webkit.org/show_bug.cgi?id=29063

        Update test results for Date.toISOString.

        * fast/js/date-toisostring-expected.txt:
        * fast/js/resources/date-toisostring.js:

2009-09-08  Drew Wilson  <atwilson@google.com>

        Reviewed by Maciej Stachowiak.

        shared-worker-exception.html needs to pause to let console messages get written out
        https://bugs.webkit.org/show_bug.cgi?id=29043

        * fast/workers/resources/shared-worker-exception.js:
        (worker.onmessage):
        Now invokes layoutTestController.notifyDone() via a timer so any pending ReportException tasks get a chance to fire.

2009-09-08  Sam Weinig  <sam@webkit.org>

        Reviewed by Timothy Hatcher.

        Test for https://bugs.webkit.org/show_bug.cgi?id=27046
        Implement CSSOM DocumentView.caretRangeFromPoint

        * fast/dom/Document/CaretRangeFromPoint: Added.
        * fast/dom/Document/CaretRangeFromPoint/basic-expected.txt: Added.
        * fast/dom/Document/CaretRangeFromPoint/basic.html: Added.
        * fast/dom/Document/CaretRangeFromPoint/replace-element-expected.txt: Added.
        * fast/dom/Document/CaretRangeFromPoint/replace-element.html: Added.
        * fast/dom/Window/window-properties-expected.txt:

2009-09-08  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Adam Roben.

        Updated results for media/audio-controls-rendering.html, and added 3 failing
        tests to the Skipped list to investigate further <http://webkit.org/b/29047>.

        * platform/win/Skipped:
        * platform/win/media/audio-controls-rendering-expected.txt:

2009-09-08  Jian Li  <jianli@chromium.org>

        Reviewed by David Levin.

        dataTransfer.types() should not return Files if file list is empty in the clipboard.
        https://bugs.webkit.org/show_bug.cgi?id=28891

        Update the test script and expected result to reflect the behavior change.

        * http/tests/security/clipboard/clipboard-file-access-expected.txt:
        * http/tests/security/clipboard/resources/clipboard-file-access.js:

2009-09-08  Steve VanDeBogart  <vandebo@chromium.org>

        Reviewed by Eric Seidel.

        Check that middle click triggers an onpaste event in Linux.
        https://bugs.webkit.org/show_bug.cgi?id=28696

        * platform/gtk/editing/pasteboard: Added.
        * platform/gtk/editing/pasteboard/middle-click-onpaste-expected.txt: Added.
        * platform/gtk/editing/pasteboard/resources: Added.
        * platform/gtk/editing/pasteboard/resources/TEMPLATE.html: Added.
        * platform/gtk/editing/pasteboard/resources/middle-click-onpaste.js: Added.
        (handlePaste):

2009-09-08  Kent Tamura  <tkent@chromium.org>

        Reviewed by Eric Seidel.

        Tests for ValidityState::typeMismatch() for <input type=number>.
        https://bugs.webkit.org/show_bug.cgi?id=28934

        * fast/forms/ValidityState-typeMismatch-number-expected.txt: Added.
        * fast/forms/ValidityState-typeMismatch-number.html: Added.
        * fast/forms/resources/ValidityState-typeMismatch-number.js: Added.

2009-09-08  Steve Block  <steveblock@google.com>

        Reviewed by Adam Barth.

        Adds a LayoutTestController method to set the permission state for Geolocation.
        This is required to use the mock Geolocation service for testing.
        https://bugs.webkit.org/show_bug.cgi?id=29027

        * fast/dom/Geolocation/resources/permission-denied.js: Added. Tests that the error callback is invoked with a permission error code when Geolocation permission is denied and the Geolocation service provides a good position fix.
        * fast/dom/Geolocation/permission-denied-expected.txt: Added.  Expected result for above test.
        * fast/dom/Geolocation/permission-denied.html: Added. Wrapper for above test.
        * fast/dom/Geolocation/resources/success.js: Added. Tests that the success callback is invoked when the Geolocation service provides a good position fix.
        * fast/dom/Geolocation/success-expected.txt: Added. Expected result for above test.
        * fast/dom/Geolocation/success.html: Added. Wrapper for above test.
        * platform/gtk/Skipped:

2009-09-08 Andras Becsi <becsi.andras@stud.u-szeged.hu>

        Reviewed by Tor Arne Vestbø.

        [Qt] Add expected files for new tests since we pass them.

        * platform/qt/fast/reflections/abs-position-in-reflection-expected.txt: Added.
        * platform/qt/fast/repaint/rel-positioned-inline-with-overflow-expected.txt: Added.

2009-09-07  Steve Block  <steveblock@google.com>

        Reviewed by Adam Barth.

        Adds a mock Geolocation service. This will be used to provide predictable behavior of the
        Geolocation API for use in LayoutTests. Later changes will integrate the the mock
        Geolocation service with DumpRenderTree.
        https://bugs.webkit.org/show_bug.cgi?id=28264

        * fast/dom/Geolocation/resources/error.js: Added. Tests that the error callback is called when the service reports an error.
        * fast/dom/Geolocation/error-expected.txt: Added. Expected result for above test.
        * fast/dom/Geolocation/error.html: Added. Wrapper for above test.

2009-09-07  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Eric Seidel.

        Clean up localStorage.clear() layout test.
        https://bugs.webkit.org/show_bug.cgi?id=28939

        This is the first step of https://bugs.webkit.org/show_bug.cgi?id=27897 which
        is a pretty major cleanup of all the dom storage layout tests.  I'm just
        changing this one to begin with to get buy-in on the approach.

        This also adds a new method to the fast/js/js-test-pre.js that runs a command
        and prints it to the screen.  This should really help with making the output of
        the tests readable without looking at the source code.

        * fast/js/resources/js-test-pre.js:
        (tryAndLog): Runs a command and logs it to the screen.
        * storage/domstorage/localstorage/clear-expected.txt:
        * storage/domstorage/localstorage/clear.html:
        * storage/domstorage/resources: Added.
        * storage/domstorage/resources/clear.js: Added.
            The meat of the test is now in this file.
        * storage/domstorage/sessionstorage/clear-expected.txt:
        * storage/domstorage/sessionstorage/clear.html:

2009-09-07  Drew Wilson  <atwilson@google.com>

        Rubber-stamped by Sam Weinig.

        Rebaseline tests for GTK platform, and skipping shared worker XHR tests (worker XHR tests are already skipped).
        Tracked as https://bugs.webkit.org/show_bug.cgi?id=29020.

        * platform/gtk/Skipped:
        * platform/gtk/fast/dom/Window/window-properties-expected.txt:
        * platform/gtk/fast/dom/prototype-inheritance-2-expected.txt:

2009-09-07  Drew Wilson  <atwilson@google.com>

        Unreviewed test fixup.

        Added shared worker lifecycle tests to Skipped test list due to missing DRT functionality on Qt platform.

        * platform/qt/Skipped:

2009-09-07  Drew Wilson  <atwilson@google.com>

        Reviewed by David Levin.

        Enable shared worker tests.
        https://bugs.webkit.org/show_bug.cgi?id=28977

        Just moved tests from shared-worker-xxxx.html-disabled to shared-worker-xxxx.html. No other changes.

        * fast/workers/shared-worker-constructor.html: Renamed from LayoutTests/fast/workers/shared-worker-constructor.html-disabled.
        * fast/workers/shared-worker-context-gc.html: Renamed from LayoutTests/fast/workers/shared-worker-context-gc.html-disabled.
        * fast/workers/shared-worker-event-listener.html: Renamed from LayoutTests/fast/workers/shared-worker-event-listener.html-disabled.
        * fast/workers/shared-worker-exception.html: Renamed from LayoutTests/fast/workers/shared-worker-exception.html-disabled.
        * fast/workers/shared-worker-frame-lifecycle.html: Renamed from LayoutTests/fast/workers/shared-worker-frame-lifecycle.html-disabled.
        * fast/workers/shared-worker-gc.html: Renamed from LayoutTests/fast/workers/shared-worker-gc.html-disabled.
        * fast/workers/shared-worker-lifecycle.html: Renamed from LayoutTests/fast/workers/shared-worker-lifecycle.html-disabled.
        * fast/workers/shared-worker-load-error.html: Renamed from LayoutTests/fast/workers/shared-worker-load-error.html-disabled.
        * fast/workers/shared-worker-location.html: Renamed from LayoutTests/fast/workers/shared-worker-location.html-disabled.
        * fast/workers/shared-worker-navigator.html: Renamed from LayoutTests/fast/workers/shared-worker-navigator.html-disabled.
        * fast/workers/shared-worker-replace-global-constructor.html: Renamed from LayoutTests/fast/workers/shared-worker-replace-global-constructor.html-disabled.
        * fast/workers/shared-worker-replace-self.html: Renamed from LayoutTests/fast/workers/shared-worker-replace-self.html-disabled.
        * fast/workers/shared-worker-script-error.html: Renamed from LayoutTests/fast/workers/shared-worker-script-error.html-disabled.
        * fast/workers/shared-worker-shared.html: Renamed from LayoutTests/fast/workers/shared-worker-shared.html-disabled.
        * fast/workers/shared-worker-simple.html: Renamed from LayoutTests/fast/workers/shared-worker-simple.html-disabled.
        * http/tests/workers/shared-worker-importScripts.html: Renamed from LayoutTests/http/tests/workers/shared-worker-importScripts.html-disabled.
        * http/tests/workers/shared-worker-redirect.html: Renamed from LayoutTests/http/tests/workers/shared-worker-redirect.html-disabled.
        * http/tests/xmlhttprequest/workers/shared-worker-close.html: Renamed from LayoutTests/http/tests/xmlhttprequest/workers/shared-worker-close.html-disabled.
        * http/tests/xmlhttprequest/workers/shared-worker-methods-async.html: Renamed from LayoutTests/http/tests/xmlhttprequest/workers/shared-worker-methods-async.html-disabled.
        * http/tests/xmlhttprequest/workers/shared-worker-methods.html: Renamed from LayoutTests/http/tests/xmlhttprequest/workers/shared-worker-methods.html-disabled.
        * http/tests/xmlhttprequest/workers/shared-worker-xhr-file-not-found.html: Renamed from LayoutTests/http/tests/xmlhttprequest/workers/shared-worker-xhr-file-not-found.html-disabled.

2009-09-07  Drew Wilson  <atwilson@google.com>

        Unreviewed build fix.

        Reverting r48121 to fix Windows build errors.

        * fast/dom/Window/window-properties-expected.txt:
        * fast/dom/prototype-inheritance-2-expected.txt:
        * fast/dom/prototype-inheritance-expected.txt:
        * fast/js/global-constructors-expected.txt:

2009-09-07  Drew Wilson  <atwilson@google.com>

        Reviewed by David Levin.

        Enable SHARED_WORKERS by default
        https://bugs.webkit.org/show_bug.cgi?id=28959

        Update test expectations to reflect the availability of the SharedWorker constructor.
        Fixup bitrot in disabled tests - now reflects new MessagePort API.

        * fast/dom/Window/window-properties-expected.txt:
        Updated expectations now that window.SharedWorkers is defined.
        * fast/dom/prototype-inheritance-2-expected.txt:
        Updated expectations now that window.SharedWorkers is defined.
        * fast/dom/prototype-inheritance-expected.txt:
        Updated expectations now that window.SharedWorkers is defined.
        * fast/workers/shared-worker-script-error-expected.txt
        Updated expectations to reflect current (correct) behavior (unhandled exceptions are logged to console).
        * fast/workers/shared-worker-script-error.html
        Pauses before exiting the test to allow pending console errors to get emitted (makes test less flaky).
        * fast/workers/resources/shared-worker-script-error.js
        (onerror):
        Now properly handles the exception (onerror function has to return false to swallow the exception).
        * fast/js/global-constructors-expected.txt:
        Updated expectations now that window.SharedWorkers is defined.
        * http/tests/workers/resources/worker-importScripts.js:
        Clean up bitrot in tests - MessageEvent.messagePort => MessageEvent.ports.
        (handleConnect.self.postMessage):
        (handleConnect):
        * http/tests/workers/resources/worker-redirect-target.js:
        Clean up bitrot in tests - MessageEvent.messagePort => MessageEvent.ports.
        (self.onconnect):
        * http/tests/xmlhttprequest/workers/resources/worker-pre.js:
        Clean up bitrot in tests - MessageEvent.messagePort => MessageEvent.ports.

2009-09-07  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Skipping one more test affected by the libsoup issue, a new test,
        and tests that require eventSender.

        * platform/gtk/Skipped:

2009-09-07  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Unreviewed. Skipping tests that are failing because of a libsoup
        problem. Bug reported.

        * platform/gtk/Skipped:

2009-09-07  Fumitoshi Ukai  <ukai@chromium.org>

        Reviewed by Alexey Proskuryakov.

        Add WebSocket API.
        https://bugs.webkit.org/show_bug.cgi?id=28038
        
        WebSocket constructor is available in window object.

        * fast/dom/Window/window-properties-expected.txt:
        * fast/dom/prototype-inheritance-2-expected.txt:
        * fast/dom/prototype-inheritance-expected.txt:
        * fast/js/global-constructors-expected.txt:

2009-09-07 Andras Becsi <becsi.andras@stud.u-szeged.hu>

        Reviewed by Tor Arne VestbÃ¸

        [Qt] Disable a few tests that require missing controller features

        * platform/qt/Skipped:

2009-09-07  Michael Nordman  <michaeln@google.com>

        Reviewed by Alexey Proskuryakov.

        https://bugs.webkit.org/show_bug.cgi?id=28359
        Test to ensure the the window.applicationCache attribute is defined but non-functional
        with the feature disabled.

        * http/tests/appcache/disabled-expected.txt: Added.
        * http/tests/appcache/disabled.html: Added.

2009-09-06  Yael Aharon  <yael.aharon@nokia.com>

        Reviewed by Darin Adler.

        hostname and host are mixed up when manipulating anchor elements.
        https://bugs.webkit.org/show_bug.cgi?id=28954

        Added test case for when port is 0.

        * fast/dom/Element/hostname-host-expected.txt:
        * fast/dom/Element/hostname-host.html:

2009-09-06  Erik Arvidsson  <arv@chromium.org>

        Reviewed by Eric Seidel.

        Tests for https://bugs.webkit.org/show_bug.cgi?id=27099
        Make hidden elements not focusable. This is important becaue we should
        not allow tabbing to a hidden element.
        
        The patch also makes a element without href behave like generic elements
        when it comes to focus. Added tests that asserts that this works as
        expected.

        * fast/events/click-focus-anchor-expected.txt: Added.
        * fast/events/click-focus-anchor.html: Added.
        * fast/events/resources/tabindex-focus-blur-all.js:
        (test):
        (testProgrammaticFocus):
        * fast/events/tab-focus-anchor-expected.txt: Added.
        * fast/events/tab-focus-anchor.html: Added.
        * fast/events/tab-focus-hidden-expected.txt: Added.
        * fast/events/tab-focus-hidden.html: Added.
        * fast/events/tabindex-focus-blur-all-expected.txt:

2009-09-06  Martin Robinson  <martin.james.robinson@gmail.com>

        Reviewed by Gustavo Noronha, Jan Alonzo and Xan Lopez.

        [Gtk] Expose a database API
        https://bugs.webkit.org/show_bug.cgi?id=27899

        Expose an HTML5 database API for GTK+.

        * platform/gtk/Skipped:

2009-09-06  Cameron McCormack  <cam@mcc.id.au>

        Reviewed by Eric Seidel.

        Drop <definition-src> support
        https://bugs.webkit.org/show_bug.cgi?id=28991

        Update test not to expect a <definition-src> element to be of type
        SVGDefinitionSrcElement.

        * svg/dom/font-face-elements-expected.txt:
        * svg/dom/font-face-elements.html:

2009-09-05  Eric Seidel  <eric@webkit.org>

        No review, results update only.

        Update results after r48043.

        * fast/js/JSON-stringify-expected.txt:

2009-09-04  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        [[ToString]] conversion should use the actual toString function for String objects.

        Add test for toString conversion

        * fast/js/resources/JSON-stringify.js:
        (createTests.result.push):

2009-09-04  Michelangelo De Simone  <micdesim@gmail.com>

        Reviewed by David Levin.

        https://bugs.webkit.org/show_bug.cgi?id=28988
        Minor fix: "novalidate" attribute renamed in "noValidate", according to
        HTML5 specs:
        http://www.whatwg.org/specs/web-apps/current-work/#dom-fs-novalidate

        * fast/forms/novalidate-attribute-expected.txt:
        * fast/forms/resources/novalidate-attribute.js:

2009-09-04  Alexey Proskuryakov  <ap@apple.com>

        Fix expected test output.

        * fast/dom/DOMImplementation/detached-doctype-expected.txt:

2009-09-04  Yael Aharon  <yael.aharon@nokia.com>

        Reviewed by Darin Adler.

        hostname and host are mixed up when manipulating anchor elements.
        https://bugs.webkit.org/show_bug.cgi?id=28954

        * fast/dom/Element/hostname-host-expected.txt: Added.
        * fast/dom/Element/hostname-host.html: Added.

2009-09-04  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, build fix.

        [Chromium] Rolling out http://trac.webkit.org/changeset/48035, because it broke
        the build.
        https://bugs.webkit.org/show_bug.cgi?id=28696

2009-09-03  Dave Hyatt  <hyatt@apple.com>

        Reviewed by Adam Roben.

        https://bugs.webkit.org/show_bug.cgi?id=28890, make simple user script injection work.
        
        This patch adds new API for adding and removing user scripts from page groups.  User scripts
        are bundled together in isolated worlds (you can have multiple scripts together in the same
        world).

        Added userscripts/ directory for holding new tests (along with a simple test of script injection).

        * platform/mac/userscripts: Added.
        * platform/mac/userscripts/script-run-at-end-expected.txt: Added.
        * userscripts: Added.
        * userscripts/script-run-at-end.html: Added.

2009-09-04  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=26402
        Crashes when using a detached DocumentType node

        * fast/dom/DOMImplementation/detached-doctype-expected.txt: Added.
        * fast/dom/DOMImplementation/detached-doctype.html: Added.

2009-09-04  Tor Arne VestbÃ¸  <tor.arne.vestbo@nokia.com>

        Rubber-stamped by Simon Hausmann.

        [Qt] Fix brainfart in r48050, tests should have paths

        * platform/qt/Skipped:

2009-09-04  Tor Arne VestbÃ¸  <tor.arne.vestbo@nokia.com>

        Rubber-stamped by Simon Hausmann.

        [Qt] Skip tests failing due to missing DRT features

        * platform/qt/Skipped:

2009-09-04  Kent Tamura  <tkent@chromium.org>

        Reviewed by Eric Seidel.

        Tests for <input type=color> validation.
        https://bugs.webkit.org/show_bug.cgi?id=28966

        * fast/forms/ValidityState-patternMismatch-unsupported-expected.txt: Added.
        * fast/forms/ValidityState-patternMismatch-unsupported.html: Added.
        * fast/forms/ValidityState-typeMismatch-color-expected.txt: Added.
        * fast/forms/ValidityState-typeMismatch-color.html: Added.
        * fast/forms/resources/ValidityState-patternMismatch-unsupported.js: Added.
        * fast/forms/resources/ValidityState-typeMismatch-color.js: Added.

2009-09-04  Yaar Schnitman  <yaar@chromium.org>

        Reviewed by Eric Seidel.

        Two bugs:

        https://bugs.webkit.org/show_bug.cgi?id=25489
        CSS property background-position is now serialized in shorthand string as
        background-position-x background-position-y, as the specification requires
        (See http://www.w3.org/TR/2008/WD-css3-background-20080910/#the-background-position).
        

        https://bugs.webkit.org/show_bug.cgi?id=26541
        CSS background-color is now be serialized before other background properties, 
        as CSS specification requires (See http://dev.w3.org/csswg/cssom/#css-value).  

        An existing layout test that accepted wrong order and skipped position test 
        had to be modified.

        * fast/dom/background-shorthand-csstext-expected.txt:
        * fast/dom/background-shorthand-csstext.html:

2009-09-03  Kent Tamura  <tkent@chromium.org>

        Reviewed by David Levin.

        Test for HTMLTextAreaElement.textLength
        https://bugs.webkit.org/show_bug.cgi?id=28929

        * fast/forms/resources/textarea-textlength.js: Added.
        * fast/forms/textarea-textlength-expected.txt: Added.
        * fast/forms/textarea-textlength.html: Added.

2009-09-03  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/7180197>, https://bugs.webkit.org/show_bug.cgi?id=28822
        REGRESSION(r31231): Creating document with current document's DOCTYPE causes crashes

        This bug demonstrates itself with a crash later on, not in the current test.

        * fast/dom/DOMImplementation/createDocument-with-used-doctype-expected.txt: Added.
        * fast/dom/DOMImplementation/createDocument-with-used-doctype.html: Added.
        * fast/dom/DOMImplementation/resources/createDocument-with-used-doctype-frame.html: Added.

2009-09-03  Brady Eidson  <beidson@apple.com>

        Reviewed by Sam Weinig.

        Page Cache should support pages with Frames.
        https://bugs.webkit.org/show_bug.cgi?id=13631

        * fast/events/pageshow-pagehide-on-back-cached-with-frames-expected.txt: Added.
        * fast/events/pageshow-pagehide-on-back-cached-with-frames.html: Added.
        * fast/events/resources/pageshow-pagehide-subframe-cachable.html: Added.
        * fast/events/resources/pageshow-pagehide-subsubframe-cachable.html: Added.
        * fast/loader/frames-with-unload-handlers-in-page-cache-expected.txt: Added.
        * fast/loader/frames-with-unload-handlers-in-page-cache.html: Added.
        * fast/loader/resources/notify-done.html: Added.
        * fast/loader/resources/subframe-with-subsubframe-with-unload-handler.html: Added.
        * fast/loader/resources/subframe-with-unload-handler.html: Added.

2009-09-03  Steve VanDeBogart  <vandebo@chromium.org>

        Reviewed by Eric Seidel.

        Check that middle click triggers an onpaste event in Linux.
        https://bugs.webkit.org/show_bug.cgi?id=28696

        * platform/gtk/editing/pasteboard: Added.
        * platform/gtk/editing/pasteboard/middle-click-onpaste-expected.txt: Added.
        * platform/gtk/editing/pasteboard/resources: Added.
        * platform/gtk/editing/pasteboard/resources/TEMPLATE.html: Added.
        * platform/gtk/editing/pasteboard/resources/middle-click-onpaste.js: Added.
        (handlePaste):

2009-09-03  Drew Wilson  <atwilson@google.com>

        Reviewed by Dave Levin.

        Exception.toString() on Qt seems to print out a different value than other platforms.
        https://bugs.webkit.org/show_bug.cgi?id=28952

        * platform/qt/Skipped:
        Disabled new worker tests that rely on the string format of DOM exceptions until bug #28952 is resolved.

2009-09-03  Drew Wilson  <atwilson@google.com>

        Reviewed by Sam Weinig.

        Need to update JS bindings and IDL files to support multiple message ports in postMessage()
        https://bugs.webkit.org/show_bug.cgi?id=28460

        Updated layout tests to match new postMessage() and MessageEvent APIs.

        Added new layout tests to test sending/receiving multiple ports.

        * fast/dom/Window/window-postmessage-args-expected.txt:
        * fast/dom/Window/window-postmessage-args.html:
        Updated to match new postMessage API.
        * fast/events/init-events-expected.txt:
        * fast/events/message-channel-gc-4.html:
        Updated to match new postMessage API.
        * fast/events/message-port-clone.html:
        Updated to match new postMessage API.
        * fast/events/message-port-deleted-document.html:
        Updated to match new postMessage API.
        * fast/events/message-port-deleted-frame.html:
        Updated to match new postMessage API.
        * fast/events/message-port-inactive-document.html:
        Updated to match new postMessage API.
        * fast/events/message-port-multi-expected.txt: Added.
        * fast/events/message-port-multi.html: Added.
        Added tests for various cases of sending multiple ports.
        * fast/events/message-port.html:
        Updated to match new postMessage API.
        * fast/events/resources/init-events.js:
        Added tests for sending ports to initMessageEvent()
        * fast/events/resources/message-port-iframe.html:
        * fast/events/resources/message-port-multi.js: Added.
        Added tests for various cases of sending multiple ports.
        * fast/workers/resources/shared-worker-common.js:
        (onconnect):
        Updated to reflect new MessageEvent API.
        * fast/workers/resources/shared-worker-script-error.js:
        (onconnect):
        Updated to reflect new MessageEvent API.
        * fast/workers/resources/worker-cloneport.js:
        (onmessage):
        Updated to reflect new MessageEvent API.
        * fast/workers/resources/worker-context-multi-port.js: Added.
        (worker.onmessage):
        Added tests for various cases of sending multiple ports.
        * fast/workers/resources/worker-context-thread-multi-port.js: Added.
        Added tests for various cases of sending multiple ports.
        * fast/workers/resources/worker-messageport.js:
        (onmessage):
        Updated to reflect new MessageEvent API.
        * fast/workers/resources/worker-multi-port.js: Added.
        (worker.onmessage):
        Added tests for various cases of sending multiple ports.
        * fast/workers/resources/worker-thread-multi-port.js: Added.
        (onmessage):
        Worker-thread side of multiple port layout test.
        (testPassed):
        (testFailed):
        * fast/workers/worker-cloneport.html:
        * fast/workers/worker-context-multi-port-expected.txt: Added.
        * fast/workers/worker-context-multi-port.html: Added.
        Added tests for sending multiple ports from the worker thread.
        * fast/workers/worker-messageport-expected.txt:
        * fast/workers/worker-messageport-gc.html:
        * fast/workers/worker-messageport.html:
        * fast/workers/worker-multi-port-expected.txt: Added.
        * fast/workers/worker-multi-port.html: Added.

2009-09-03  Renata Hodovan  <hodovan.renata@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt] Update outdated metrics in css2.1/t170602-bdr-conflct-w-* (50 files).
        Remove these files from Skipped.

        * platform/qt/Skipped:
        * platform/qt/css2.1/t170602-bdr-conflct-w-00-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-01-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-02-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-03-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-04-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-05-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-06-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-07-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-08-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-09-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-10-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-11-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-12-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-13-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-14-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-15-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-16-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-17-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-18-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-19-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-20-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-21-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-22-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-23-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-24-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-25-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-26-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-27-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-28-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-29-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-30-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-31-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-32-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-33-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-34-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-35-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-36-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-37-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-38-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-39-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-40-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-41-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-42-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-43-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-44-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-45-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-46-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-47-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-48-d-expected.txt:
        * platform/qt/css2.1/t170602-bdr-conflct-w-49-d-expected.txt:

2009-09-03  Renata Hodovan  <hodovan.renata@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt] Update outdated metrics in css2.1/t1202-counters-* (17 files).
        Remove these files from Skipped.

        * platform/qt/Skipped:
        * platform/qt/css2.1/t1202-counters-00-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-01-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-02-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-03-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-05-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-06-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-07-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-08-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-09-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-11-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-12-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-13-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-14-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-15-b-expected.txt:
        * platform/qt/css2.1/t1202-counters-16-c-expected.txt:
        * platform/qt/css2.1/t1202-counters-17-d-expected.txt:
        * platform/qt/css2.1/t1202-counters-18-f-expected.txt:

2009-09-03  Tor Arne VestbÃ¸  <tor.arne.vestbo@nokia.com>

        Rubber-stamped by Ariya Hidayat.

        [Qt] Skip a couple of failing layout-tests

        We skip most of the D&D tests already, and the animation test
        seems to be flakey on our platform since the commit that triggered
        it only touched V8 bindings.

        * platform/qt/Skipped:

2009-09-03  Tor Arne VestbÃ¸  <tor.arne.vestbo@nokia.com>

        Reviewed by Ariya Hidayat.

        [Qt] Disable a few tests that require new controller features

        * platform/qt/Skipped:

2009-09-03  Tor Arne VestbÃ¸  <tor.arne.vestbo@nokia.com>

        Rubber-stamped by Simon Hausmann.

        [Qt/Linux] Add platform-spesific result for plugin-javascript-access

        * platform/qt-linux/plugins/plugin-javascript-access-expected.txt: Added.

2009-09-03  Renata Hodovan  <hodovan.renata@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt] Update outdated metrics in css2.1/t140201* (16 files).
        Remove these files from Skipped.

        * platform/qt/Skipped:
        * platform/qt/css2.1/t140201-c532-bgcolor-00-a-expected.txt:
        * platform/qt/css2.1/t140201-c532-bgcolor-01-b-expected.txt:
        * platform/qt/css2.1/t140201-c533-bgimage-00-a-expected.txt:
        * platform/qt/css2.1/t140201-c533-bgimage-01-b-g-expected.txt:
        * platform/qt/css2.1/t140201-c534-bgre-00-b-ag-expected.txt:
        * platform/qt/css2.1/t140201-c534-bgre-01-b-ag-expected.txt:
        * platform/qt/css2.1/t140201-c534-bgreps-00-c-ag-expected.txt:
        * platform/qt/css2.1/t140201-c534-bgreps-01-c-ag-expected.txt:
        * platform/qt/css2.1/t140201-c534-bgreps-02-c-ag-expected.txt:
        * platform/qt/css2.1/t140201-c534-bgreps-03-c-ag-expected.txt:
        * platform/qt/css2.1/t140201-c534-bgreps-04-c-ag-expected.txt:
        * platform/qt/css2.1/t140201-c534-bgreps-05-c-ag-expected.txt:
        * platform/qt/css2.1/t140201-c535-bg-fixd-00-b-g-expected.txt:
        * platform/qt/css2.1/t140201-c536-bgpos-00-b-ag-expected.txt:
        * platform/qt/css2.1/t140201-c536-bgpos-01-b-ag-expected.txt:
        * platform/qt/css2.1/t140201-c537-bgfxps-00-c-ag-expected.txt:

2009-09-03  Kent Tamura  <tkent@chromium.org>

        Reviewed by Eric Seidel.

        Tests for maxLength and IME input.
        https://bugs.webkit.org/show_bug.cgi?id=25253

        * fast/forms/input-maxlength-ime-completed-expected.txt: Added.
        * fast/forms/input-maxlength-ime-completed.html: Added.
        * fast/forms/input-maxlength-ime-preedit-expected.txt: Added.
        * fast/forms/input-maxlength-ime-preedit.html: Added.
        * fast/forms/resources/input-maxlength-ime-completed.js: Added.
        * fast/forms/resources/input-maxlength-ime-preedit.js: Added.
        * platform/gtk/Skipped:
        * platform/win/Skipped:

2009-09-03  Cameron McCormack  <cam@mcc.id.au>

        Reviewed by Eric Seidel.

        Make SVGStyleElement title/media/type setters do something
        https://bugs.webkit.org/show_bug.cgi?id=28828

        * svg/dom/resources/style-reflect.js: Added.
        * svg/dom/style-reflect-expected.txt: Added.
        * svg/dom/style-reflect.html: Added.

2009-09-03  Ben Murdoch  <benm@google.com>

        https://bugs.webkit.org/show_bug.cgi?id=28872
        Test to verify statement error callbacks behave as expected when they return true or throw an exception.

        * storage/statement-error-callback-expected.txt: Added with properties svn:eol-style.
        * storage/statement-error-callback.html: Added with properties svn:eol-style.

2009-09-02  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Eric Seidel.

        Cannot press Enter to escape from bulleted list when <ul> is a child of <li>.
        https://bugs.webkit.org/show_bug.cgi?id=24866

        This patch adds a test to make sure WebKit break out of an empty list item.

        * editing/execCommand/break-out-of-empty-list-item-expected.txt: Added.
        * editing/execCommand/break-out-of-empty-list-item.html: Added.
        * editing/execCommand/resources/break-out-of-empty-list-item.js: Added.
        (pressKey):
        (enterAtTarget):
        (testBreakOutOfEmptyListItem):

2009-09-02  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Brady Eidson.

        Fix the test to pass on Tiger.

        Tiger's ICU decodes the invalid text differently. Moved it inside the comment - this also
        matches the original from the Web better.

        * fast/encoding/japanese-encoding-mix-expected.txt:
        * fast/encoding/japanese-encoding-mix.html:

2009-09-02  Ben Murdoch  <benm@google.com>

        https://bugs.webkit.org/show_bug.cgi?id=28737
        
        Update the execute-sql-args.html to be agnostic to exception message formatting between JSC
        and V8 and throw an exception when no parameters are passed to the executeSql() function.

        * storage/execute-sql-args-expected.txt:
        * storage/execute-sql-args.html:

2009-09-01  Tor Arne VestbÃ¸  <tor.arne.vestbo@nokia.com>

        Rubber-stamped by Simon Hausmann.

        [Qt] Fix layout-test plugins/plugin-javascript-access.html

        * platform/qt/Skipped:

2009-09-02  Renata Hodovan  <hodovan.renata@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt] Update css2.1/t1202-counter-* and css2.1/t1205* tests after new metrics.
        Remove these files from Skipped (and fixed Skipped according to Changeset 47815).

        * platform/qt/Skipped:
        * platform/qt/css2.1/t1202-counter-00-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-01-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-02-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-03-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-04-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-05-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-06-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-07-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-08-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-09-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-11-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-12-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-13-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-14-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-15-b-expected.txt:
        * platform/qt/css2.1/t1202-counter-16-f-expected.txt:
        * platform/qt/css2.1/t1205-c561-list-displ-00-b-expected.txt:
        * platform/qt/css2.1/t1205-c563-list-type-00-b-expected.txt:
        * platform/qt/css2.1/t1205-c563-list-type-01-b-expected.txt:
        * platform/qt/css2.1/t1205-c564-list-img-00-b-g-expected.txt:
        * platform/qt/css2.1/t1205-c565-list-pos-00-b-expected.txt:
        * platform/qt/css2.1/t1205-c566-list-stl-01-c-g-expected.txt:

2009-09-02  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Eric Seidel.

        js tests should move into jstests subdirectory instead of resources/
        https://bugs.webkit.org/show_bug.cgi?id=25880

        make-script-wrappers supports both resources and script-tests directories.
        run-webkit-tests ignores files in script-tests.
        Move script tests of animations to check the new script is working.

        * animations/animation-css-rule-types.html:
        * animations/resources/TEMPLATE.html: Removed.
        * animations/resources/animation-css-rule-types.js: Removed.
        * animations/script-tests: Added.
        * animations/script-tests/TEMPLATE.html: Copied from LayoutTests/animations/resources/TEMPLATE.html.
        * animations/script-tests/animation-css-rule-types.js: Copied from LayoutTests/animations/resources/animation-css-rule-types.js.

2009-09-01  Brian Weinstein  <bweinstein@apple.com>

        Reviewed by John Sullivan.

        Added a new case to aria-readonly.html to account for textareas instead of just input fields.

        * accessibility/aria-readonly-expected.txt:
        * accessibility/aria-readonly.html:

2009-09-01  Eric Seidel  <eric@webkit.org>

        Rubber stamped by Simon Fraser.

        REGRESSION: media/video-source-add-src.html (and other media tests?) crashing/timing-out intermittently
        https://bugs.webkit.org/show_bug.cgi?id=28845

        Disabling this test on all platforms until
        a media expert can have a chance to look at it.
        See bug 28845 for further discussion.

        * media/video-source-add-src.html-disabled: Renamed from LayoutTests/media/video-source-add-src.html.

2009-09-01  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=21990
        When a rare EUC-JP character is present, explicitly (and correctly) labelled EUC-JP document
        is mistreated as Shift_JIS

        <rdar://problem/5828506> Safari should not try auto-detecting if charset information exists

        This test isn't supposed to be displayed "properly", as it has a mix of charsets (which usually
        happens in comments). An explicit charset declaration is what we should use.

        * fast/encoding/japanese-encoding-mix-expected.txt: Added with properties svn:eol-style and svn:mime-type.
        * fast/encoding/japanese-encoding-mix.html: Added with property svn:mime-type.

2009-09-01  Victor Wang  <victorw@chromium.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=28879

        Fix fast/dom/StyleSheet/ownerNode-lifetime-2.html
        The problem is WebKit <link> nodes will only have a
        style sheet created if they have href attribute.
        The src attribute to non-existant css doesn't work.
        Change src to href to make this test works in WebKit.

        Also update the expectation result.

        * fast/dom/StyleSheet/ownerNode-lifetime-2-expected.txt:
        * fast/dom/StyleSheet/ownerNode-lifetime-2.html:

2009-09-01  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Add support for Fedora distros in the http tests
        https://bugs.webkit.org/show_bug.cgi?id=28263

        Add httpd conf file for Fedora.

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

2009-09-01  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Eric Seidel.

        [Gtk] DRT needs implementation of overridePreference
        https://bugs.webkit.org/show_bug.cgi?id=28830

        Unskip tests that are now working.

        * platform/gtk/Skipped:

2009-09-01  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Mark Rowe.

        [Gtk] Fix DATALIST build
        https://bugs.webkit.org/show_bug.cgi?id=28826

        Unskip now working fast/forms/input-list.html.

        * platform/gtk/Skipped:

2009-08-31  Brian Weinstein  <bweinstein@apple.com>

        Reviewed by Darin Adler.

        Added a case to check for readonly and non-readonly set through the readonly attribute
        instead of through aria-readonly. This tests our new case in AccessibilityRenderObject::isReadOnly.

        * accessibility/aria-readonly-expected.txt:
        * accessibility/aria-readonly.html:

2009-08-31  Drew Wilson  <atwilson@google.com>

        Reviewed by Alexey Proskuryakov.

        fast/workers/worker-lifecycle.html crashes intermittently on snowleopard
        https://bugs.webkit.org/show_bug.cgi?id=28795

        Removed worker-lifecycle.html from the list of Skipped tests since it no longer crashes.
        Added test for case where we capture script errors via an event listener added via addEventListener().

        * fast/workers/worker-script-error.html
        * fast/workers/worker-script-error-expected.txt
        Added testScriptErrorAddEventListener to test catching script errors via addEventListener().
        * platform/mac-snowleopard/Skipped:

2009-08-31  Beth Dakin  <bdakin@apple.com>

        Rubber-stamped by Mark Rowe.

        Meant to update these results with my earlier check-in, but I 
        forgot!

        * platform/mac/fast/inspector/style-expected.txt:

2009-08-31  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=28858
        Element.baseURI parses xml:base attribute incorrectly

        * fast/dom/base-attribute-parsing-expected.txt: Added.
        * fast/dom/base-attribute-parsing.xhtml: Added.

2009-08-31  Beth Dakin  <bdakin@apple.com>

        Reviewed by Darin Adler.

        Tests for https://bugs.webkit.org/show_bug.cgi?id=28635 [CSS3 
        Backgrounds and Borders] Add support for 2-keyword values for 
        background-repeat

        This test is updated to test for two values.
        * fast/backgrounds/repeat/parsing-background-repeat-expected.txt:
        * fast/backgrounds/repeat/resources/parsing-background-repeat.js:

        These tests are updated to reflect new order.
        * fast/css/background-position-serialize-expected.txt:
        * fast/css/remove-shorthand-expected.txt:

        Reflect new order in results, and make the test dump as text.
        * fast/inspector/style.html:
        * platform/mac/fast/inspector/style-expected.checksum: Removed.
        * platform/mac/fast/inspector/style-expected.png: Removed.
        * platform/mac/fast/inspector/style-expected.txt:

2009-08-31  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        Compositing layer size needs to take into account software reflections on children.
        https://bugs.webkit.org/show_bug.cgi?id=28837
        
        Test for a composited element with a reflected child that projects outside of it.

        * compositing/reflections/reflection-in-composited.html: Added.
        * platform/mac/compositing/reflections/reflection-in-composited-expected.checksum: Added.
        * platform/mac/compositing/reflections/reflection-in-composited-expected.png: Added.
        * platform/mac/compositing/reflections/reflection-in-composited-expected.txt: Added.

2009-08-31  Simon Fraser  <simon.fraser@apple.com>

        Followup from r47877; add test for the Obj-C wrapper class for WebkitCSSTransformValue
        https://bugs.webkit.org/show_bug.cgi?id=27727

        * platform/mac/fast/dom/wrapper-classes-objc-expected.txt:
        * platform/mac/fast/dom/wrapper-classes-objc.html:

2009-08-28  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        Fix positioning error when a compositing, absolutely-positioned element has an ancestor with opacity.
        https://bugs.webkit.org/show_bug.cgi?id=28754
        
        For absolutely-positioned layers, convertToLayerCoords() jumps to the positioned

        New tests for absolutely-positioned element inside a composited layer with opacity,
        and in a reflection.
        
        * compositing/geometry/abs-position-inside-opacity.html: Added.
        * fast/reflections/abs-position-in-reflection.html: Added.
        * platform/mac/compositing/geometry/abs-position-inside-opacity-expected.checksum: Added.
        * platform/mac/compositing/geometry/abs-position-inside-opacity-expected.png: Added.
        * platform/mac/compositing/geometry/abs-position-inside-opacity-expected.txt: Added.
        * platform/mac/fast/reflections/abs-position-in-reflection-expected.checksum: Added.
        * platform/mac/fast/reflections/abs-position-in-reflection-expected.png: Added.
        * platform/mac/fast/reflections/abs-position-in-reflection-expected.txt: Added.

2009-08-31  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt] Update outdated font metrics in the remaining css1 tests. All tests pass.

        * platform/qt/Skipped:
        * platform/qt/css1/text_properties/letter_spacing-expected.txt:
        * platform/qt/css1/text_properties/line_height-expected.txt:
        * platform/qt/css1/text_properties/text_align-expected.txt:
        * platform/qt/css1/text_properties/text_decoration-expected.txt:
        * platform/qt/css1/text_properties/text_indent-expected.txt:
        * platform/qt/css1/text_properties/text_transform-expected.txt:
        * platform/qt/css1/text_properties/vertical_align-expected.txt:
        * platform/qt/css1/text_properties/word_spacing-expected.txt:
        * platform/qt/css1/units/color_units-expected.txt:
        * platform/qt/css1/units/length_units-expected.txt:
        * platform/qt/css1/units/percentage_units-expected.txt:
        * platform/qt/css1/units/urls-expected.txt:

2009-08-31  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt] Update font metrics for these css1 tests.

        * platform/qt/Skipped:
        * platform/qt/css1/formatting_model/canvas-expected.txt:
        * platform/qt/css1/formatting_model/floating_elements-expected.txt:
        * platform/qt/css1/formatting_model/height_of_lines-expected.txt:
        * platform/qt/css1/formatting_model/horizontal_formatting-expected.txt:
        * platform/qt/css1/formatting_model/inline_elements-expected.txt:
        * platform/qt/css1/formatting_model/replaced_elements-expected.txt:
        * platform/qt/css1/formatting_model/vertical_formatting-expected.txt:
        * platform/qt/css1/pseudo/anchor-expected.txt:
        * platform/qt/css1/pseudo/firstletter-expected.txt:
        * platform/qt/css1/pseudo/firstline-expected.txt:
        * platform/qt/css1/pseudo/multiple_pseudo_elements-expected.txt:
        * platform/qt/css1/pseudo/pseudo_elements_in_selectors-expected.txt:

2009-08-31  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt] Update outdated font metrics for these css1 tests.

        * platform/qt/Skipped:
        * platform/qt/css1/color_and_background/background-expected.txt:
        * platform/qt/css1/color_and_background/background_attachment-expected.txt:
        * platform/qt/css1/color_and_background/background_color-expected.txt:
        * platform/qt/css1/color_and_background/background_image-expected.txt:
        * platform/qt/css1/color_and_background/background_position-expected.txt:
        * platform/qt/css1/color_and_background/background_repeat-expected.txt:
        * platform/qt/css1/color_and_background/color-expected.txt:
        * platform/qt/css1/conformance/forward_compatible_parsing-expected.txt:

2009-08-31  Renata Hodovan  <hodovan.renata@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt] Update outdated metrics in css2.1/t040*. (19 files)
        Fix relative path in .css files.

        * css2.1/support/css1test64a.css:
        * css2.1/support/css1test64b.css:
        * platform/qt/Skipped:
        * platform/qt/css2.1/t0402-c71-fwd-parsing-00-f-expected.txt:
        * platform/qt/css2.1/t0402-c71-fwd-parsing-01-f-expected.txt:
        * platform/qt/css2.1/t0402-c71-fwd-parsing-02-f-expected.txt:
        * platform/qt/css2.1/t0402-c71-fwd-parsing-03-f-expected.txt:
        * platform/qt/css2.1/t0402-c71-fwd-parsing-04-f-expected.txt:
        * platform/qt/css2.1/t0402-syntax-01-f-expected.txt:
        * platform/qt/css2.1/t0402-syntax-02-f-expected.txt:
        * platform/qt/css2.1/t0402-syntax-03-f-expected.txt:
        * platform/qt/css2.1/t0402-syntax-04-f-expected.txt:
        * platform/qt/css2.1/t0402-syntax-05-f-expected.txt:
        * platform/qt/css2.1/t0402-syntax-06-f-expected.txt:
        * platform/qt/css2.1/t040302-c61-ex-len-00-b-a-expected.txt:
        * platform/qt/css2.1/t040302-c61-phys-len-00-b-expected.txt:
        * platform/qt/css2.1/t040302-c61-rel-len-00-b-ag-expected.txt:
        * platform/qt/css2.1/t040303-c62-percent-00-b-ag-expected.txt:
        * platform/qt/css2.1/t040304-c64-uri-00-a-g-expected.txt:
        * platform/qt/css2.1/t040306-c63-color-00-b-ag-expected.txt:
        * platform/qt/css2.1/t040306-syntax-01-f-expected.txt:
        * platform/qt/css2.1/t040307-syntax-01-b-expected.txt:

2009-08-29  Adele Peterson  <adele@apple.com>

        Reviewed by Dan Bernstein.

        Test for https://bugs.webkit.org/show_bug.cgi?id=28829
        Crash in AccessibilityRenderObject::activeDescendant when trying to set aria-activedescendant to something without a renderer

        * accessibility/aria-activedescendant-crash-expected.txt: Added.
        * accessibility/aria-activedescendant-crash.html: Added.

2009-08-28  Gustavo Noronha Silva  <gns@gnome.org>

        Re-skipping tests that still fail on the bot.

        * platform/gtk/Skipped:

2009-08-28  Gustavo Noronha Silva  <gns@gnome.org>

        Unskip some passing tests, skip new tests that are failing.

        * platform/gtk/Skipped:

2009-08-28  Julie Parent  <jparent@chromium.org>

        Reviewed by Alexey Proskuryakov.

        set-dangerous-headers.html shouldn't set allowed header to same value
        as forbidden headers.  AUTHORIZATION is an allowed header, and the
        value is being set to "foobar" like the forbidden headers, which causes
        the test to fail when run using http server that doesn't strip the
        AUTHORIZATION header.
        https://bugs.webkit.org/show_bug.cgi?id=28818

        * http/tests/xmlhttprequest/set-dangerous-headers.html:

2009-08-28  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Gustavo Noronha.

        [GTK] Geolocation needs permission API before being enabled by default

        Unskip the Geolocation tests and rebaseline three DOM tests.

        * platform/gtk/Skipped:
        * platform/gtk/fast/dom/Window/window-properties-expected.txt: Added.
        * platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt: Added.
        * platform/gtk/fast/dom/prototype-inheritance-2-expected.txt: Added.

2009-08-28  Renata Hodovan  <hodovan.renata@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt] Adapt expecteds of css2.1/t0401* to new metrics. Remove these files from Skipped. (39 files)

        * platform/qt/Skipped:
        * platform/qt/css2.1/t040102-keywords-00-b-expected.txt:
        * platform/qt/css2.1/t040102-keywords-01-b-expected.txt:
        * platform/qt/css2.1/t040103-case-00-b-expected.txt:
        * platform/qt/css2.1/t040103-case-01-c-expected.txt:
        * platform/qt/css2.1/t040103-escapes-00-b-expected.txt:
        * platform/qt/css2.1/t040103-escapes-01-b-expected.txt:
        * platform/qt/css2.1/t040103-escapes-02-d-expected.txt:
        * platform/qt/css2.1/t040103-escapes-03-b-expected.txt:
        * platform/qt/css2.1/t040103-escapes-04-b-expected.txt:
        * platform/qt/css2.1/t040103-escapes-05-c-expected.txt:
        * platform/qt/css2.1/t040103-escapes-06-b-expected.txt:
        * platform/qt/css2.1/t040103-escapes-07-b-expected.txt:
        * platform/qt/css2.1/t040103-escapes-08-b-expected.txt:
        * platform/qt/css2.1/t040103-ident-00-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-01-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-02-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-03-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-04-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-05-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-06-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-07-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-08-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-09-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-10-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-11-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-12-c-expected.txt:
        * platform/qt/css2.1/t040103-ident-13-c-expected.txt:
        * platform/qt/css2.1/t040105-atkeyw-00-b-expected.txt:
        * platform/qt/css2.1/t040105-atkeyw-01-b-expected.txt:
        * platform/qt/css2.1/t040105-atkeyw-02-b-expected.txt:
        * platform/qt/css2.1/t040105-atrule-00-b-expected.txt:
        * platform/qt/css2.1/t040105-atrule-01-b-expected.txt:
        * platform/qt/css2.1/t040105-atrule-02-b-expected.txt:
        * platform/qt/css2.1/t040105-atrule-03-b-expected.txt:
        * platform/qt/css2.1/t040105-atrule-04-b-expected.txt:
        * platform/qt/css2.1/t040105-import-00-b-expected.txt:
        * platform/qt/css2.1/t040105-import-01-b-expected.txt:
        * platform/qt/css2.1/t040109-c17-comments-00-b-expected.txt:
        * platform/qt/css2.1/t040109-c17-comments-01-b-expected.txt:

2009-08-27  Oliver Hunt  <oliver@apple.com>

        Reviewed by Maciej Stachowiak.

        JSON Stringifier does not follow ES5 spec for handling of Number, String and Boolean objects
        https://bugs.webkit.org/show_bug.cgi?id=28797

        Added new tests to cover type conversions

        * fast/js/JSON-stringify-expected.txt:
        * fast/js/resources/JSON-stringify.js:
        (createTests):

2009-08-27  Drew Wilson  <atwilson@google.com>

        Unreviewed.

        Skipping worker-lifecycle.html test since it generates a deadlock on snowleopard.
        Tracked as https://bugs.webkit.org/show_bug.cgi?id=28795.

        * platform/mac-snowleopard/Skipped:

2009-08-27  Noel Gordon  <noel.gordon@gmail.com>

        Reviewed by Eric Seidel.

        dataTransfer.types() should include type "Files" when files are present in the clipboard.
        https://bugs.webkit.org/show_bug.cgi?id=28780

        Test dataTransfer.types "Files" access for all ports.

        * http/tests/security/clipboard/clipboard-file-access-expected.txt:
        * http/tests/security/clipboard/resources/clipboard-file-access.js:

2009-08-27  Oliver Hunt  <oliver@apple.com>

        Reviewed by Adam Roben.

        JSON.stringify replacer array does not accept values that are not string primitives.
        https://bugs.webkit.org/show_bug.cgi?id=28788

        Update to test current expected behaviour.

        * fast/js/JSON-stringify-expected.txt:
        * fast/js/resources/JSON-stringify.js:

2009-08-27  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Simon Fraser.

        Modified tests to work when 3D-CANVAS flag is on and added a test for crashing when context is changed
        https://bugs.webkit.org/show_bug.cgi?id=28018

        * fast/canvas/change-context-expected.txt: Added.
        * fast/canvas/change-context.html: Added.
        * fast/dom/Window/window-properties.html:
        * fast/dom/resources/prototype-inheritance-2.js:
        (constructorNamesForWindow):
        * fast/dom/resources/prototype-inheritance.js:

2009-08-27  Drew Wilson  <atwilson@google.com>

        Reviewed by Oliver Hunt.

        Tweak to force worker object to get GC'd.

        * fast/workers/resources/dedicated-worker-lifecycle.js:

2009-08-27  Drew Wilson  <atwilson@google.com>

        Unreviewed.

        [Qt] Skip HTML5 worker lifecycle test added in r47837 as it depends on unimplemented functionality in DRT.

        * platform/qt/Skipped:

2009-08-27  Drew Wilson  <atwilson@google.com>

        Reviewed by David Levin.

        Need to write tests for worker lifecycle mechanisms.
        https://bugs.webkit.org/show_bug.cgi?id=28714

        * fast/workers/dedicated-worker-lifecycle-expected.txt: Added.
        * fast/workers/dedicated-worker-lifecycle.html: Added.
        * fast/workers/resources/create-shared-worker-frame.html: Added.
        * fast/workers/resources/dedicated-worker-lifecycle.js: Added.
        Broke out "orphaned worker" lifecycle tests because they only apply to dedicated workers.
        (runTests.worker.onmessage):
        (runTests):
        (orphanedWorkerExited.worker.onmessage):
        (orphanedWorkerExited):
        (orphanedTimeoutWorkerExited):
        * fast/workers/resources/shared-worker-lifecycle.js: Added.
        Added tests for the various shared worker lifecycle cases (makes sure that refcounts are properly updated when documents close).
        (runTests):
        (createWorkerFrame):
        (closeFrame):
        (closeFrame1):
        (closeFrame2):
        (closeFrame3):
        (closeFrame4):
        (complete):
        * fast/workers/resources/worker-lifecycle.js:
        Updated test so it can run in a browser (with incorrect output) to aid in debugging.
        (runTests.worker.onmessage):
        (runTests):
        (workerExited):
        * fast/workers/resources/worker-util.js: Added.
        Moved some common utilities out of worker-lifecycle.js and into this file so they can be shared with other tests.
        (log):
        (gc):
        (waitUntilWorkerThreadsExit):
        (waitUntilThreadCountMatches.return):
        (waitUntilThreadCountMatches):
        (ensureThreadCountMatches):
        (done):
        * fast/workers/shared-worker-frame-lifecycle-expected.txt: Added.
        * fast/workers/shared-worker-frame-lifecycle.html-disabled: Added.
        * fast/workers/shared-worker-lifecycle.html-disabled:
        * fast/workers/worker-lifecycle.html:

2009-08-27  Noel Gordon  <noel.gordon@gmail.com>

        Reviewed by Eric Seidel.

        clipboard file access tests use "dragentered" instead of "dragenter"
        https://bugs.webkit.org/show_bug.cgi?id=28761
        
        Use dragenter and log these events.  Add a dragleave test to check
        that drag files are not visible in dragleave events.

        * http/tests/security/clipboard/clipboard-file-access-expected.txt:
        * http/tests/security/clipboard/resources/clipboard-file-access.js:

2009-08-27  Eric Seidel  <eric@webkit.org>

        Reviewed by Adam Barth.

        Add a test to make sure that image/link drags don't contain junk file arrays.
        https://bugs.webkit.org/show_bug.cgi?id=28755

        * editing/pasteboard/files-during-page-drags-expected.txt: Added.
        * editing/pasteboard/files-during-page-drags.html: Added.
        * editing/pasteboard/resources/files-during-page-drags.js: Added.

2009-08-27  Oliver Hunt  <oliver@apple.com>

        Reviewed by Alexey Proskuryakov.

        JSON parser accepts trailing comma in array literals
        https://bugs.webkit.org/show_bug.cgi?id=28779

        Correct the JSON.parse test to expect "[1,]" to throw.

        * fast/js/JSON-parse-expected.txt:
        * fast/js/resources/JSON-parse.js:
        (createTests.result):

2009-08-26  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Adele Peterson.

        https://bugs.webkit.org/show_bug.cgi?id=28758
        <rdar://problem/6440869> Implement pageshow and pagehide events for b/f cache (28758)

        * fast/dom/Window/window-properties-expected.txt:
        * fast/dom/prototype-inheritance-expected.txt:
        * fast/js/global-constructors-expected.txt:
        Updated results for new event type.

        * fast/events/pageshow-pagehide-expected.txt: Added.
        * fast/events/pageshow-pagehide-on-back-cached-expected.txt: Added.
        * fast/events/pageshow-pagehide-on-back-cached.html: Added.
        * fast/events/pageshow-pagehide-on-back-uncached-expected.txt: Added.
        * fast/events/pageshow-pagehide-on-back-uncached.html: Added.
        * fast/events/pageshow-pagehide.html: Added.
        * fast/events/resources/pageshow-pagehide-subframe-2.html: Added.
        * fast/events/resources/pageshow-pagehide-subframe.html: Added.
        * fast/events/resources/pageshow-pagehide-subsubframe-2.html: Added.
        * fast/events/resources/pageshow-pagehide-subsubframe.html: Added.

2009-08-27  Renata Hodovan  <hodovan.renata@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt]Update expecteds (t150*) in css2.1 and remove from Skipped. This affects 20 files.

        * platform/qt/css2.1/t1503-c522-font-family-00-b-expected.txt:
        * platform/qt/css2.1/t1504-c523-font-style-00-b-expected.txt:
        * platform/qt/css2.1/t1504-c543-txt-decor-00-d-g-expected.txt:
        * platform/qt/css2.1/t1505-c524-font-var-00-b-expected.txt:
        * platform/qt/css2.1/t1506-c525-font-wt-00-b-expected.txt:
        * platform/qt/css2.1/t1507-c526-font-sz-00-b-expected.txt:
        * platform/qt/css2.1/t1507-c526-font-sz-01-b-a-expected.txt:
        * platform/qt/css2.1/t1507-c526-font-sz-02-b-a-expected.txt:
        * platform/qt/css2.1/t1507-c526-font-sz-03-f-a-expected.txt:
        * platform/qt/css2.1/t1508-c527-font-00-b-expected.txt:
        * platform/qt/css2.1/t1508-c527-font-01-b-expected.txt:
        * platform/qt/css2.1/t1508-c527-font-02-b-expected.txt:
        * platform/qt/css2.1/t1508-c527-font-03-b-expected.txt:
        * platform/qt/css2.1/t1508-c527-font-04-b-expected.txt:
        * platform/qt/css2.1/t1508-c527-font-05-b-expected.txt:
        * platform/qt/css2.1/t1508-c527-font-06-b-expected.txt:
        * platform/qt/css2.1/t1508-c527-font-07-b-expected.txt:
        * platform/qt/css2.1/t1508-c527-font-08-b-expected.txt:
        * platform/qt/css2.1/t1508-c527-font-09-b-expected.txt:
        * platform/qt/css2.1/t1508-c527-font-10-c-expected.txt:

2009-08-27  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt] Update outdated font metrics in these css1 tests since we pass them.

        * platform/qt/Skipped:
        * platform/qt/css1/box_properties/clear-expected.txt:
        * platform/qt/css1/box_properties/clear_float-expected.txt:
        * platform/qt/css1/box_properties/float-expected.txt:
        * platform/qt/css1/box_properties/float_elements_in_series-expected.txt:
        * platform/qt/css1/box_properties/float_margin-expected.txt:
        * platform/qt/css1/box_properties/float_on_text_elements-expected.txt:
        * platform/qt/css1/box_properties/height-expected.txt:
        * platform/qt/css1/box_properties/width-expected.txt:
        * platform/qt/css1/cascade/cascade_order-expected.txt:
        * platform/qt/css1/cascade/important-expected.txt:
        * platform/qt/css1/classification/display-expected.txt:
        * platform/qt/css1/classification/list_style-expected.txt:
        * platform/qt/css1/classification/list_style_image-expected.txt:
        * platform/qt/css1/classification/list_style_position-expected.txt:
        * platform/qt/css1/classification/list_style_type-expected.txt:
        * platform/qt/css1/classification/white_space-expected.txt:

2009-08-26  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt] Skip HTML5 input-list tests added in r47767.

        * platform/qt/Skipped:

2009-08-26  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        this in JSON.parse reviver is the global object
        https://bugs.webkit.org/show_bug.cgi?id=28752

        Add tests for JSON.parse with a reviver function that modifies
        the holder object provided during filtering.

        * fast/js/JSON-parse-reviver-expected.txt: Added.
        * fast/js/JSON-parse-reviver.html: Added.
        * fast/js/resources/JSON-parse-reviver.js: Added.
        (description.Array.isArray):
        (arrayReviver):
        (objectReviver):
        (reviveAddsCycle):
        (reviveIntroducesNewArrayLikeObject):

2009-08-26  Yaar Schnitman  <yaar@chromium.org>

        Reviewed by Adam Barth.

        Re-baselined and created new isolatedWorld tests to play nice with localStorage & sessionStorage.
        https://bugs.webkit.org/show_bug.cgi?id=27992

        * http/tests/security/isolatedWorld/all-window-properties.html: Re-baselined.
        * http/tests/security/isolatedWorld/storage-properties-expected.txt: Added.
        * http/tests/security/isolatedWorld/storage-properties.html: Added.
        * http/tests/security/isolatedWorld/storage-prototype-expected.txt: Added.
        * http/tests/security/isolatedWorld/storage-prototype.html: Added.
        * platform/qtk/Skipped: Added new tests.
        * platform/mac/Skipped: Added new tests.
        * platform/qt/Skipped: Added new tests.
        * platform/win/Skipped: Added new tests.

2009-08-26  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by NOBODY (Build fix).

        Fixup test after r47801: skip the first 'waiting' event because it is fired  
        when we call play() and there isn't enough media to begin playback immediately,
        but we are interested in the 'waiting' event fired when the movie runs 
        out of loaded media.

        * http/tests/media/video-play-stall-seek.html:

2009-08-26  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Simon Fraser.

        HTMLMediaElement sometimes loses events
        https://bugs.webkit.org/show_bug.cgi?id=28762
        <rdar://problem/7172437>

        * media/audio-play-event.html:
        * media/audio-play-event-expected.txt:
             Added.

        * media/video-play-empty-events-expected.txt:
            Updated results for previously missed events.

        * media/video-src-remove.html:
        * media/video-timeupdate-during-playback-expected.txt:
            Restructured to make results less timing dependent.

2009-08-26  Dave Hyatt  <hyatt@apple.com>

        Add layout test for relpositioned inline regression.

        Reviewed by Dan Bernstein.

        * fast/repaint/rel-positioned-inline-with-overflow.html: Added.
        * platform/mac/fast/repaint/rel-positioned-inline-with-overflow-expected.checksum: Added.
        * platform/mac/fast/repaint/rel-positioned-inline-with-overflow-expected.png: Added.
        * platform/mac/fast/repaint/rel-positioned-inline-with-overflow-expected.txt: Added.

2009-08-26  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        Test that RenderInline::clippedOverflowRectForRepaint() actually
        includes overflow.

        * fast/repaint/inline-overflow-expected.checksum: Added.
        * fast/repaint/inline-overflow-expected.png: Added.
        * fast/repaint/inline-overflow-expected.txt: Added.
        * fast/repaint/inline-overflow.html: Added.

2009-08-26  Julie Parent  <jparent@chromium.org>

        Reviewed by Maciej Stachowiak.

        Follow-up to http://trac.webkit.org/changeset/47790.  Add windows
        specific results that are the same as the results next to the test,
        since windows falls back on platform/mac.

        * platform/win/http/tests/xmlhttprequest/xmlhttprequest-missing-file-exception-expected.txt: Added.

2009-08-26  David Levin  <levin@chromium.org>

        Reviewed by Alexey Proskuryakov.

        XMLHttpRequest.withCredentials=false shouldn't save cookies.
        https://bugs.webkit.org/show_bug.cgi?id=28743

        Added a test to verify that XMLHttpRequest.withCredentials=false doesn't
        save cookies.

        * http/tests/xmlhttprequest/cross-origin-cookie-storage-expected.txt: Added.
        * http/tests/xmlhttprequest/cross-origin-cookie-storage.html: Added.
        * http/tests/xmlhttprequest/resources/cross-origin-set-cookies.php: Added.
        * http/tests/xmlhttprequest/resources/cross-origin-check-cookies.php: Added the ability
        to check for a cookie by name.
        * platform/gtk/Skipped: Skip the new test.
        * platform/qt/Skipped: Ditto.

2009-08-26  Julie Parent  <jparent@chromium.org>

        Reviewed by Alex Proskuryakov.

        Add Mac specific results for xhr-missing-file-expection test since it
        incorrectly always has statusText of "OK" due to
        https://bugs.webkit.org/show_bug.cgi?id=24572 and update the results
        that are next to the file to use "Not Found" since that is more correct
        and matches IE, FF, Chrome.
        
        https://bugs.webkit.org/show_bug.cgi?id=28723

        * http/tests/xmlhttprequest/xmlhttprequest-missing-file-exception-expected.txt:
        * platform/mac/http/tests/xmlhttprequest/xmlhttprequest-missing-file-exception-expected.txt: Added.
        * platform/win/Skipped: Stop skipping the test.

2009-08-25  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        [ES5] Implement getOwnPropertyDescriptor
        https://bugs.webkit.org/show_bug.cgi?id=28724

        Add tests for getOwnProeprtyDescriptor

        * fast/js/getOwnPropertyDescriptor-expected.txt: Added.
        * fast/js/getOwnPropertyDescriptor.html: Added.
        * fast/js/resources/getOwnPropertyDescriptor.js: Added.
        ():

2009-08-25  Dmitry Titov  <dimich@chromium.org>

        Unreviewed. Skip the new test fast/dom/Window/timer-resume-on-navigation-back.html
        on gtk and qt - their DRT does not yet implement overridePreference.

        * platform/gtk/Skipped:
        * platform/qt/Skipped:

2009-08-25  Dmitry Titov  <dimich@chromium.org>

        Reviewed by Brady Eidson.

        Timers from cached pages fire instantly rather than the specified timeout delay
        https://bugs.webkit.org/show_bug.cgi?id=28683

        Added test to verify the fix - it uses page cache and measures the timer callback fire time.

        * fast/dom/Window/timer-resume-on-navigation-back-expected.txt: Added.
        * fast/dom/Window/timer-resume-on-navigation-back.html: Added.

2009-08-25  Kent Tamura  <tkent@chromium.org>

        Reviewed by Eric Seidel.

        Support for HTMLInputElement::list and HTMLInputElement::selectedOption.
        https://bugs.webkit.org/show_bug.cgi?id=27756

        * fast/forms/input-list-expected.txt: Added.
        * fast/forms/input-list.html: Added.
        * fast/forms/input-selectedoption-expected.txt: Added.
        * fast/forms/input-selectedoption.html: Added.

2009-08-25  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Oliver Hunt.

        <video> and <audio> controller should be accessible
        https://bugs.webkit.org/show_bug.cgi?id=28081

        * accessibility/media-element.html: Added.
        * platform/mac/accessibility/media-element-expected.txt: Added.
        * media/video-controls-visible-audio-only.html:
        * platform/mac-leopard/accessibility/media-element-expected.txt: Added.
        * platform/mac-leopard/media/controls-drag-timebar-expected.txt: Added.
        * platform/mac-leopard/media/controls-strict-expected.txt: Added.
        * platform/mac-leopard/media/video-controls-rendering-expected.txt: Added.
        * platform/mac-leopard/media/video-display-toggle-expected.txt: Added.
        * platform/win/media/controls-strict-expected.txt: Added.
        * platform/win/media/video-controls-rendering-expected.txt: Added.
        * platform/win/media/video-display-toggle-expected.txt: Added.
            Added.

        * platform/mac-leopard/media/audio-controls-rendering-expected.txt:
        * platform/mac-leopard/media/controls-after-reload-expected.txt:
        * platform/mac-leopard/media/controls-styling-expected.txt:
        * platform/mac-leopard/media/video-zoom-controls-expected.txt:
        * platform/mac/media/audio-controls-rendering-expected.txt:
        * platform/mac/media/controls-after-reload-expected.txt:
        * platform/mac/media/controls-styling-expected.txt:
        * platform/mac/media/video-zoom-controls-expected.txt:
        * platform/win/media/audio-controls-rendering-expected.txt:
        * platform/win/media/controls-after-reload-expected.txt:
        * platform/win/media/controls-drag-timebar-expected.txt:
        * platform/win/media/controls-styling-expected.txt:
            Update for controller element tab order change.

        * platform/gtk/Skipped:
        * platform/win/Skipped:
            Skip new test.

2009-08-25  Mads Ager  <ager@chromium.org>

        Reviewed by Adam Barth.

        [V8] Exception from JavaScript propagates to main script
        https://bugs.webkit.org/show_bug.cgi?id=26433

        Test that both compile time and runtime exceptions thrown in
        javascript URLs are isolated from the main script.

        * fast/dom/javascript-url-exception-isolation-expected.txt: Added.
        * fast/dom/javascript-url-exception-isolation.html: Added.
        * fast/dom/resources/javascript-url-exception-isolation.js: Added.

2009-08-25  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Simon Fraser.

        Fixed one test which changed due to different inheritance of CanvasRenderingContext2D
        https://bugs.webkit.org/show_bug.cgi?id=28018

        * fast/dom/prototype-inheritance-2-expected.txt:

2009-08-25  Renata Hodovan  <hodovan.renata@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt] Update outdated metrics in css1/font_properties. All tests pass.

        * platform/qt/Skipped:
        * platform/qt/css1/font_properties/font-expected.txt:
        * platform/qt/css1/font_properties/font_family-expected.txt:
        * platform/qt/css1/font_properties/font_size-expected.txt:
        * platform/qt/css1/font_properties/font_style-expected.txt:
        * platform/qt/css1/font_properties/font_variant-expected.txt:
        * platform/qt/css1/font_properties/font_weight-expected.txt:

2009-08-25  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt] Update outdated font metrics and add expected files for new tests.

        * platform/qt/Skipped:
        * platform/qt/fast/backgrounds/001-expected.txt:
        * platform/qt/fast/backgrounds/animated-gif-as-background-expected.txt: Added.
        * platform/qt/fast/backgrounds/animated-svg-as-background-expected.txt: Added.
        * platform/qt/fast/backgrounds/animated-svg-as-mask-expected.txt: Added.
        * platform/qt/fast/backgrounds/background-clip-text-expected.txt: Added.
        * platform/qt/fast/backgrounds/background-inherit-color-bug-expected.txt:
        * platform/qt/fast/backgrounds/background-origin-root-element-expected.txt: Added.
        * platform/qt/fast/backgrounds/background-position-1-expected.txt: Added.
        * platform/qt/fast/backgrounds/background-position-rounding-expected.txt: Added.
        * platform/qt/fast/backgrounds/mask-composite-expected.txt: Added.
        * platform/qt/fast/backgrounds/opacity-on-document-element-expected.txt: Added.
        * platform/qt/fast/backgrounds/repeat/mask-negative-offset-repeat-expected.txt: Added.
        * platform/qt/fast/backgrounds/repeat/negative-offset-repeat-expected.txt:
        * platform/qt/fast/backgrounds/repeat/noRepeatCorrectClip-expected.txt:
        * platform/qt/fast/backgrounds/size/backgroundSize15-expected.txt:
        * platform/qt/fast/backgrounds/size/zero-expected.txt: Added.
        * platform/qt/fast/backgrounds/solid-color-context-restore-expected.txt:
        * platform/qt/fast/backgrounds/svg-as-mask-expected.txt: Added.

2009-08-24  Hironori Bono  <hbono@chromium.org>

        Reviewed by Adam Barth.

        Fix Bug 27827 "[Chromium] Functions Keys don't work in google spreadsheet".
        <https://bugs.webkit.org/show_bug.cgi?id=27827>.

        Because of the lack of mappings from GDK key-codes to WebKit key-codes,
        Chromium cannot send valid key-codes to JavaScript when a user types
        function keys. This change just copies the mappings from 'KeyEventGtk.cpp'.

        To write layout tests for this issue, added mappings from function-key
        names to platform-specific key-codes to EventSendingController objects
        so that eventSender.keyDown() can send function-key events without using
        platform-specific key codes. (Unfortunately, this eventSender.keyDown() change
        is only for Mac. So this change adds this new test to Skipped tests for other
        platforms to prevent this change from crashing the build trees.)

        * fast/events/keydown-function-keys-expected.txt: Added.
        * fast/events/keydown-function-keys.html: Added.
        * platform/gtk/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:

2009-08-24  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=28374
        Cross-scheme requests should not be blocked by appcache rules

        * http/tests/appcache/different-scheme-expected.txt: Added.
        * http/tests/appcache/different-scheme.html: Added.
        * http/tests/appcache/resources/different-scheme.manifest: Added.

2009-08-24  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler and Sam Weinig.

        https://bugs.webkit.org/show_bug.cgi?id=28688
        REGRESSION(r24994): Cannot create a frame with a javascript URL

        * http/tests/security/javascriptURL/javascriptURL-in-new-iframe-expected.txt: Added.
        * http/tests/security/javascriptURL/javascriptURL-in-new-iframe.html: Added.

2009-08-24  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Skip the correct test (media/video-currentTime-set.html, not
        media/video-currentTime-set2.html).

        * platform/gtk/Skipped:

2009-08-24  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Skip 3 new tests, and reenable some of the media tests, now that
        the bot it fixed to handle the fact that it doesn't have a sound
        card.

        * platform/gtk/Skipped:

2009-08-24  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Unreviewed. Skip again tests that we enabled, since they are
        failing on the bot. The tests do pass, but there is an environment
        configuration problem with GStreamer on the bot (possibly related
        to the fact that it has no sound card).

        * platform/gtk/Skipped:

2009-08-24  Ada Chan  <adachan@apple.com>

        Reviewed by Mark Rowe.
        
        Skip loader/go-back-to-different-window-size.html for qt and gtk.

        * platform/gtk/Skipped:
        * platform/qt/Skipped:

2009-08-24  Ada Chan  <adachan@apple.com>

        Reviewed by Brady Eidson.

        Add test for https://bugs.webkit.org/show_bug.cgi?id=28659.
        Cached page should be formatted according to the current window size, not the cached frame's size.

        * loader: Added.
        * loader/go-back-to-different-window-size-expected.txt: Added.
        * loader/go-back-to-different-window-size.html: Added.

2009-08-24  Eric Seidel  <eric@webkit.org>

        No review, just updating results.

        Support placeholder on textarea
        https://bugs.webkit.org/show_bug.cgi?id=21248

        Update expected test results form windows bot.

        * platform/win/fast/forms/basic-textareas-expected.txt:
        * platform/win/fast/forms/textarea-placeholder-pseudo-style-expected.txt: Added.
        * platform/win/fast/forms/textarea-placeholder-set-attribute-expected.txt: Added.
        * platform/win/fast/forms/textarea-placeholder-set-value-expected.txt: Added.

2009-08-24  Cameron McCormack  <cam@mcc.id.au>

        Reviewed by Darin Adler.

        Modifying <text rotate=""> doesn't clear the corresponding SVGAnimatedNumberList
        https://bugs.webkit.org/show_bug.cgi?id=28673

        * svg/dom/resources/text-rotate-live.js: Added.
        (getRotate):
        (getAndSetRotate):
        * svg/dom/text-rotate-live-expected.txt: Added.
        * svg/dom/text-rotate-live.html: Added.

2009-08-24  Dan Bernstein  <mitz@apple.com>

        Reviewed by Simon Fraser.

        background-size fails to parse if a single length/percentage/auto is followed by a comma
        https://bugs.webkit.org/show_bug.cgi?id=28674

        * fast/backgrounds/size/parsing-background-size-values-expected.txt:
        * fast/backgrounds/size/resources/parsing-background-size-values.js:

2009-08-24  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Unreviewed. Add missing files from former commit 47709.

        * platform/qt/fast/backgrounds/svg-as-background-1-expected.txt: Added.
        * platform/qt/fast/backgrounds/svg-as-background-2-expected.txt: Added.
        * platform/qt/fast/backgrounds/svg-as-background-3-expected.txt: Added.
        * platform/qt/fast/backgrounds/svg-as-background-4-expected.txt: Added.
        * platform/qt/fast/backgrounds/svg-as-background-5-expected.txt: Added.
        * platform/qt/fast/backgrounds/svg-as-background-6-expected.txt: Added.

2009-08-24  Zan Dobersek  <zandobersek@gmail.com>

        Reviewed by Gustavo Noronha.

        [GTK] Integrate GStreamer video with the graphics backend
        https://bugs.webkit.org/show_bug.cgi?id=16356

        Enable media tests that now pass.

        * platform/gtk/Skipped:

2009-08-24  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt] Add results with updated font metrics for passing tests added in
        r28637 and remove them from Skipped.

        * platform/qt/Skipped:
        * platform/qt/fast/backgrounds/svg-as-background-1-expected.txt: Added.
        * platform/qt/fast/backgrounds/svg-as-background-2-expected.txt: Added.
        * platform/qt/fast/backgrounds/svg-as-background-3-expected.txt: Added.
        * platform/qt/fast/backgrounds/svg-as-background-4-expected.txt: Added.
        * platform/qt/fast/backgrounds/svg-as-background-5-expected.txt: Added.
        * platform/qt/fast/backgrounds/svg-as-background-6-expected.txt: Added.

2009-08-24  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt] Add results for new tests added in r47590 and r47702.

        * platform/qt/fast/forms/textarea-placeholder-pseudo-style-expected.txt: Added.
        * platform/qt/fast/forms/textarea-placeholder-set-attribute-expected.txt: Added.
        * platform/qt/fast/forms/textarea-placeholder-set-value-expected.txt: Added.
        * platform/qt/fast/repaint/inline-block-resize-expected.txt: Added.

2009-08-24  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Rubber-stamped by Simon Hausmann.

        [Qt] Skip new test added in r47360

        * platform/qt/Skipped: Skip fast/backgrounds/size/parsing-inherit.html.

2009-08-24  Renata Hodovan  <hodovan.renata@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt] Update the outdated metrics for doctype tests. All tests pass.

        * platform/qt/Skipped:
        * platform/qt/fast/doctypes/001-expected.txt:
        * platform/qt/fast/doctypes/002-expected.txt:
        * platform/qt/fast/doctypes/004-expected.txt:

2009-08-24  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt] Add results for new tests added in r47678.

        * platform/qt/fast/block/margin-collapse/block-inside-inline: Added.
        * platform/qt/fast/block/margin-collapse/block-inside-inline/001-expected.txt: Added.
        * platform/qt/fast/block/margin-collapse/block-inside-inline/002-expected.txt: Added.
        * platform/qt/fast/block/margin-collapse/block-inside-inline/003-expected.txt: Added.
        * platform/qt/fast/block/margin-collapse/block-inside-inline/004-expected.txt: Added.
        * platform/qt/fast/block/margin-collapse/block-inside-inline/005-expected.txt: Added.
        * platform/qt/fast/block/margin-collapse/block-inside-inline/006-expected.txt: Added.
        * platform/qt/fast/block/margin-collapse/block-inside-inline/010-expected.txt: Added.
        * platform/qt/fast/block/margin-collapse/block-inside-inline/011-expected.txt: Added.
        * platform/qt/fast/block/margin-collapse/block-inside-inline/012-expected.txt: Added.
        * platform/qt/fast/block/margin-collapse/block-inside-inline/015-expected.txt: Added.
        * platform/qt/fast/block/margin-collapse/block-inside-inline/016-expected.txt: Added.
        * platform/qt/fast/block/margin-collapse/block-inside-inline/017-expected.txt: Added.
        * platform/qt/fast/block/margin-collapse/block-inside-inline/018-expected.txt: Added.
        * platform/qt/fast/block/margin-collapse/block-inside-inline/019-expected.txt: Added.
        * platform/qt/fast/block/margin-collapse/block-inside-inline/020-expected.txt: Added.
        * platform/qt/fast/block/margin-collapse/block-inside-inline/021-expected.txt: Added.
        * platform/qt/fast/block/margin-collapse/block-inside-inline/022-expected.txt: Added.
        * platform/qt/fast/block/margin-collapse/block-inside-inline/025-expected.txt: Added.

2009-08-24  Kent Tamura  <tkent@chromium.org>

        Reviewed by Eric Seidel.

        - Add tests for the placeholder attribute and DOM property of the textarea element.
        - Correct the results for input-text-maxlength.html
        https://bugs.webkit.org/show_bug.cgi?id=21248

        * fast/forms/resources/textarea-placeholder-dom-property.js: Added.
        * fast/forms/textarea-placeholder-dom-property-expected.txt: Added.
        * fast/forms/textarea-placeholder-dom-property.html: Added.
        * fast/forms/textarea-placeholder-pseudo-style.html: Added.
        * fast/forms/textarea-placeholder-set-attribute.html: Added.
        * fast/forms/textarea-placeholder-set-value.html: Added.
        * platform/mac-leopard/fast/forms/input-text-maxlength-expected.txt:
        * platform/mac/fast/forms/input-text-maxlength-expected.txt:
        * platform/mac/fast/forms/textarea-placeholder-pseudo-style-expected.txt: Added.
        * platform/mac/fast/forms/textarea-placeholder-set-attribute-expected.txt: Added.
        * platform/mac/fast/forms/textarea-placeholder-set-value-expected.txt: Added.
        * platform/qt/fast/forms/input-text-maxlength-expected.txt:
        * platform/win/fast/forms/input-text-maxlength-expected.txt:

2009-08-23  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Fix regression in editing tests by changing expected file to the
        Mac one, since we now default to Mac in the EditingBehavior
        setting.

        * platform/gtk/editing/execCommand/toggle-compound-styles-expected.txt:

2009-08-23  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Not reviewed. Skip new tests from
        http://trac.webkit.org/changeset/47678 and the appcache HTTP
        authentication tests (https://bugs.webkit.org/show_bug.cgi?id=28668)

        * platform/gtk/Skipped:

2009-08-22  David Hyatt  <hyatt@apple.com>

        Reviewed by Dan Bernstein.

        Add a bunch of tests for the block-inside-inline cases of margin-collapsing.  The same test
        suite but converted to wrap all the blocks inside inlines to make sure they still collapse
        the same way.

        * fast/block/margin-collapse/block-inside-inline: Added.
        * fast/block/margin-collapse/block-inside-inline/001.html: Added.
        * fast/block/margin-collapse/block-inside-inline/002.html: Added.
        * fast/block/margin-collapse/block-inside-inline/003.html: Added.
        * fast/block/margin-collapse/block-inside-inline/004.html: Added.
        * fast/block/margin-collapse/block-inside-inline/005.html: Added.
        * fast/block/margin-collapse/block-inside-inline/006.html: Added.
        * fast/block/margin-collapse/block-inside-inline/010.html: Added.
        * fast/block/margin-collapse/block-inside-inline/011.html: Added.
        * fast/block/margin-collapse/block-inside-inline/012.html: Added.
        * fast/block/margin-collapse/block-inside-inline/015.html: Added.
        * fast/block/margin-collapse/block-inside-inline/016.html: Added.
        * fast/block/margin-collapse/block-inside-inline/017.html: Added.
        * fast/block/margin-collapse/block-inside-inline/018.html: Added.
        * fast/block/margin-collapse/block-inside-inline/019.html: Added.
        * fast/block/margin-collapse/block-inside-inline/020.html: Added.
        * fast/block/margin-collapse/block-inside-inline/021.html: Added.
        * fast/block/margin-collapse/block-inside-inline/022.html: Added.
        * fast/block/margin-collapse/block-inside-inline/025.html: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/001-expected.checksum: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/001-expected.png: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/001-expected.txt: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/002-expected.checksum: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/002-expected.png: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/002-expected.txt: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/003-expected.checksum: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/003-expected.png: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/003-expected.txt: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/004-expected.checksum: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/004-expected.png: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/004-expected.txt: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/005-expected.checksum: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/005-expected.png: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/005-expected.txt: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/006-expected.checksum: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/006-expected.png: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/006-expected.txt: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/010-expected.checksum: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/010-expected.png: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/010-expected.txt: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/011-expected.checksum: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/011-expected.png: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/011-expected.txt: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/012-expected.checksum: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/012-expected.png: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/012-expected.txt: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/015-expected.checksum: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/015-expected.png: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/015-expected.txt: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/016-expected.checksum: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/016-expected.png: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/016-expected.txt: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/017-expected.checksum: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/017-expected.png: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/017-expected.txt: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/018-expected.checksum: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/018-expected.png: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/018-expected.txt: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/019-expected.checksum: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/019-expected.png: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/019-expected.txt: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/020-expected.checksum: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/020-expected.png: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/020-expected.txt: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/021-expected.checksum: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/021-expected.png: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/021-expected.txt: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/022-expected.checksum: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/022-expected.png: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/022-expected.txt: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/025-expected.checksum: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/025-expected.png: Added.
        * platform/mac/fast/block/margin-collapse/block-inside-inline/025-expected.txt: Added.

2009-08-22  chris fleizach  <cfleizach@apple.com>

        Need to implement ARIA role="listitem" and role="list"
        https://bugs.webkit.org/show_bug.cgi?id=28606

        Fixing LayoutTest bustage.

        The SnowLeopard results are the latest, so they need to move to platform/mac
        The Tiger/Leopard results will default to the SnowLeopard results, so we need to move
        the current test from platform/mac to platform/mac-leopard         

        * platform/mac-leopard/accessibility/aria-roles-expected.txt: Copied from LayoutTests/platform/mac/accessibility/aria-roles-expected.txt.
        * platform/mac-snowleopard/accessibility/aria-roles-expected.txt: Removed.
        * platform/mac/accessibility/aria-roles-expected.txt: Replaced with LayoutTests/platform/mac-snowleopard/accessibility/aria-roles-expected.txt.

2009-08-22  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        Need to implement ARIA role="listitem" and role="list"
        https://bugs.webkit.org/show_bug.cgi?id=28606

        Also added a SnowLeopard specific result for aria-roles-expected.

        * platform/mac-snowleopard/accessibility: Added.
        * platform/mac-snowleopard/accessibility/aria-list-and-listitem-expected.txt: Added.
        * platform/mac-snowleopard/accessibility/aria-list-and-listitem.html: Added.
        * platform/mac-snowleopard/accessibility/aria-roles-expected.txt: Added.

2009-08-21  Michelangelo De Simone  <micdesim@gmail.com>

        Reviewed by Adele Peterson.

        https://bugs.webkit.org/show_bug.cgi?id=28145
        Tests for novalidate/formnovalidate attribute, from HTML5 specs:
        http://www.whatwg.org/specs/web-apps/current-work/#attr-fs-novalidate

        * fast/dom/domListEnumeration-expected.txt:
        * fast/dom/resources/domListEnumeration.js:
        * fast/forms/formnovalidate-attribute-expected.txt: Added.
        * fast/forms/formnovalidate-attribute.html: Added.
        * fast/forms/novalidate-attribute-expected.txt: Added.
        * fast/forms/novalidate-attribute.html: Added.
        * fast/forms/resources/formnovalidate-attribute.js: Added.
        * fast/forms/resources/novalidate-attribute.js: Added.

2009-08-21  Dan Bernstein  <mitz@apple.com>

        Rubber-stamped by Anders Carlsson.

        Tweaked the test to make everything fit in a 800-by-600 view.

        * fast/backgrounds/size/contain-and-cover-expected.checksum:
        * fast/backgrounds/size/contain-and-cover-expected.png:
        * fast/backgrounds/size/contain-and-cover-expected.txt:
        * fast/backgrounds/size/contain-and-cover.html:

2009-08-21  Dan Bernstein  <mitz@apple.com>

        Reviewed by Beth Dakin.

        Rendering tests for
        [CSS3 Backgrounds and Borders] Add support for the "contain" value for
        background-size
        https://bugs.webkit.org/show_bug.cgi?id=27573
        and
        [CSS3 Backgrounds and Borders] Add support for the "cover" value for
        background-size
        https://bugs.webkit.org/show_bug.cgi?id=27574

        * fast/backgrounds/size/contain-and-cover-expected.checksum: Added.
        * fast/backgrounds/size/contain-and-cover-expected.png: Added.
        * fast/backgrounds/size/contain-and-cover-expected.txt: Added.
        * fast/backgrounds/size/contain-and-cover.html: Added.
        * fast/backgrounds/size/resources/SquirrelFish.svg: Added!!!

2009-08-21  Michelangelo De Simone  <micdesim@gmail.com>

        Reviewed by Adele Peterson.

        https://bugs.webkit.org/show_bug.cgi?id=27452
        Tests for checkValidity() method and invalid event, from HTML5
        specs:
        http://www.whatwg.org/specs/web-apps/current-work/#dom-form-checkvalidity

        * fast/events/invalid-001-expected.txt: Added.
        * fast/events/invalid-001.html: Added.
        * fast/events/invalid-002-expected.txt: Added.
        * fast/events/invalid-002.html: Added.
        * fast/events/invalid-003-expected.txt: Added.
        * fast/events/invalid-003.html: Added.
        * fast/events/invalid-004-expected.txt: Added.
        * fast/events/invalid-004.html: Added.
        * fast/events/invalid-005-expected.txt: Added.
        * fast/events/invalid-005.html: Added.
        * fast/forms/checkValidity-001-expected.txt: Added.
        * fast/forms/checkValidity-001.html: Added.
        * fast/forms/checkValidity-002-expected.txt: Added.
        * fast/forms/checkValidity-002.html: Added.
        * fast/forms/checkValidity-003-expected.txt: Added.
        * fast/forms/checkValidity-003.html: Added.
        * fast/forms/checkValidity-004-expected.txt: Added.
        * fast/forms/checkValidity-004.html: Added.
        * fast/dom/Window/window-properties-expected.txt:
        * fast/dom/domListEnumeration-expected.txt:
        * fast/dom/resources/domListEnumeration.js:

2009-08-21  Beth Dakin  <bdakin@apple.com>

        Reviewed by Dan Bernstein.

        Test for the CSS part of https://bugs.webkit.org/show_bug.cgi?id=27571 [CSS3 Backgrounds and Borders] Add support for the "round" value 
        for background-repeat
        -and-
        https://bugs.webkit.org/show_bug.cgi?id=27570 [CSS3 Backgrounds and 
        Borders] Add support for the "space" value for background-repeat

        * fast/backgrounds/repeat/parsing-background-repeat-expected.txt: Added.
        * fast/backgrounds/repeat/parsing-background-repeat.html: Added.
        * fast/backgrounds/repeat/resources/parsing-background-repeat.js: Added.
        (test):

2009-08-21  Christian Plesner Hansen  <christian.plesner.hansen@gmail.com>

        Reviewed by Eric Seidel.

        Regression test for bug fixed in
        http://codereview.chromium.org/171039.  Regexps created in one
        frame were not callable outside that frame.
        https://bugs.webkit.org/show_bug.cgi?id=28387

        * fast/regex/cross-frame-callable-expected.txt: Added.
        * fast/regex/cross-frame-callable.html: Added.
        * fast/regex/resources/cross-frame-callable.js: Added.
        (doTest):

2009-08-21  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Eric Seidel.

        execCommand("Underline") uses CSS even when styleWithCSS has been turned off
        https://bugs.webkit.org/show_bug.cgi?id=23892

        This patch rebaselines tests contained spans to decorate texts even though styleWithCSS is turned off.
        It replaces those spans with either u or s accordingly.

        It modifies the order in which tag appear in toggle-style-2 to match the actual result
        since the original ordering was rather arbitrary.

        This patch breaks /editing/style/font-family-with-space.html for Qt platform.
        Manual rebaseline is required once the patch is landed.

        * editing/execCommand/resources/toggle-style-2.js: Modified the order in which tag appear
        * editing/execCommand/resources/toggle-text-decorations.js: execCommand('styleWithCSS') is called after selection is set
        (testSingleToggle):
        * editing/execCommand/strikethroughSelection-expected.txt: span with line-through was replaced by s
        * editing/execCommand/toggle-style-2-expected.txt: Passes all but the last two tests.
        * editing/style/remove-underline-across-paragraph-expected.txt: Underline is added by u instead of CSS.
        * editing/style/remove-underline-across-paragraph-in-bold-expected.txt: Ditto.
        * editing/style/remove-underline-after-paragraph-expected.txt: Ditto.
        * editing/style/remove-underline-after-paragraph-in-bold-expected.txt: Ditto.
        * editing/style/remove-underline-expected.txt: Ditto.
        * editing/style/remove-underline-in-bold-expected.txt: Ditto.
        * editing/style/underline-expected.txt: Ditto.
        * platform/mac/editing/execCommand/5190926-expected.txt: Ditto.
        * platform/mac/editing/pasteboard/5075944-expected.txt: Ditto.
        * platform/mac/editing/style/font-family-with-space-expected.txt: Ditto.
        * platform/qt/editing/execCommand/5190926-expected.txt: Ditto.
        * platform/qt/editing/pasteboard/5075944-expected.txt: Ditto.

2009-08-21  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Skipping a new test, a test that requires geolocation support (we
        do not enable it yet), and a test which needs font sizing to be
        properly setup.

        * platform/gtk/Skipped:

2009-08-21  Oliver Hunt  <oliver@apple.com>

        Reviewed by Tim Hatcher.

        Add test to ensure JSON parser does not accept comments.

        * fast/js/JSON-parse-expected.txt:
        * fast/js/resources/JSON-parse.js:
        (createTests.result):

2009-08-21  Beth Dakin  <bdakin@apple.com>

        Reviewed by Dan Bernstein.

        Tests for the CSS part of https://bugs.webkit.org/show_bug.cgi?id=27574 [CSS3 Backgrounds and Borders] Add support for the "contain" value 
        for background-size
        -and-
        https://bugs.webkit.org/show_bug.cgi?id=27573 [CSS3 Backgrounds and 
        Borders] Add support for the "cover" value for background-size

        * fast/backgrounds/size/parsing-background-size-values-expected.txt: Added.
        * fast/backgrounds/size/parsing-background-size-values.html: Added.
        * fast/backgrounds/size/parsing-inherit-expected.txt: Added.
        * fast/backgrounds/size/parsing-inherit.html: Added.
        * fast/backgrounds/size/resources/parsing-background-size-values.js: Added.
        (test):
        * fast/backgrounds/size/resources/parsing-inherit.js: Added.
        (test):

2009-08-21  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Gustavo Noronha.

        [Gtk] Check-in result for http://trac.webkit.org/changeset/47590.

        * platform/gtk/fast/repaint/inline-block-resize-expected.txt: Copied from LayoutTests/platform/mac/fast/repaint/inline-block-resize-expected.txt.

2009-08-20  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        Enable various "grouping" ARIA roles
        https://bugs.webkit.org/show_bug.cgi?id=28486

        * platform/mac/accessibility/aria-grouping-roles-expected.txt: Added.
        * platform/mac/accessibility/aria-grouping-roles.html: Added.

2009-08-20  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        REGRESSION: fast/profiler/call.html is crashing occasionally
        https://bugs.webkit.org/show_bug.cgi?id=28476

        Re-enable the test now that the crash has been fixed.

        * fast/profiler/call.html: Renamed from LayoutTests/fast/profiler/call.html-disabled.

2009-08-20  Albert J. Wong  <ajwong@chromium.org>

        Reviewed by David Levin.

        HTML5 media elements do not fire waiting events correctly
        https://bugs.webkit.org/show_bug.cgi?id=28335

        New manual test to check if waiting/seeking events are fired
        when seeking into a non-buffered region.

        * http/tests/media/video-throttled-load.cgi: Added.
        * media/video-test.js:
        (isInTimeRanges):

2009-08-20  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Eric Seidel.

        underline tests in /editing/style/ need not to be pixel tests but need to print markup
        https://bugs.webkit.org/show_bug.cgi?id=28471

        This patch modifies remove-underline-in-bold.html to use runDumpAsTextEditingTest.

        * editing/style/remove-underline-in-bold-expected.txt:
        * editing/style/remove-underline-in-bold.html:

2009-08-20  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Eric Seidel.

        Some tests using editing.js in editing/execCommand should use runDumpAsTextEditingTest
        https://bugs.webkit.org/show_bug.cgi?id=28494

        This patch modifies the following tests to use runDumpAsTextEditingTest

        * editing/editing.js: Fixed typo and added foreColorCommand.
        (execBackColorCommand):
        * editing/execCommand/italicizeByCharacter-expected.txt: Added.
        * editing/execCommand/italicizeByCharacter.html:
        * editing/execCommand/modifyForeColorByCharacter-expected.txt: Added.
        * editing/execCommand/modifyForeColorByCharacter.html:
        * editing/execCommand/strikethroughSelection-expected.txt: Added.
        * editing/execCommand/strikethroughSelection.html:

2009-08-20  Eric Seidel  <eric@webkit.org>

        No review, just disabling a crashing test.

        REGRESSION: fast/profiler/call.html is crashing occasionally
        https://bugs.webkit.org/show_bug.cgi?id=28476

        Disable this test until one of the JSC folks can find a fix.
        This test will occasionally crash and cause patches to be rejected
        from the commit-queue which are otherwise fine.

        * fast/profiler/call.html-disabled: Renamed from LayoutTests/fast/profiler/call.html.

2009-08-20  David Hyatt  <hyatt@apple.com>

        Reviewed by Dan Bernstein.

        https://bugs.webkit.org/show_bug.cgi?id=28497, images don't propagate overflow properly when they change
        size on a line.
        
        Add a new layout test and update an existing layout test.

        * fast/repaint/inline-block-resize.html: Added.
        * platform/mac/fast/repaint/inline-block-resize-expected.checksum: Added.
        * platform/mac/fast/repaint/inline-block-resize-expected.png: Added.
        * platform/mac/fast/repaint/inline-block-resize-expected.txt: Added.
        * platform/mac/fast/replaced/border-radius-clip-expected.txt:

2009-08-20  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Anders Carlsson.

        HTML5 media elements must fire 'loadend' progress event
        https://bugs.webkit.org/show_bug.cgi?id=28419

        Add 'loadend' to existing tests.

        * media/event-attributes-expected.txt:
        * media/event-attributes.html:
        * media/media-load-event-expected.txt:
        * media/media-load-event.html:
        * media/progress-event-at-least-one-expected.txt:
        * media/progress-event-at-least-one.html:

2009-08-20  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Darin Adler.

        REGESSION(r45316), Crash: WebKit crashes in Google Sites when indenting a table
        https://bugs.webkit.org/show_bug.cgi?id=28474

        This patch adds a test to make sure WebKit does not crash when indenting immediately right to a table.

        * editing/execCommand/indent-right-after-table-expected.txt: Added.
        * editing/execCommand/indent-right-after-table.html: Added.

2009-08-20  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Rubber-stamped by Simon Hausmann.

        [Qt] Update the (outdated) metrics for css1 padding and margin tests. All tests pass.

        * platform/qt/Skipped: Excluded passed tests.
        * platform/qt/css1/box_properties/margin-expected.txt:
        * platform/qt/css1/box_properties/margin_bottom-expected.txt:
        * platform/qt/css1/box_properties/margin_bottom_inline-expected.txt:
        * platform/qt/css1/box_properties/margin_inline-expected.txt:
        * platform/qt/css1/box_properties/margin_left-expected.txt:
        * platform/qt/css1/box_properties/margin_left_inline-expected.txt:
        * platform/qt/css1/box_properties/margin_right-expected.txt:
        * platform/qt/css1/box_properties/margin_right_inline-expected.txt:
        * platform/qt/css1/box_properties/margin_top-expected.txt:
        * platform/qt/css1/box_properties/margin_top_inline-expected.txt:
        * platform/qt/css1/box_properties/padding-expected.txt:
        * platform/qt/css1/box_properties/padding_bottom-expected.txt:
        * platform/qt/css1/box_properties/padding_bottom_inline-expected.txt:
        * platform/qt/css1/box_properties/padding_inline-expected.txt:
        * platform/qt/css1/box_properties/padding_left-expected.txt:
        * platform/qt/css1/box_properties/padding_left_inline-expected.txt:
        * platform/qt/css1/box_properties/padding_right-expected.txt:
        * platform/qt/css1/box_properties/padding_right_inline-expected.txt:
        * platform/qt/css1/box_properties/padding_top-expected.txt:
        * platform/qt/css1/box_properties/padding_top_inline-expected.txt:

2009-08-20  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        Updated results after fixing
        <rdar://problem/7154605> Loading page with 1px wide <select> makes the
        toolbar go blank
        and
        <rdar://problem/7154521> Lots of "<Error>: doClip: empty path." spew in
        the console with certain content

        * platform/mac/fast/forms/001-expected.checksum:
        * platform/mac/fast/forms/001-expected.png:
        * platform/mac/fast/forms/menulist-narrow-width-expected.checksum:
        * platform/mac/fast/forms/menulist-narrow-width-expected.png:

2009-08-20  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Gustavo Noronha.

        [Gtk][REGRESSION] XHR test failures after r45558
        https://bugs.webkit.org/show_bug.cgi?id=27143

        http/tests/xmlhttprequest/small-chunks-response-text.html
        - Enable test fixed by this patch.

        http/tests/xmlhttprequest/access-control-basic-allow-preflight-cache.html
        http/tests/xmlhttprequest/cache-override.html
        - Enable tests already passing.

        Updated patch originally by Gustavo Noronha.

        * platform/gtk/Skipped:

2009-08-20  Dirk Schulze  <krit@webkit.org>

        Reviewed by Ariya Hidayat.

        Check if the combination of getImageData and the afterward use of putImageData 
        still gives the right result.

        * fast/canvas/canvas-copyPixels-expected.txt: Added.
        * fast/canvas/canvas-copyPixels.html: Added.
        * fast/canvas/resources/canvas-copyPixels.js: Added.

2009-08-20  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Rubber-stamped by Simon Hausmann.

        [Qt] Of course we pass ACID1 tests. Update the metrics.

        * platform/qt/Skipped:
        * platform/qt/css1/box_properties/acid_test-expected.txt:

2009-08-20  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Rubber-stamped by Simon Hausmann.

        [Qt] Update the (outdated) metrics for css1 borders tests. All tests pass.

        * platform/qt/Skipped: Excluded passed tests.
        * platform/qt/css1/box_properties/border-expected.txt:
        * platform/qt/css1/box_properties/border_bottom-expected.txt:
        * platform/qt/css1/box_properties/border_bottom_inline-expected.txt:
        * platform/qt/css1/box_properties/border_bottom_width-expected.txt:
        * platform/qt/css1/box_properties/border_bottom_width_inline-expected.txt:
        * platform/qt/css1/box_properties/border_color-expected.txt:
        * platform/qt/css1/box_properties/border_color_inline-expected.txt:
        * platform/qt/css1/box_properties/border_inline-expected.txt:
        * platform/qt/css1/box_properties/border_left-expected.txt:
        * platform/qt/css1/box_properties/border_left_inline-expected.txt:
        * platform/qt/css1/box_properties/border_left_width-expected.txt:
        * platform/qt/css1/box_properties/border_left_width_inline-expected.txt:
        * platform/qt/css1/box_properties/border_right-expected.txt:
        * platform/qt/css1/box_properties/border_right_inline-expected.txt:
        * platform/qt/css1/box_properties/border_right_width-expected.txt:
        * platform/qt/css1/box_properties/border_right_width_inline-expected.txt:
        * platform/qt/css1/box_properties/border_style-expected.txt:
        * platform/qt/css1/box_properties/border_style_inline-expected.txt:
        * platform/qt/css1/box_properties/border_top-expected.txt:
        * platform/qt/css1/box_properties/border_top_inline-expected.txt:
        * platform/qt/css1/box_properties/border_top_width-expected.txt:
        * platform/qt/css1/box_properties/border_top_width_inline-expected.txt:
        * platform/qt/css1/box_properties/border_width-expected.txt:
        * platform/qt/css1/box_properties/border_width_inline-expected.txt:

2009-08-20  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Rubber-stamped by Simon Hausmann.

        [Qt] Update the (outdated) metrics for css1/basic tests. All tests pass.

        * platform/qt/Skipped: Excluded passed tests.
        * platform/qt/css1/basic/class_as_selector-expected.txt:
        * platform/qt/css1/basic/comments-expected.txt:
        * platform/qt/css1/basic/containment-expected.txt:
        * platform/qt/css1/basic/contextual_selectors-expected.txt:
        * platform/qt/css1/basic/grouping-expected.txt:
        * platform/qt/css1/basic/id_as_selector-expected.txt:
        * platform/qt/css1/basic/inheritance-expected.txt:

2009-08-20  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Rubber-stamped by Simon Hausmann.

        [Qt] Update the metrics after recent refactoring. All tests pass.

        * platform/qt/fast/box-shadow/basic-shadows-expected.txt:
        * platform/qt/fast/box-shadow/transform-fringing-expected.txt:
        * platform/qt/fast/dynamic/genContentDestroyChildren-expected.txt:
        * platform/qt/fast/dynamic/window-resize-scrollbars-test-expected.txt:
        * platform/qt/fast/images/image-in-map-expected.txt:
        * platform/qt/tables/mozilla/bugs/adforce_imgis_com-expected.txt:
        * platform/qt/tables/mozilla_expected_failures/bugs/bug23847-expected.txt:

2009-08-19  Aaron Boodman  <aa@chromium.org>

        Reviewed by David Levin.

        https://bugs.webkit.org/show_bug.cgi?id=24853: Provide a way for WebKit clients to
        specify a more granular policy for cross-origin XHR access.

        * http/tests/xmlhttprequest/origin-whitelisting-all-expected.txt: Added.
        * http/tests/xmlhttprequest/origin-whitelisting-all.html: Added.
        * http/tests/xmlhttprequest/origin-whitelisting-exact-match-expected.txt: Added.
        * http/tests/xmlhttprequest/origin-whitelisting-exact-match.html: Added.
        * http/tests/xmlhttprequest/origin-whitelisting-https-expected.txt: Added.
        * http/tests/xmlhttprequest/origin-whitelisting-https.html: Added.
        * http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-expected.txt: Added.
        * http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-with-subdomains-expected.txt: Added.
        * http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-with-subdomains.html: Added.
        * http/tests/xmlhttprequest/origin-whitelisting-ip-addresses.html: Added.
        * http/tests/xmlhttprequest/origin-whitelisting-subdomains-expected.txt: Added.
        * http/tests/xmlhttprequest/origin-whitelisting-subdomains.html: Added.
        * http/tests/xmlhttprequest/resources/origin-whitelisting-ip-address-test.html: Added.

2009-08-19  Ryosuke Niwa  <rniwa@webkit.org>

        No review.

        Delete files that should have been deleted in http://trac.webkit.org/changeset/47542.

        * platform/mac/editing/style/remove-underline-after-paragraph-expected.checksum: Removed.
        * platform/mac/editing/style/remove-underline-after-paragraph-expected.txt: Removed.
        * platform/mac/editing/style/remove-underline-after-paragraph-in-bold-expected.checksum: Removed.
        * platform/mac/editing/style/remove-underline-after-paragraph-in-bold-expected.txt: Removed.
        * platform/qt/editing/style/remove-underline-after-paragraph-expected.txt: Removed.
        * platform/qt/editing/style/remove-underline-after-paragraph-in-bold-expected.txt: Removed.

2009-08-19  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Eric Seidel.

        underline tests in /editing/style/ need not to be pixel tests but need to print markup
        https://bugs.webkit.org/show_bug.cgi?id=28471

        * editing/style/remove-underline-across-paragraph-expected.txt: Added.
        * editing/style/remove-underline-across-paragraph-in-bold-expected.txt: Added.
        * editing/style/remove-underline-across-paragraph-in-bold.html:
        * editing/style/remove-underline-across-paragraph.html:
        * platform/mac/editing/style/remove-underline-across-paragraph-expected.checksum: Removed.
        * platform/mac/editing/style/remove-underline-across-paragraph-expected.png: Removed.
        * platform/mac/editing/style/remove-underline-across-paragraph-expected.txt: Removed.
        * platform/mac/editing/style/remove-underline-across-paragraph-in-bold-expected.checksum: Removed.
        * platform/mac/editing/style/remove-underline-across-paragraph-in-bold-expected.png: Removed.
        * platform/mac/editing/style/remove-underline-across-paragraph-in-bold-expected.txt: Removed.
        * platform/qt/editing/style/remove-underline-across-paragraph-expected.txt: Removed.
        * platform/qt/editing/style/remove-underline-across-paragraph-in-bold-expected.txt: Removed.

2009-08-19  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Eric Seidel.

        underline tests in /editing/style/ need not to be pixel tests but need to print markup
        https://bugs.webkit.org/show_bug.cgi?id=28471

        This patch converts the following tests to dumpAsText tests using runDumpAsTextEditingTest

        * editing/style/remove-underline-after-paragraph-expected.txt: Added.
        * editing/style/remove-underline-after-paragraph-in-bold-expected.txt: Added.
        * editing/style/remove-underline-after-paragraph-in-bold.html:
        * editing/style/remove-underline-after-paragraph.html:
        * platform/mac/editing/style/remove-underline-after-paragraph-expected.checksum: Removed.
        * platform/mac/editing/style/remove-underline-after-paragraph-expected.png: Removed.
        * platform/mac/editing/style/remove-underline-after-paragraph-expected.txt: Removed.
        * platform/mac/editing/style/remove-underline-after-paragraph-in-bold-expected.checksum: Removed.
        * platform/mac/editing/style/remove-underline-after-paragraph-in-bold-expected.png: Removed.
        * platform/mac/editing/style/remove-underline-after-paragraph-in-bold-expected.txt: Removed.
        * platform/qt/editing/style/remove-underline-after-paragraph-expected.txt: Removed.
        * platform/qt/editing/style/remove-underline-after-paragraph-in-bold-expected.txt: Removed.

2009-08-19  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Darin Adler.

        queryCommandState('underline') returns false if the selected text is also bold and italic
        https://bugs.webkit.org/show_bug.cgi?id=11022

        This patch adds a test to make sure queryCommandState returns correct boolean value for underline and strikethrough.

        * editing/style/resources: Added.
        * editing/style/resources/TEMPLATE.html: Added.
        * editing/style/resources/text-decoration-state.js: Added.
        (textdecorationState):
        * editing/style/text-decoration-state-expected.txt: Added.
        * editing/style/text-decoration-state.html: Added.

2009-08-19  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Eric Seidel.

        underline tests in /editing/style/ need not to be pixel tests but need to print markup
        https://bugs.webkit.org/show_bug.cgi?id=28471

        This patch converts editing/style/underline.html and editing/style/remove-underline.html to a dumpAsText test.

        It also adds runDumpAsTextEditingTest which invokes a new testing mode.
        runDumpAsTextEditingTest calls user-defined editingTest just like runEditingTest but does not enable editing delegates by default.
        It logs innerHTML of the node with id "root" whenever the DOM is changed by exec* functions with the name of function in front.
        It should be used in tests where logging of selection and caret positions is not required but logging
        of how DOM changed over editing operations is required.

        * editing/editing.js:
        (debugForDumpAsText): logs innerHTML of the node with id "root" when using runDumpAsTextEditingTest
        (execBoldCommand): Calls debugForDumpAsText
        (execUnderlineCommand): ditto
        (execFontNameCommand): ditto
        (execFontSizeCommand): ditto
        (execFontSizeDeltaCommand): ditto
        (execItalicCommand): ditto
        (execJustifyCenterCommand): ditto
        (execJustifyLeftCommand): ditto
        (execJustifyRightCommand): ditto
        (execInsertHTMLCommand): ditto
        (execInsertImageCommand): ditto
        (execInsertLineBreakCommand): ditto
        (execInsertParagraphCommand): ditto
        (execInsertNewlineInQuotedContentCommand): ditto
        (execTypeCharacterCommand): ditto
        (execStrikethroughCommand): ditto
        (execUndoCommand): ditto
        (execRedoCommand): ditto
        (execCutCommand): ditto
        (execPasteCommand): ditto
        (execPasteAndMatchStyleCommand): ditto
        (execCreateLinkCommand): ditto
        (execUnlinkCommand): ditto
        (execDeleteCommand): ditto
        (execForwardDeleteCommand): ditto
        (execBackColorCommand): ditto
        (runDumpAsTextEditingTest): Added.
        * editing/style/remove-underline-expected.txt: Added.
        * editing/style/remove-underline.html:
        * editing/style/underline-expected.txt: Added.
        * editing/style/underline.html:

2009-08-19  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        Test and updated results for
        <rdar://problem/7141522> Incorrect layout of product table at henry.com

        * fast/block/basic/quirk-percent-height-table-cell-expected.checksum: Added.
        * fast/block/basic/quirk-percent-height-table-cell-expected.png: Added.
        * fast/block/basic/quirk-percent-height-table-cell-expected.txt: Added.
        * fast/block/basic/quirk-percent-height-table-cell.html: Added.
        * fast/replaced/table-percent-height-text-controls-expected.txt:
        * fast/replaced/table-percent-height-text-controls.html:

2009-08-19  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by NOBODY (Build fix).

        Disable new media tests.

        * platform/gtk/Skipped:

2009-08-19  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by NOBODY (Build fix).

        Generate new results for fast/layers/video-layer.html after r47515.

        * platform/mac-leopard/fast/layers/video-layer-expected.txt:
        * platform/mac/fast/layers/video-layer-expected.txt:
        * platform/win/fast/layers/video-layer-expected.txt:

2009-08-19  Adam Roben  <aroben@apple.com>

        Skip a failing test on Windows

        See <http://webkit.org/b/28467>.

        * platform/win/Skipped: Added
        http/tests/loading/preload-img-test.html.

2009-08-19  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Simon Fraser.

        Make media layout test video-source-add-src.html less timing dependent
        https://bugs.webkit.org/show_bug.cgi?id=28465
        
        Trigger test on 'canplaythrough' instead of 'loadstart' so it is less
        likely to fail on a slow machine.

        * media/video-source-add-src-expected.txt:
        * media/video-source-add-src.html:

2009-08-19  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Eric Seidel.

        Sound button appears in controller with movies that have no audio
        https://bugs.webkit.org/show_bug.cgi?id=28464

        * media/video-controls-visible-audio-only.html:
        * media/video-no-audio.html: Added.
        * platform/mac-leopard/media/video-empty-source-expected.txt:
        * platform/mac-leopard/media/video-no-audio-expected.txt: Added.
        * platform/mac/media/video-empty-source-expected.txt:
        * platform/mac/media/video-no-audio-expected.txt: Added.
        * platform/win/media/video-empty-source-expected.txt: Added.
        * platform/win/media/video-no-audio-expected.txt: Added.

2009-08-19  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Anders Carlsson.

        https://bugs.webkit.org/show_bug.cgi?id=27464
        Implement application cache online whitelist wildcard flag

        * http/tests/appcache/resources/whitelist-wildcard.manifest: Added.
        * http/tests/appcache/whitelist-wildcard-expected.txt: Added.
        * http/tests/appcache/whitelist-wildcard.html: Added.

2009-08-19  Yuta Kitamura  <yutak@chromium.org>

        Reviewed by Eric Seidel.

        Convert two layout tests so that they use dumpAsText().
        
        These tests check if the renderer crashes or not. Hence, we do not need to
        dump the entire render tree. I verified DumpRenderTree at r24513 still crashed
        when it opened the updated test cases.
        
        See bug 14714 for details about these test cases.

        Two layout tests are convertible to dumpAsText
        https://bugs.webkit.org/show_bug.cgi?id=28423

        * fast/multicol/negativeColumnWidth-expected.txt: Added.
        * fast/multicol/negativeColumnWidth.html:
        * fast/multicol/zeroColumnCount-expected.txt: Added.
        * fast/multicol/zeroColumnCount.html:
        * platform/mac/fast/multicol/negativeColumnWidth-expected.checksum: Removed.
        * platform/mac/fast/multicol/negativeColumnWidth-expected.png: Removed.
        * platform/mac/fast/multicol/negativeColumnWidth-expected.txt: Removed.
        * platform/mac/fast/multicol/zeroColumnCount-expected.checksum: Removed.
        * platform/mac/fast/multicol/zeroColumnCount-expected.png: Removed.
        * platform/mac/fast/multicol/zeroColumnCount-expected.txt: Removed.
        * platform/qt/fast/multicol/negativeColumnWidth-expected.txt: Removed.
        * platform/qt/fast/multicol/zeroColumnCount-expected.txt: Removed.

2009-08-19  David Hyatt  <hyatt@apple.com>

        Land updated results after my last change.

        * platform/mac/tables/mozilla/bugs/bug131020-expected.txt:

2009-08-19  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt] Add a new expected file to the Qt port since we pass it.

        * platform/qt/fast/reflections: Added.
        * platform/qt/fast/reflections/transparent-reflected-sublayers-expected.txt: Added.

2009-08-18  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Maciej Stachowiak.

        https://bugs.webkit.org/show_bug.cgi?id=28446
        Custom request headers shouldn't be sent with cross-origin preflight request

        * http/tests/xmlhttprequest/access-control-preflight-headers-async-expected.txt: Added.
        * http/tests/xmlhttprequest/access-control-preflight-headers-async.html: Added.
        * http/tests/xmlhttprequest/access-control-preflight-headers-sync-expected.txt: Added.
        * http/tests/xmlhttprequest/access-control-preflight-headers-sync.html: Added.
        * http/tests/xmlhttprequest/resources/no-custom-header.php: Added.

2009-08-13  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Sam Weinig.

        - Tests for: Implement HTML5 nav element
        https://bugs.webkit.org/show_bug.cgi?id=27937

        Test aspects of <nav>, including residual style, <p> closing, and FormatBlock.
        
        * fast/html/nav-element-expected.txt: Added.
        * fast/html/nav-element.html: Added.

2009-08-18  Oliver Hunt  <oliver@apple.com>

        Reviewed by NOBODY (Build fix).

        Remove accidentally committed logging

        * fast/js/resources/array-enumerators-functions.js:

2009-08-18  Oliver Hunt  <oliver@apple.com>

        Reviewed by Mark Rowe.

        Make test faster so leaks bot won't time out.

        * fast/js/resources/array-enumerators-functions.js:

2009-08-18  Dan Bernstein  <mitz@apple.com>

        Rubber-stamped by Mark Rowe

        Update Windows and Qt results after r47462.

        * platform/qt/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/qt/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:

2009-08-18  Drew Wilson  <atwilson@google.com>

        Reviewed by David Levin.

        SharedWorkers need to support loading
        https://bugs.webkit.org/show_bug.cgi?id=28342

        Refactored worker network tests to also test SharedWorkers.

        * http/tests/workers/resources/worker-importScripts.js:
        Refactored to run in either a dedicated or shared worker.
        (handleConnect.self.postMessage):
        (handleConnect):
        (runTests.try.resetLoadFlags):
        (runTests):
        * http/tests/workers/resources/worker-redirect-target.js:
        Refactored to run in either a dedicated or shared worker.
        (else.self.onconnect):
        * http/tests/workers/resources/worker-redirect.js: Added.
        Moved test code out of worker-redirect.html so it can be shared with shared worker tests.
        (log):
        (runNextTest):
        (testCrossOriginLoad.try.worker.onerror):
        (testCrossOriginLoad.try.worker.onmessage):
        (testCrossOriginLoad):
        (testCrossOriginRedirectedLoad.try.worker.onerror):
        (testCrossOriginRedirectedLoad.try.worker.onmessage):
        (testCrossOriginRedirectedLoad):
        * http/tests/workers/shared-worker-importScripts-expected.txt: Added.
        * http/tests/workers/shared-worker-importScripts.html-disabled: Added.
        * http/tests/workers/shared-worker-redirect-expected.txt: Added
        * http/tests/workers/shared-worker-redirect.html-disabled: Added.
        * http/tests/workers/worker-redirect.html:
        Moved test code into worker-redirect.js.
        * http/tests/xmlhttprequest/workers/close.html:
        Moved test code into close-test.js.
        * http/tests/xmlhttprequest/workers/methods-async.html:
        Moved test code into methods-async-test.js.
        * http/tests/xmlhttprequest/workers/methods.html:
        Moved test code into methods.js.
        * http/tests/xmlhttprequest/workers/resources/close-test.js: Added.
        Contains test code moved from close.html, so tests can be shared with SharedWorkers.
        (log):
        (testAsync.worker.onmessage.else):
        (testAsync.worker.onmessage):
        (testAsync):
        (testSync.worker.onmessage.else):
        (testSync.worker.onmessage):
        (testSync):
        (done):
        (handleException):
        * http/tests/xmlhttprequest/workers/resources/close.js:
        Modified worker code so it runs in shared workers also.
        * http/tests/xmlhttprequest/workers/resources/file-not-found.js: Added.
        Contains test code moved from xmlhttprequest-file-not-found.html (now shared with shared worker tests).
        (log):
        (worker.onmessage):
        * http/tests/xmlhttprequest/workers/resources/methods-async-test.js: Added.
        Contains test code moved from methods-async.html (now shared with shared worker tests).
        (log):
        (worker.onmessage):
        * http/tests/xmlhttprequest/workers/resources/methods-async.js:
        Changed code to run in shared workers also.
        * http/tests/xmlhttprequest/workers/resources/methods-test.js: Added.
        Contains test code moved from methods.html (now shared with shared worker tests).
        (log):
        (worker.onmessage):
        * http/tests/xmlhttprequest/workers/resources/methods.js:
        Now can run in either dedicated or shared workers.
        (init):
        * http/tests/xmlhttprequest/workers/resources/shared-worker-create.js: Added.
        Utility code to allow shared workers to look like dedicated workers to enable sharing test code.
        (createWorker.worker.port.onmessage):
        (createWorker.worker.postMessage):
        (createWorker):
        * http/tests/xmlhttprequest/workers/resources/worker-create.js: Added.
        (createWorker):
        * http/tests/xmlhttprequest/workers/resources/worker-pre.js: Added.
        Utility code to make SharedWorkerGlobalScope look like DedicatedWorkerGlobalScope, to enable test code sharing.
        (else.self.onconnect.self.postMessage):
        (else.self.onconnect.event.messagePort.onmessage):
        (else.self.onconnect):
        * http/tests/xmlhttprequest/workers/resources/xmlhttprequest-file-not-found.js:
        (init):
        Updated code so it runs in shared workers also.
        * http/tests/xmlhttprequest/workers/shared-worker-close-expected.txt: Added.
        * http/tests/xmlhttprequest/workers/shared-worker-close.html-disabled: Added.
        * http/tests/xmlhttprequest/workers/shared-worker-methods-async-expected.txt: Added.
        * http/tests/xmlhttprequest/workers/shared-worker-methods-async.html-disabled: Added.
        * http/tests/xmlhttprequest/workers/shared-worker-methods-expected.txt: Added.
        * http/tests/xmlhttprequest/workers/shared-worker-methods.html-disabled: Added.
        * http/tests/xmlhttprequest/workers/shared-worker-xhr-file-not-found-expected.txt: Added.
        * http/tests/xmlhttprequest/workers/shared-worker-xhr-file-not-found.html-disabled: Added.
        * http/tests/xmlhttprequest/workers/xmlhttprequest-file-not-found.html:
        Moved test code into file-not-found.js.

2009-08-18  Beth Dakin  <bdakin@apple.com>

        Reviewed by Dan Bernstein.

        Test result changes for https://bugs.webkit.org/show_bug.cgi?id=27575 
        [CSS3 Backgrounds and Borders] Drop the prefix from background-size

        * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * svg/css/getComputedStyle-basic-expected.txt:

2009-08-18  Drew Wilson  <atwilson@google.com>

        Reviewed by David Levin.

        SharedWorkers need to forward exceptions to parent documents
        https://bugs.webkit.org/show_bug.cgi?id=28320

        Wrote test to generate exception and make sure it gets logged to the console.
        Started switching over to using the same test utilities that the tests under fast/js use.

        * fast/workers/resources/shared-worker-common.js:
        (generateError):
        (handleMessage):
        * fast/workers/resources/shared-worker-exception.js: Added.
        (worker.onmessage):
        (done):
        * fast/workers/shared-worker-exception-expected.txt: Added.
        * fast/workers/shared-worker-exception.html-disabled: Added.

2009-08-18  Dumitru Daniliuc  <dumi@chromium.org>

        Reviewed by Dimitri Glazkov.

        Adding a test to verify that openDatabase() does not execute
        SQL statements on the database it's trying to open, unless we're
        opening the first handle to that database.

        https://bugs.webkit.org/show_bug.cgi?id=28207

        * storage/open-database-while-transaction-in-progress-expected.txt: Added.
        * storage/open-database-while-transaction-in-progress.html: Added.

2009-08-18  Mark Rowe  <mrowe@apple.com>

        Update SnowLeopard-specific layout test results after r47440.

        * platform/mac/media/audio-controls-rendering-expected.txt:
        * platform/mac/media/controls-after-reload-expected.txt:
        * platform/mac/media/controls-styling-expected.txt:

2009-08-18  David Hyatt  <hyatt@apple.com>

        Land updated results after my last patch.

        * platform/mac/compositing/geometry/clipping-foreground-expected.txt:
        * platform/mac/compositing/masks/masked-ancestor-expected.txt:
        * platform/mac/compositing/masks/multiple-masks-expected.txt:
        * platform/mac/compositing/masks/simple-composited-mask-expected.txt:
        * platform/mac/fast/clip/008-expected.txt:
        * platform/mac/fast/clip/011-expected.txt:
        * platform/mac/fast/clip/012-expected.txt:
        * platform/mac/fast/overflow/scrollRevealButton-expected.txt:

2009-08-18  Brian Weinstein  <bweinstein@apple.com>

        Reviewed by Oliver Hunt.

        Removed now passing storage tests from the Skipped list, now we pass all storage tests on Windows.

        * platform/win/Skipped:

2009-08-18  Michelangelo De Simone  <micdesim@gmail.com>

        Reviewed by Adele Peterson.

        https://bugs.webkit.org/show_bug.cgi?id=27357
        Tests for :valid and :invalid CSS selectors, from HTML5 specs.
        http://www.whatwg.org/specs/web-apps/current-work/#selector-valid

        * fast/css/pseudo-invalid-001-expected.txt: Added.
        * fast/css/pseudo-invalid-001.html: Added.
        * fast/css/pseudo-invalid-002-expected.txt: Added.
        * fast/css/pseudo-invalid-002.html: Added.
        * fast/css/pseudo-valid-001-expected.txt: Added.
        * fast/css/pseudo-valid-001.html: Added.
        * fast/css/pseudo-valid-002-expected.txt: Added.
        * fast/css/pseudo-valid-002.html: Added.
        * fast/css/pseudo-valid-003-expected.txt: Added.
        * fast/css/pseudo-valid-003.html: Added.
        * fast/css/pseudo-valid-004-expected.txt: Added.
        * fast/css/pseudo-valid-004.html: Added.
        * fast/css/pseudo-valid-005-expected.txt: Added.
        * fast/css/pseudo-valid-005.html: Added.
        * fast/css/pseudo-valid-006-expected.txt: Added.
        * fast/css/pseudo-valid-006.html: Added.
        * fast/css/pseudo-valid-007-expected.txt: Added.
        * fast/css/pseudo-valid-007.html: Added.
        * fast/dom/plugin-attributes-enumeration-expected.txt:

2009-08-16  David Hyatt  <hyatt@apple.com>

        Reviewed by Dan Bernstein.

        https://bugs.webkit.org/show_bug.cgi?id=20329, shadows and reflections incorrectly being included
        as part of scrollable overflow.
        
        Update layout tests to account for all of the changes made to overflow to split it into two types.  Remove the layout
        tests that were recently added that assumed that shadows and reflections should be part of scrollable overflow.

        * fast/box-shadow/box-shadow-overflow-scroll-expected.txt: Removed.
        * fast/box-shadow/box-shadow-overflow-scroll.html: Removed.
        * fast/reflections/reflection-overflow-scroll-expected.txt: Removed.
        * fast/reflections/reflection-overflow-scroll.html: Removed.
        * platform/mac/compositing/overflow/ancestor-overflow-expected.txt:
        * platform/mac/compositing/reflections/reflection-on-composited-expected.txt:
        * platform/mac/editing/deleting/delete-br-011-expected.txt:
        * platform/mac/editing/deleting/delete-br-012-expected.txt:
        * platform/mac/editing/pasteboard/select-element-1-expected.txt:
        * platform/mac/fast/block/positioning/relative-overflow-block-expected.txt:
        * platform/mac/fast/body-propagation/background-color/002-expected.txt:
        * platform/mac/fast/body-propagation/background-color/002-xhtml-expected.txt:
        * platform/mac/fast/body-propagation/background-image/002-expected.txt:
        * platform/mac/fast/body-propagation/background-image/002-xhtml-expected.txt:
        * platform/mac/fast/body-propagation/overflow/001-expected.txt:
        * platform/mac/fast/body-propagation/overflow/001-xhtml-expected.txt:
        * platform/mac/fast/body-propagation/overflow/005-declarative-expected.txt:
        * platform/mac/fast/body-propagation/overflow/005-expected.txt:
        * platform/mac/fast/body-propagation/overflow/005-xhtml-expected.txt:
        * platform/mac/fast/borders/fieldsetBorderRadius-expected.txt:
        * platform/mac/fast/box-shadow/transform-fringing-expected.txt:
        * platform/mac/fast/clip/008-expected.txt:
        * platform/mac/fast/clip/011-expected.txt:
        * platform/mac/fast/clip/012-expected.txt:
        * platform/mac/fast/dynamic/genContentDestroyChildren-expected.txt:
        * platform/mac/fast/dynamic/window-resize-scrollbars-test-expected.txt:
        * platform/mac/fast/encoding/utf-16-big-endian-expected.txt:
        * platform/mac/fast/encoding/utf-16-little-endian-expected.txt:
        * platform/mac/fast/forms/form-element-geometry-expected.txt:
        * platform/mac/fast/images/image-in-map-expected.txt:
        * platform/mac/fast/inline-block/003-expected.txt:
        * platform/mac/fast/inline/inline-text-quirk-bpm-expected.txt:
        * platform/mac/fast/invalid/012-expected.txt:
        * platform/mac/fast/layers/normal-flow-hit-test-expected.txt:
        * platform/mac/fast/lists/inlineBoxWrapperNullCheck-expected.txt:
        * platform/mac/fast/overflow/scrollRevealButton-expected.txt:
        * platform/mac/fast/reflections/reflection-direction-expected.txt:
        * platform/mac/fast/reflections/reflection-masks-expected.checksum:
        * platform/mac/fast/reflections/reflection-masks-expected.png:
        * platform/mac/fast/reflections/reflection-masks-expected.txt:
        * platform/mac/fast/reflections/reflection-masks-opacity-expected.checksum:
        * platform/mac/fast/reflections/reflection-masks-opacity-expected.png:
        * platform/mac/fast/reflections/reflection-masks-opacity-expected.txt:
        * platform/mac/fast/reflections/reflection-nesting-expected.txt:
        * platform/mac/fast/reflections/reflection-overflow-hidden-expected.png:
        * platform/mac/fast/reflections/reflection-overflow-hidden-expected.txt:
        * platform/mac/fast/repaint/box-shadow-h-expected.txt:
        * platform/mac/fast/repaint/box-shadow-v-expected.txt:
        * platform/mac/fast/repaint/reflection-redraw-expected.txt:
        * platform/mac/fast/repaint/reflection-repaint-test-expected.txt:
        * platform/mac/fast/repaint/transform-absolute-in-positioned-container-expected.txt:
        * platform/mac/fast/repaint/transform-replaced-shadows-expected.txt:
        * platform/mac/fast/replaced/border-radius-clip-expected.txt:
        * platform/mac/fast/transforms/shadows-expected.txt:
        * platform/mac/fast/transforms/transforms-with-opacity-expected.txt:
        * platform/mac/media/video-layer-crash-expected.txt:
        * platform/mac/tables/mozilla/bugs/adforce_imgis_com-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug10565-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug10633-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug113424-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug1188-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug131020-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug1318-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug22513-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug26553-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug3309-1-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug4427-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug4527-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug5538-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug78162-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug8381-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug86708-expected.txt:
        * platform/mac/tables/mozilla/core/bloomberg-expected.txt:
        * platform/mac/tables/mozilla/other/ms-expected.txt:
        * platform/mac/tables/mozilla_expected_failures/bugs/bug23847-expected.txt:
        * platform/mac/tables/mozilla_expected_failures/bugs/bug72393-expected.txt:
        * platform/mac/tables/mozilla_expected_failures/bugs/bug89315-expected.txt:
        * platform/mac/tables/mozilla_expected_failures/marvin/backgr_border-table-quirks-expected.txt:
        * platform/mac/tables/mozilla_expected_failures/marvin/table_overflow_caption_bottom-expected.txt:
        * platform/mac/transforms/3d/point-mapping/3d-point-mapping-2-expected.txt:
        * platform/mac/transforms/3d/point-mapping/3d-point-mapping-deep-expected.txt:
        * platform/mac/transforms/3d/point-mapping/3d-point-mapping-expected.txt:
        * platform/mac/transforms/3d/point-mapping/3d-point-mapping-origins-expected.txt:
        * platform/mac/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.txt:
        * platform/mac/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.txt:

2009-08-18  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=28431
        <rdar://problem/7137610> Application Cache doesn't work with HTTP authentication

        * http/tests/appcache/auth-expected.txt: Added.
        * http/tests/appcache/auth.html: Added.
        * http/tests/appcache/resources/auth: Added.
        * http/tests/appcache/resources/auth/iframe.php: Added.
        * http/tests/appcache/resources/auth/manifest.php: Added.
        * http/tests/appcache/resources/auth/setup.php: Added.
        * http/tests/appcache/resources/auth/subresource.php: Added.

2009-08-18  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Not reviewed. Forgot to add pixel test results for html-fieldset-crash.html some time ago.

        * platform/mac/fast/wml/html-fieldset-crash-expected.checksum: Added.
        * platform/mac/fast/wml/html-fieldset-crash-expected.png: Added.

2009-08-18  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by NOBODY (build fix).

        Update results added for https://bugs.webkit.org/show_bug.cgi?id=28314 to
        not log 'progress' event as the timing relative to other media events
        isn't important and varies according to the behavior of the media engine.

        * media/event-attributes-expected.txt:
        * media/event-attributes.html:
        * media/progress-event-at-least-one-expected.txt:
        * media/progress-event-at-least-one.html:

2009-08-18  Drew Wilson  <atwilson@google.com>

        Unreviewed (Updating skipped tests).

        Re-enabled test on GTK platform (DRT supports layoutTestController.workerThreadCount on GTK).

        Disabled test on QT platform (DRT does not support workerThreadCount on QT).

        * platform/gtk/Skipped:
        * platform/qt/Skipped:

2009-08-18  Drew Wilson  <atwilson@google.com>

        Unreviewed - skipping test on GTK.

        Added worker-lifecycle.html tests to skipped tests on GTK platform due to missing DRT functionality.

        * platform/gtk/Skipped:

2009-08-18  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Simon Fraser.

        HTMLMediaElement should fire 'progress' event before 'load'
        https://bugs.webkit.org/show_bug.cgi?id=28314

        * media/event-attributes-expected.txt:
            Update results to include 'progress' event fired before 'load'.

        * media/progress-event-at-least-one-expected.txt: Added.
        * media/progress-event-at-least-one.html: Added.

2009-08-18  Drew Wilson  <atwilson@google.com>

        Reviewed by Eric Seidel.

        Need to extend DumpRenderTree to expose number of worker threads
        https://bugs.webkit.org/show_bug.cgi?id=28292

        Added simple layout tests that use the new layoutTestController.workerThreadCount() API

        * fast/workers/resources/shared-worker-common.js:
        Added support for "close" command to match worker-common.js.
        * fast/workers/resources/worker-lifecycle.js: Added.
        * fast/workers/shared-worker-lifecycle-expected.txt: Added.
        * fast/workers/shared-worker-lifecycle.html-disabled: Added.
        * fast/workers/worker-lifecycle-expected.txt: Added.
        * fast/workers/worker-lifecycle.html: Added.

2009-08-18  Andras Becsi  <becsi.andras@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        [Qt] These tests pass now. Fixed metrics related to default font size and added some expected files for new tests.

        * platform/qt/Skipped:
        * platform/qt/fast/images/animated-gif-with-offsets-expected.txt:
        * platform/qt/fast/images/animated-svg-as-image-expected.txt: Added.
        * platform/qt/fast/images/embed-image-expected.txt: Added.
        * platform/qt/fast/images/favicon-as-image-expected.txt: Added.
        * platform/qt/fast/images/object-image-expected.txt: Added.
        * platform/qt/fast/images/svg-as-background-expected.txt:
        * platform/qt/fast/images/svg-as-image-expected.txt:
        * platform/qt/fast/images/svg-as-relative-image-expected.txt: Added.
        * platform/qt/fast/images/svg-width-100p-as-background-expected.txt: Added.

2009-08-18  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Eric Seidel.

        Assertion failure in WebCore::RenderHTMLCanvas::layout
        https://bugs.webkit.org/show_bug.cgi?id=12052

        Remove string "foo" in <video> tag. This made Qt layout test fail.
        Qt doesn't support video yet and the string will be rendered.

        * fast/runin/nonblock-runin.html:

2009-08-18  Kent Tamura  <tkent@chromium.org>

        Reviewed by Eric Seidel.

        Tests for <datalist> element.
        https://bugs.webkit.org/show_bug.cgi?id=26915

        * fast/forms/datalist-expected.txt: Added.
        * fast/forms/datalist-nonoption-child-expected.txt: Added.
        * fast/forms/datalist-nonoption-child.html: Added.
        * fast/forms/datalist.html: Added.

2009-08-17  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Darin Adler.

        Some HTMLs are modified by make-script-test-wrappers
        https://bugs.webkit.org/show_bug.cgi?id=28213

        Add fast/js/const.js and fast/canvas/canvas-2d-imageData-create-nonfinite.js into
        the exclude list, modified fast/dom/Geolocation/resources/TEMPLATE.html, and
        re-generated wml/* and Geolocation/* .

        * fast/dom/Geolocation/enabled.html:
        * fast/dom/Geolocation/resources/TEMPLATE.html:
        * http/tests/wml/access-target-domain-deny.html:
        * http/tests/wml/access-target-path-deny.html:
        * http/tests/wml/access-target.html:

2009-08-17  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Eric Seidel.

        -webkit-box-orient:horizontal doesn't work on <button> tag
        https://bugs.webkit.org/show_bug.cgi?id=34445

        Make a flexible button's anonymous child flexible and pass the
        parent's box-orient to the anonymous child.

        Also, added a renderName for anonymous flexible boxes.

        * fast/flexbox/box-orient-button-expected.txt: Added.
        * fast/flexbox/box-orient-button.html: Added.
        * fast/flexbox/resources/box-orient-button.js: Added.
        (setBoxOrient):
        (gebi):

2009-08-17  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dave Hyatt.

        Render -webkit-mask via compositing layers when possible
        https://bugs.webkit.org/show_bug.cgi?id=28414
        
        Tests for masked, composited layers.

        * compositing/masks/masked-ancestor.html: Added.
        * compositing/masks/simple-composited-mask.html: Added.
        * platform/mac/compositing/masks/masked-ancestor-expected.checksum: Added.
        * platform/mac/compositing/masks/masked-ancestor-expected.png: Added.
        * platform/mac/compositing/masks/masked-ancestor-expected.txt: Added.
        * platform/mac/compositing/masks/simple-composited-mask-expected.checksum: Added.
        * platform/mac/compositing/masks/simple-composited-mask-expected.png: Added.
        * platform/mac/compositing/masks/simple-composited-mask-expected.txt: Added.

2009-08-17  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dave Hyatt.

        Layer content misplaced with compositing, z-index and overflow
        https://bugs.webkit.org/show_bug.cgi?id=28361
        
        Testcase with compositing layers, negative z-order children, and overflow:hidden.

        * compositing/geometry/clipping-foreground.html: Added.
        * platform/mac/compositing/geometry/clipping-foreground-expected.checksum: Added.
        * platform/mac/compositing/geometry/clipping-foreground-expected.png: Added.
        * platform/mac/compositing/geometry/clipping-foreground-expected.txt: Added.

2009-08-17  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Adele Peterson.

        http/tests/misc/favicon-loads-with-images-disabled.html was passing on my machine
        (when I ran all http tests), but failed on the bot, so adding it back to the
        Skipped list.

        * platform/win/Skipped:

2009-08-17  Oliver Hunt  <oliver@apple.com>

        RS=Mark Rowe.

        REGRESSION (r47291-r47308): MobileMe applications do not load data
        https://bugs.webkit.org/show_bug.cgi?id=28341

        Reverting r47292

        * fast/js/arguments-expected.txt:
        * fast/js/resources/arguments.js:

2009-08-17  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Adele Peterson.

        http/tests/misc/favicon-loads-with-images-disabled.html is passing on my
        machine, trying to remove it from the Skipped list on Windows.

        * platform/win/Skipped:

2009-08-17  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Darin Adler.

        Assertion failure in WebCore::RenderHTMLCanvas::layout
        https://bugs.webkit.org/show_bug.cgi?id=12052

        Don't handle run-in if the element is not a block element.

        * fast/runin/canvas-runin-expected.txt: Added.
        * fast/runin/canvas-runin.html: Added.

2009-08-17  Benjamin C Meyer  <benjamin.meyer@torchmobile.com>

        Reviewed by Darin Adler.

        Fix createImageData to raise the NOT_SUPPORTED_ERR exception when
        either of the arguments are not finite.

        According to
        http://www.whatwg.org/specs/web-apps/current-work/#pixel-manipulation:
        "If any of the arguments to createImageData() or getImageData() are
        infinite or NaN, or if the createImageData()  method is invoked with
        only one argument but that argument is null, the method must instead
        raise a NOT_SUPPORTED_ERR  exception."

        Test: http://philip.html5.org/tests/canvas/suite/tests/2d.imageData.create.nonfinite.html

        * fast/canvas/canvas-2d-imageData-create-nonfinite-expected.txt: Added.
        * fast/canvas/canvas-2d-imageData-create-nonfinite.html: Added.
        * fast/canvas/resources/canvas-2d-imageData-create-nonfinite.js: Added.

2009-08-17  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Darin Fisher.

        Add a way to release the storage lock
        https://bugs.webkit.org/show_bug.cgi?id=28411

        Two scripts within the same origin that are accessing LocalStorage must not do
        it simultaneously, according to the spec.  There are some cases, however, where
        a script might want to override this behavior.  navigator.getStorageUpdates()
        was added for this reason:
        http://dev.w3.org/html5/spec/Overview.html#manually-releasing-the-storage-mutex

        Update the test expectations to include this new element.

        * fast/dom/Window/window-properties-expected.txt:
        * fast/dom/navigator-detached-no-crash-expected.txt:
        * platform/mac-leopard/fast/dom/navigator-detached-no-crash-expected.txt:

2009-08-17  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Unreviewed. Skip new tests.

        * platform/gtk/Skipped:

2009-08-17  Alexey Proskuryakov  <ap@apple.com>

        Rubber-stamped by Dan Bernstein.

        https://bugs.webkit.org/show_bug.cgi?id=28403
        Update Apache2 module list from Leopard defaults

        No change in functionality, only commented out modules needed an update.

        * http/conf/apache2-httpd.conf:

2009-08-17  Aaron Boodman  <aa@chromium.org>

        Reviewed by Alexey Proskuryakov.

        https://bugs.webkit.org/show_bug.cgi?id=28313: Combine ThreadableLoaderOptions::crossOriginRequestPolicy and
        ThreadableLoaderOptions::crossOriginRedirectPolicy since they are always set the same way.

        Also, tightened up behavior of XMLHttpRequest with cross-origin redirects and access control. We have not implemented redirects
        for access control, so we should never redirect across origins. But in two edge cases, we were:

        * Asynchronous XHR: Script on origin A requests resource from origin B. Server redirects (without sending access control
          authorization headers) to a resource on origin A.
        * Synchronous XHR: Script on origin A requests resource from origin B. Server redirects (without sending access control
          authorization headers) to another resource on origin B (this time sending access control authorization headers).

        * http/tests/xmlhttprequest/access-control-and-redirects-expected.txt: Added.
        * http/tests/xmlhttprequest/access-control-and-redirects.html: Added.

2009-08-16  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        execCommand("InsertHorizontalRule") inserts a broken <hr> element
        https://bugs.webkit.org/show_bug.cgi?id=28375

        * editing/execCommand/arguments-combinations-expected.txt: Updated.
        * editing/execCommand/arguments-combinations.html: Updated to expect
        the <hr> element to be self-closing rather than having a separate
        </hr> in the markup.

2009-08-16  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by George Staikos.

        [WML] <option> element & 'onpick' events - history navigation is broken
        https://bugs.webkit.org/show_bug.cgi?id=28371

        Add new test covering history navigation & 'onpick' event handling.

        * wml/option-element-onpick-recursion-expected.txt: Added.
        * wml/option-element-onpick-recursion.html: Added.
        * wml/resources/WMLTestCase.js:
        (createStaticWMLTestCase):
        (createDynamicWMLTestCase):
        * wml/resources/option-element-onpick-recursion.js: Added.
        (setupTestDocument):
        (prepareTest):
        (executeTest):
        * wml/resources/option-element-onpick-recursion.wml: Added.
        * wml/resources/option-element-onpick.js:
        (prepareTest):

2009-08-16  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Not reviewed. Add missing WML specific layout test result.

        * platform/mac/fast/wml/html-fieldset-crash-expected.txt: Added.

2009-08-15  Sam Weinig  <sam@webkit.org>

        Make Mark Rowe a bit less grumpy.

        * http/tests/history/back-to-post.php:

2009-08-15  Sam Weinig  <sam@webkit.org>

        Make http/tests/history/back-to-post.php's output a bit more reliable.

        * http/tests/history/back-to-post-expected.txt:
        * http/tests/history/back-to-post.php:

2009-08-15  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Anders Carlsson.

        Animate multiple shadows
        https://bugs.webkit.org/show_bug.cgi?id=28266

        * transitions/multiple-shadow-transitions-expected.txt: Added.
        * transitions/multiple-shadow-transitions.html: Added.
        * transitions/transition-test-helpers.js:
        Add some special-case code for shadows so we can at least tell of the shadow
        position is changing.

2009-08-15  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Anders Carlsson.

        Make transitions work for position and size of multiple backgrounds and masks.
        https://bugs.webkit.org/show_bug.cgi?id=28266

        * transitions/multiple-background-size-transitions-expected.txt: Added.
        * transitions/multiple-background-size-transitions.html: Added.
        * transitions/multiple-background-transitions-expected.txt: Added.
        * transitions/multiple-background-transitions.html: Added.
        * transitions/multiple-mask-transitions-expected.txt: Added.
        * transitions/multiple-mask-transitions.html: Added.

2009-08-15  George Staikos  <george.staikos@torchmobile.com>

        Reviewed by Jan Alonzo.

        Test to demonstrate crash in fieldset code when WML is enabled.
        Test provided by red47514f7@yandex.ru
        https://bugs.webkit.org/show_bug.cgi?id=28012

        * fast/wml/html-fieldset-crash.html: Added.

2009-08-15  Sam Weinig  <sam@webkit.org>

        Remove no longer correct and now failing test.  document.body.onunload
        has now been spec'ed in HTML5. 

        * fast/events/onunload-body-property-expected.txt: Removed.
        * fast/events/onunload-body-property.html: Removed.

2009-08-15  Sam Weinig  <sam@webkit.org>

        Reviewed by Dan Bernstein.

        Setting attribute event listeners to the body does not set them on the window
        https://bugs.webkit.org/show_bug.cgi?id=28343

        * fast/dom/Window/HTMLBodyElement-window-eventListener-attributes-expected.txt: Added.
        * fast/dom/Window/HTMLBodyElement-window-eventListener-attributes.html: Added.
        * fast/dom/Window/HTMLFrameSetElement-window-eventListener-attributes-expected.txt: Added.
        * fast/dom/Window/HTMLFrameSetElement-window-eventListener-attributes.html: Added.
        * fast/dom/Window/resources/HTMLBodyElement-window-eventListener-attributes.js: Added.
        * fast/dom/Window/resources/HTMLFrameSetElement-window-eventListener-attributes.js: Added.

2009-08-14  Adam Bergkvist  <adam.bergkvist@ericsson.com>

        Reviewed by Sam Weinig.

        Tests for EventSource.
        https://bugs.webkit.org/show_bug.cgi?id=14997 

        * fast/eventsource: Added.
        * fast/eventsource/eventsource-attribute-listeners-expected.txt: Added.
        * fast/eventsource/eventsource-attribute-listeners.html: Added.
        * fast/eventsource/eventsource-constructor-expected.txt: Added.
        * fast/eventsource/eventsource-constructor.html: Added.
        * http/tests/eventsource: Added.
        * http/tests/eventsource/eventsource-bad-mime-type-expected.txt: Added.
        * http/tests/eventsource/eventsource-bad-mime-type.html: Added.
        * http/tests/eventsource/eventsource-parse-event-stream-expected.txt: Added.
        * http/tests/eventsource/eventsource-parse-event-stream.html: Added.
        * http/tests/eventsource/eventsource-reconnect-expected.txt: Added.
        * http/tests/eventsource/eventsource-reconnect.html: Added.
        * http/tests/eventsource/eventsource-status-code-states-expected.txt: Added.
        * http/tests/eventsource/eventsource-status-code-states.html: Added.
        * http/tests/eventsource/resources: Added.
        * http/tests/eventsource/resources/bad-mime-type.asis: Added.
        * http/tests/eventsource/resources/event-stream.php: Added.
        * http/tests/eventsource/resources/reconnect.php: Added.
        * http/tests/eventsource/resources/simple-event-stream.asis: Added.
        * http/tests/eventsource/resources/status-codes.php: Added.
        * http/tests/eventsource/workers: Added.
        * http/tests/eventsource/workers/eventsource-simple-expected.txt: Added.
        * http/tests/eventsource/workers/eventsource-simple.html: Added.
        * http/tests/eventsource/workers/resources: Added.
        * http/tests/eventsource/workers/resources/simple-worker.js: Added.
        (es.onmessage):
        (es.onerror):

2009-08-14  Jon Honeycutt  <jhoneycutt@apple.com>

        Remove two tests from the skipped list that don't exist.

        Rubber-stamped by Mark Rowe.

        * platform/win/Skipped:

2009-08-14  Jon Honeycutt  <jhoneycutt@apple.com>

        Add a layout test for <rdar://problem/6218721> No MSAA focus events
        fired for Webkit nightly (20866)

        https://bugs.webkit.org/show_bug.cgi?id=20866

        Reviewed by Oliver Hunt.

        * platform/win/Skipped:
        Remove the blanket skipping of accessibility/, and add the individual
        tests.

        * platform/win/accessibility/focus-events-expected.txt: Added.
        * platform/win/accessibility/focus-events.html: Added.

2009-08-14  Dmitry Titov  <dimich@chromium.org>

        Not reviewed, adding new test to Skipped on gtk and Qt.
        DRT on these ports does not yet support layoutTestController.overridePreference.

        * platform/gtk/Skipped: skip LayoutTests/fast/harness/use-page-cache.html 
        * platform/qt/Skipped: ditto.

2009-08-14  Dmitry Titov  <dimich@chromium.org>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=28324
        First ever test using page cache!
        The test verifies that override setting that enables page cache works correctly.
        It navigates forward and then back and checks that onload is not fired again
        but the timer continues firing.

        * fast/harness/resources/cached-page-1.html: Added.
        * fast/harness/resources/cached-page-2.html: Added.
        * fast/harness/use-page-cache-expected.txt: Added.
        * fast/harness/use-page-cache.html: Added.

2009-08-14  Brady Eidson  <beidson@apple.com>

        Reviewed by Anders Carlsson.

        <rdar://problem/7091546> - Re-enable 3 plugins tests that now won't crash

        * platform/mac-snowleopard/Skipped:

2009-08-14  Brady Eidson  <beidson@apple.com>

        Adding two more to the skipped list.
        Radars 7144571 and 7144583 track exploring them.

        * platform/mac-snowleopard/Skipped:

2009-08-14  Brady Eidson  <beidson@apple.com>

        Disable media/controls-drag-timebar.html on SnowLeopard.
        <rdar://problem/7144385> tracks exploring the failure.

        * platform/mac-snowleopard/Skipped:

2009-08-14  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        [ES5] Arguments object should inherit from Array
        https://bugs.webkit.org/show_bug.cgi?id=28298

        Tests that an arguments object is created with the correct
        properties and prototype (per ES5), and that the are always
        the initial "pristine" versions.

        * fast/js/arguments-expected.txt:
        * fast/js/resources/arguments.js:
        (shouldBe.getArguments):
        (Object):
        (Array):
        (originalObject.prototype.toString):
        (originalObject.prototype.toLocaleString):
        (Array.prototype):

2009-08-14  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Adam Roben.

        Remove media/video-played.html from the Windows skipped list and add 
        media/video-played-collapse.html.
        
        https://bugs.webkit.org/show_bug.cgi?id=28275

        * platform/win/Skipped:

2009-08-14  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Simon Fraser.

        media/video-played.html always times out on Windows
        https://bugs.webkit.org/show_bug.cgi?id=28275

        * media/video-played-collapse.html:
            Make sub-test assumptions obvious for someone reading this later.

        * media/video-played.html: Removed.
        * media/video-played-expected.txt: Removed.
        * media/video-played-ranges-1-expected.txt: Copied from LayoutTests/media/video-played-expected.txt.
        * media/video-played-ranges-1.html: Copied from LayoutTests/media/video-played.html.
            Split video-played.html into video-played-ranges-1.html and video-played-ranges-2.html.

        * media/video-played-reset.html:
            Make sub-test assumptions obvious for someone reading this later.

        * media/video-played.js:
        (logRanges):
            New but not currently called. Allows all ranges to be logged for debugging.
        (testRanges):
            Log ranges and the amount of time each test takes when logTestTiming != 0.
        (nextTest):
            Record test start time when logTestTiming is true;
        (startPlaying):
            Run each sub-test for 100ms instead of 250ms to decrease overall test time.
        (playForMillisecs.callPauseIfTimeIsReached):
        (playForMillisecs):
            Make error conditions trigger immediate failure instead of just logging.

2009-08-14  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Rubber-stamped by Tor Arne VestbÃ¸.

        [Qt] Add test result after r47255.

        * platform/qt/fast/block/float/avoidance-percent-width-compat-expected.txt: Added.
        * platform/qt/fast/block/float/avoidance-percent-width-strict-expected.txt: Added.

2009-08-14  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Reviewed by Tor Arne VestbÃ¸.

        [Qt] Update test result after r47255.
        Also while I am at it, add pixel test result.

        * platform/qt/fast/block/float/035-expected.checksum: Added.
        * platform/qt/fast/block/float/035-expected.png: Added.
        * platform/qt/fast/block/float/035-expected.txt: Adjusted.

2009-08-13  Oliver Hunt  <oliver@apple.com>

        Reviewed by Maciej Stachowiak.

        [ES5] Implement Array.isArray
        https://bugs.webkit.org/show_bug.cgi?id=28296

        Add tests for Array.isArray

        * fast/js/Array-isArray-expected.txt: Added.
        * fast/js/Array-isArray.html: Added.
        * fast/js/resources/Array-isArray.js: Added.

2009-08-13  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        Fix logic in RenderObject::updateFillImages() that led to incorrect client
        counts if an image was used twice in the background-image property.
        https://bugs.webkit.org/show_bug.cgi?id=28295
        
        Test that changes background-image from one reference to an image
        to two references to the same image.

        * fast/backgrounds/multiple-backgrounds-assert-expected.txt: Added.
        * fast/backgrounds/multiple-backgrounds-assert.html: Added.

2009-08-13  Dan Bernstein  <mitz@apple.com>

        Reviewed by Eric Seidel.

        'box-orient: block-axis' behaves like 'box-orient: horizontal', causes
        an assertion failure in debug builds
        https://bugs.webkit.org/show_bug.cgi?id=28279

        * fast/flexbox/block-axis-expected.checksum: Added.
        * fast/flexbox/block-axis-expected.png: Added.
        * fast/flexbox/block-axis-expected.txt: Added.
        * fast/flexbox/block-axis.html: Added.

2009-08-13  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        Fix crash when removing reflection on an absolutely-positioned image.
        https://bugs.webkit.org/show_bug.cgi?id=28289
        
        Test removing reflection on positioned image.

        * fast/reflections/reflected-img-crash-expected.txt: Added.
        * fast/reflections/reflected-img-crash.html: Added.

2009-08-13  Dan Bernstein  <mitz@apple.com>

        Reviewed by Simon Fraser.

        misalignment because of float:left of <div> tag
        https://bugs.webkit.org/show_bug.cgi?id=15869

        One section of http://edgar.sec.gov site draws to the right of the rest
        of the content
        <rdar://problem/7135951>

        * fast/block/float/avoidance-percent-width-compat.html: Added.
        * fast/block/float/avoidance-percent-width-strict.html: Added.
        * platform/mac/fast/block/float/035-expected.checksum:
        * platform/mac/fast/block/float/035-expected.png:
        * platform/mac/fast/block/float/035-expected.txt:
        * platform/mac/fast/block/float/avoidance-percent-width-compat-expected.checksum: Added.
        * platform/mac/fast/block/float/avoidance-percent-width-compat-expected.png: Added.
        * platform/mac/fast/block/float/avoidance-percent-width-compat-expected.txt: Added.
        * platform/mac/fast/block/float/avoidance-percent-width-strict-expected.checksum: Added.
        * platform/mac/fast/block/float/avoidance-percent-width-strict-expected.png: Added.
        * platform/mac/fast/block/float/avoidance-percent-width-strict-expected.txt: Added.
        * platform/mac/fast/block/float/float-avoidance-expected.checksum:
        * platform/mac/fast/block/float/float-avoidance-expected.png:
        * platform/mac/fast/block/float/float-avoidance-expected.txt:
        * platform/mac/fast/overflow/004-expected.checksum:
        * platform/mac/fast/overflow/004-expected.png:
        * platform/mac/fast/overflow/004-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug106158-1-expected.checksum:
        * platform/mac/tables/mozilla/bugs/bug106158-1-expected.png:
        * platform/mac/tables/mozilla/bugs/bug106158-1-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug106158-2-expected.checksum:
        * platform/mac/tables/mozilla/bugs/bug106158-2-expected.png:
        * platform/mac/tables/mozilla/bugs/bug106158-2-expected.txt:

2009-08-13  Eric Seidel  <eric@webkit.org>

        No review, only skipping tests.

        Qt: Font Sizes are wrong for font families including monospace
        https://bugs.webkit.org/show_bug.cgi?id=28288

        * platform/qt/Skipped:

2009-08-13  Steve Block  <steveblock@google.com>

        Reviewed by Darin Adler.

        Geolocation PositionOptions does not use correct default values.
        https://bugs.webkit.org/show_bug.cgi?id=27254

        Adds a layout test to check the acceptable types for arguments to Geolocation methods.

        * fast/dom/Geolocation/resources/argument-types.js: Added. Tests the types of the arguments that can be passed to Geolocation methods.
        * fast/dom/Geolocation/argument-types.html: Added. HTML wrapper for above JS test.
        * fast/dom/Geolocation/argument-types-expected.txt: Added. Expected output for above test.

2009-08-13  Eric Seidel  <eric@webkit.org>

        Rubber-stamped by Mark Rowe.

        wrong font size when css font-family includes monospace
        https://bugs.webkit.org/show_bug.cgi?id=19161

        Removing results which are expected to change, but that I have no way to update.

        * platform/mac-tiger/fast/text/monospace-width-cache-expected.checksum: Removed.
        * platform/mac-tiger/fast/text/monospace-width-cache-expected.png: Removed.
        * platform/qt/fast/text/monospace-width-cache-expected.txt: Removed.

2009-08-13  Eric Seidel  <eric@webkit.org>

        No review, it is expected that this would change.

        wrong font size when css font-family includes monospace
        https://bugs.webkit.org/show_bug.cgi?id=19161

        Update Tiger results from the bot.  I have no way to update the pixel results.

        * platform/mac-tiger/fast/text/monospace-width-cache-expected.txt:

2009-08-13  Eric Seidel  <eric@webkit.org>

        Rubber-stamped by Adam Roben.

        REGRESSION: 6 media tests regressed while the windows bot was broken
        https://bugs.webkit.org/show_bug.cgi?id=28281

        * platform/win/Skipped:

2009-08-13  Brady Eidson  <beidson@apple.com>

        Reviewed by Eric Seidel.

        <rdar://problem/7138591> and https://bugs.webkit.org/show_bug.cgi?id=28260
        onhashchange property cannot be set from javascript.

        * fast/dom/Window/window-properties-expected.txt:
        * fast/loader/onhashchange-attribute-listeners-expected.txt: Added.
        * fast/loader/onhashchange-attribute-listeners.html: Added.

2009-08-13  Eric Seidel  <eric@webkit.org>

        Reviewed by David Hyatt.

        wrong font size when css font-family includes monospace
        https://bugs.webkit.org/show_bug.cgi?id=19161

        Update test results now that only "font-family: monospace" is 13px.
        All other combinations of font-family are 16px default size.

        Add two tests:
        font-family-fallback-reset: catches a bug in inheriting font-family fallback.
        computed-style-font-family-monospace: tests this bug, that only "font-family: monospace" is 13px.

        * fast/css/getComputedStyle/computed-style-font-family-expected.txt:
        * fast/css/getComputedStyle/computed-style-font-family-monospace-expected.txt: Added.
        * fast/css/getComputedStyle/computed-style-font-family-monospace.html: Added.
        * fast/css/getComputedStyle/font-family-fallback-reset-expected.txt: Added.
        * fast/css/getComputedStyle/font-family-fallback-reset.html: Added.
        * fast/css/getComputedStyle/resources/computed-style-font-family-monospace.js: Added.
        (fontSizeForFamilies):
        * fast/css/getComputedStyle/resources/font-family-fallback-reset.js: Added.
        * fast/js/method-check.html:
        * platform/mac/css1/font_properties/font_family-expected.txt:
        * platform/mac/css2.1/t1503-c522-font-family-00-b-expected.txt:
        * platform/mac/fast/text/monospace-width-cache-expected.txt:

2009-08-13  Adam Roben  <aroben@apple.com>

        Remove media/video-test.js's redundant hang timer

        DRT already has a timer that does the same thing.

        Reviewed by Mark Rowe.

        * media/video-test.js: Remove the hang timer, since DRT does the same
        thing.

2009-08-13  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Adam Roben.

        Due to fixes in http://trac.webkit.org/changeset/47038 and http://trac.webkit.org/changeset/47163,
        fast/events/mouse-click-events.html now passes, removing it from Skipped List.

        * platform/win/Skipped:

2009-08-13  Steve Block  <steveblock@google.com>

        Reviewed by David Levin.

        Disables Geolocation 'enabled' test for GTK port, as the GTK Geolocation implementation is incomplete.
        https://bugs.webkit.org/show_bug.cgi?id=27716

        * platform/gtk/Skipped: Modified. Disables Geolocation 'enabled' test.

2009-08-13  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Eric Seidel.

        wrong calculation of overflow size for flexbox and table
        https://bugs.webkit.org/show_bug.cgi?id=28064

        RenderFlexibleBox and RenderTable were using the width of overflow
        to update height of overflow, so height became wrong value and
        width was not updated. As the corresponding code of RenderBlock
        was sane, I factored it out and used from RenderFlexibleBox and
        RenderTable.

        * fast/reflections/reflection-overflow-scroll-expected.txt:
        * fast/reflections/reflection-overflow-scroll.html:
        * fast/reflections/resources/reflection-overflow-scroll.js:

2009-08-13  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Rubber-stamped by George Staikos.

        [Qt] These tests pass, update the metrics and exclude from Skipped.

        * platform/qt/Skipped:
        * platform/qt/fast/canvas/canvas-transform-identity-expected.txt:
        * platform/qt/fast/canvas/canvas-transform-infinity-expected.txt:
        * platform/qt/fast/canvas/canvas-transform-multiply-expected.txt:
        * platform/qt/fast/canvas/canvas-transform-nan-expected.txt:
        * platform/qt/fast/canvas/canvas-transform-non-invertible-expected.txt:
        * platform/qt/fast/canvas/canvas-transform-skewed-expected.txt:
        * platform/qt/fast/canvas/canvas-transforms-during-path-expected.txt:

2009-08-13  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Rubber-stamped by Simon Hausmann.

        [Qt] Test result for quadraticCurveTo.

        * platform/qt/Skipped: Exclude quadraticCurveTo test.
        * platform/qt/fast/canvas/quadraticCurveTo-expected.checksum: Added.
        * platform/qt/fast/canvas/quadraticCurveTo-expected.png: Added.
        * platform/qt/fast/canvas/quadraticCurveTo-expected.txt: Added.

2009-08-13  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Rubber-stamped by Simon Hausmann.

        [Qt] Fix test result and add pixel test.

        * platform/qt/fast/canvas/canvas-zoom-expected.checksum: Added.
        * platform/qt/fast/canvas/canvas-zoom-expected.png: Added.
        * platform/qt/fast/canvas/canvas-zoom-expected.txt: Added.

2009-08-13  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Reviewed by Simon Hausmann.

        [Qt] Add pixel tests result for canvas shadow support.

        * platform/qt/Skipped: Exclude new passing tests.
        * platform/qt/fast/canvas/shadow-offset-1-expected.checksum: Added.
        * platform/qt/fast/canvas/shadow-offset-1-expected.png: Added.
        * platform/qt/fast/canvas/shadow-offset-1-expected.txt: Added.
        * platform/qt/fast/canvas/shadow-offset-2-expected.checksum: Added.
        * platform/qt/fast/canvas/shadow-offset-2-expected.png: Added.
        * platform/qt/fast/canvas/shadow-offset-2-expected.txt: Added.
        * platform/qt/fast/canvas/shadow-offset-3-expected.checksum: Added.
        * platform/qt/fast/canvas/shadow-offset-3-expected.png: Added.
        * platform/qt/fast/canvas/shadow-offset-3-expected.txt: Added.
        * platform/qt/fast/canvas/shadow-offset-4-expected.checksum: Added.
        * platform/qt/fast/canvas/shadow-offset-4-expected.png: Added.
        * platform/qt/fast/canvas/shadow-offset-4-expected.txt: Added.
        * platform/qt/fast/canvas/shadow-offset-5-expected.checksum: Added.
        * platform/qt/fast/canvas/shadow-offset-5-expected.png: Added.
        * platform/qt/fast/canvas/shadow-offset-5-expected.txt: Added.
        * platform/qt/fast/canvas/shadow-offset-6-expected.checksum: Added.
        * platform/qt/fast/canvas/shadow-offset-6-expected.png: Added.
        * platform/qt/fast/canvas/shadow-offset-6-expected.txt: Added.
        * platform/qt/fast/canvas/shadow-offset-7-expected.checksum: Added.
        * platform/qt/fast/canvas/shadow-offset-7-expected.png: Added.
        * platform/qt/fast/canvas/shadow-offset-7-expected.txt: Added.

2009-08-12  Alpha Lam < hclam@chromium.org>

        Not reviewed, Windows test fix after http://trac.webkit.org/changeset/47171.

        This splits the expected result file into mac and Windows
        versions since the result is different on Windows.

        * platform/mac/media/controls-drag-timebar-expected.txt: Renamed from LayoutTests/media/controls-drag-timebar-expected.txt.
        * platform/win/media/controls-drag-timebar-expected.txt: Added.

2009-08-12  Eric Seidel  <eric@webkit.org>

        No review, just adding missing results.

        <canvas> without CSS width/height is unaffected by full page zoom
        https://bugs.webkit.org/show_bug.cgi?id=26908

        Adding missing test results.  Unsure why run-webkit-tests didn't fail.

        * fast/canvas/canvas-zoom-expected.checksum: Added.
        * fast/canvas/canvas-zoom-expected.png: Added.
        * fast/canvas/canvas-zoom-expected.txt: Added.

2009-08-12  George Wright  <george.wright@torchmobile.com>

        Reviewed by David Hyatt.

        Test the four cases of width and height being declared or not for a
        canvas element with CSS zooming enabled.

        https://bugs.webkit.org/show_bug.cgi?id=26908

        * fast/canvas/canvas-zoom.html: Added.

2009-08-12  Alpha Lam  <hclam@chromium.org>

        Reviewed by Simon Fraser.

        Fix regression for dragging the media controller thumb.
        https://bugs.webkit.org/show_bug.cgi?id=28211

        Add a layout test to make sure dragging the timebar thumb of media
        controls causes seeks.

        * media/controls-drag-timebar-expected.txt: Added.
        * media/controls-drag-timebar.html: Added.

2009-08-12  Dumitru Daniliuc  <dumi@chromium.org>

        Reviewed by Eric Seidel.

        Regression test. Tests that two transactions that run on two
        different handles for the same DB do not cause a deadlock.

        https://bugs.webkit.org/show_bug.cgi?id=27966

        * storage/multiple-transactions-on-different-handles-expected.txt: Added.
        * storage/multiple-transactions-on-different-handles.html: Added.

2009-08-12  Eric Seidel  <eric@webkit.org>

        No review, finishing previous commit.

        Add Geolocation layout tests.
        https://bugs.webkit.org/show_bug.cgi?id=27716

        Add changes missed in http://trac.webkit.org/changeset/47168

        * platform/qt/Skipped:
        * platform/win/Skipped:

2009-08-12  Steve Block  <steveblock@google.com>

        Reviewed by Eric Seidel.

        Bug 27716: Add Geolocation layout tests.
        https://bugs.webkit.org/show_bug.cgi?id=27716

        Adds the first, basic Geolocation layout test. This simply tests that
        navigator.geolocation is present when it should be.

        * fast/dom/Geolocation: Added. Directory for Geolocation layout tests.
        * fast/dom/Geolocation/enabled.html: Added. HTML wrapper for enabled.js test.
        * fast/dom/Geolocation/resources: Added. Directory for Geolocation layout tests JS source.
        * fast/dom/Geolocation/resources/enabled.js: Added. Tests that navigator.geolocation is present.
        * fast/dom/Geolocation/resources/TEMPLATE.html: Added. Template for creating HTML wrapper files for JS tests with make-js-test-wrappers.
        * fast/dom/Geolocation/enabled-expected.txt: Added. Expected result for above test.
        * platform/mac/Skipped: Modified. Skip Geolocation tests.
        * platform/qt/Skipped: Modified. Skip Geolocation tests.
        * platform/win/Skipped: Modified. Skip Geolocation tests.

2009-08-12  Darin Adler  <darin@apple.com>

        Reviewed by Geoff Garen.

        Custom properties on DOM objects are lost after GC (as demonstrated by the gc-9.html test)
        https://bugs.webkit.org/show_bug.cgi?id=28194

        * fast/dom/gc-9-expected.txt: Regenerated.
        * fast/dom/gc-9.html: Updated to expect correct behavior instead of failures.

2009-08-12  Brian Weinstein  <bweinstein@apple.com>

        Reviewed by Eric Seidel.

        Added a Windows test for https://bugs.webkit.org/show_bug.cgi?id=28023.

        * platform/win/fast/events/panScroll-nested-divs-expected.txt: Added.
        * platform/win/fast/events/panScroll-nested-divs.html: Added.

2009-08-12  Michelangelo De Simone  <micdesim@gmail.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=27458
        Test suite for the :default CSS pseudoclass.

        * fast/css/pseudo-default-001-expected.txt: Added.
        * fast/css/pseudo-default-001.html: Added.
        * fast/css/pseudo-default-002-expected.txt: Added.
        * fast/css/pseudo-default-002.html: Added.
        * fast/css/pseudo-default-003-expected.txt: Added.
        * fast/css/pseudo-default-003.html: Added.
        * fast/css/pseudo-default-004-expected.txt: Added.
        * fast/css/pseudo-default-004.html: Added.

2009-08-12  Eric Seidel  <eric@webkit.org>

        No review, just fixing line-endings.

        Change from DOS to unix line endings on tests from
        http://trac.webkit.org/changeset/47130

        * fast/events/set-event-in-another-frame-expected.txt:
        * fast/events/set-event-to-null-expected.txt:

2009-08-12  Nate Chapin  <japhet@chromium.org>

        Reviewed by Adam Barth.

        Add a layout test to ensure that window.event can be properly accessed
        after it has been nulled by a script on a page.

        https://bugs.webkit.org/show_bug.cgi?id=27719

        * fast/events/set-event-in-another-frame-expected.txt: Added.
        * fast/events/set-event-in-another-frame.html: Added.
        * fast/events/set-event-to-null-expected.txt: Added.
        * fast/events/set-event-to-null.html: Added.

2009-08-12  Eric Seidel  <eric@webkit.org>

        No review, just skipping tests to make the bots green.

        REGRESSION (r47110): 4 media regressions on the bots
        https://bugs.webkit.org/show_bug.cgi?id=28221

        Skipping these until Eric Carlson has a fix.

        * platform/mac/Skipped:

2009-08-12  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Eric Seidel.

        Bug 28219: platform/mac/accessibility/string-range-contains-listmarker.html fails on SnowLeopard
        https://bugs.webkit.org/show_bug.cgi?id=28219

        * platform/mac-snowleopard/Skipped:
        * platform/mac/accessibility/string-range-contains-listmarker.html:

2009-08-12  Brady Eidson  <beidson@apple.com>

        (no review) Disabling a failing test.

        <rdar://problem/7136851> platform/mac/accessibility/string-range-contains-listmarker.html fails.

        * platform/mac-snowleopard/Skipped:

2009-08-12  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Reviewed by Holger Hans Peter Freyther.

        [Qt] Update the pixel tests for shadow edge fix.

        * platform/qt/fast/box-shadow/basic-shadows-expected.checksum:
        * platform/qt/fast/box-shadow/basic-shadows-expected.png:

2009-08-12  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Reviewed by Simon Hausmann.

        [Qt] Pixel tests for (partial) -webkit-box-shadow support.

        * platform/qt/fast/box-shadow/basic-shadows-expected.checksum: Added.
        * platform/qt/fast/box-shadow/basic-shadows-expected.png: Added.
        * platform/qt/fast/box-shadow/basic-shadows-expected.txt: Adjusted.

2009-08-11  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        Native JSON.stringify does not omit functions
        https://bugs.webkit.org/show_bug.cgi?id=28117

        Test serialisation of function objects.

        * fast/js/JSON-stringify-expected.txt:
        * fast/js/JSON-stringify-replacer-expected.txt:
        * fast/js/resources/JSON-stringify-replacer.js:
        * fast/js/resources/JSON-stringify.js:
        (createTests.result.push.):

2009-08-11  Brady Eidson  <beidson@apple.com>

        Rubberstamped by Mark Rowe.

        <rdar://problem/7135864> fast/dom/frame-loading-via-document-write.html fails intermittently.

        * platform/mac-snowleopard/Skipped: Skip for now.

2009-08-11  Mike Fenton  <mike.fenton@torchmobile.com>

        Reviewed by Adam Treat.

        Remove tests from Skipped that now pass correctly after the addition
        of keyDown named event handling to Qt's DumpRenderTree.

        https://bugs.webkit.org/show_bug.cgi?id=28161

        * platform/qt/Skipped:

2009-08-11  Drew Wilson  <atwilson@google.com>

        Reviewed by David Levin.

        SharedWorkers do not exit when the last parent document exits.
        https://bugs.webkit.org/show_bug.cgi?id=28170

        Added more tests to check that previous incarnations of the SharedWorker "name" are shut down.

        * fast/workers/shared-worker-replace-global-constructor.html-disabled:
        Fixed incorrect path to common script.
        * fast/workers/shared-worker-shared-expected.txt:
        * fast/workers/shared-worker-shared.html-disabled:
        Added more tests for sharing, including initial test to make sure previous incarnations of shared worker were closed.
        * fast/workers/worker-replace-global-constructor.html:
        Removed extraneous closing HTML tag.

2009-08-11  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        Bug 28200 - ListMarker should be included as part of the text value to parse
        https://bugs.webkit.org/show_bug.cgi?id=28200

        Tests for checking that the list marker text is included when asking for text 
        through accessibility.

        * platform/mac/accessibility/bounds-for-range-expected.txt.
        * platform/mac/accessibility/string-range-contains-listmarker-expected.txt: Added.
        * platform/mac/accessibility/string-range-contains-listmarker.html: Added.

2009-08-11  Brady Eidson  <beidson@apple.com>

        Rubberstamped by Mark Rowe.

        <rdar://problem/7135553> plugins/root-object-premature-delete-crash.html crashes intermittently.

        * platform/mac-snowleopard/Skipped: Skip for now.

2009-08-11  Eric Seidel  <eric@webkit.org>

        No review, just adding results.

        Cross-platform ICO decoder gets wrong bit depth for icons w/o color count
        https://bugs.webkit.org/show_bug.cgi?id=28073

        Land test results (as pkasting asked me to do hours ago, sorry).

        * fast/images/icon-0colors-expected.checksum: Added.
        * fast/images/icon-0colors-expected.png: Added.
        * fast/images/icon-0colors-expected.txt: Added.

2009-08-11  Oliver Hunt  <oliver@apple.com>

        Reviewed by Geoff Garen.

        REGRESSION: Hang/crash in BytecodeGenerator::constRegisterFor loading simple page
        https://bugs.webkit.org/show_bug.cgi?id=28169

        Ensure that const declarations work correctly when attempting to shadow a
        property on the global object.

        * fast/js/const-expected.txt:
        * fast/js/const.html:
        * fast/js/resources/const.js:

2009-08-11  John Gregg  <johnnyg@google.com>

        Reviewed by Maciej Stachowiak.

        Desktop Notifications API
        https://bugs.webkit.org/show_bug.cgi?id=25463

        Adding layout tests for desktop notifications.  Currently these
        are all disabled because the flag for this feature is set to 0.

        * fast/notifications: Added.
        * fast/notifications/notifications-check-permission-expected.txt: Added.
        * fast/notifications/notifications-check-permission.html-disabled: Added.
         - Validates that checking permission for notifications works correctly.
        * fast/notifications/notifications-display-close-events-expected.txt: Added.
        * fast/notifications/notifications-display-close-events.html-disabled: Added.
         - Validates that the display and close events are fired correctly.
        * fast/notifications/notifications-double-show-expected.txt: Added.
        * fast/notifications/notifications-double-show.html-disabled: Added.
         - Validates that the same notification object cannot be shown twice.
        * fast/notifications/notifications-request-permission-expected.txt: Added.
        * fast/notifications/notifications-request-permission.html-disabled: Added.
         - Validates that requesting permission works correctly.
        * fast/notifications/notifications-with-permission-expected.txt: Added.
        * fast/notifications/notifications-with-permission.html-disabled: Added.
         - Validates that, with permission, showing a notification works correctly.
        * fast/notifications/notifications-without-permission-expected.txt: Added.
        * fast/notifications/notifications-without-permission.html-disabled: Added.
         - Validates that, without permission, showing a notification fails.

2009-08-11  Brady Eidson  <beidson@apple.com>

        Rubberstamped by Mark Rowe.

        -Stop skipping platform/mac/fast/text/myanmar-shaping.html on SnowLeopard.
        -Move the previous results aside for Tiger and Leopard only.
        -Generate new results for SnowLeopard.

        * platform/mac-snowleopard/Skipped: Remove platform/mac/fast/text/myanmar-shaping.html
        * platform/mac-leopard/fast/text/myanmar-shaping-expected.checksum: Copied from platform/mac/fast/text/myanmar-shaping-expected.checksum.
        * platform/mac-leopard/fast/text/myanmar-shaping-expected.png: Copied from platform/mac/fast/text/myanmar-shaping-expected.png.
        * platform/mac-leopard/fast/text/myanmar-shaping-expected.txt: Copied from platform/mac/fast/text/myanmar-shaping-expected.txt.
        * platform/mac/fast/text/myanmar-shaping-expected.checksum: Replaced.
        * platform/mac/fast/text/myanmar-shaping-expected.png: Replaced.
        * platform/mac/fast/text/myanmar-shaping-expected.txt: Replaced.

2009-08-11  Brady Eidson  <beidson@apple.com>

        Rubber-stamped by Anders Carlsson.

        Resolve <rdar://problem/6733642>.

        * platform/mac-snowleopard/Skipped: Re-enable plugins/netscape-plugin-setwindow-size.html and
          plugins/netscape-plugin-setwindow-size-2.html, as they now reliably pass.

2009-08-11  Brady Eidson  <beidson@apple.com>

        Rubber-stamped by Mark Rowe.

        Resolve <rdar://problem/6877291>.

        * platform/mac-snowleopard/Skipped: media/video-size-intrinsic-scale.html no longer fails - stop skipping it!

2009-08-11  Brady Eidson  <beidson@apple.com>

        Rubber-stamped by Mark Rowe.

        * platform/mac-snowleopard/Skipped: Remove http/tests/navigation/post-goback-repost-policy.html,
          as it has already been disabled globally, and re-enabling is tracked by <rdar://problem/6778137>

2009-08-07  Peter Kasting  <pkasting@google.com>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=28073
        Treat icons with no bit count and no color count as 256-color for
        purposes of quality ranking.

        * fast/images/icon-0colors.html: Added.
        * fast/images/resources/0colors.ico: Added.

2009-08-11  Dmitry Titov  <dimich@chromium.org>

        Reviewed by Adam Roben.

        Originally implemented by Glenn Wilson  <gwilson@chromium.org>.

        Added tests to verify that default preferences can be overridden per-test
        and that overridden values are reset between each test.
        See https://bugs.webkit.org/show_bug.cgi?id=20534

        * fast/harness/override-preferences-2-expected.txt: Added.
        * fast/harness/override-preferences-2.html: Added. Verifies overridePreverence("WebKitDefaultFontSize", "24").
        * fast/harness/override-preferences-expected.txt: Added.
        * fast/harness/override-preferences.html: Added. Verifies overridePreference("WebKitJavaScriptEnabled", false).
        * fast/harness/override-zzz-reset-expected.txt: Added.
        * fast/harness/override-zzz-reset.html: Added. Because of 'zzz' this test will run after the tests above and
        verify that override of preferences does not 'spill' to the subsequent tests in a batch.
        * platform/gtk/Skipped: Tests above disabled for GTK until GTK DRT implements preference override.

2009-08-11  Mike Fenton  <mike.fenton@torchmobile.com>

        Reviewed by Adam Treat.

        Add results for fast/borders/border-radius-split-inline and remove from platform/qt/Skipped
        Note: Results will wrap to 4 lines even though it indicates 3 lines.  This is due to font
        size differences in Qt, and matches the output of FireFox.

        https://bugs.webkit.org/show_bug.cgi?id=28147

        * platform/qt/Skipped:
        * platform/qt/fast/borders/border-radius-split-inline-expected.txt: Added.

2009-08-07  Oliver Hunt  <oliver@apple.com>

        Reviewed by Sam Weinig.

        Stack overflow crash in JavaScript garbage collector mark pass
        https://bugs.webkit.org/show_bug.cgi?id=12216

        Add a testcase that requires marking of a deeply nested object.

        * fast/js/nested-object-gc-expected.txt: Added.
        * fast/js/nested-object-gc.html: Added.
        * fast/js/resources/js-test-pre.js:
            Add a gc() function that triggers a gc or calls the gc controller if it's present
        * fast/js/resources/nested-object-gc.js: Added.

2009-08-10  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Brady Eidson.

        ___Storage.key() changed to match new spec behavior; update layout tests.
        https://bugs.webkit.org/show_bug.cgi?id=28112

        The current WebStorage spec says that ___Storage.key() should return null when
        the index is out of bounds, rather than an exception.  Change the one layout
        test that verified this behavior.

        * storage/domstorage/localstorage/simple-usage-expected.txt:
        * storage/domstorage/localstorage/simple-usage.html:
        * storage/domstorage/sessionstorage/simple-usage-expected.txt:
        * storage/domstorage/sessionstorage/simple-usage.html:

2009-08-07  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Justin Garcia.

        Background color formatting lost on enter
        https://bugs.webkit.org/show_bug.cgi?id=20348

        This patch adds a test to make sure WebKit preserves background color when inserting a new paragraph.

        * editing/inserting/5994480-2-expected.txt: Because input element has explicit white background and the enclosing div has
        transparent background, WebKit adds white background color in DeleteSelectionCommand::calculateTypingStyleAfterDelete upon deletion.
        * editing/style/highlight-insert-paragraph-expected.txt: Added.
        * editing/style/highlight-insert-paragraph.html: Added.
        * platform/mac/editing/pasteboard/select-element-1-expected.txt: Because select element has explicit white background color
        and div has transparent background, WebKit adds white background color in calculateTypingStyleAfterDelete upon cut.

2009-08-10  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Rubber-stamped by George Staikos.

        Forgot to update pixel test result in my last commit.

        * platform/mac/fast/wml/text-emphasis-expected.checksum:
        * platform/mac/fast/wml/text-emphasis-expected.png:

2009-08-07  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        When empty <input> is focused, getSelection() exposes shadow tree nodes
        https://bugs.webkit.org/show_bug.cgi?id=15903

        Also updated a recently introduced non-standard test to work in a more
        standard way.

        * fast/forms/resources/shadow-tree-exposure.js: Added.
        * fast/forms/shadow-tree-exposure-expected.txt: Added.
        * fast/forms/shadow-tree-exposure.html: Added.

        * fast/js/method-check-expected.txt: Updated.
        * fast/js/method-check.html: Regenerated using the make-js-test-wrappers script.
        * fast/js/resources/method-check.js: Replaced a comment talking about the lack
        of a gc() function with a call to GCController.collect(). Also removed the
        shouldBeTrue call at the end of the fiel that wasn't needed.

2009-08-10  Renata Hodovan  <hodovan.renata@stud.u-szeged.hu>

        Reviewed by Simon Hausmann.

         [Qt] After ChangeSet https://bugs.webkit.org/show_bug.cgi?id=26896, the
         DefaultFontSize was changed in Qt DumpRenderTree from 14 to 13. But
         any expected file works with the original value. The expected values
         should follow this change. This patch contains the new expected
         files.

        * platform/qt/Skipped:
        * platform/qt/editing/pasteboard/5780697-2-expected.txt: Add.
        * platform/qt/fast/block/float/009-expected.txt:
        * platform/qt/fast/dynamic/genContentDestroyChildren-expected.txt:
        * platform/qt/fast/images/image-in-map-expected.txt:
        * platform/qt/fast/inline-block/004-expected.txt:
        * platform/qt/fast/inline-block/005-expected.txt:
        * platform/qt/fast/table/giantRowspan-expected.txt:
        * platform/qt/fast/table/height-percent-test-expected.txt:
        * platform/qt/tables/mozilla/bugs/adforce_imgis_com-expected.txt:
        * platform/qt/tables/mozilla/bugs/bug50695-2-expected.txt:
        * platform/qt/tables/mozilla_expected_failures/bugs/bug23847-expected.txt:

2009-08-10  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Ariya Hidayat.

        Rebase Qt letter spacing DRT result after r46936

        * platform/qt/fast/text/text-letter-spacing-expected.txt:

2009-08-09  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by George Staikos.

        [WML] wml.css lacks <pre> support
        https://bugs.webkit.org/show_bug.cgi?id=28135

        Extend fast/wml/text-emphasis.wml test, to cover <pre> formatting.

        * fast/wml/text-emphasis.wml:
        * platform/mac/fast/wml/text-emphasis-expected.txt:

2009-08-09  Oliver Hunt  <oliver@apple.com>

        Reviewed by George Staikos.

        JSON.stringify replacer returning undefined does not omit object properties
        https://bugs.webkit.org/show_bug.cgi?id=28118

        Add tests that cover the behaviour of JSON.stringify with a replacer
        function.  In addition to testing replacer function returning undefined,
        we test the replacer injecting a cycle, and that the replacer gets
        called when a property has the value undefined.

        * fast/js/JSON-stringify-expected.txt:
        * fast/js/JSON-stringify-replacer-expected.txt: Added.
        * fast/js/JSON-stringify-replacer.html: Added.
        * fast/js/resources/JSON-stringify-replacer.js: Added.
        (returnUndefined):
        (returnObjectFor1):
        (returnArrayFor1):
        (returnUndefinedFor1):
        (returnNullFor1):
        (returnCycleObjectFor1):
        (returnCycleArrayFor1):
        (returnStringForUndefined):

2009-08-09  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by George Staikos.

        [WML] Deck access control is completly broken
        https://bugs.webkit.org/show_bug.cgi?id=27721

        Add several new tests covering WML deck-access control.
        Update variable-reference-invalid-character.html result, as console messages aren't dump to the results anymore.

        * http/tests/wml/access-target-domain-deny-expected.txt: Added.
        * http/tests/wml/access-target-domain-deny.html: Added.
        * http/tests/wml/access-target-expected.txt: Added.
        * http/tests/wml/access-target-path-deny-expected.txt: Added.
        * http/tests/wml/access-target-path-deny.html: Added.
        * http/tests/wml/access-target.html: Added.
        * http/tests/wml/resources/access-target-domain-deny.js: Added.
        (setupTestDocument):
        (prepareTest):
        (executeTest):
        * http/tests/wml/resources/access-target-domain-deny.wml: Added.
        * http/tests/wml/resources/access-target-path-deny.js: Added.
        (setupTestDocument):
        (prepareTest):
        (executeTest):
        * http/tests/wml/resources/access-target-path-deny.wml: Added.
        * http/tests/wml/resources/access-target.js: Added.
        (setupTestDocument):
        (prepareTest):
        (executeTest):
        * http/tests/wml/resources/access-target.wml: Added.
        * http/tests/wml/resources/locked-deck.wml: Added.
        * http/tests/wml/resources/unreachable-domain.wml: Added.
        * http/tests/wml/resources/unreachable-path.wml: Added.
        * wml/access-target-deny-expected.txt: Added.
        * wml/access-target-deny.html: Added.
        * wml/access-target-expected.txt: Added.
        * wml/access-target.html: Added.
        * wml/resources/access-target-deny.js: Added.
        (setupTestDocument):
        (prepareTest):
        (executeTest):
        * wml/resources/access-target-deny.wml: Added.
        * wml/resources/access-target.js: Added.
        (setupTestDocument):
        (prepareTest):
        (executeTest):
        * wml/resources/access-target.wml: Added.
        * wml/resources/locked-deck.wml: Added.
        * wml/variable-reference-invalid-character-expected.txt:

2009-08-09  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by George Staikos.

        [WML] manual-tests/wml/onevent-prev.wml crashes
        https://bugs.webkit.org/show_bug.cgi?id=27722

        Reorganize WML testcases to not rely on the fact that intrinsic events are executed before the document finished parsing.

        * http/tests/wml/resources/go-task-get-method-accept-charset.js:
        * http/tests/wml/resources/go-task-get-method.js:
        * http/tests/wml/resources/go-task-post-method-accept-charset.js:
        * http/tests/wml/resources/go-task-post-method.js:
        * http/tests/wml/resources/post-data-to-server.js:
        * wml/resources/WMLTestCase.js:
        (onloadHandler):
        (createStaticWMLTestCase):
        (createDynamicWMLTestCase):
        (createWMLTestCase.iframeElement.onload):
        (createWMLTestCase):
        * wml/resources/enter-card-with-events.js:
        (executeTest):
        * wml/resources/enter-first-card-with-events.js:
        (setupTestDocument):
        (prepareTest):
        (executeTest):
        * wml/resources/go-task-get-method-external-deck-with-href.js:
        * wml/resources/go-task-get-method-external-deck.js:
        * wml/resources/go-task-get-method-same-deck.js:
        * wml/resources/input-format.js:
        * wml/resources/newcontext-same-deck.js:
        (setupTestDocument):
        (executeTest):
        * wml/resources/onenterforward-event.js:
        (executeTest):
        * wml/resources/onenterforward-inline-event.js:
        * wml/resources/ontimer-event.js:
        (executeTest):
        * wml/resources/ontimer-inline-event.js:
        (executeTest):
        * wml/resources/option-element-onpick.js:
        * wml/resources/select-element-variables.js:
        * wml/resources/variable-reference-invalid-character.js:
        * wml/resources/variable-reference-valid.js:

2009-08-08  Oliver Hunt  <oliver@apple.com>

        Reviewed by Eric Seidel and Sam Weinig.

        [ES5] Implement Object.getPrototypeOf
        https://bugs.webkit.org/show_bug.cgi?id=28114

        Add tests for getPrototypeOf

        * fast/js/prototypes-expected.txt:
        * fast/js/resources/prototypes.js:

2009-08-08  Jan Michael Alonzo  <jmalonzo@webkit.org>

        [Gtk] Skip media/controls-right-click-on-timebar.html as it needs
        eventSender which we don't have at the moment.

        * platform/gtk/Skipped:

2009-08-08  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Xan Lopez.

        [Gtk] Enable accessibility in Gtk DRT
        https://bugs.webkit.org/show_bug.cgi?id=25989

        Remove passing accessibility tests from the Skipped list

        * platform/gtk/Skipped:

2009-08-07  Oliver Hunt  <oliver@apple.com>

        Reviewed by Cameron Zwarich.

        Test function declaration parsing

        * fast/js/function-declaration-expected.txt: Added.
        * fast/js/function-declaration.html: Added.
        * fast/js/resources/function-declaration.js: Added.

2009-08-07  Jan Michael Alonzo  <jmalonzo@webkit.org>

        [Gtk] Skip two new tests (from r46896) needing gtk-specific results.

        * platform/gtk/Skipped:

2009-08-07  Darin Adler  <darin@apple.com>

        * platform/gtk/Skipped: Skip a newly-failing test. I filed a bug about it too.

2009-08-07  Darin Adler  <darin@apple.com>

        * platform/gtk/Skipped: Updated since textarea-arrow-navigation.html moved.

2009-08-07  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Mark Rowe.

        Add http/tests/misc/favicon-loads-with-images-disabled.html to get the 
        Windows Debug bot back green.

        * platform/win/Skipped:

2009-08-07  Darin Adler  <darin@apple.com>

        Reviewed by Adele Peterson.

        "Shadow tree" DOM nodes are being accidentally exposed to JavaScript
        https://bugs.webkit.org/show_bug.cgi?id=28086

        Rewrite tests that depend on selection inside <input> and <textarea> elements
        from showing up with getSelection(), since does not match Firefox and needs to
        change soon.

        * editing/deleting/delete-ligature-002-expected.txt: Updated.
        * editing/deleting/delete-ligature-002.html: Changed to use a contenteditable
        <div> element instead of a <textarea> element.

        * editing/deleting/delete-ligature-003-expected.txt: Updated.
        * editing/deleting/delete-ligature-003.html: Changed to use a contenteditable
        <div> element instead of a <textarea> element.

        * editing/deleting/skip-virama-001-expected.txt: Updated.
        * editing/deleting/skip-virama-001.html: Changed to use a contenteditable
        <div> element instead of a <textarea> element.

        * editing/input/textarea-arrow-navigation-expected.txt: Moved to fast/forms.
        * editing/input/textarea-arrow-navigation.html: Ditto.

        * editing/inserting/insert-thai-characters-001-expected.txt: Updated.
        * editing/inserting/insert-thai-characters-001.html: Changed to use a contenteditable
        <div> element instead of a <textarea> element.

        * editing/selection/5213963-expected.txt: Added. This is now a text-only test.
        * editing/selection/5213963.html: Added a call to dumpAsText(). Changed selection
        testing to use selectionEnd instead of getSelection().type.

        * editing/selection/find-in-text-control-expected.txt: Updated.
        * editing/selection/find-in-text-control.html: Changed test to distinguish the
        different text controls. Made it use activeElement to find out if the selection
        is inside a control.

        * editing/selection/move-begin-end-expected.txt: Updated.
        * editing/selection/move-begin-end.html: Changed to use a contenteditable
        <div> element instead of a <textarea> element.

        * editing/text-iterator/thai-cursor-movement-expected.txt: Updated.
        * editing/text-iterator/thai-cursor-movement.html: Changed to use a contenteditable
        <div> element instead of a <textarea> element.

        * fast/forms/textarea-arrow-navigation-expected.txt: Moved from editing/input since
        this is a <textarea> test, not a general editing test.
        * fast/forms/textarea-arrow-navigation.html: Ditto.
        Changed to use eventSender instead of the editing machinery to test the down arrow.

        * platform/mac/editing/selection/5213963-expected.checksum: Removed.
        This is now a text-only test.
        * platform/mac/editing/selection/5213963-expected.png: Ditto.
        * platform/mac/editing/selection/5213963-expected.txt: Ditto.
        * platform/qt/editing/selection/5213963-expected.txt: Ditto.
        * platform/win/editing/selection/5213963-expected.txt: Ditto.

2009-08-07  Drew Wilson  <atwilson@google.com>

        Reviewed by David Levin.

        SharedWorkers should be shared
        https://bugs.webkit.org/show_bug.cgi?id=28058

        Added tracking to the SharedWorkerRepository so instances of SharedWorkers are shared across pages.

        * fast/workers/shared-worker-shared-expected.txt: Added.
        * fast/workers/shared-worker-shared.html-disabled: Added sharing test.

2009-08-07  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Justin Garcia.

        selectionHasStyle doesn't handle text-specific properties properly
        https://bugs.webkit.org/show_bug.cgi?id=27858

        This patch adds toggle-compound-styles to make sure WebKit can handle nested text styles
        such as <b><i>hello</i>world</b> (italicized) and <b><i>hello</i>world</b> (not italicized)
        on all platforms except on Mac (to match TextEdit's behavior).

        * editing/execCommand/resources/toggle-compound-styles.js: Added.
        (testSingleToggle):
        * editing/execCommand/toggle-compound-styles.html: Added.
        * platform/gtk/editing/execCommand: Added.
        * platform/gtk/editing/execCommand/toggle-compound-styles-expected.txt: Added.
        * platform/mac/editing/execCommand/toggle-compound-styles-expected.txt: Added.
        * platform/qt/editing/execCommand/toggle-compound-styles-expected.txt: Added.
        * platform/win/editing/execCommand: Added.
        * platform/win/editing/execCommand/toggle-compound-styles-expected.txt: Added.

2009-08-07  Darin Adler  <darin@apple.com>

        Reviewed by Mark Rowe.

        Fix three tests so they are not dependent on the getSelection() result
        reflecting selections inside <input> and <textarea> elements.

        * fast/events/right-click-focus.html: Removed unneeded check of anchorNode.
        The test works fine by just testing the actual result of typing.

        * fast/forms/focus-style-pending.html: Detect focus with an onfocus
        attribute rather than by looking at getSelection().focusNode.

        * fast/forms/search-click-in-placeholder.html: Detect focus with an onfocus
        attribute rather than by looking at getSelection().baseNode.

2009-08-07  Alpha Lam  <hclam@chromium.org>

        Reviewed by Eric Seidel.

        Right click on timeline of media controls panel cause seek
        https://bugs.webkit.org/show_bug.cgi?id=27920

        Add a test simulate the behavior of seeking by right clicking
        on the time bar of media controls while playing.

        * media/controls-right-click-on-timebar-expected.txt: Added.
        * media/controls-right-click-on-timebar.html: Added.

2009-08-07  Darin Adler  <darin@apple.com>

        Reviewed by Mark Rowe.

        Another try at making the gc-9.html test less prone to intermittent failure.

        * fast/dom/gc-9.html: Changed this to do the "before garbage collection"
        test right after setting the properties. This practically eliminates the
        possibility that we will get unlucky and get a garbage collection between
        when theproperty is set and tested, which seems to have happened at least
        once on the buildbot.

2009-08-07  Mike Fenton  <mike.fenton@torchmobile.com>

        Reviewed by Adam Treat.

        Move fast/forms/menulist-style-color.html to Skipped list for mac/win.
        Bug filed - https://bugs.webkit.org/show_bug.cgi?id=28079

        * platform/mac/Skipped:
        * platform/win/Skipped:

2009-08-07  Mike Fenton  <mike.fenton@torchmobile.com>

        Reviewed by Adam Treat.

        Add Test results for mac and windows for new tests.

        https://bugs.webkit.org/show_bug.cgi?id=28050

        * platform/mac/fast/forms/text-style-color-expected.txt: Added.
        * platform/win/fast/forms/text-style-color-expected.txt: Added.

2009-08-07  Peter Kasting  <pkasting@google.com>

        Reviewed by Adam Treat.

        https://bugs.webkit.org/show_bug.cgi?id=28076
        Add fast/images/icon-decoding.html to Qt skip list until it has
        results.

        * platform/qt/Skipped:

2009-08-07  Mike Fenton  <mike.fenton@torchmobile.com>

        Reviewed by Eric Seidel.

        Prevent RenderThemeQt AdjustStyle based calls for TextField, MenuList and MenuListButton
        from discarding style colour.

        Add new tests and remove tests from platform/qt/Skipped that now pass.

        https://bugs.webkit.org/show_bug.cgi?id=28050

        * fast/forms/menulist-style-color.html: Added.
        * fast/forms/text-style-color.html: Added.
        * platform/qt/Skipped:
        * platform/qt/fast/forms/menulist-style-color-expected.txt: Added.
        * platform/qt/fast/forms/text-style-color-expected.txt: Added.

2009-08-07  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin Adler.

        Implement the HTML5 hashchange event.
        https://bugs.webkit.org/show_bug.cgi?id=21605

        * fast/loader/hashchange-event-expected.txt: Added.
        * fast/loader/hashchange-event.html: Added.

2009-08-07  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Adele Peterson.

        Cannot scroll for box-reflect:right
        https://bugs.webkit.org/show_bug.cgi?id=27979

        Update m_overflowLeft an m_overflowWidth for reflection just like
        m_overflowTop and m_overflowHeight.

        * fast/reflections/reflection-overflow-scroll-expected.txt: Added.
        * fast/reflections/reflection-overflow-scroll.html: Added.
        * fast/reflections/resources/reflection-overflow-scroll.js: Added.
        * platform/mac/fast/reflections/reflection-nesting-expected.txt:
        * platform/mac/fast/repaint/reflection-redraw-expected.txt:

2009-08-06  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Adam Barth.

        box-shadow's spread is ignored with <table>
        https://bugs.webkit.org/show_bug.cgi?id=28017

        Use RenderStyle::getBoxShadowExtent just like RenderBlock.

        * fast/box-shadow/box-shadow-overflow-scroll-expected.txt: Added.
        * fast/box-shadow/box-shadow-overflow-scroll.html: Added.
        * fast/box-shadow/resources/box-shadow-overflow-scroll.js: Added.

2009-08-06  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Xan Lopez.

        [Gtk] Copy expected (txt only) result from Mac for
        fast/images/icon-decoding.html from r46871 since we seem to pass this
        test as well.

        * platform/gtk/fast/images/icon-decoding-expected.txt: Copied from LayoutTests/platform/mac/fast/images/icon-decoding-expected.txt.

2009-08-06  Simon Fraser  <simon.fraser@apple.com>

        Make the test a little more sloppy to try to fix sporadic failures on Windows.

        * animations/play-state.html:

2009-08-05  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Darin Adler.

        Implement the matchMedium method on the Media interface described in the CSSOM View Module.
        https://bugs.webkit.org/show_bug.cgi?id=22495

        * fast/media/matchmedium-query-api-expected.txt: Added.
        * fast/media/matchmedium-query-api.html: Added.

2009-08-06  Darin Adler  <darin@apple.com>

        Reviewed by Mark Rowe.

        * fast/dom/gc-9-expected.txt: Generated new results.
        * fast/dom/gc-9.html: Turned off tests that are unpredictable based
        on what happens during garbage collection. These do represent bugs,
        so we want to turn them back on again once the bugs are fixed.

2009-08-06  Peter Kasting  <pkasting@google.com>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=28025
        Add a test for .ico decoding.

        * fast/images/icon-decoding.html: Added.
        * fast/images/resources/1bit.ico: Added.
        * fast/images/resources/2entries.ico: Added.
        * fast/images/resources/32bit.ico: Added.
        * fast/images/resources/8bit.ico: Added.
        * platform/mac/fast/images/icon-decoding-expected.checksum: Added.
        * platform/mac/fast/images/icon-decoding-expected.png: Added.
        * platform/mac/fast/images/icon-decoding-expected.txt: Added.

2009-08-06  Michelangelo De Simone  <micdesim@gmail.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=27455
        Test suite for form controls' custom validation message.

        * fast/dom/domListEnumeration-expected.txt: Corrected
        * fast/dom/resources/domListEnumeration.js: Corrected
        * fast/forms/ValidityState-customError-001-expected.txt: Added.
        * fast/forms/ValidityState-customError-001.html: Added.
        * fast/forms/ValidityState-customError-002-expected.txt: Added.
        * fast/forms/ValidityState-customError-002.html: Added.
        * fast/forms/ValidityState-customError-003-expected.txt: Added.
        * fast/forms/ValidityState-customError-003.html: Added.
        * fast/forms/ValidityState-customError-004-expected.txt: Added.
        * fast/forms/ValidityState-customError-004.html: Added.

2009-08-06  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Eric Seidel.

        LayoutTests/editing/execCommand/boldSelection.html must be a dumpAsText test
        https://bugs.webkit.org/show_bug.cgi?id=28055

        This patch converts boldSelection.html to a dumpAsText and adds description on what it tests.
        Namely, it tests bolding the first 21 letters  of a sentence.
        Since bolding must be done by adding b tag instead of a style span, we print innerHTML of the result.

        * editing/execCommand/boldSelection-expected.txt: Added.
        * editing/execCommand/boldSelection.html:
        * platform/mac/editing/execCommand/boldSelection-expected.checksum: Removed.
        * platform/mac/editing/execCommand/boldSelection-expected.png: Removed.
        * platform/mac/editing/execCommand/boldSelection-expected.txt: Removed.
        * platform/qt/editing/execCommand/boldSelection-expected.txt: Removed.

2009-08-06  Simon Fraser  <simon.fraser@apple.com>

        Fix a test in http/tests/media that was missed in the earlier 'media' rename.

        * http/tests/media/video-play-stall.html:

2009-08-06  Simon Fraser  <simon.fraser@apple.com>

        Rubber-stamped by Dan Bernstein.

        Move a video test from fast/media to media/, since fast/media is all about
        CSS media queries.

        * media/video-controls-with-mutation-event-handler-expected.txt: Renamed from LayoutTests/fast/media/video-controls-with-mutation-event-handler-expected.txt.
        * media/video-controls-with-mutation-event-handler.html: Renamed from LayoutTests/fast/media/video-controls-with-mutation-event-handler.html.

2009-08-06  Simon Fraser  <simon.fraser@apple.com>
        
        Reviewed by Dan Bernstein.
        
        https://bugs.webkit.org/show_bug.cgi?id=28056
        Change media tests to not use a variable in global scope with the name
        'media', to avoid conflict with window.media.
        
        * media/audio-constructor-autobuffer-expected.txt:
        * media/audio-constructor-autobuffer.html:
        * media/audio-constructor-src.html:
        * media/audio-constructor.html:
        * media/audio-data-url-expected.txt:
        * media/audio-data-url.html:
        * media/audio-mpeg-supported-expected.txt:
        * media/audio-mpeg-supported.html:
        * media/media-load-event-expected.txt:
        * media/media-load-event.html:
        * media/video-can-play-type.html:
        * media/video-loop-expected.txt:
        * media/video-loop.html:
        * media/video-seek-past-end-paused-expected.txt:
        * media/video-seek-past-end-paused.html:
        * media/video-seek-past-end-playing-expected.txt:
        * media/video-seek-past-end-playing.html:
        * media/video-source-media.html:
        * media/video-source-type-params.html:
        * media/video-source-type.html:
        * media/video-source.html:
        * media/video-src-invalid-remove.html:
        * media/video-src-plus-source-expected.txt:
        * media/video-src-plus-source.html:
        * media/video-src-source.html:
        * media/video-src.html:
        * media/video-test.js:
        (findMediaElement):
        (waitForEvent):
        (waitForEventAndTest):
        (relativeURL):
        * media/video-timeupdate-during-playback.html:
        
2009-08-06  Drew Wilson  <atwilson@google.com>

        Reviewed by David Levin.

        Refactored worker tests to share code with shared worker versions. Shared worker tests are currently disabled by default.

        Worker layout tests should be refactored to enable testing SharedWorkers also.
        https://bugs.webkit.org/show_bug.cgi?id=27963

        * fast/workers/resources/shared-worker-common.js:
        (onconnect):
        (gc):
        (handleMessage):
        * fast/workers/resources/shared-worker-create-common.js: Added.
        (createWorker.worker.port.onmessage):
        (createWorker.worker.postMessage):
        (createWorker):
        * fast/workers/resources/worker-context-gc.js: Added.
        (log):
        (worker.onmessage):
        * fast/workers/resources/worker-create-common.js: Added.
        (createWorker):
        * fast/workers/resources/worker-location.js: Added.
        (log):
        (gc):
        (worker.onmessage):
        * fast/workers/resources/worker-navigator.js: Added.
        (log):
        (worker.onmessage):
        * fast/workers/resources/worker-replace-global-constructor.js:
        * fast/workers/resources/worker-replace-self.js: Added.
        (log):
        (worker.onmessage):
        * fast/workers/shared-worker-context-gc-expected.txt: Added.
        * fast/workers/shared-worker-context-gc.html-disabled: Added.
        * fast/workers/shared-worker-location-expected.txt: Added.
        * fast/workers/shared-worker-location.html-disabled: Added.
        * fast/workers/shared-worker-navigator-expected.txt: Added.
        * fast/workers/shared-worker-navigator.html-disabled: Added.
        * fast/workers/shared-worker-replace-global-constructor.html-disabled:
        * fast/workers/shared-worker-replace-self-expected.txt: Added.
        * fast/workers/shared-worker-replace-self.html-disabled: Added.
        * fast/workers/worker-context-gc.html:
        * fast/workers/worker-location.html:
        * fast/workers/worker-navigator.html:
        * fast/workers/worker-replace-global-constructor.html:
        * fast/workers/worker-replace-self.html:

2009-08-06  Adam Barth  <abarth@webkit.org>

        Unreviewed rollout.

        Revert 46840 because it broke the reliability tests.

        * http/tests/security/isolatedWorld/window-setTimeout-function-expected.txt: Removed.
        * http/tests/security/isolatedWorld/window-setTimeout-function.html: Removed.
        * http/tests/security/isolatedWorld/window-setTimeout-string-expected.txt: Removed.
        * http/tests/security/isolatedWorld/window-setTimeout-string.html: Removed.
        * platform/gtk/Skipped:
        * platform/mac/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:

2009-08-06  Drew Wilson  <atwilson@google.com>

        Reviewed by David Levin.

        SharedWorkers should instantiate a thread and a SharedWorkerContext
        https://bugs.webkit.org/show_bug.cgi?id=27927

        Added disabled tests for SharedWorker minimal functionality.

        Began refactoring of dedicated worker tests to allow sharing test cases between shared and dedicated worker (will continue in another patch).

        * fast/workers/resources/shared-worker-common.js: Added.
        * fast/workers/resources/shared-worker-script-error.js: Added.
        * fast/workers/resources/worker-replace-global-constructor.js: Moved common code into shared .js file.
        * fast/workers/shared-worker-constructor.html-disabled:
        * fast/workers/shared-worker-gc-expected.txt: Added.
        * fast/workers/shared-worker-gc.html-disabled: Added.
        * fast/workers/shared-worker-load-error-expected.txt: Added.
        * fast/workers/shared-worker-load-error.html-disabled: Added.
        * fast/workers/shared-worker-replace-global-constructor-expected.txt: Added.
        * fast/workers/shared-worker-replace-global-constructor.html-disabled: Added.
        * fast/workers/shared-worker-script-error-expected.txt: Added.
        * fast/workers/shared-worker-script-error.html-disabled: Added.
        * fast/workers/shared-worker-simple-expected.txt: Added.
        * fast/workers/shared-worker-simple.html-disabled: Added.
        * fast/workers/worker-replace-global-constructor.html:

2009-08-06  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        [V8] Teach ScheduledAction::execute about isolated worlds
        https://bugs.webkit.org/show_bug.cgi?id=27703

        Add test coverage for the interaction between setTimeout and isolated
        worlds.

        * http/tests/security/isolatedWorld/window-setTimeout-function-expected.txt: Added.
        * http/tests/security/isolatedWorld/window-setTimeout-function.html: Added.
        * http/tests/security/isolatedWorld/window-setTimeout-string-expected.txt: Added.
        * http/tests/security/isolatedWorld/window-setTimeout-string.html: Added.

2009-08-05  Xan Lopez  <xlopez@igalia.com>

        Skip new test using eventSender, since the GTKport does not have
        it yet.

        * platform/gtk/Skipped:

2009-08-05  Drew Wilson  <atwilson@google.com>

        Reviewed by David Levin.

        Need to test throwing exceptions from Workers after calling close().
        https://bugs.webkit.org/show_bug.cgi?id=27924

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

2009-08-05  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        Client side image maps did not handle zoom correctly.
        Client side image maps did not handle border and padding correctly.

        * fast/images/image-map-zoom-expected.txt: Added.
        * fast/images/image-map-zoom.html: Added.

2009-08-05  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin Adler.

        Win DRT's resource load delegate is missing didReceiveResponse
        https://bugs.webkit.org/show_bug.cgi?id=28033

        * platform/win/Skipped: 

2009-08-05  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin Adler.

        Win DRT's resource load delegate is missing didReceiveResponse
        https://bugs.webkit.org/show_bug.cgi?id=28033

        * platform/win/Skipped: Remove a test that now passes
        
        Remove platform specific results for the XFrameOptions suite which now matches cross platform results:
        * platform/win/http/tests/security: Removed.
        * platform/win/http/tests/security/XFrameOptions: Removed.
        * platform/win/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-expected.txt: Removed.
        * platform/win/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body-expected.txt: Removed.
        * platform/win/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow-expected.txt: Removed.
        * platform/win/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny-expected.txt: Removed.
        * platform/win/http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-allow-expected.txt: Removed.

2009-08-05  Brady Eidson  <beidson@apple.com>

        Rubberstamped by Mark Rowe.

        As a followup to http://trac.webkit.org/changeset/46811, Windows-specific results *did* have some differences, so restoring those results.

        * platform/win/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-expected.txt: Copied from platform/win/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-expected.txt.
        * platform/win/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body-expected.txt: Copied from platform/win/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body-expected.txt.
        * platform/win/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow-expected.txt: Copied from platform/win/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow-expected.txt.
        * platform/win/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny-expected.txt: Copied from platform/win/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny-expected.txt.

2009-08-05  Brady Eidson  <beidson@apple.com>

        Rubberstamped by Mark Rowe.

        Actually, for all 6 of these tests Tiger now matches the cross-platform results, so removing all the Tiger results.

        * platform/mac-tiger/http/tests/loading/redirect-methods-expected.txt: Removed.
        * platform/mac-tiger/http/tests/misc/favicon-loads-with-images-disabled-expected.txt: Removed.
        * platform/mac-tiger/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-expected.txt: Removed.
        * platform/mac-tiger/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body-expected.txt: Removed.
        * platform/mac-tiger/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow-expected.txt: Removed.
        * platform/mac-tiger/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny-expected.txt: Removed.

2009-08-05  Brady Eidson  <beidson@apple.com>

        Rubberstamped by Mark Rowe.

        As a followup to http://trac.webkit.org/changeset/46809, Windows-specific results now match the cross-platform results, 
        so I'm removing them.

        * platform/win/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-expected.txt: Removed.
        * platform/win/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body-expected.txt: Removed.
        * platform/win/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow-expected.txt: Removed.
        * platform/win/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny-expected.txt: Removed.

2009-08-05  Brady Eidson  <beidson@apple.com>

        Rubberstamped by Mark Rowe.

        As a followup to http://trac.webkit.org/changeset/46809, update Tiger platform specific results for these tests.

        * platform/mac-tiger/http/tests/loading/redirect-methods-expected.txt:
        * platform/mac-tiger/http/tests/misc/favicon-loads-with-images-disabled-expected.txt:

2009-08-05  Darin Fisher  <darin@chromium.org>

        Reviewed by Darin Adler.

        Update test results to account for willCacheResponse logging now being
        an opt-in feature of layoutTestController.
        https://bugs.webkit.org/show_bug.cgi?id=28010

        * http/tests/loading/redirect-methods-expected.txt: Rebaselined
        * http/tests/misc/favicon-loads-with-images-disabled-expected.txt: Rebaselined
        * http/tests/misc/willCacheResponse-delegate-callback.html: Calls dumpWillCacheResponse.
        * http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-expected.txt: Rebaselined
        * http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body-expected.txt: Rebaselined
        * http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow-expected.txt: Rebaselined
        * http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny-expected.txt: Rebaselined

2009-08-05  Mark Rowe  <mrowe@apple.com>

        Reviewed by Brady Eidson.

        Fix two tests to not load a resource that takes five seconds to load.

        We achieve this by making the delay in slow-resource.pl configurable in a query parameter.
        This drops the run time of each of the tests from over five seconds to less than a third
        of a second.

        * http/tests/misc/DOMContentLoaded-event.html:
        * http/tests/navigation/multiple-back-forward-entries.html:
        * http/tests/navigation/resources/slow-resource.pl:

2009-08-05  Szabo Carol  <carol.szabo@nokia.com>

        Reviewed by Darin Adler.

        Test for https://bugs.webkit.org/show_bug.cgi?id=27942
        Form Reset does not work per w3c standard when single selection
        SELECT element has more than one option marked as selected.

        * fast/forms/select-reset-multiple-selections-4-single-selection-expected.txt: Added.
        * fast/forms/select-reset-multiple-selections-4-single-selection.html: Added.

2009-08-04  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        [V8] Teach ScheduledAction::execute about isolated worlds
        https://bugs.webkit.org/show_bug.cgi?id=27703

        Rename queueScriptInIsolatedWorld to evaluateScriptInIsolatedWorld
        because I've changed this API to be synchronous instead of asynchronous
        to work around some strange behavior in the work_queue_.  Turns out we
        don't need the complexity of an asynchronous API to test this feature.

        * http/tests/security/isolatedWorld/all-window-properties.html:
        * http/tests/security/isolatedWorld/all-window-prototypes.html:
        * http/tests/security/isolatedWorld/body-properties.html:
        * http/tests/security/isolatedWorld/body-prototype.html:
        * http/tests/security/isolatedWorld/click-event.html:
        * http/tests/security/isolatedWorld/document-open.html:
        * http/tests/security/isolatedWorld/document-properties.html:
        * http/tests/security/isolatedWorld/document-prototype.html:
        * http/tests/security/isolatedWorld/global-variables.html:
        * http/tests/security/isolatedWorld/image-properties.html:
        * http/tests/security/isolatedWorld/image-prototype.html:
        * http/tests/security/isolatedWorld/location-properties.html:
        * http/tests/security/isolatedWorld/location-prototype.html:
        * http/tests/security/isolatedWorld/number-prototype.html:
        * http/tests/security/isolatedWorld/object-prototype.html:
        * http/tests/security/isolatedWorld/string-prototype.html:
        * http/tests/security/isolatedWorld/window-properties.html:

2009-08-04  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        REGRESSION (r45064): Drop caret remains in text control after the mouse exits
        https://bugs.webkit.org/show_bug.cgi?id=26787

        Fix some bogus comments noticed during testing.

        * fast/forms/drag-into-textarea.html:
        * fast/forms/drag-out-of-textarea.html:

2009-08-04  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        Bug 27994 - WAI-ARIA: aria-valuetext needs to be implemented
        https://bugs.webkit.org/show_bug.cgi?id=27994

        * platform/mac/accessibility/aria-valuetext-expected.txt: Added.
        * platform/mac/accessibility/aria-valuetext.html: Added.

2009-08-04  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        Bug 27993 - AXSliders are missing required attributes and actions
        https://bugs.webkit.org/show_bug.cgi?id=27993

        Update tests to use more generic isActionSupported.

        * accessibility/aria-link-supports-press.html:
        * accessibility/button-press-action.html:
        * accessibility/onclick-handlers.html:
        * platform/mac/accessibility/slider-supports-actions-expected.txt: Added.
        * platform/mac/accessibility/slider-supports-actions.html: Added.

2009-08-04  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        fast/forms/textfield-drag-into-disabled.html has a needless 5 second delay
        https://bugs.webkit.org/show_bug.cgi?id=28008

        Updated the test not to use a 5 second delay.
        Also made this dumpAsText.
        I verified I didn't break the test by removing the "disabled"
        from the <input> and validating that the drag completed correctly.

        * fast/forms/textfield-drag-into-disabled-expected.txt: Added.
        * fast/forms/textfield-drag-into-disabled.html:
        * platform/mac/fast/forms/textfield-drag-into-disabled-expected.checksum: Removed.
        * platform/mac/fast/forms/textfield-drag-into-disabled-expected.png: Removed.
        * platform/mac/fast/forms/textfield-drag-into-disabled-expected.txt: Removed.
        * platform/qt/fast/forms/textfield-drag-into-disabled-expected.txt: Removed.
        * platform/win/fast/forms/textfield-drag-into-disabled-expected.txt: Removed.

2009-08-04  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        LayoutTests are too slow
        https://bugs.webkit.org/show_bug.cgi?id=27995

        Shave 5 seconds off of run-webkit-tests.

        * fast/events/click-count.html: use eventSender.leapForward instead of setTimeout

2009-08-04  Mark Rowe  <mrowe@apple.com>

        Update test results after addition of AXRequired in r46768.

        * platform/mac/accessibility/lists-expected.txt:

2009-08-04  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dave Hyatt.

        Add support for transitions/animations of text-indent.

        * transitions/text-indent-transition-expected.txt: Added.
        * transitions/text-indent-transition.html: Added.

2009-08-04  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dave Hyatt.

        Add support for transitions of min- and max-width, and min- and max-height.
        https://bugs.webkit.org/show_bug.cgi?id=27990

        * transitions/min-max-width-height-transitions-expected.txt: Added.
        * transitions/min-max-width-height-transitions.html: Added.

2009-08-04  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        Added test for 
        Bug 27964 - WAI-ARIA: radio button does not determine its label from text content
        https://bugs.webkit.org/show_bug.cgi?id=27964

        Updated tests that expected the extra space at the end of some ARIA labels.

        * accessibility/aria-labelledby-stay-within.html:
        * platform/mac/accessibility/aria-describedby-on-input-expected.txt:
        * platform/mac/accessibility/aria-labelledby-on-input-expected.txt:
        * platform/mac/accessibility/aria-radiobutton-text-expected.txt: Added.
        * platform/mac/accessibility/aria-radiobutton-text.html: Added.

2009-08-03  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Jon Honeycutt.

        Bug 27958 - WAI-ARIA: Implement 'aria-required' attribute.
        https://bugs.webkit.org/show_bug.cgi?id=27958

        Tests for aria-required. Modified tests to accomodate new attribute.

        * platform/mac-leopard/accessibility/table-with-aria-role-expected.txt:
        * platform/mac/accessibility/aria-required-expected.txt: Added.
        * platform/mac/accessibility/aria-required.html: Added.
        * platform/mac/accessibility/legend-expected.txt:
        * platform/mac/accessibility/radio-button-group-members-expected.txt:
        * platform/mac/accessibility/table-with-aria-role-expected.txt:

2009-08-04  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Rubber-stamped by Simon Hausmann.

        [Qt] Add passed test results, with pixel tests.

        * platform/qt/Skipped:
        * platform/qt/fast/canvas/canvas-composite-expected.checksum: Added.
        * platform/qt/fast/canvas/canvas-composite-expected.png: Added.
        * platform/qt/fast/canvas/canvas-composite-expected.txt: Added.
        * platform/qt/fast/canvas/drawImage-expected.checksum: Added.
        * platform/qt/fast/canvas/drawImage-expected.png: Added.
        * platform/qt/fast/canvas/drawImage-expected.txt: Added.
        * platform/qt/fast/canvas/drawImage-with-globalAlpha-expected.checksum: Added.
        * platform/qt/fast/canvas/drawImage-with-globalAlpha-expected.png: Added.

2009-08-04  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Reviewed by Adam Treat.

        [Qt] Fix the metrics.

        * platform/qt/fast/canvas/canvas-before-css-expected.txt:

2009-08-04  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Reviewed by Tor Arne VestbÃ¸.

        [Qt] Add pixel tests result.

        * platform/qt/Skipped:
        * platform/qt/fast/canvas/canvas-as-image-expected.checksum: Added.
        * platform/qt/fast/canvas/canvas-as-image-expected.png: Added.
        * platform/qt/fast/canvas/canvas-as-image-expected.txt: Added.
        * platform/qt/fast/canvas/canvas-as-image-incremental-repaint-expected.checksum: Added.
        * platform/qt/fast/canvas/canvas-as-image-incremental-repaint-expected.png: Added.
        * platform/qt/fast/canvas/canvas-as-image-incremental-repaint-expected.txt: Added.
        * platform/qt/fast/canvas/canvas-before-css-expected.checksum: Added.
        * platform/qt/fast/canvas/canvas-before-css-expected.png: Added.
        * platform/qt/fast/canvas/canvas-before-css-expected.txt:
        * platform/qt/fast/canvas/canvas-bg-expected.checksum: Added.
        * platform/qt/fast/canvas/canvas-bg-expected.png: Added.
        * platform/qt/fast/canvas/canvas-bg-expected.txt: Added.
        * platform/qt/fast/canvas/canvas-bg-zoom-expected.checksum: Added.
        * platform/qt/fast/canvas/canvas-bg-zoom-expected.png: Added.
        * platform/qt/fast/canvas/canvas-bg-zoom-expected.txt: Added.

2009-08-04  Adam Treat  <adam.treat@torchmobile.com>

        Fix buildbot. This was supposed to be part of the last commit r46757, but the hunk never made it in.

        * platform/qt/fast/block/float/033-expected.txt:

2009-08-04  Renata Hodovan  <hodovan.renata@stud.u-szeged.hu>

        Reviewed by Simon Hausmann.

        Remove LayoutTests/fast/block/float/033.html from the Qt Skipped list

        The expected value was incorrect and it has been modified. The new expected value is similar to the MAC version as well.

        * platform/qt/Skipped:
        * platform/qt/fast/block/float/033-expected.txt:

2009-08-03  Jan Michael Alonzo  <jmalonzo@webkit.org>

        [Gtk] Skip accessibility/input-slider.html as it needs
        Accessibility support in DRT which the Gtk do not have an
        implementation at the moment.

        * platform/gtk/Skipped:

2009-08-03  Dirk Pranke  <dpranke@chromium.org>

        Reviewed by Sam Weinig.

        Test for https://bugs.webkit.org/show_bug.cgi?id=27748
        crash w/ stack overflow when same CSS file loaded repeatedly

        Fix crash caused by a stack overflow when repeatedly loading very large
        CSS files. CSSRuleData in CSSStyleSelector.h destroyed itself 
        recursively rather than iteratively.

        * fast/css/large-list-of-rules-crash-expected.txt: Added.
        * fast/css/large-list-of-rules-crash.html: Added.
        * fast/css/resources/large-list-of-rules-crash.css: Added.

2009-08-03  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        Make the DRT APIs to pause transitions and animations work for accelerated animations
        <https://bugs.webkit.org/show_bug.cgi?id=27627>
        <rdar://problem/6442932>

        Fix the 'pauseAnimationAtTimeOnElementWithId' and 'pauseTransitionAtTimeOnElementWithId' APIs
        available to LayoutTests to work with accelerated animations and transitions. Done by sending
        the pause time down to the GraphicsLayer, and using it to stop time on the layer.
        
        I also added an assertion to check that the animation has actually started when we
        try to pause it, to check that the pause time we compute is valid. This revealed a number
        of tests that tried to pause before animations started, required some amount of test fixing.

        * animations/animation-drt-api-multiple-keyframes.html:
        * animations/animation-drt-api.html:
        * animations/animation-hit-test-transform.html:
        * animations/animation-hit-test.html:
        * animations/animation-test-helpers.js:
        (isCloseEnough):
        (matrixStringToArray):
        (checkExpectedValue):
        (endTest):
        (startTest):
        (runAnimationTest.else):
        (runAnimationTest):
        (waitForAnimationToStart):
        * transitions/transition-drt-api-delay.html:
        * transitions/transition-hit-test-transform.html:
        * transitions/transition-shorthand-delay.html:
        * transitions/transition-test-helpers.js:
        (isCloseEnough):
        (checkExpectedValue):
        (endTest):
        (runTest):
        (waitForAnimationStart):
        (startTest):
        (runTransitionTest):

2009-08-03  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        Bug 27943: Need to implement ARIA role="radiogroup"
        https://bugs.webkit.org/show_bug.cgi?id=27943

        * platform/mac/accessibility/aria-radiogroup-expected.txt: Added.
        * platform/mac/accessibility/aria-radiogroup.html: Added.

2009-08-03  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Eric Seidel.

        HTMLInputElement is not controllable by assistive technologies
        https://bugs.webkit.org/show_bug.cgi?id=27941
        
        Add test for <input type=range> accessibility .

        * accessibility/input-slider.html: Added.
        * platform/mac/accessibility/input-slider-expected.txt: Added.

2009-08-02  Sam Weinig  <sam@webkit.org>

        Land updated expected result.

        * fast/js/array-filter-expected.txt:

2009-08-02  Sam Weinig  <sam@webkit.org>

        Reviewed by Oliver Hunt.

        Speed up fast/js/array-filter.html by 10x in debug builds by not using an
        unnecessarily large sparse array.

        * fast/js/resources/array-filter.js:

2009-08-01  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Mark Rowe.

        Remove a non-existent test from the Windows Skipped List.

        * platform/win/Skipped:

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

        For my new test I landed last night, check in Tiger-specific results, and skip on Windows.

        * platform/mac-tiger/http/tests/misc/favicon-loads-with-images-disabled-expected.txt: Added.
        * platform/win/Skipped: Add to the skipped list because the failure needs exploration.

2009-08-01  John Abd-El-Malek  <jam@chromium.org>

        Reviewed by Eric Seidel.

        Update test to work with multi-process message ports.

        https://bugs.webkit.org/show_bug.cgi?id=27819

        * fast/events/message-channel-gc.html:

2009-08-01  Evan Martin  <evan@chromium.org>

        Reviewed by Adam Barth.

        Add a regression test for a crash when a page has smart quotes in a
        mime type.

        * fast/parser/smart-quotes-in-tag-expected.txt: Added.
        * fast/parser/smart-quotes-in-tag.html: Added.

2009-07-31  Adam Treat  <adam.treat@torchmobile.com>

        Reviewed by Holger Hans Peter Freyther.

        The reason these four tests fail is a mystery to me right, but placing
        them in the Skipped file and the Qt port is... for the first time ever,
        finally green!

        https://bugs.webkit.org/show_bug.cgi?id=27914

        * platform/qt/Skipped:

2009-07-31  Adam Treat  <adam.treat@torchmobile.com>

        Reviewed by Eric Seidel.

        Printing related test needs to go in Skipped for now so we can
        get Qt buildbot green for first time.

        https://bugs.webkit.org/show_bug.cgi?id=27913

        * platform/qt/Skipped:

2009-07-31  Adam Treat  <adam.treat@torchmobile.com>

        Reviewed by Eric Seidel.

        Sometimes they pass, sometimes they fail.  In attempt to get Qt buildbot
        completely green for first time I'm placing these two in the Skipped file.

        https://bugs.webkit.org/show_bug.cgi?id=27912

        * platform/qt/Skipped:

2009-07-31  Adam Treat  <adam.treat@torchmobile.com>

        Reviewed by George Staikos and Eric Seidel.

        Place some audio related tests into the Skipped list in
        attempt to get Qt buildbot finally green.

        https://bugs.webkit.org/show_bug.cgi?id=27910

        * platform/qt/Skipped:

2009-07-31  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Skip http/tests/misc/favicon-loads-with-images-disabled.html as
        this requires resource load callbacks in Gtk DRT. I've raised bug
        #27905 to track this.

        * platform/gtk/Skipped:

2009-07-31  Brady Eidson  <beidson@apple.com>

        Reviewed by John Sullivan.

        <rdar://problem/6973106> and https://bugs.webkit.org/show_bug.cgi?id=27896
        Favicons are still loaded when automatic image loading is disabled.

        * http/tests/misc/favicon-loads-with-images-disabled-expected.txt: Added.
        * http/tests/misc/favicon-loads-with-images-disabled.html: Added.

2009-07-31  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Adam Barth.

        Add new LocalStorage layout tests.
        https://bugs.webkit.org/show_bug.cgi?id=27778

        These test behavior that I don't think was very well verified earlier.

        * storage/domstorage/localstorage/complex-keys-expected.txt: Added.
        * storage/domstorage/localstorage/complex-keys.html: Added.
              A bunch of corner cases related to keys.
        * storage/domstorage/localstorage/complex-values-expected.txt: Added.
        * storage/domstorage/localstorage/complex-values.html: Added.
              A bunch of corner cases related to values.
        * storage/domstorage/localstorage/remove-item-expected.txt: Added.
        * storage/domstorage/localstorage/remove-item.html: Added.
              Test basic removeItem functionality.

2009-07-31  Mike Fenton  <mike.fenton@torchmobile.com>

        Reviewed by Adam Treat.

        Re-Enable tests from Skipped that are passing correctly.

        https://bugs.webkit.org/show_bug.cgi?id=27890

        * platform/qt/Skipped:

2009-07-31  Mike Fenton  <mike.fenton@torchmobile.com>

        Reviewed by Adam Treat.

        Add LayoutTest results from BuildBot output for tests that currently lack results under Qt.

        https://bugs.webkit.org/show_bug.cgi?id=27882

        * platform/qt/fast/backgrounds/size/backgroundSize20-expected.txt: Copied from LayoutTests/platform/mac/fast/backgrounds/size/backgroundSize20-expected.txt.
        * platform/qt/fast/backgrounds/size/backgroundSize21-expected.txt: Copied from LayoutTests/platform/mac/fast/backgrounds/size/backgroundSize21-expected.txt.
        * platform/qt/fast/backgrounds/size/backgroundSize22-expected.txt: Copied from LayoutTests/platform/mac/fast/backgrounds/size/backgroundSize22-expected.txt.
        * platform/qt/fast/borders/border-radius-constraints-expected.txt: Added.
        * platform/qt/fast/box-shadow/inset-expected.txt: Added.
        * platform/qt/fast/box-shadow/spread-expected.txt: Copied from LayoutTests/platform/mac/fast/box-shadow/spread-expected.txt.
        * platform/qt/fast/canvas/image-pattern-rotate-expected.txt: Added.
        * platform/qt/fast/css/nested-floating-relative-position-percentages-expected.txt: Added.
        * platform/qt/fast/css/pseudo-cache-stale-expected.txt: Added.
        * platform/qt/fast/css/rem-dynamic-scaling-expected.txt: Added.
        * platform/qt/fast/css/rem-units-on-root-expected.txt: Added.
        * platform/qt/fast/dynamic/window-resize-scrollbars-test-expected.txt: Added.
        * platform/qt/fast/dynamic/window-scrollbars-test-expected.txt: Added.
        * platform/qt/fast/forms/isindex-placeholder-expected.txt: Added.
        * platform/qt/fast/forms/search-vertical-alignment-expected.txt: Added.
        * platform/qt/fast/frames/content-opacity-1-expected.txt: Copied from LayoutTests/platform/mac/fast/frames/content-opacity-1-expected.txt.
        * platform/qt/fast/frames/content-opacity-2-expected.txt: Copied from LayoutTests/platform/mac/fast/frames/content-opacity-2-expected.txt.
        * platform/qt/fast/frames/frame-navigation-expected.txt: Added.
        * platform/qt/fast/frames/frame-scrolling-attribute-expected.txt: Added.
        * platform/qt/fast/frames/iframe-scrolling-attribute-expected.txt: Added.
        * platform/qt/fast/gradients/crash-on-zero-radius-expected.txt: Added.
        * platform/qt/fast/lists/ol-start-parsing-expected.txt: Added.
        * platform/qt/fast/overflow/overflow-with-local-background-attachment-expected.txt: Added.
        * platform/qt/fast/repaint/float-new-in-block-expected.txt: Copied from LayoutTests/platform/mac/fast/repaint/float-new-in-block-expected.txt.
        * platform/qt/fast/text/international/khmer-selection-expected.txt: Added.
        * platform/qt/fast/text/shadow-translucent-fill-expected.txt: Added.
        * platform/qt/fast/text/text-letter-spacing-expected.txt: Added.
        * platform/qt/plugins/netscape-dom-access-expected.txt: Added.
        * platform/qt/svg/batik/filters/feTile-expected.txt: Added.
        * platform/qt/svg/custom/createImageElement-expected.txt: Copied from LayoutTests/platform/mac/svg/custom/createImageElement-expected.txt.
        * platform/qt/svg/custom/createImageElement2-expected.txt: Added.
        * platform/qt/svg/custom/js-update-image-and-display-expected.txt: Copied from LayoutTests/platform/mac/svg/custom/js-update-image-and-display-expected.txt.
        * platform/qt/svg/custom/js-update-image-and-display2-expected.txt: Copied from LayoutTests/platform/mac/svg/custom/js-update-image-and-display2-expected.txt.
        * platform/qt/svg/custom/js-update-image-and-display3-expected.txt: Copied from LayoutTests/platform/mac/svg/custom/js-update-image-and-display3-expected.txt.
        * platform/qt/svg/custom/outer-svg-unknown-feature-expected.txt: Copied from LayoutTests/platform/mac/svg/custom/outer-svg-unknown-feature-expected.txt.
        * platform/qt/svg/filters/feMerge-expected.txt: Added.
        * platform/qt/svg/filters/feOffset-expected.txt: Added.
        * platform/qt/svg/filters/feTile-expected.txt: Added.
        * platform/qt/svg/filters/subRegion-one-effect-expected.txt: Added.
        * platform/qt/svg/filters/subRegion-two-effects-expected.txt: Added.

2009-07-31  Adam Treat  <adam.treat@torchmobile.com>

        Reviewed by Tor Arne Vestbo.

        Adding -webkit-animation-play-state back in following r46547.

        * platform/qt/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/qt/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:

2009-07-31  Mark Rowe  <mrowe@apple.com>

        Fix the test case that was landed in r46624.

        * http/tests/misc/meta-refresh-stray-single-quote.html:

2009-07-30  Brady Eidson  <beidson@apple.com>

        Reviewed by Mark Rowe, but Dan Bernstein also reviewed and asked thoughtful questions.

        <rdar://problem/7106968> and https://bugs.webkit.org/show_bug.cgi?id=27868
        http://www.ruthhuntcandy.com/ goes into infinite refresh in WebKit, works in others.

        * http/tests/misc/meta-refresh-stray-single-quote-expected.txt: Added.
        * http/tests/misc/meta-refresh-stray-single-quote.html: Added.
        * http/tests/misc/resources/success-notify-done.html: Added.

2009-07-30  Adam Treat  <adam.treat@torchmobile.com>

        Add expected results file for new test.

        * platform/gtk/fast/forms/button-style-color-expected.txt: Added.

2009-07-30  Adam Treat  <adam.treat@torchmobile.com>

        Add expected results file for new test.

        * platform/mac/fast/forms/button-style-color-expected.txt: Added.

2009-07-30  Adam Treat  <adam.treat@torchmobile.com>

        Reviewed by Mark Rowe.

        Revert previous commit to test out new functionality of buildbots and
        run-webkit-tests made possible by r46607.

        * platform/gtk/Skipped:
        * platform/mac/Skipped:
        * platform/win/Skipped:

2009-07-30  Adam Treat  <adam.treat@torchmobile.com>

        Reviewed by George Staikos.

        Add new test with platform specific results to the Skipped files of ports
        that haven't generated them yet.  This is to make the buildbot green again.

        * platform/gtk/Skipped:
        * platform/mac/Skipped:
        * platform/win/Skipped:

2009-07-30  Mike Fenton  <mike.fenton@torchmobile.com>

         Reviewed by Adam Treat.

         Add Button Colour style test and results for Qt based upon fix for bug.
         Unskip tables/mozilla/bugs/bug92647-2.html which passes with bug fix.
         Update expected results for qt for test fast/dom/HTMLTableColElement/resize-table-using-col-width-expected
         which also passes with the the bug fix.

         https://bugs.webkit.org/show_bug.cgi?id=27814

         * fast/forms/button-style-color.html: Added.
         * platform/qt/Skipped:
         * platform/qt/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.txt:
         * platform/qt/fast/forms/button-style-color-expected.txt: Added.

2009-07-30  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Simon Fraser.

        Video elements fires another "load" event when attached to DOM
        https://bugs.webkit.org/show_bug.cgi?id=27623

        * media/media-load-event-expected.txt: Added.
        * media/media-load-event.html: Added.

2009-07-29  Jian Li  <jianli@chromium.org>

        Reviewed by Darin Adler.

        Workers need to throw an exception when presented with invalid URLs.
        https://bugs.webkit.org/show_bug.cgi?id=27770

        Update worker-constructor.html and worker-redirect.html per the behavior change.

        * fast/workers/worker-constructor-expected.txt:
        * fast/workers/worker-constructor.html:
        * http/tests/workers/worker-redirect-expected.txt:
        * http/tests/workers/worker-redirect.html:

2009-07-29  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Justin Garcia.

        REGRESSION(r46370-46426): /editing/style/remove-underline-from-stylesheet.html fails
        https://bugs.webkit.org/show_bug.cgi?id=27809

        Since new behavior is consistent with Firefox, we rebaseline the test cases.
        The patch converts remove-underline-from-stylesheet and remove-underline-in-bold to dumpAsText tests
        with markup printed explicitly because pixel tests did not detect the disappearance of underline.

        * editing/style/remove-underline-from-stylesheet-expected.txt: Added.
        * editing/style/remove-underline-from-stylesheet.html:
        * editing/style/remove-underline-in-bold-expected.txt: Added.
        * editing/style/remove-underline-in-bold.html:
        * platform/mac/editing/style/remove-underline-from-stylesheet-expected.checksum: Removed.
        * platform/mac/editing/style/remove-underline-from-stylesheet-expected.png: Removed.
        * platform/mac/editing/style/remove-underline-from-stylesheet-expected.txt: Removed.
        * platform/mac/editing/style/remove-underline-in-bold-expected.checksum: Removed.
        * platform/mac/editing/style/remove-underline-in-bold-expected.png: Removed.
        * platform/mac/editing/style/remove-underline-in-bold-expected.txt: Removed.
        * platform/qt/editing/style/remove-underline-from-stylesheet-expected.txt: Removed.
        * platform/qt/editing/style/remove-underline-in-bold-expected.txt: Removed.

2009-07-29  Darin Adler  <darin@apple.com>

        * platform/gtk/Skipped: Added ol-start-parsing.html since it has no result yet.

2009-07-29  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        Illegal values for <ol start> cause list numbering start at 0 (should start at 1)
        https://bugs.webkit.org/show_bug.cgi?id=27810

        Couldn't make a text-only test because list numbers do not show up in
        text dumps. This matches the other fast/lists tests.

        * fast/lists/ol-start-parsing.html: Added.
        * platform/mac/fast/lists/ol-start-parsing-expected.checksum: Added.
        * platform/mac/fast/lists/ol-start-parsing-expected.png: Added.
        * platform/mac/fast/lists/ol-start-parsing-expected.txt: Added.

2009-07-29  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Adam Roben.

        Update getComputedStyle expected results on Windows to match updated Mac results.

        * platform/win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        
2009-07-29  Brady Eidson  <beidson@apple.com>

        Rubber-stamped by Mark Rowe

        * platform/gtk/Skipped: Disable the new test on GTK, as they don't dump resource load callbacks
          in their DumpRenderTree.

2009-07-29  Brady Eidson  <beidson@apple.com>

        Rubber-stamped by Jon Honeycutt

        Check in Tiger-specific results for the new test, as it is known they send willCacheResponse 
        callbacks in a different order.

        * platform/mac-tiger/http/tests/loading: Added.
        * platform/mac-tiger/http/tests/loading/redirect-methods-expected.txt: Added.

2009-07-29  Brady Eidson  <beidson@apple.com>

        Adding my new test to the Windows skipped list until I can figure out what's going on.

        * platform/win/Skipped:

2009-07-29  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.
        
        Fix crash when an element with display: table-row is composited (e.g. via a 3d-transform)
        https://bugs.webkit.org/show_bug.cgi?id=27796
        
        Add testcase that has display: table-row with a 3d transform.

        * fast/table/table-row-compositing-repaint-crash-expected.txt: Added.
        * fast/table/table-row-compositing-repaint-crash.html: Added.

2009-07-29  Brady Eidson  <beidson@apple.com>

        Reviewed by Sam Weinig.

        https://bugs.webkit.org/show_bug.cgi?id=27791
        307 redirects of POSTs should use POST, not GET

        * http/tests/loading/redirect-methods-expected.txt: Added.
        * http/tests/loading/redirect-methods.html: Added.
        * http/tests/loading/resources/redirect-methods-form.html: Added.
        * http/tests/loading/resources/redirect-methods-result.php: Added.

2009-07-29  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Simon Fraser.

        Adding -webkit-animation-play-state back in
        https://bugs.webkit.org/show_bug.cgi?id=26867

        This tests play-state for both hardware and software animations. I also
        added the ability to disable the use of the pauseAnimation API because
        that API interferes with the operation of play-state. I also fixed some
        tests which now print out the -webkit-animation-play-state property

        * animations/animation-test-helpers.js:
        * animations/play-state-expected.txt: Added.
        * animations/play-state.html: Added.
        * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * svg/css/getComputedStyle-basic-expected.txt:

2009-07-29  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by Adam Treat.

        [WML] Running WML tests in random order multiple times exposes subtle bugs
        https://bugs.webkit.org/show_bug.cgi?id=27801

        Some changes to fix random order WML tests, simplilfy WMLTestCase.js and reset testDocument
        properly in enter-first-card-with-events.js. fast/wml/err-multi-access.wml still creates a layout
        test difference on consecutive runs, though that's related to bug 27721, which has to be fixed first.

        * wml/resources/WMLTestCase.js:
        * wml/resources/enter-first-card-with-events.js:
        (setupTestDocument):
        (prepareTest):
        (executeTest):

2009-07-29  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Eric Seidel and Xan Lopez.

        [Gtk] Enable http/tests/appcache tests
        https://bugs.webkit.org/show_bug.cgi?id=27674

        Enable passing http/tests/appcache tests.

        * platform/gtk/Skipped:

2009-07-29  Simon Hausmann  <simon.hausmann@nokia.com>

        Update Qt-specific results for computed-style tests, like in r46512.

        * platform/qt/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/qt/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:

2009-07-29  Kent Tamura  <tkent@chromium.org>

        Reviewed by Nikolas Zimmermann.

        Fix a bug that HTMLOptionElement::value() returns an incorrect
        value in a case that the element has a label attribute and no
        value attribute.
        https://bugs.webkit.org/show_bug.cgi?id=27760

        * fast/forms/option-value-and-label-expected.txt: Added.
        * fast/forms/option-value-and-label.html: Added.

2009-07-29  Adam Barth  <abarth@webkit.org>

        Reviewed by Dimitri Glazkov.

        [V8] Fix isolated world wrappers for event handlers
        https://bugs.webkit.org/show_bug.cgi?id=27533

        Test that we get the wrappers from the right world when handling
        events.

        * http/tests/security/isolatedWorld/click-event-expected.txt: Added.
        * http/tests/security/isolatedWorld/click-event.html: Added.

2009-07-29  Adam Barth  <abarth@webkit.org>

        Reviewed by Dimitri Glazkov.

        [V8] Teach V8Proxy::context about isolated worlds
        https://bugs.webkit.org/show_bug.cgi?id=27701

        Test that calling document.open with more than two arguments calls the
        window.open method from the correct world.

        * http/tests/security/isolatedWorld/document-open-expected.txt: Added.
        * http/tests/security/isolatedWorld/document-open.html: Added.

2009-07-28  Dan Bernstein  <mitz@apple.com>

        Update Window-specific results with the non-prefixed border-radius
        properties

        * platform/win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:

2009-07-28  Dan Bernstein  <mitz@apple.com>

        Reviewed by Simon Fraser.

        New test, updated test, and updated test results for:

        [CSS3 Backgrounds and Borders] Drop the prefix from the border-radius
        properties
        https://bugs.webkit.org/show_bug.cgi?id=27578

        [CSS3 Backgrounds and Borders] Handle the / and 4 values in
        border-radius
        https://bugs.webkit.org/show_bug.cgi?id=27584

        * fast/borders/border-radius-parsing-expected.txt: Added.
        * fast/borders/border-radius-parsing.html: Added.
        * fast/css/remove-shorthand-expected.txt:
        * fast/css/remove-shorthand.html: Added a test for border-radius.
        * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * svg/css/getComputedStyle-basic-expected.txt:

2009-07-28  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Adam Roben.

        Add two tests that failed on release (not debug) back to skipped list.

        * platform/win/Skipped:

2009-07-28  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Steve Falkenburg.

        Remove a lot of tests from Windows Skip list which now pass. Will watch buildbot
        to make sure there are no regressions/this commit doesn't cause failures.

        * platform/win/Skipped:
        
2009-07-28  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Adam Barth.

        Add some checks to existing SessionStorage LayoutTests.
        https://bugs.webkit.org/show_bug.cgi?id=27776

        This is a mixed bag of tweaks to existing tests.  This is the sessionStorage
        side of https://bugs.webkit.org/show_bug.cgi?id=27695

        * storage/domstorage/sessionstorage/delete-removal-expected.txt:
        * storage/domstorage/sessionstorage/delete-removal.html:
              Made output more readable, added redundant deletes, added deletes to
              keys with the same name in different case.
        * storage/domstorage/sessionstorage/enumerate-storage.html:
              Removed dead code.
        * storage/domstorage/sessionstorage/enumerate-with-length-and-key-expected.txt: Copied from LayoutTests/storage/domstorage/sessionstorage/enumerate-storage-expected.txt.
        * storage/domstorage/sessionstorage/enumerate-with-length-and-key.html: Copied from LayoutTests/storage/domstorage/sessionstorage/enumerate-storage.html.
              Test enumerating by hand (with length+key).
        * storage/domstorage/sessionstorage/iframe-events-expected.txt:
        * storage/domstorage/sessionstorage/iframe-events.html:
              Test removeItem and clear in addition to setItem.
        * storage/domstorage/sessionstorage/onstorage-attribute-setwindow-expected.txt: Copied from LayoutTests/storage/domstorage/sessionstorage/onstorage-attribute-setattribute-expected.txt.
        * storage/domstorage/sessionstorage/onstorage-attribute-setwindow.html: Copied from LayoutTests/storage/domstorage/sessionstorage/onstorage-attribute-setattribute.html.
              Test using window.onstorage.

2009-07-28  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Adam Barth.

        Add some checks to existing DOM Storage LayoutTests.
        https://bugs.webkit.org/show_bug.cgi?id=27695

        This is really a mixed bag of tweaks to existing tests.

        * storage/domstorage/localstorage/delete-removal-expected.txt:
        * storage/domstorage/localstorage/delete-removal.html:
              Made output more readable, added redundant deletes, added deletes to
              keys with the same name in different case.
        * storage/domstorage/localstorage/enumerate-storage.html:
              Removed dead code.
        * storage/domstorage/localstorage/enumerate-with-length-and-key-expected.txt: Added.
        * storage/domstorage/localstorage/enumerate-with-length-and-key.html: Copied from LayoutTests/storage/domstorage/localstorage/enumerate-storage.html.
              Test enumerating by hand (with length+key).
        * storage/domstorage/localstorage/iframe-events-expected.txt:
        * storage/domstorage/localstorage/iframe-events.html:
              Test removeItem and clear in addition to setItem.
        * storage/domstorage/localstorage/onstorage-attribute-setwindow-expected.txt: Copied from LayoutTests/storage/domstorage/localstorage/onstorage-attribute-setattribute-expected.txt.
        * storage/domstorage/localstorage/onstorage-attribute-setwindow.html: Copied from LayoutTests/storage/domstorage/localstorage/onstorage-attribute-setattribute.html.
              Test using window.onstorage.
        * storage/domstorage/window-attributes-exist-expected.txt:
        * storage/domstorage/window-attributes-exist.html:
              Verify that two consecutive calls to window.____Storage will equal each other.

2009-07-28  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by George Staikos.

        [WML] Variable substitution recursion seems to have bugs
        https://bugs.webkit.org/show_bug.cgi?id=27726

        Extend variable-reference-valid.html to test <setvar> attribute values depending on each other.

        * wml/resources/variable-reference-valid.js:
        (setupTestDocument):
        (prepareTest):
        (executeTest):
        * wml/variable-reference-valid-expected.txt:

2009-07-28  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by George Staikos.

        [WML] Page title doesn't update after variable substitution, if it contained variables
        https://bugs.webkit.org/show_bug.cgi?id=27725

        Extend variable-reference-valid.html test to include one-character variable tests.

        * wml/resources/variable-reference-valid.js:
        (setupTestDocument):
        (prepareTest):
        (executeTest):
        * wml/variable-reference-valid-expected.txt:

2009-07-28  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by George Staikos.

        [WML] <do> elements with a <noop> task shouldn't be exposed to the user
        https://bugs.webkit.org/show_bug.cgi?id=27724

        Add new layout test covering noop elements in do elements.

        * fast/wml/task-noop-in-do.wml: Copied from WebCore/manual-tests/wml/task-noop-in-do.wml.
        * platform/mac/fast/wml/task-noop-in-do-expected.checksum: Added.
        * platform/mac/fast/wml/task-noop-in-do-expected.png: Added.
        * platform/mac/fast/wml/task-noop-in-do-expected.txt: Added.

2009-07-27  Antonio Gomes   <antonio.gomes@openbossa.org>

        Reviewed by Adam Treat.

        update qt expefic expected files for fast/css/getComputedStyle/ tests after r46274
        https://bugs.webkit.org/show_bug.cgi?id=27714

        * platform/qt/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/qt/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:

2009-07-27  Brady Eidson  <beidson@apple.com>

        Update Tiger specific results for these 7 tests.

        * platform/mac-tiger/http/tests/misc/willCacheResponse-delegate-callback-expected.txt:
        * platform/mac-tiger/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-expected.txt:
        * platform/mac-tiger/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body-expected.txt:
        * platform/mac-tiger/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow-expected.txt:
        * platform/mac-tiger/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny-expected.txt:
        * platform/mac-tiger/security/block-test-expected.txt:
        * platform/mac-tiger/security/block-test-no-port-expected.txt:

2009-07-27  Brady Eidson  <beidson@apple.com>

        Update Windows specific results for these 5 tests.

        * platform/win/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-expected.txt:
        * platform/win/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body-expected.txt:
        * platform/win/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow-expected.txt:
        * platform/win/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny-expected.txt:
        * platform/win/http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-allow-expected.txt:

2009-07-27  Brady Eidson  <beidson@apple.com>

        Didn't mean to check this guy in.

        * http/tests/appcache/max-size-expected.txt:

2009-07-27  Brady Eidson  <beidson@apple.com>

        Reviewed by Sam Weinig.

        https://bugs.webkit.org/show_bug.cgi?id=27755
        Layout tests that dump resource load delegate calls should dump the request method and the response status code.

        Update test results for the new info.

        * fast/loader/main-document-url-for-non-http-loads-expected.txt:
        * http/tests/appcache/max-size-expected.txt:
        * http/tests/misc/will-send-request-returns-null-on-redirect-expected.txt:
        * http/tests/misc/window-dot-stop-expected.txt:
        * http/tests/security/XFrameOptions/x-frame-options-deny-expected.txt:
        * http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-expected.txt:
        * http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body-expected.txt:
        * http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow-expected.txt:
        * http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny-expected.txt:
        * http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-allow-expected.txt:
        * http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-deny-expected.txt:
        * http/tests/xmlhttprequest/abort-should-cancel-load-expected.txt:
        * platform/mac/http/tests/misc/willCacheResponse-delegate-callback-expected.txt:
        * platform/mac/security/block-test-expected.txt:
        * platform/mac/security/block-test-no-port-expected.txt:
        * platform/mac/webarchive/loading/cache-expired-subresource-expected.txt:
        * webarchive/loading/test-loading-archive-expected.txt:

2009-07-27  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Justin Garcia.

        createMarkup does not handle CSS properly
        https://bugs.webkit.org/show_bug.cgi?id=27660
        
        inline-style-after-indentoutdent tests whether the original inline style is preserved after outdentation
        immediately after indentation.

        * editing/deleting/pruning-after-merge-2.html: Replaced b that contains div with a div with font-weight
        * editing/execCommand/inline-style-after-indentoutdent-expected.txt: Added.
        * editing/execCommand/inline-style-after-indentoutdent.html: Added.
        * editing/execCommand/resources/inline-style-after-indentoutdent.js: Added.
        (testCreateMarkup):
        (shouldBeSameAfterCreateMarkup):
        * platform/mac/editing/deleting/delete-3857753-fix-expected.txt: extra i tag is added (still passes pixel tests)
        * platform/mac/editing/deleting/pruning-after-merge-2-expected.txt: extra div as explained above
        * platform/mac/editing/pasteboard/display-block-on-spans-expected.txt: bug 26483 appearing

2009-07-27  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Rubber-stamped by George Staikos.

        Forgot to update pixel test results a while ago.

        * platform/mac/fast/wml/err-invalid-location-for-varref-expected.checksum:
        * platform/mac/fast/wml/err-invalid-location-for-varref-expected.png:
        * platform/mac/fast/wml/err-invalid-variable-name-expected.checksum:
        * platform/mac/fast/wml/err-invalid-variable-name-expected.png:
        * platform/mac/fast/wml/err-samename-do-expected.checksum:
        * platform/mac/fast/wml/err-samename-do-expected.png:

2009-07-27  Eric Seidel  <eric@webkit.org>

        Reviewed by Adam Barth.

        prototypes-inheritance-2.html should crawl more types
        https://bugs.webkit.org/show_bug.cgi?id=27741

        Now we evaluate the crawl targets lazily so as not to skew any JS binding caching with our test ordering.
        We could get around all caching by always instantiating a new copy of the frame
        but that would be super-slow. :)

        We're now crawling a bunch more types, all of which we pass.

        * fast/dom/prototype-inheritance-2-expected.txt:
        * fast/dom/resources/prototype-inheritance-2.js:
        (evalToCrawlObject.LazyEvalCrawlObject):
        (evalToCrawlObject):
        (pushPropertyValuesWithUnseenTypes):
        (crawl):

2009-07-27  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=27474
        Tests crashes when calling select, setSelectionRange or setting
        selectionStart/selectionEnd on a textarea/input immediately after
        setting display:none.

        * fast/dom/text-control-crash-on-select-expected.txt: Added.
        * fast/dom/text-control-crash-on-select.html: Added.

2009-07-27  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by George Staikos.

        [WML] 'onpick' intrinsic event handling missing
        https://bugs.webkit.org/show_bug.cgi?id=27723

        Add a new WML layout test covering 'onpick' support.

        * wml/option-element-onpick-expected.txt: Added.
        * wml/option-element-onpick.html: Added.
        * wml/resources/option-element-onpick.js: Added.
        (setupTestDocument):
        (prepareTest):
        (executeTest):

2009-07-27  Michelangelo De Simone  <micdesim@gmail.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25552
        First series of tests for the "pattern" attribute and related validation
        code

        * fast/forms/ValidityState-002-expected.txt: Copied from LayoutTests/fast/forms/willvalidate-001-expected.txt.
        * fast/forms/ValidityState-002.html: Added.
        * fast/forms/ValidityState-patternMismatch-001-expected.txt: Added.
        * fast/forms/ValidityState-patternMismatch-001.html: Added.
        * fast/forms/ValidityState-patternMismatch-002-expected.txt: Added.
        * fast/forms/ValidityState-patternMismatch-002.html: Added.
        * fast/forms/ValidityState-patternMismatch-003-expected.txt: Added.
        * fast/forms/ValidityState-patternMismatch-003.html: Added.
        * fast/forms/ValidityState-patternMismatch-004-expected.txt: Added.
        * fast/forms/ValidityState-patternMismatch-004.html: Added.
        * fast/forms/ValidityState-patternMismatch-005-expected.txt: Added.
        * fast/forms/ValidityState-patternMismatch-005.html: Added.
        * fast/forms/ValidityState-patternMismatch-006-expected.txt: Added.
        * fast/forms/ValidityState-patternMismatch-006.html: Added.
        * fast/forms/ValidityState-patternMismatch-007-expected.txt: Added.
        * fast/forms/ValidityState-patternMismatch-007.html: Added.
        * fast/forms/pattern-attribute-001-expected.txt: Added.
        * fast/forms/pattern-attribute-001.html: Added.
        * fast/forms/pattern-attribute-002-expected.txt: Added.
        * fast/forms/pattern-attribute-002.html: Added.
        * fast/forms/pattern-attribute-003-expected.txt: Added.
        * fast/forms/pattern-attribute-003.html: Added.

2009-07-27  Jian Li  <jianli@chromium.org>

        Reviewed by David Levin.

        Layout tests for fixing error handling in dedicated worker and worker
        context.
        https://bugs.webkit.org/show_bug.cgi?id=27525

        * fast/workers/resources/worker-error-in-handling-script-error.js: Added
        * fast/workers/resources/worker-invalid-syntax.js: Added.
        * fast/workers/resources/worker-script-error-bubbled.js: Added.
        * fast/workers/resources/worker-script-error-handled.js: Added.
        * fast/workers/resources/worker-script-error-unhandled.js: Added.
        * fast/workers/worker-constructor.html:
        * fast/workers/worker-script-error-expected.txt: Added.
        * fast/workers/worker-script-error.html: Added.
        Add test cases to cover different script error handling scenarios.

2009-07-27  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by George Staikos.

        [WML] History handling / page cache / loading is buggy and depends on several hacks
        https://bugs.webkit.org/show_bug.cgi?id=27707

        Add two new WML layout tests after redesigning WML history/loading handling.

        * wml/enter-card-with-events-expected.txt: Added.
        * wml/enter-card-with-events.html: Added.
        * wml/enter-first-card-with-events-expected.txt: Added.
        * wml/enter-first-card-with-events.html: Added.
        * wml/resources/WMLTestCase.js:
        * wml/resources/enter-card-with-events.js: Added.
        (setupTestDocument):
        (prepareTest):
        (executeTest):
        * wml/resources/enter-card-with-events.wml: Added.
        * wml/resources/enter-first-card-with-events.js: Added.
        (setupTestDocument):
        (prepareTest):
        (executeTest):
        * wml/resources/enter-first-card-with-events.wml: Added.

2009-07-27  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Add fast/canvas/image-pattern-rotate.html to Skipped as it needs
        platform-specific expected results.

        * platform/gtk/Skipped:

2009-07-16  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Oliver Hunt.

        Canvas: rotation of 'no-repeat' pattern still has small error
        https://bugs.webkit.org/show_bug.cgi?id=26749

        Use 1<<22 as steps of no-repeat pattern to make the error less
        than 0.5.  The previous value may cause 1 pixel errors.

        Add another test to show this bug clearly.
        Also add png expected image which was missing in the previous patch.

        * fast/canvas/image-pattern-rotate.html: Added.
        * platform/mac/fast/canvas/image-object-in-canvas-expected.checksum:
        * platform/mac/fast/canvas/image-object-in-canvas-expected.png:
        * platform/mac/fast/canvas/image-pattern-rotate-expected.checksum: Added.
        * platform/mac/fast/canvas/image-pattern-rotate-expected.png: Added.
        * platform/mac/fast/canvas/image-pattern-rotate-expected.txt: Added.

2009-07-25  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by George Staikos.

        [WML] Variable substitution is buggy
        https://bugs.webkit.org/show_bug.cgi?id=27677

        Always substitute variables regardless of their existance. If a variable doesn't exist, expand it to an empty string.
        Correct several testcases, relying on the old buggy behaviour.

        * wml/newcontext-same-deck-expected.txt: Added.
        * wml/newcontext-same-deck.html: Added.
        * wml/resources/WMLTestCase.js:
        (createWMLTestCase.iframeElement.onload):
        (createWMLTestCase):
        (assureLayout):
        (startTest):
        (triggerMouseEvent):
        * wml/resources/newcontext-same-deck.js: Added.
        (setupTestDocument):
        (prepareTest):
        (executeTest):
        * wml/resources/newcontext-same-deck.wml: Added.
        * wml/resources/select-element-variables.js:
        (prepareTest):
        * wml/select-element-variables-expected.txt:
        * wml/variable-reference-invalid-character-expected.txt:

2009-07-25  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by George Staikos.

        [WML] WMLDoElement doesn't update its RenderButton object upon attach()
        https://bugs.webkit.org/show_bug.cgi?id=27676

        Update layout test results after fixing WMLDoElement::attach() not calling updateFromElement().

        * platform/mac/fast/wml/do-element-optional-attr-expected.txt:
        * platform/mac/fast/wml/do-shadow-expected.txt:
        * platform/mac/fast/wml/do-template-expected.txt:
        * platform/mac/fast/wml/err-invalid-location-for-varref-expected.txt:
        * platform/mac/fast/wml/err-invalid-variable-name-expected.txt:
        * platform/mac/fast/wml/err-samename-do-expected.txt:

2009-07-25  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by George Staikos.

        [WML] Make http/tests/wml/post-data-to-server.* more understable
        https://bugs.webkit.org/show_bug.cgi?id=27675

        Slightly cleanup this patch so it's easier to figure out what the expected result for <select> element is.

        * http/tests/wml/post-data-to-server-expected.txt:
        * http/tests/wml/resources/post-data-to-server.js:
        (setupTestDocument):
        (prepareTest):

2009-07-24  Mark Rowe  <mrowe@apple.com>

        Skip a test that is failing intermittently on the Windows build bot.

        * platform/win/Skipped:

2009-07-24  Mark Rowe  <mrowe@apple.com>

        Skip a plug-in test that fails an assertion around 50% of the time.

        * platform/mac-snowleopard/Skipped:

2009-07-24  Mark Rowe  <mrowe@apple.com>

        Skip two SVG tests that are giving unexpected results.

        * platform/mac-snowleopard/Skipped:

2009-07-24  Mark Rowe  <mrowe@apple.com>

        Skip two plug-in tests that are failing.

        * platform/mac-snowleopard/Skipped:

2009-07-24  Mark Rowe  <mrowe@apple.com>

        Land correct results for a SnowLeopard-only accessibility test.

        * platform/mac/accessibility/table-multi-bodies-expected.txt:

2009-07-24  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Justin Garcia.

        execCommand('underline') can modify DOM outside of the contentEditable area
        https://bugs.webkit.org/show_bug.cgi?id=24333

        Tests to make sure we are not removing underline applied outside of root editable node or unsplittable element.

        * editing/style/textdecoration-outside-of-rooteditable-expected.txt: Added.
        * editing/style/textdecoration-outside-of-rooteditable.html: Added.
        * editing/style/textdecoration-outside-of-unsplittable-element-expected.txt: Added.
        * editing/style/textdecoration-outside-of-unsplittable-element.html: Added.

2009-07-24  Daniel Bates  <dbates@intudata.com>

        Reviewed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=27639
        
        Tests that XSSAuditor does not prevent evaluation of scripts that only contain 
        non-canonical characters.

        * http/tests/security/xssAuditor/script-tag-safe-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-safe.html: Added.

2009-07-24  Drew Wilson  <atwilson@google.com>

        Reviewed by Adam Barth.

       Added layout tests to exercise various use cases for calling functions defined on Worker global scope.

        Storing a reference to WorkerContext.postMessage() and calling it later yields a TypeError
        https://bugs.webkit.org/show_bug.cgi?id=27419

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

2009-07-24  Eric Seidel  <eric@webkit.org>

        Reviewed by Adam Barth.

        Fix the last of the x-frame constructor calls to have the right prototype chains
        https://bugs.webkit.org/show_bug.cgi?id=27645

        I also had to add support for passing arguments to constructors
        in order to test the Worker constructor.

        * fast/dom/constructed-objects-prototypes-expected.txt:
        * fast/dom/resources/constructed-objects-prototypes.js:

2009-07-24  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Xan Lopez.

        ApplicationCache Layout test failing on GTK
        https://bugs.webkit.org/show_bug.cgi?id=27648

        Add http/tests/appcache/max-size.html to the Skipped file for now.

        * platform/gtk/Skipped:

2009-07-24  Eric Seidel  <eric@webkit.org>

        Reviewed by Adam Barth.

        Update all CREATE_DOM_*_WRAPPER callers to pass globalObject
        https://bugs.webkit.org/show_bug.cgi?id=27644

        Make a bunch more tests pass.  Still not all of them.
        The rest will pass when the last bits of bug 27634 land.

        * fast/dom/constructed-objects-prototypes-expected.txt:
        * fast/dom/prototype-inheritance-2-expected.txt:

2009-07-24  Andrei Popescu  <andreip@google.com>

        ApplicationCache should have size limit
        https://bugs.webkit.org/show_bug.cgi?id=22700

        Adds a unit test that ensures that the mechanism that
        enforces the maximum size of the application cache is
        working correctly.

        * http/tests/appcache/max-size-expected.txt: Added.
        * http/tests/appcache/max-size.html: Added.
        * http/tests/appcache/resources/maxsize.manifest: Added.

2009-07-24  Eric Seidel  <eric@webkit.org>

        Reviewed by Adam Barth.

        Update CodeGeneratorJS.pm to support passing JSDOMGlobalObject* to toJS calls
        https://bugs.webkit.org/show_bug.cgi?id=27643

        Some of the tests are fixed, but not all yet.  Most of the rest
        of the tests will be fixed when the rest of bug 27634 lands.

        * fast/dom/constructed-objects-prototypes-expected.txt:
        * fast/dom/prototype-inheritance-2-expected.txt:
        * fast/dom/prototype-inheritance-expected.txt:

2009-07-24  Eric Seidel  <eric@webkit.org>

        Reviewed by Adam Barth.

        x-frame constructor calls are instantiated with the wrong prototype chain
        https://bugs.webkit.org/show_bug.cgi?id=27566

        Add the test.  Soon to be fixed by bug 27634.

        * fast/dom/constructed-objects-prototypes-expected.txt: Added.
        * fast/dom/constructed-objects-prototypes.html: Added.
        * fast/dom/resources/constructed-objects-prototypes.js: Added.
        (classNameForObject):
        (constructorPropertiesOnWindow):

2009-07-22  Eric Seidel  <eric@webkit.org>

        Reviewed by Adam Barth.

        Make most DOMObjects hold onto a JSDOMGlobalObject*
        https://bugs.webkit.org/show_bug.cgi?id=27588

        inner.document.constructor is fixed because all properties on the window
        object are created with the correct globalObject (instead of the lexical one).
        Since all objects now carry a globalObject pointer, when document creates
        HTMLDocumentConstructor it now has the right globalObject to use.

        * fast/dom/prototype-inheritance-2-expected.txt:
        * fast/dom/prototype-inheritance-expected.txt:

2009-07-23  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Eric Seidel.

        [Gtk] Add implementation of GCController for DRT
        https://bugs.webkit.org/show_bug.cgi?id=27636

        Enable tests that are now passing.

        * platform/gtk/Skipped:

2009-07-23  Eric Seidel  <eric@webkit.org>

        Reviewed by Darin Adler.

        Add new test to cover more prototype/constructor inheritance cases
        https://bugs.webkit.org/show_bug.cgi?id=27622

        This new test tries hard not to duplicate testing done
        by other tests and instead test new objects and prototype chains
        which will be fixed as soon as toJS is passed through the globalObject.

        This test crawls the object tree under the inner window, finding
        one of each type of JavaScript object.  It depends on all objects having
        a valid prototype chain with a unique name (which is not always the case).
        The test tries to stress the cases where the objects would be lazily
        creating other objects or their prototypes or constructors which would
        require these objects to have a back-pointer to the globalObject to be
        able to correctly wire up the prototype chains.

        * fast/dom/prototype-inheritance-2-expected.txt: Added.
        * fast/dom/prototype-inheritance-2.html: Added.
        * fast/dom/resources/prototype-inheritance-2.js: Added.
        (propertiesOnObject):
        ():
        (constructorNamesForWindow):
        (makeCrawlObject):
        (evalToCrawlObject):
        (pushPropertyValuesWithUnseenTypes):
        (crawl):

2009-07-23  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Skip transitions/change-values-during-transition.html which
        pass/fails intermittently

        * platform/gtk/Skipped:

2009-07-23  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Skip tests that require expected outputs. Also skip failing tests,
        with bugs raised against the failures.

        * platform/gtk/Skipped:

2009-07-23  Mark Rowe  <mrowe@apple.com>

        Skip two new tests for GTK that use eventSender.

        * platform/gtk/Skipped:

2009-07-23  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Brady Eidson.

        Fix layout tests that incorrectly attempt to detect whether they're running inside DumpRenderTree
        using "if (layoutTestController)".

        * editing/execCommand/25256.html:
        * editing/execCommand/25320.html:
        * fast/canvas/arc-crash.html:
        * fast/css/emptyStyleTag.html:
        * fast/events/js-keyboard-event-creation.html:
        * fast/events/scrollbar-double-click.html:
        * fast/forms/select-no-name.html:
        * fast/history/window-open.html:
        * platform/mac/fast/events/objc-event-api.html:
        * platform/mac/fast/events/objc-keyboard-event-creation.html:
        * scrollbars/scrollbar-miss-mousemove-disabled.html:
        * scrollbars/scrollbar-miss-mousemove.html:
        * storage/domstorage/localstorage/clear.html:
        * storage/domstorage/localstorage/delete-removal.html:
        * storage/domstorage/localstorage/enumerate-storage.html:
        * storage/domstorage/localstorage/index-get-and-set.html:
        * storage/domstorage/localstorage/onstorage-attribute-markup.html:
        * storage/domstorage/localstorage/onstorage-attribute-setattribute.html:
        * storage/domstorage/localstorage/private-browsing-affects-storage.html:
        * storage/domstorage/localstorage/resources/window-open-second.html:
        * storage/domstorage/localstorage/simple-events.html:
        * storage/domstorage/localstorage/simple-usage.html:
        * storage/domstorage/localstorage/string-conversion.html:
        * storage/domstorage/localstorage/window-open.html:
        * storage/domstorage/sessionstorage/clear.html:
        * storage/domstorage/sessionstorage/delete-removal.html:
        * storage/domstorage/sessionstorage/enumerate-storage.html:
        * storage/domstorage/sessionstorage/index-get-and-set.html:
        * storage/domstorage/sessionstorage/onstorage-attribute-markup.html:
        * storage/domstorage/sessionstorage/onstorage-attribute-setattribute.html:
        * storage/domstorage/sessionstorage/private-browsing-affects-storage.html:
        * storage/domstorage/sessionstorage/resources/window-open-second.html:
        * storage/domstorage/sessionstorage/simple-events.html:
        * storage/domstorage/sessionstorage/simple-usage.html:
        * storage/domstorage/sessionstorage/string-conversion.html:
        * storage/domstorage/sessionstorage/window-open.html:
        * storage/domstorage/window-attributes-exist.html:
        * svg/custom/stop-crash.svg:

2009-07-23  Mark Rowe  <mrowe@apple.com>

        And now with some valid JavaScript syntax!

        * http/tests/misc/redirect-to-about-blank.html:

2009-07-23  Mark Rowe  <mrowe@apple.com>

        Remove unnecessary check for eventSender in an attempt to please the GTK build bot.

        * fast/css/getComputedStyle/getComputedStyle-text-overflow.html:

2009-07-23  Mark Rowe  <mrowe@apple.com>

        Reviewed by Brady Eidson.

        Add a workaround for <rdar://problem/6925892> to the test that it affects.

        * http/tests/misc/redirect-to-about-blank.html:

2009-07-23  Brady Eidson  <beidson@apple.com>

        Reviewed by Geoff Garen.

        WebCore has a few places that don't gracefully handle a null request returned from willSendRequest.
        https://bugs.webkit.org/show_bug.cgi?id=27595

        * http/tests/misc/resources/redirect-to-http-url.php: Added.
        * http/tests/misc/will-send-request-returns-null-on-redirect-expected.txt: Added.
        * http/tests/misc/will-send-request-returns-null-on-redirect.html: Added.
        * platform/gtk/Skipped:
        * platform/qt/Skipped:

2009-07-23  Pierre d'Herbemont  <pdherbemont@apple.com>

        Fix layout tests, no review.

        Actually add the video-layer tests results for leopard, that were
        forgotten in r46302. Also add test results for windows.

        * platform/mac-leopard/fast/layers/video-layer-expected.png: Added.
        * platform/mac-leopard/fast/layers/video-layer-expected.txt: Added.
        * platform/win/fast/layers/video-layer-expected.txt: Added.

2009-07-23  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Simon Fraser.

        Following changes on the video controls, video-layer tests results need to
        be updated in order to fix the layout tests.

        * platform/mac-leopard/fast/layers/video-layer-expected.checksum: Copied from LayoutTests/platform/mac/fast/layers/video-layer-expected.checksum.
        * platform/mac-leopard/fast/layers/video-layer-expected.png: Copied from LayoutTests/platform/mac/fast/layers/video-layer-expected.png.
        * platform/mac-leopard/fast/layers/video-layer-expected.txt: Copied from LayoutTests/platform/mac/fast/layers/video-layer-expected.txt.
        * platform/mac/fast/layers/video-layer-expected.checksum: Removed.
        * platform/mac/fast/layers/video-layer-expected.png: Removed.
        * platform/mac/fast/layers/video-layer-expected.txt: Updated.

2009-07-23  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Dan Bernstein.

        Update layout test results for three tests related to text fields as their metrics
        have changed slightly since the results were last updated.

        * platform/mac-leopard/fast/forms/text-control-intrinsic-widths-expected.txt: Copied from LayoutTests/fast/forms/text-control-intrinsic-widths-expected.txt.
        * platform/mac/fast/forms/input-text-maxlength-expected.txt:
        * platform/mac/fast/forms/input-text-paste-maxlength-expected.txt:
        * platform/mac/fast/forms/text-control-intrinsic-widths-expected.txt: Renamed from LayoutTests/fast/forms/text-control-intrinsic-widths-expected.txt.

2009-07-23  Mark Rowe  <mrowe@apple.com>

        Windows appears to match the Leopard results for the CSS 2.1 counter tests that were failing.

        * platform/win/css2.1/t1202-counter-04-b-expected.txt: Copied from LayoutTests/platform/mac-leopard/css2.1/t1202-counter-04-b-expected.txt.
        * platform/win/css2.1/t1202-counters-04-b-expected.txt: Copied from LayoutTests/platform/mac-leopard/css2.1/t1202-counters-04-b-expected.txt.

2009-07-23  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        [CSS3 Backgrounds and Borders] Add support for inset box shadows
        https://bugs.webkit.org/show_bug.cgi?id=27582

        * fast/box-shadow/inset.html: Added.
        * platform/mac/fast/box-shadow/inset-expected.checksum: Added.
        * platform/mac/fast/box-shadow/inset-expected.png: Added.
        * platform/mac/fast/box-shadow/inset-expected.txt: Added.

2009-07-23  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Dan Bernstein.

        Update layout test results for two international text tests that are failing due to font differences.

        * platform/mac-leopard/fast/text/international/thai-baht-space-expected.checksum: Renamed from LayoutTests/platform/mac/fast/text/international/thai-baht-space-expected.checksum.
        * platform/mac-leopard/fast/text/international/thai-baht-space-expected.png: Renamed from LayoutTests/platform/mac/fast/text/international/thai-baht-space-expected.png.
        * platform/mac-leopard/fast/text/international/thai-baht-space-expected.txt: Copied from LayoutTests/platform/mac/fast/text/international/thai-baht-space-expected.txt.
        * platform/mac/fast/text/international/bidi-neutral-directionality-paragraph-start-expected.txt:
        * platform/mac/fast/text/international/thai-baht-space-expected.txt:

2009-07-23  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Dan Bernstein.

        Update layout test results for two CSS 2.1 counter tests that are failing due to font differences.

        * platform/mac-leopard/css2.1/t1202-counter-04-b-expected.txt: Copied from LayoutTests/platform/mac/css2.1/t1202-counter-04-b-expected.txt.
        * platform/mac-leopard/css2.1/t1202-counters-04-b-expected.txt: Copied from LayoutTests/platform/mac/css2.1/t1202-counters-04-b-expected.txt.
        * platform/mac/css2.1/t1202-counter-04-b-expected.txt:
        * platform/mac/css2.1/t1202-counters-04-b-expected.txt:

2009-07-23  Pierre d'Herbemont  <pdherbemont@apple.com>

        Layout test fix so no review.

        Add audio-controls-rendering layout test results for windows and leopard.

        * platform/mac-leopard/media/audio-controls-rendering-expected.txt: Added.
        * platform/win/media/audio-controls-rendering-expected.txt: Added.

2009-07-23  Mark Rowe  <mrowe@apple.com>

        Update layout test results for the addition of a new computed style property in r46285.

        * fast/css/getComputedStyle/computed-style-expected.txt:
        * fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/qt/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/qt/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * svg/css/getComputedStyle-basic-expected.txt:

2009-07-22  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Eric Seidel.

        execCommand('underline') can't remove <U> underlines
        https://bugs.webkit.org/show_bug.cgi?id=20215

        This patch rebaselines toggle-styles.html because WebKit now passes three tests it used to fail.
        toggle-style-2.html is added to test cases in which multiple styles are specified with tags.
        We still fail some tests because WebKit doesn't properly support non-CSS mode but they are visually correct.

        * editing/execCommand/resources/toggle-style-2.js: Added.
        (testSingleToggle):
        (testDoubleToggle):
        * editing/execCommand/toggle-style-2-expected.txt: Added.
        * editing/execCommand/toggle-style-2.html: Added.
        * editing/execCommand/toggle-styles-expected.txt: Passes all the tests

2009-07-23  Jessie Berlin  <jberlin@apple.com>

        Reviewed by Dan Bernstein.

        https://bugs.webkit.org/show_bug.cgi?id=27554
        Expose the value of text-overflow in getComputedStyle.

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

2009-07-23  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by David Hyatt.

        Rebaseline for http://trac.webkit.org/changeset/46274
        (The changeset rebaselined the expected results for mac but not for windows)

        * platform/win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:

2009-07-23  David Hyatt  <hyatt@apple.com>

        Reviewed by Dan Bernstein.

        https://bugs.webkit.org/show_bug.cgi?id=27572
        Implement support for background-attachment:local.

        Added new test fast/overflow/overflow-with-local-attachment.html.

        * fast/overflow/overflow-with-local-background-attachment.html: Added.
        * platform/mac/fast/overflow/overflow-with-local-background-attachment-expected.checksum: Added.
        * platform/mac/fast/overflow/overflow-with-local-background-attachment-expected.png: Added.
        * platform/mac/fast/overflow/overflow-with-local-background-attachment-expected.txt: Added.

2009-07-22  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Simon Fraser.

        Audio element at default width shouldn't have time field.
        https://bugs.webkit.org/show_bug.cgi?id=27589

        * platform/mac-snowleopard/Skipped: Enables back audio-controls-rendering.
        * platform/mac/media/audio-controls-rendering-expected.checksum:
        * platform/mac/media/audio-controls-rendering-expected.png:
        * platform/mac/media/audio-controls-rendering-expected.txt:

2009-07-23  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Reviewed by Adam Treat.

        Added expected results for tests that we pass.

        * platform/qt/editing/inserting/break-blockquote-after-delete-expected.txt: Added.
        * platform/qt/fast/backgrounds/body-generated-image-propagated-to-root-expected.txt: Added.
        * platform/qt/fast/box-shadow/transform-fringing-expected.txt: Added.
        * platform/qt/fast/canvas/drawImage-with-globalAlpha-expected.txt: Added.
        * platform/qt/fast/css/attribute-selector-dynamic-expected.txt: Added.
        * platform/qt/fast/css/nth-child-dynamic-expected.txt: Added.
        * platform/qt/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.txt: Added.
        * platform/qt/fast/dynamic/anchor-lock-expected.txt: Added.
        * platform/qt/fast/frames/frameset-style-recalc-expected.txt: Added.
        * platform/qt/fast/frames/iframe-text-contents-expected.txt: Added, equal to mac.
        * platform/qt/fast/frames/viewsource-on-image-file-expected.txt: Added.
        * platform/qt/fast/repaint/background-generated-expected.txt: Added, equal to mac.
        * platform/qt/fast/repaint/background-misaligned-expected.txt: Added, equal to mac.
        * platform/qt/fast/repaint/float-in-new-block-with-layout-delta-expected.txt: Added, equal to mac.
        * platform/qt/fast/text/international/hindi-whitespace-expected.txt: Added.
        * platform/qt/fast/transforms/bounding-rect-zoom-expected.txt: Added.

2009-07-23  David Hyatt  <hyatt@apple.com>

        Reviewed by Dan Bernstein.
        
        https://bugs.webkit.org/show_bug.cgi?id=27581
        Drop the prefix from the box-shadow property.

        * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * svg/css/getComputedStyle-basic-expected.txt:

2009-07-22  Viet-Trung Luu  <viettrungluu@gmail.com>

        Reviewed by David Hyatt.

        https://bugs.webkit.org/show_bug.cgi?id=27289
        Tests that mouse clicks/releases are handled properly on scrollbars
        even when there is no mouse move onto the scrollbar (two cases: enabled
        and disabled controls).

        * scrollbars/scrollbar-miss-mousemove-disabled-expected.txt: Added.
        * scrollbars/scrollbar-miss-mousemove-disabled.html: Added.
        * scrollbars/scrollbar-miss-mousemove-expected.txt: Added.
        * scrollbars/scrollbar-miss-mousemove.html: Added.

2009-07-23  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Tor Arne VestbÃ¸.

        Rebaseline the Qt results for computed-style.html and
        computed-style-without-rendered.html after r46240, similar to r46252.

        * platform/qt/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/qt/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:

2009-07-23  David Levin  <levin@chromium.org>

         Rubber-stamped by Oliver Hunt.

        Improve keyboard navigation of Select elements.
        Home/End and PageUp/PageDn buttons do not do anything in drop down lists,
        on non-Mac platforms.
        https://bugs.webkit.org/show_bug.cgi?id=22784

        One more round of speculative fixes:
         - Really fix the general and win expected results.  (They were missing a return.)
         - Disable the test for gtk (and remove the attempted workaround for that platform).

        * fast/forms/select-popup-pagekeys-expected.txt:
        * fast/forms/select-popup-pagekeys.html:
        * platform/gtk/Skipped:
        * platform/win/fast/forms/select-popup-pagekeys-expected.txt:

2009-07-23  David Levin  <levin@chromium.org>

        Rubber-stamped by Oliver Hunt.

        Improve keyboard navigation of Select elements.
        Home/End and PageUp/PageDn buttons do not do anything in drop down lists,
        on non-Mac platforms.
        https://bugs.webkit.org/show_bug.cgi?id=22784

        3 (speculative) fixes for the new layout test: select-popup-pagekeys
         - Help Windows to pass by adding platform results.
         - Fix the general expected results.
         - Fix select-popup-pagekeys on gtk which doesn't seem to implement eventSender.

        * fast/forms/select-popup-pagekeys-expected.txt:
        * fast/forms/select-popup-pagekeys.html:
        * platform/win/fast/forms/select-popup-pagekeys-expected.txt: Added.

2009-07-22  Jens Alfke  <snej@chromium.org>

        Reviewed by David Levin.

        Bug 22784: Improve keyboard navigation of Select elements.
        Home/End and PageUp/PageDn buttons do not do anything in drop down lists,
        on non-Mac platforms.
        https://bugs.webkit.org/show_bug.cgi?id=22784
        http://code.google.com/p/chromium/issues/detail?id=4576

        * LayoutTests/fast/forms/select-popup-pagekeys.html: Added.
        * LayoutTests/fast/forms/select-popup-pagekeys-expected.txt: Added
        * LayoutTests/platform/mac/fast/forms/select-popup-pagekeys-expected.txt: Added.

2009-07-22  Simon Hausmann  <simon.hausmann@nokia.com>

        Rubber-stamped by David Levin.

        Unskip HTML 5 Datagrid tests for the Qt DRT, as they pass.

        * platform/qt/Skipped:

2009-07-22  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Adam Barth.

        REGRESSION (r46240): /fast/css/getComputedStyle/computed-style & computed-style-without-renderer needs rebaseline for Windows
        https://bugs.webkit.org/show_bug.cgi?id=27591

        Rebaselines the tests.

        * platform/win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:

2009-07-22  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Eric Seidel.

        execCommand('underline' / 'strikeThrough') doesn't work properly with multiple styles in text-decoration
        https://bugs.webkit.org/show_bug.cgi?id=27476

        toggle-text-decorations checks whether we can toggle text decorations with multiple styles properly.
        e.g. execCommand("underline") should modify "text-decoration: underline overline" to "text-decoration: overline"

        getComputedStyle-text-decorations checks whether the CSS value of text decoration and its computed style are
        both space-separated CSSValueList instead of CSSPrimitiveValue or comma-separated CSSValueList.

        * editing/execCommand/resources/toggle-text-decorations.js: Added.
        (testSingleToggle):
        * editing/execCommand/toggle-text-decorations-expected.txt: Added.
        * editing/execCommand/toggle-text-decorations.html: Added.
        * fast/css/getComputedStyle/getComputedStyle-text-decoration-expected.txt: Added.
        * fast/css/getComputedStyle/getComputedStyle-text-decoration.html: Added.
        * fast/css/getComputedStyle/resources: Added.
        * fast/css/getComputedStyle/resources/TEMPLATE.html: Added.
        * fast/css/getComputedStyle/resources/getComputedStyle-text-decoration.js: Added.
        (expect):

2009-07-22  Daniel Bates  <dbates@intudata.com>

        Reviewed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=27174
        And
        https://bugs.webkit.org/show_bug.cgi?id=26938
        
        Tests prevention of attacks transformed by PHP Magic Quotes/PHP addslashes().

        * http/tests/security/xssAuditor/resources/echo-intertag-addslashes.pl: Added.
        * http/tests/security/xssAuditor/script-tag-addslashes-backslash-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-addslashes-backslash.html: Added.
        * http/tests/security/xssAuditor/script-tag-addslashes-double-quote-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-addslashes-double-quote.html: Added.
        * http/tests/security/xssAuditor/script-tag-addslashes-null-char-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-addslashes-null-char.html: Added.
        * http/tests/security/xssAuditor/script-tag-addslashes-single-quote-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-addslashes-single-quote.html: Added.

2009-07-22  David Hyatt  <hyatt@apple.com>

        Reviewed by Beth Dakin.

        https://bugs.webkit.org/show_bug.cgi?id=27562
        Add some new layout tests that drop the prefix from the background properties and use origin
        in a shorthand.  Update shorthand results and computed style results to account for new properties.

        * fast/backgrounds/size/backgroundSize20.html: Added.
        * fast/backgrounds/size/backgroundSize21.html: Added.
        * fast/backgrounds/size/backgroundSize22.html: Added.
        * fast/css/background-position-serialize-expected.txt:
        * fast/css/remove-shorthand-expected.txt:
        * platform/mac/fast/backgrounds/size/backgroundSize20-expected.checksum: Added.
        * platform/mac/fast/backgrounds/size/backgroundSize20-expected.png: Added.
        * platform/mac/fast/backgrounds/size/backgroundSize20-expected.txt: Added.
        * platform/mac/fast/backgrounds/size/backgroundSize21-expected.checksum: Added.
        * platform/mac/fast/backgrounds/size/backgroundSize21-expected.png: Added.
        * platform/mac/fast/backgrounds/size/backgroundSize21-expected.txt: Added.
        * platform/mac/fast/backgrounds/size/backgroundSize22-expected.checksum: Added.
        * platform/mac/fast/backgrounds/size/backgroundSize22-expected.png: Added.
        * platform/mac/fast/backgrounds/size/backgroundSize22-expected.txt: Added.
        * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/mac/fast/inspector/style-expected.txt:
        * svg/css/getComputedStyle-basic-expected.txt:

2009-07-22  Jens Alfke  <snej@chromium.org>

        Reviewed by Darin Fisher.

        Hook up V8 bindings for DataGrid elements.
        https://bugs.webkit.org/show_bug.cgi?id=27383
        http://code.google.com/p/chromium/issues/detail?id=16730

        Tests: Enhanced LayoutTests/fast/dom/HTMLDataGridElement/*
        to handle exceptions, check appropriate JS prototypes, and
        test column-list's item() method as well as array-indexing.

        * fast/dom/HTMLDataGridElement/DataGridColumns-basic-expected.txt:
        * fast/dom/HTMLDataGridElement/DataGridColumns-basic.html:
        * fast/dom/HTMLDataGridElement/DataGridColumns-dom-attributes.html:
        * fast/dom/HTMLDataGridElement/DataGridColumns-dom-expected.txt:
        * fast/dom/HTMLDataGridElement/DataGridColumns-dom.html:
        * fast/dom/HTMLDataGridElement/DataGridDataSource-basic.html:

2009-07-22  Eric Seidel  <eric@webkit.org>

        Reviewed by Darin Adler.

        expand prototype-inheritance test to cover constructors
        https://bugs.webkit.org/show_bug.cgi?id=27547

        * fast/dom/prototype-inheritance-expected.txt:
        * fast/dom/resources/prototype-inheritance.js:

2009-07-21  Sam Weinig  <sam@webkit.org>

        Reviewed by Dan Bernstein.

        Changes for https://bugs.webkit.org/show_bug.cgi?id=27242
        JSC bindings should use an auto-bound RGBColor class instead of hand-rolled JSRGBColor

        * fast/dom/Window/window-properties-expected.txt:
        * fast/dom/dom-constructors-expected.txt:
        * fast/dom/prototype-inheritance-expected.txt:
        * fast/dom/wrapper-classes-expected.txt:
        * fast/js/global-constructors-expected.txt:

2009-07-21  Zoltan Herczeg  <zherczeg@inf.u-szeged.hu>

        Reviewed by Gavin Barraclough, RS olliej fix to make the test pass.

        Check whether a crash happens after the string
        prototype is overwritten twice. The JIT'ed code
        may crash if one of its already cached method
        called again. Note: This test is not necessary
        crash on all systems, because they use different
        memory allocators!
        https://bugs.webkit.org/show_bug.cgi?id=27077

        * fast/js/method-check-expected.txt: Added.
        * fast/js/method-check.html: Added.
        * fast/js/resources/method-check.js: Added.
        (func2):
        (func.String.prototype.a):
        (func.String.prototype.b):
        (func):

2009-07-21  Dan Bernstein  <mitz@apple.com>

        Correct relative path in the test after moving it.

        * platform/mac/fast/loader/non-html-load-event.html:

2009-07-21  Dan Bernstein  <mitz@apple.com>

        Rubber-stamped by Mark Rowe.

        Move fast/loader/non-html-load-event.html under platform/mac because
        non-HTML views exist only on Mac.

        * fast/loader/non-html-load-event-expected.txt: Removed.
        * fast/loader/non-html-load-event.html: Removed.
        * platform/mac/fast/loader/non-html-load-event-expected.txt: Copied from LayoutTests/fast/loader/non-html-load-event-expected.txt.
        * platform/mac/fast/loader/non-html-load-event.html: Copied from LayoutTests/fast/loader/non-html-load-event.html.
        * platform/qt/Skipped:

2009-07-21  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Tor Arne VestbÃ¸.

        Skip fast/loader/non-html-load-event.html for the Qt DRT as it requires
        support for loading PDF documents.

        * platform/qt/Skipped:

2009-07-20  Adam Langley  <agl@google.com>

        Reviewed by Eric Seidel.

        Check that we can play an empty audio file. In the case that
        we have audio/video tags enabled, but no engines installed,
        this previously triggered a crash.

        https://bugs.webkit.org/show_bug.cgi?id=27479

        * media/audio-no-installed-engines.html: Added.
        * media/content/empty.wav: Added

2009-07-20  Dan Bernstein  <mitz@apple.com>

        Correct expected results from r46136, which accidentally included the
        DumpRenderTree header and trailer

        * fast/loader/non-html-load-event-expected.txt:

2009-07-19  Ryosuke Niwa  <rniwa@webkit.org>

        Reviewed by Eric Seidel.

        Refactoring of indentRegion to fix bugs 26816 and 25317
        https://bugs.webkit.org/show_bug.cgi?id=26816
        https://bugs.webkit.org/show_bug.cgi?id=25317
        https://bugs.webkit.org/show_bug.cgi?id=23995 (partially)

        This patch implements appendParagraphIntoNode, a simpler specialized version of moveParagraph
        and replaces all calls inside indentRegion. The following is the new behavior of indentRegion.

        1. We try to indent as many wrapping nodes as possible.
           e.g. when indenting "hello" in <div>hello</div>, we try to indent div as well.
        2. We do not delete any wrapping elements
           With moveParagraph, we used to remove all wrapping nodes, and replaced with a blockquote.
           This was causing https://bugs.webkit.org/show_bug.cgi?id=23995 for indentation.
           With appendParagraphIntoNode, we can preserve all wrapping nodes.
        3. We only split the tree until the closest block node instead of until the root editable node.
           This behavioral change fixes the bug 25317.
        4. When multiple paragraphs are indented, we indent the highest common ancestor within the selection.
           e.g. when a list is a child node of a div, and the entire div is intended,
                we enclose the div by a single blockquote.
        
        Note that new behavior is more consistent with that of Internet Explorer and Firefox.
        To demonstrate this, the following tests are added and rebaselined.

        * editing/execCommand/19653-1-expected.txt: rebaselined (no longer removes wrapping div)
        * editing/execCommand/indent-div-inside-list-expected.txt: Added.
        * editing/execCommand/indent-div-inside-list.html: Added.
        * editing/execCommand/indent-nested-blockquotes-expected.txt: Added.
        * editing/execCommand/indent-nested-blockquotes.html: Added.
        * editing/execCommand/indent-nested-div-expected.txt: Added.
        * editing/execCommand/indent-nested-div.html: Added.
        * editing/execCommand/indent-nested-lists-2-expected.txt: rebaselined (selection corrected)
        * editing/execCommand/indent-nested-lists-3-expected.txt: rebaselined (selection corrected)
        * editing/execCommand/indent-nested-lists-4-expected.txt: rebaselined (selection corrected)
        * editing/execCommand/indent-nested-lists-5-expected.txt: rebaselined (selection corrected)
        * editing/execCommand/indent-second-paragraph-in-blockquote-expected.txt: Added.
        * editing/execCommand/indent-second-paragraph-in-blockquote.html: Added.
        * platform/mac/editing/execCommand/4641880-2-expected.txt: rebaselined
        * platform/mac/editing/execCommand/4916541-expected.txt: rebaselined (no longer removes wrapping span)
        * platform/mac/editing/execCommand/5138441-expected.txt: rebaselined
        * platform/mac/editing/execCommand/5481523-expected.txt: rebaselined
        * platform/mac/editing/execCommand/indent-selection-expected.txt: rebaselined

2009-07-17  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Eric Seidel.

        Media Controls: We are specifying the text height, where it is unneeded and the slider is 2px off.
        https://bugs.webkit.org/show_bug.cgi?id=27380

        Adjust the margin of the slider and remove useless height specification to fix alignement of the media controls.

        * platform/mac/media/controls-after-reload-expected.txt:
        * platform/mac/media/controls-styling-expected.checksum: Removed.
        * platform/mac/media/controls-styling-expected.png: Removed.
        * platform/mac/media/controls-styling-expected.txt:
        * platform/mac/media/video-zoom-controls-expected.txt:

2009-07-20  Eric Seidel  <eric@webkit.org>

        Reviewed by Sam Weinig.

        Fix failures seen on the bots
        https://bugs.webkit.org/show_bug.cgi?id=27463

        Ignore more global variables added by DumpRenderTree.
        Some platforms don't add all of the DRT controllers,
        thus causing this test to fail for those platforms.

        Also fix !value to value === null to handle not
        skip the cases where value == 0.

        * fast/dom/prototype-inheritance-expected.txt:
        * fast/dom/resources/prototype-inheritance.js:

2009-07-20  Dan Bernstein  <mitz@apple.com>

        Reviewed by Anders Carlsson.

        Safari fires onload before PDF is loaded into the browser
        <rdar://problem/6618869>

        * fast/loader/non-html-load-event-expected.txt: Added.
        * fast/loader/non-html-load-event.html: Added.

2009-07-19  Simon Hausmann  <hausmann@webkit.org>

        Rubber-stamped by Xan Lopez.

        Skip new fast/dom/prototype-inheritance.html test in the Qt DRT
        due to missing features/properties in the window object.

        * platform/qt/Skipped:

2009-07-19  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Dan Bernstein.

        HTMLAudioElement: constructor should set "autobuffer" attribute
        https://bugs.webkit.org/show_bug.cgi?id=27422

        * media/audio-constructor-autobuffer-expected.txt: Added.
        * media/audio-constructor-autobuffer.html: Added.

2009-07-18  Dan Bernstein  <mitz@apple.com>

        Reviewed by Anders Carlsson.

        Test box-shadow spread radius
        https://bugs.webkit.org/show_bug.cgi?id=27417
        rdar://problem/7072267

        * fast/box-shadow/spread.html: Added.
        * platform/mac/fast/box-shadow/spread-expected.checksum: Added.
        * platform/mac/fast/box-shadow/spread-expected.png: Added.
        * platform/mac/fast/box-shadow/spread-expected.txt: Added.

2009-07-18  Jan Michael Alonzo  <jmalonzo@webkit.org>

        https://bugs.webkit.org/show_bug.cgi?id=27145
        [Gtk][REGRESSION] subframe-navigate-during-main-frame-load.html fails after r45615

        Reviewed by Gustavo Noronha.

        * platform/gtk/Skipped:

2009-07-18  Jan Michael Alonzo  <jmalonzo@webkit.org>

        [Gtk] Skip tests that require new expected results, eventSender
        and editing callbacks DRT support. Unreviewed.

        * platform/gtk/Skipped:

2009-07-18  Jeremy Orlow  <jorlow@chromium.org>

        Rubber stamped by Adam Barth.

        Revert https://bugs.webkit.org/show_bug.cgi?id=27383
        https://bugs.webkit.org/show_bug.cgi?id=27407

        Revert Jens' patch.  I believe he forgot to include a file.

        * fast/dom/HTMLDataGridElement/DataGridColumns-basic-expected.txt:
        * fast/dom/HTMLDataGridElement/DataGridColumns-basic.html:
        * fast/dom/HTMLDataGridElement/DataGridColumns-dom-attributes.html:
        * fast/dom/HTMLDataGridElement/DataGridColumns-dom-expected.txt:
        * fast/dom/HTMLDataGridElement/DataGridColumns-dom.html:
        * fast/dom/HTMLDataGridElement/DataGridDataSource-basic.html:

2009-07-17  Daniel Bates  <dbates@intudata.com>

        Reviewed by Adam Barth.
        
        https://bugs.webkit.org/show_bug.cgi?id=27405

        Tests that HTML entities that contain an invalid entity, such as an 
        unknown named entity, are properly handled.

        * http/tests/security/xssAuditor/link-onclick-ampersand-expected.txt: Added.
        * http/tests/security/xssAuditor/link-onclick-ampersand.html: Added.
        * http/tests/security/xssAuditor/javascript-link-ampersand-expected.txt: Added.
        * http/tests/security/xssAuditor/javascript-link-ampersand.html: Added.

2009-07-17  Mads Ager  <ager@chromium.org>

        Reviewed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=27403
        Add test case for https://bugs.webkit.org/show_bug.cgi?id=27394:
        properties on a window object should be accessible after the frame
        of the window object has navigated to another site.

        * fast/dom/Window/window-access-after-navigation-expected.txt: Added.
        * fast/dom/Window/window-access-after-navigation.html: Added.

2009-07-17  Jens Alfke  <snej@chromium.org>

        Reviewed by Dimitri Glazkov.

        Hook up V8 bindings for DataGrid elements.
        https://bugs.webkit.org/show_bug.cgi?id=27383
        http://code.google.com/p/chromium/issues/detail?id=16730

        Tests: Enhanced LayoutTests/fast/dom/HTMLDataGridElement/*
        to handle exceptions, check appropriate JS prototypes, and
        test column-list's item() method as well as array-indexing.

        * fast/dom/HTMLDataGridElement/DataGridColumns-basic-expected.txt:
        * fast/dom/HTMLDataGridElement/DataGridColumns-basic.html:
        * fast/dom/HTMLDataGridElement/DataGridColumns-dom-attributes.html:
        * fast/dom/HTMLDataGridElement/DataGridColumns-dom-expected.txt:
        * fast/dom/HTMLDataGridElement/DataGridColumns-dom.html:
        * fast/dom/HTMLDataGridElement/DataGridDataSource-basic.html:

2009-07-17  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Dan Bernstein.

        https://bugs.webkit.org/show_bug.cgi?id=27396
        Moving cursor in Thai text sometimes jumps over two characters

        * editing/text-iterator/thai-cursor-movement-expected.txt: Added.
        * editing/text-iterator/thai-cursor-movement.html: Added.

2009-07-14  Eric Seidel  <eric@webkit.org>

        Reviewed by Adam Barth.

        Some constructor objects exposed on Window have the wrong prototype chain
        https://bugs.webkit.org/show_bug.cgi?id=27276

        * fast/dom/prototype-inheritance-expected.txt: Added.
        * fast/dom/prototype-inheritance.html: Added.
        * fast/dom/resources/prototype-inheritance.js: Added.

2009-07-17  Michelangelo De Simone  <micdesim@gmail.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25551
        Test suite for the required attribute, the valueMissing flag and new
        :required and :optional CSS pseudoclasses.
        Part of the HTML5 sec. Forms.
        http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#attr-input-required

        * fast/css/pseudo-required-optional-001-expected.txt: Added.
        * fast/css/pseudo-required-optional-001.html: Added.
        * fast/css/pseudo-required-optional-002-expected.txt: Added.
        * fast/css/pseudo-required-optional-002.html: Added.
        * fast/css/pseudo-required-optional-003-expected.txt: Added.
        * fast/css/pseudo-required-optional-003.html: Added.
        * fast/css/pseudo-required-optional-004-expected.txt: Added.
        * fast/css/pseudo-required-optional-004.html: Added.
        * fast/css/pseudo-required-optional-005-expected.txt: Added.
        * fast/css/pseudo-required-optional-005.html: Added.
        * fast/css/pseudo-required-optional-006-expected.txt: Added.
        * fast/css/pseudo-required-optional-006.html: Added.
        * fast/forms/ValidityState-valueMissing-001-expected.txt: Added.
        * fast/forms/ValidityState-valueMissing-001.html: Added.
        * fast/forms/ValidityState-valueMissing-002-expected.txt: Added.
        * fast/forms/ValidityState-valueMissing-002.html: Added.
        * fast/forms/ValidityState-valueMissing-003-expected.txt: Added.
        * fast/forms/ValidityState-valueMissing-003.html: Added.
        * fast/forms/ValidityState-valueMissing-004-expected.txt: Added.
        * fast/forms/ValidityState-valueMissing-004.html: Added.
        * fast/forms/ValidityState-valueMissing-005-expected.txt: Added.
        * fast/forms/ValidityState-valueMissing-005.html: Added.
        * fast/forms/ValidityState-valueMissing-006-expected.txt: Added.
        * fast/forms/ValidityState-valueMissing-006.html: Added.
        * fast/forms/ValidityState-valueMissing-007-expected.txt: Added.
        * fast/forms/ValidityState-valueMissing-007.html: Added.
        * fast/forms/ValidityState-valueMissing-008-expected.txt: Added.
        * fast/forms/ValidityState-valueMissing-008.html: Added.
        * fast/forms/ValidityState-valueMissing-009-expected.txt: Added.
        * fast/forms/ValidityState-valueMissing-009.html: Added.
        * fast/forms/required-attribute-001-expected.txt: Added.
        * fast/forms/required-attribute-001.html: Added.
        * fast/forms/required-attribute-002-expected.txt: Added.
        * fast/forms/required-attribute-002.html: Added.

2009-07-17  Drew Wilson  <atwilson@google.com>

        Reviewed by David Levin.

        Need to refactor Worker to derive from AbstractWorker
        https://bugs.webkit.org/show_bug.cgi?id=26948

        Added checks to make sure that Workers are properly constructed and Worker attributes
        are visible on the resulting object.

        * fast/workers/worker-constructor-expected.txt:
        * fast/workers/worker-constructor.html:
        Added explicit check for correct construction/postMessage visibility.

2009-07-17  David Hyatt  <hyatt@apple.com>

        Reviewed by Dan Bernstein.

        https://bugs.webkit.org/show_bug.cgi?id=27379
        Absolutely-positioned elements with a scrollbar wrap prematurely.  Make sure to include
        the vertical scrollbar width for overflow:scroll elements.

        * fast/css/positioned-overflow-scroll.html: Added.
        * platform/mac/fast/css/positioned-overflow-scroll-expected.checksum: Added.
        * platform/mac/fast/css/positioned-overflow-scroll-expected.png: Added.
        * platform/mac/fast/css/positioned-overflow-scroll-expected.txt: Added.

2009-07-17  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>

        Reviewed by Simon Hausmann.

        Remove tests from Qt Skipped list that are actually working.
        https://bugs.webkit.org/show_bug.cgi?id=27316

        * platform/qt/Skipped:

2009-07-16  Kent Tamura  <tkent@chromium.org>

        Reviewed by Eric Seidel and Adam Barth.

        A test for for non-multipart file upload form submission.
        This test is disabled for non-Mac platforms because of beginDragWithFiles().
        <https://bugs.webkit.org/show_bug.cgi?id=26505>

        * fast/forms/get-file-upload-expected.txt: Added.
        * fast/forms/get-file-upload.html: Added.
        * platform/gtk/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:

2009-07-16  Dan Bernstein  <mitz@apple.com>

        Reviewed by Simon Fraser.

        REGRESSION (r41238) Repainted portion of a scaled image does not line up with full image
        https://bugs.webkit.org/show_bug.cgi?id=26747
        rdar://problem/7009243

        * fast/repaint/background-misaligned.html: Added.
        * platform/mac/fast/backgrounds/size/backgroundSize15-expected.checksum:
        * platform/mac/fast/backgrounds/size/backgroundSize15-expected.png:
        * platform/mac/fast/borders/border-image-rotate-transform-expected.checksum:
        * platform/mac/fast/borders/border-image-rotate-transform-expected.png:
        * platform/mac/fast/repaint/background-misaligned-expected.checksum: Added.
        * platform/mac/fast/repaint/background-misaligned-expected.png: Added.
        * platform/mac/fast/repaint/background-misaligned-expected.txt: Added.

2009-07-16  Adam Barth  <abarth@webkit.org>

        Unreviewed.

        Revert 45987.  Tests did not pass on Windows.

        * fast/forms/get-file-upload-expected.txt: Removed.
        * fast/forms/get-file-upload.html: Removed.

2009-07-16  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Oliver Hunt.

        [CAIRO] pattern of a canvas-element changes after modifications on canvas-element
        https://bugs.webkit.org/show_bug.cgi?id=20578

        Copy pixel image in ImageBuffer::image() just like CG and Skia glue.

        * fast/canvas/canvas-pattern-modify-expected.txt: Added.
        * fast/canvas/canvas-pattern-modify.html: Added.
        * fast/canvas/canvas-pattern-modify.js: Added.
        (dataToArray):
        (getPixel):
        (pixelShouldBe):
        (createCanvasImage):

2009-07-16  David Hyatt  <hyatt@apple.com>

        Reviewed by Beth Dakin.

        https://bugs.webkit.org/show_bug.cgi?id=27353
        Images mispositioned because of bug in percentage-based relative positioning.

        * fast/css/nested-floating-relative-position-percentages.html: Added.
        * platform/mac/fast/css/nested-floating-relative-position-percentages-expected.checksum: Added.
        * platform/mac/fast/css/nested-floating-relative-position-percentages-expected.png: Added.
        * platform/mac/fast/css/nested-floating-relative-position-percentages-expected.txt: Added.

2009-07-16  Kent Tamura  <tkent@chromium.org>

        Reviewed by Eric Seidel.

        A test for for non-multipart file upload form submission.
        <https://bugs.webkit.org/show_bug.cgi?id=26505>

        * fast/forms/get-file-upload-expected.txt: Added.
        * fast/forms/get-file-upload.html: Added.

2009-07-15  Adam Barth  <abarth@webkit.org>

        Reviewed by Darin Fisher.

        Add tests for isolated worlds
        https://bugs.webkit.org/show_bug.cgi?id=27331

        These tests are currently disabled on JSC ports.

        * http/tests/security/isolatedWorld/all-window-properties-expected.txt: Added.
        * http/tests/security/isolatedWorld/all-window-properties.html: Added.
        * http/tests/security/isolatedWorld/all-window-prototypes-expected.txt: Added.
        * http/tests/security/isolatedWorld/all-window-prototypes.html: Added.
        * http/tests/security/isolatedWorld/body-properties-expected.txt: Added.
        * http/tests/security/isolatedWorld/body-properties.html: Added.
        * http/tests/security/isolatedWorld/body-prototype-expected.txt: Added.
        * http/tests/security/isolatedWorld/body-prototype.html: Added.
        * http/tests/security/isolatedWorld/document-properties-expected.txt: Added.
        * http/tests/security/isolatedWorld/document-properties.html: Added.
        * http/tests/security/isolatedWorld/document-prototype-expected.txt: Added.
        * http/tests/security/isolatedWorld/document-prototype.html: Added.
        * http/tests/security/isolatedWorld/global-variables-expected.txt: Added.
        * http/tests/security/isolatedWorld/global-variables.html: Added.
        * http/tests/security/isolatedWorld/image-properties-expected.txt: Added.
        * http/tests/security/isolatedWorld/image-properties.html: Added.
        * http/tests/security/isolatedWorld/image-prototype-expected.txt: Added.
        * http/tests/security/isolatedWorld/image-prototype.html: Added.
        * http/tests/security/isolatedWorld/location-properties-expected.txt: Added.
        * http/tests/security/isolatedWorld/location-properties.html: Added.
        * http/tests/security/isolatedWorld/location-prototype-expected.txt: Added.
        * http/tests/security/isolatedWorld/location-prototype.html: Added.
        * http/tests/security/isolatedWorld/number-prototype-expected.txt: Added.
        * http/tests/security/isolatedWorld/number-prototype.html: Added.
        * http/tests/security/isolatedWorld/object-prototype-expected.txt: Added.
        * http/tests/security/isolatedWorld/object-prototype.html: Added.
        * http/tests/security/isolatedWorld/string-prototype-expected.txt: Added.
        * http/tests/security/isolatedWorld/string-prototype.html: Added.
        * http/tests/security/isolatedWorld/window-properties-expected.txt: Added.
        * http/tests/security/isolatedWorld/window-properties.html: Added.
        * platform/gtk/Skipped:
        * platform/mac/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:

2009-07-16  Dean McNamee  <deanm@chromium.org>

        Reviewed by Oliver Hunt.

        https://bugs.webkit.org/show_bug.cgi?id=27292
        Improve handling of <canvas> path operations on an empty path.
        Implement Skia's Path::hasCurrentPoint().

        * fast/canvas/canvas-modify-emptyPath-expected.txt:
        * fast/canvas/resources/canvas-modify-emptyPath.js:

2009-07-16  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Adam Treat.

        Skip two tests for the Qt DRT to keep the results green.

        fast/js/instanceof-operator.html because it requires XSLT support.

        editing/selection/extend-selection-after-double-click.html needs
        investigation for the Qt port after r45945

        * platform/qt/Skipped:

2009-07-15  David Levin  <levin@chromium.org>

        Rubber-stamped by Oliver Hunt.

        Setting white-space and word-wrap via CSS in textarea doesn't override the wrap attribute
        https://bugs.webkit.org/show_bug.cgi?id=26254

        Change the expected Windows result (similar to the mac result change).

        * platform/win/fast/forms/basic-textareas-expected.txt:

2009-07-15  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Eric Seidel.

        Setting white-space and word-wrap via CSS in textarea doesn't override the wrap attribute
        https://bugs.webkit.org/show_bug.cgi?id=26254

        Make it so that setting white-space and word-wrap via CSS
        overrides the wrap attribute.

        This involves having the shadow div in the textarea inherit
        the CSS from its parent instead of hard-coding it in
        RenderTextControlMultiline.

        * fast/forms/basic-textareas.html:
        * platform/mac/fast/forms/basic-textareas-expected.checksum:
        * platform/mac/fast/forms/basic-textareas-expected.png:
        * platform/mac/fast/forms/basic-textareas-expected.txt:

2009-07-15  David Levin  <levin@chromium.org>

        Layout test fix, reverting previous change.

        Reverting r45962 as it caused several layout test failures.

        * fast/forms/basic-textareas.html:
        * platform/mac/fast/forms/basic-textareas-expected.checksum:
        * platform/mac/fast/forms/basic-textareas-expected.png:
        * platform/mac/fast/forms/basic-textareas-expected.txt:

2009-06-08  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Eric Seidel.

        Setting white-space and word-wrap via CSS in textarea doesn't override the wrap attribute
        https://bugs.webkit.org/show_bug.cgi?id=26254

        Make it so that setting white-space and word-wrap via CSS
        overrides the wrap attribute.

        This involves having the shadow div in the textarea inherit
        the CSS from its parent instead of hard-coding it in
        RenderTextControlMultiline.

        * fast/forms/basic-textareas.html:
        * platform/mac/fast/forms/basic-textareas-expected.checksum:
        * platform/mac/fast/forms/basic-textareas-expected.png:
        * platform/mac/fast/forms/basic-textareas-expected.txt:

2009-07-15  Jian Li  <jianli@chromium.org>

        Reviewed by David Levin.

        Bug 25151 - workers that fail to load scripts not firing error event.
        https://bugs.webkit.org/show_bug.cgi?id=25151

        Updates layout test cases for bug 25151.

        * fast/workers/worker-constructor-expected.txt:
        * fast/workers/worker-constructor.html:
        * http/tests/workers/worker-redirect-expected.txt:
        * http/tests/workers/worker-redirect.html:

2009-07-15  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        text-shadow is not drawn for text with transparent colour
        https://bugs.webkit.org/show_bug.cgi?id=21374

        * fast/text/shadow-translucent-fill.html: Added.
        * platform/mac/fast/css/shadow-multiple-expected.checksum:
        * platform/mac/fast/css/shadow-multiple-expected.png:
        * platform/mac/fast/text/shadow-translucent-fill-expected.checksum: Added.
        * platform/mac/fast/text/shadow-translucent-fill-expected.png: Added.
        * platform/mac/fast/text/shadow-translucent-fill-expected.txt: Added.

2009-07-15  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Simon Fraser.

        Incorrect animation when trying to duplicate effect of transform-origin
        https://bugs.webkit.org/show_bug.cgi?id=27310

        Test showing bug. This test actually passes LayoutTests with or
        without the bug fixed. This is because we snapshot at a keyframe
        at which point the value is always correct. And we can't do a
        LayoutTest which snapshots the wrong value because it is buried
        in the hardware renderer, which we can't get to. But if you
        visually inspect this test you can see the incorrect behavior.

        And this is a useful test to have in our arsenal in any case.

        * animations/transform-origin-vs-functions-expected.txt: Added.
        * animations/transform-origin-vs-functions.html: Added.

2009-07-15  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        CSSHelper.h's parseURL is a function that no one should ever call
        Part 1: Eliminate callers in the CSS parser.
        https://bugs.webkit.org/show_bug.cgi?id=26599

        * fast/css/uri-token-parsing-expected.txt: Added.
        * fast/css/uri-token-parsing.html: Added. Tests URI token parsing cases, many of which
        were handled wrong before due to stripping quotes and URL() twice.

2009-07-15  Darin Adler  <darin@apple.com>

        Reviewed by John Sullivan.

        After double-clicking a word, using Shift-arrow to select behaves unpredictably
        https://bugs.webkit.org/show_bug.cgi?id=27177
        rdar://problem/7034324

        * editing/selection/extend-selection-after-double-click-expected.txt: Added.
        * editing/selection/extend-selection-after-double-click.html:
        Copied from LayoutTests/editing/selection/word-granularity.html.
        Then turned it into a new test.

2009-07-15  David Hyatt  <hyatt@apple.com>

        Reviewed by Adam Roben.

        https://bugs.webkit.org/show_bug.cgi?id=27193
        Don't let run-ins run in to anonymous blocks.

        * fast/runin/001.html:
        * fast/runin/generated.html:
        * platform/mac/fast/runin/001-expected.checksum:
        * platform/mac/fast/runin/001-expected.png:
        * platform/mac/fast/runin/001-expected.txt:
        * platform/mac/fast/runin/generated-expected.checksum:
        * platform/mac/fast/runin/generated-expected.png:
        * platform/mac/fast/runin/generated-expected.txt:

2009-07-15  Yuzo Fujishima  <yuzo@google.com>

        Reviewed by Darin Adler.

        Fix for: Bug 25205 -  XMLHttpRequest instance is not an instanceof XMLHttpRequest
        https://bugs.webkit.org/show_bug.cgi?id=25205

        In addition to for XMLHttpRequest, this also fixes for:
        - Audio
        - Image
        - MessageChannel
        - Option
        - WebKitCSSMatrix
        - WebKitPoint
        - Worker
        - XSLTProcessor

        * fast/js/instanceof-operator-expected.txt: Added.
        * fast/js/instanceof-operator.html: Added.
        * fast/js/resources/instanceof-operator-dummy-worker.js: Added.
        * fast/js/resources/instanceof-operator.js: Added.

2009-07-15  Kai BrÂning  <kai@granus.net>

        Reviewed by Dave Hyatt.

        CSS21 attribute selectors not dynamic for xml.
        https://bugs.webkit.org/show_bug.cgi?id=25072

        Test that CSS21 attribute selectors take effect when the attribute is
        dynamically changed in an xml dom.

        * fast/css/attribute-selector-dynamic.xml: Added.
        * platform/mac/fast/css/attribute-selector-dynamic-expected.checksum: Added.
        * platform/mac/fast/css/attribute-selector-dynamic-expected.png: Added.
        * platform/mac/fast/css/attribute-selector-dynamic-expected.txt: Added.

2009-07-14  David Hyatt  <hyatt@apple.com>

        Reviewed by Simon Fraser.

        Add layout tests for the new CSS3 'rem' unit type.

        * fast/css/rem-dynamic-scaling.html: Added.
        * fast/css/rem-units-on-root.html: Added.
        * fast/css/remove-shorthand-expected.checksum: Added.
        * fast/css/remove-shorthand-expected.png: Added.
        * platform/mac/fast/css/rem-dynamic-scaling-expected.checksum: Added.
        * platform/mac/fast/css/rem-dynamic-scaling-expected.png: Added.
        * platform/mac/fast/css/rem-dynamic-scaling-expected.txt: Added.
        * platform/mac/fast/css/rem-units-on-root-expected.checksum: Added.
        * platform/mac/fast/css/rem-units-on-root-expected.png: Added.
        * platform/mac/fast/css/rem-units-on-root-expected.txt: Added.

2009-07-15  Brian Weinstein  <bweinstein@apple.com>

        Rubberstamped by Mark Rowe.

        Add one more test to Windows Skipped List to hopefully get it to stay green.

        * platform/win/Skipped:

2009-07-14  Brian Weinstein  <bweinstein@apple.com>

        Rubberstamped by Mark Rowe.

        Add tests to Windows Skip list to get it back in green.

        * platform/win/Skipped:

2009-07-14  Darin Fisher  <darin@chromium.org>

        Reviewed by Darin Adler.

        Fails to save document state when navigating away from a page with a
        reference fragment.
        https://bugs.webkit.org/show_bug.cgi?id=27281

        * fast/history/saves-state-after-fragment-nav-expected.txt: Added.
        * fast/history/saves-state-after-fragment-nav.html: Added.

2009-07-14  Michelangelo De Simone  <micdesim@gmail.com>

        Reviewed by Adele Peterson.

        https://bugs.webkit.org/show_bug.cgi?id=19562
        Minimal test case for ValidityState; more tests are going to be added
        along with specific validation routines.

        * fast/dom/domListEnumeration-expected.txt: increased expected value
        of 1 to match the new "validity" attribute
        * fast/dom/resources/domListEnumeration.js: ditto
        * fast/forms/ValidityState-001-expected.txt: Added.
        * fast/forms/ValidityState-001.html: Added.

2009-07-14  Ryosuke Niwa  <rniwa@google.com>

        Reviewed by Eric Seidel.

        Outdenting a line inside a blockquote tag does nothing
        https://bugs.webkit.org/show_bug.cgi?id=25315
        https://bugs.webkit.org/show_bug.cgi?id=25316

        The expected result for /editing/execCommand/outdent-selection-expected.html
        was rebaselined since the original expected result was wrong (Bug 25315).
        Namely, "ipsum" moved to the same paragraph as "more Lorem!"
        ("ipsum" was in the blockblock immediately below "more Lorem!")
        and "Dolor" was moved above the list items "Foo", "Bar", and "Baz".

        * editing/execCommand/outdent-regular-blockquote-expected.txt: Added.
        * editing/execCommand/outdent-regular-blockquote.html: Added.
        * platform/mac/editing/execCommand/outdent-selection-expected.checksum:
        * platform/mac/editing/execCommand/outdent-selection-expected.png:
        * platform/mac/editing/execCommand/outdent-selection-expected.txt:

2009-07-14  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        Straight quotes should match fancy quotes in in-page search
        https://bugs.webkit.org/show_bug.cgi?id=27217

        * fast/text/find-quotes-expected.txt: Added.
        * fast/text/find-quotes.html: Copied from LayoutTests/fast/text/find-case-folding.html.

2009-07-13  Brady Eidson  <beidson@apple.com>

        Fix Leopard regression I just introduced.

        * platform/mac-leopard/platform/mac/fast/loader/file-url-mimetypes-2-expected.txt:

2009-07-13  Brady Eidson  <beidson@apple.com>

        Rubberstamped by Mark Rowe.

        Add SnowLeopard specific results for differing MIME types that are (mostly) progressions.

        * platform/mac-leopard/platform/mac/fast/loader: Added.
        * platform/mac-leopard/platform/mac/fast/loader/file-url-mimetypes-2-expected.txt: Copied from platform/mac/fast/loader/file-url-mimetypes-2-expected.txt.
        * platform/mac-leopard/platform/mac/fast/loader/file-url-mimetypes-3-expected.txt: Copied from platform/mac/fast/loader/file-url-mimetypes-3-expected.txt.
        * platform/mac-leopard/platform/mac/fast/loader/file-url-mimetypes-expected.txt: Copied from platform/mac/fast/loader/file-url-mimetypes-expected.txt.
        * platform/mac/fast/loader/file-url-mimetypes-2-expected.txt:
        * platform/mac/fast/loader/file-url-mimetypes-3-expected.txt:
        * platform/mac/fast/loader/file-url-mimetypes-expected.txt:

2009-07-13  Erik Arvidsson  <arv@chromium.org>

        Reviewed by Darin Adler and Maciej Stachowiak.

        Implement HTML5 draggable
        https://bugs.webkit.org/show_bug.cgi?id=26262

        This adds support for the HTML5 draggable attribute and its DOM binding. It maps the draggable property
        to the CSS properties -webkit-user-drag and -webkit-user-select respectively.

        Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#the-draggable-attribute

        * fast/html/draggable-expected.txt: Added.
        * fast/html/draggable.html: Added.
        * fast/html/resources: Added.
        * fast/html/resources/images: Added.
        * fast/html/resources/images/lime.png: Added.

        * fast/dom/resources/domListEnumeration.js: Updated.
        * fast/dom/domListEnumeration-expected.txt: Updated.

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

        Reviewed by Dan Bernstein.

        Image rendered as layer contents looks different from image rendered via CG.
        <rdar://problem/7048830> 
        
        Testcase which compares image colors between images rendered via CG, and those
        rendered as the contents of composited layers.

        * compositing/color-matching/image-color-matching.html: Added.
        * compositing/color-matching/resources/genericRGB.png: Added.
        * compositing/color-matching/resources/no-profile.png: Added.
        * platform/mac/compositing/color-matching/image-color-matching-expected.checksum: Added.
        * platform/mac/compositing/color-matching/image-color-matching-expected.png: Added.
        * platform/mac/compositing/color-matching/image-color-matching-expected.txt: Added.

2009-07-13  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=26925
        <rdar://problem/7027850> URL Fragment Breaks Application Cache Loads

        * http/tests/appcache/main-resource-hash-expected.txt: Added.
        * http/tests/appcache/main-resource-hash.html: Added.
        * http/tests/appcache/resources/main-resource-hash-frame.html: Added.
        * http/tests/appcache/resources/main-resource-hash-frame.manifest: Added.

2009-07-13  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        https://bugs.webkit.org/show_bug.cgi?id=27166
        rdar://problem/7015857
        Find for strings composed entirely of spaces doesn't work

        * fast/text/find-spaces-expected.txt: Added.
        * fast/text/find-spaces.html: Copied from LayoutTests/fast/text/find-case-folding.html.

2009-07-13  Mark Rowe  <mrowe@apple.com>

        Add Leopard-specific results for fast/text/international/khmer-selection.html.

        * platform/mac-leopard/fast/text/international/khmer-selection-expected.txt: Copied from LayoutTests/platform/mac/fast/text/international/khmer-selection-expected.txt.

2009-07-13  Mark Rowe  <mrowe@apple.com>

        Add a missing layout test result to improve the quality of life of the Mac buildbots.

        * platform/mac/fast/text/international/khmer-selection-expected.txt: Added.

2009-07-13  Sam Weinig  <sam@webkit.org>

        Reviewed by Darin Adler.

        Test for https://bugs.webkit.org/show_bug.cgi?id=27234
        <rdar://problem/7054356>

        * fast/dom/HTMLDocument/hasFocus-frameless-crash-expected.txt: Added.
        * fast/dom/HTMLDocument/hasFocus-frameless-crash.html: Added.

2009-07-13  Adam Langley  <agl@google.com>

        Reviewed by Eric Seidel.

        Chromium Linux: fix assertion when rendering google.com.kh

        https://bugs.webkit.org/show_bug.cgi?id=26924

        Some shapers (i.e. Khmer) will produce cluster logs which report that
        /no/ code points contributed to certain glyphs. Because of this, we
        take any code point which contributed to the glyph in question, or any
        subsequent glyph.  If we run off the end, then we take the last code
        point.

        * fast/text/international/khmer-selection.html: Added.

2009-07-13  Peter Kasting  <pkasting@google.com>

        https://bugs.webkit.org/show_bug.cgi?id=19562
        Back out previous patch for this bug (too many problems).
        This also re-enables fast/dom/domListEnumeration.html.

        * fast/dom/domListEnumeration.html: Copied from LayoutTests/fast/dom/domListEnumeration.html-disabled.
        * fast/dom/domListEnumeration.html-disabled: Removed.
        * fast/forms/ValidityState-001-expected.txt: Removed.
        * fast/forms/ValidityState-001.html: Removed.

2009-07-13  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Darin Fisher.

        Make sure that calling WebKitCSSMatrix as function does not result in crash.
        https://bugs.webkit.org/show_bug.cgi?id=27218

        * fast/css/matrix-as-function-crash-expected.txt: Added.
        * fast/css/matrix-as-function-crash.html: Added.

2009-07-13  Simon Hausmann  <simon.hausmann@nokia.com>

        Rubber-stamped by Ariya Hidayat.

        Unskip three more fast/js tests that pass with the Qt DRT.

        * platform/qt/Skipped:

2009-07-13  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Ariya Hidayat.

        Removed Qt DRT specific result for canvas-getImageData as we pass this
        test with the raster graphicssystem.

        * platform/qt/fast/canvas/canvas-getImageData-expected.txt: Removed.

2009-07-13  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Ariya Hidayat.

        Enable a bunch of plugin layout tests for the Qt DRT.

        * platform/qt/Skipped:

2009-07-13  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Ariya Hidayat.

        Removed two more storage tests from the Qt DRT skip list that relied on
        layoutTestController to be accessible in newly opened windows.

        * platform/qt/Skipped:

2009-07-13  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Ariya Hidayat.

        Removed three tests from the Qt DRT Skip list that rely on
        LayoutTestController.setPrivateBrowsingEnabled and pass now.

        * platform/qt/Skipped:

2009-07-13  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Ariya Hidayat.

        Enable a bunch of more storage layout tests for the Qt DRT, now that
        they pass.

        * platform/qt/Skipped:

2009-07-13  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Ariya Hidayat.

        Enable some storage layout tests in the Qt DRT, as the pass now.

        * platform/qt/Skipped:

2009-07-13  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Ariya Hidayat.

        Removed 20 more frame tests from the Qt skip list as they pass now
        after making sure we only dump after the main frame's loadFinished
        signal.

        * platform/qt/Skipped:

2009-07-13  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Ariya Hidayat.

        Remove fast/frames/removal-before-attach-crash.html and
        fast/dom/StyleSheet/ownerNode-lifetime-2.html from the Qt DRT skip
        list, as they pass now with support for the GCController.

        * platform/qt/Skipped:

2009-07-13  Jan Michael Alonzo  <jmalonzo@webkit.org>

        <https://bugs.webkit.org/show_bug.cgi?id=27171> [Gtk]
        REGRESSION (r45440): fails at fast/events/frame-programmatic-focus.html

        Reviewed by Gustavo Noronha.

        Unskip fast/events/frame-programmatic-focus.html

        * platform/gtk/Skipped:

2009-07-13  Jan Michael Alonzo  <jmalonzo@webkit.org>

        https://bugs.webkit.org/show_bug.cgi?id=26718 [Gtk] Add support for javascript windows for DRT

        Reviewed by Gustavo Noronha and Xan Lopez.

        Unskip tests that now pass due to support for JS windows in Gtk DRT.

        * platform/gtk/Skipped:

2009-07-13  Simon Hausmann  <simon.hausmann@nokia.com>

        Rubber-stamped by Oliver Hunt.

        Tweak mouseout-dead-subframe.html to be more robust.

        The test calls notifyDone() and then dumpAsText(). The latter call has no effect
        as notifyDone() performs the dump, but it passes in the mac DRT because the mime-type
        of the .html file is detected as text/plain and therefore the text is dumped instead
        of the render tree.

        Changed the testcase to call dumpAsText() first and then notifyDone(), to make it
        pass without relying on the mime type detection.

        That also makes the test pass in the Qt DRT.

        * fast/events/mouseout-dead-subframe.html: Swapped notifyDone() and dumpAsText() calls to
        call the former before the latter.
        * platform/qt/Skipped: Removed skipped test.

2009-07-13  Drew Wilson  <atwilson@google.com>

        Reviewed by David Levin.

        Add ENABLE(SHARED_WORKERS) flag and define SharedWorker APIs
        https://bugs.webkit.org/show_bug.cgi?id=26932

        Unit tests for new SharedWorker APIs (disabled by default).

        * fast/workers/shared-worker-constructor-expected.txt: Added.
        * fast/workers/shared-worker-constructor.html-disabled: Added.
        * fast/workers/shared-worker-event-listener-expected.txt: Added.
        * fast/workers/shared-worker-event-listener.html-disabled: Added.

2009-07-12  Adam Barth  <abarth@webkit.org>

        Reviewed by Oliver Hunt.

        Facebook Chat is broken due to XSS auditor
        https://bugs.webkit.org/show_bug.cgi?id=27179

        Add some more test coverage to our handling of script tags with src
        attributes.  Also, ensure that we don't raise the alarm when a URL
        parameter is injected directly into the attribute value.

        * http/tests/security/xssAuditor/resources/echo-script-src.pl: Added.
        * http/tests/security/xssAuditor/script-tag-src-redirect-safe-expected.txt: Copied from LayoutTests/http/tests/security/xssAuditor/base-href-safe-expected.txt.
        * http/tests/security/xssAuditor/script-tag-src-redirect-safe.html: Added.
        * http/tests/security/xssAuditor/script-tag-with-source-double-quote-expected.txt: Copied from LayoutTests/http/tests/security/xssAuditor/anchor-url-dom-write-location-expected.txt.
        * http/tests/security/xssAuditor/script-tag-with-source-double-quote.html: Added.
        * http/tests/security/xssAuditor/script-tag-with-source-no-quote-expected.txt: Copied from LayoutTests/http/tests/security/xssAuditor/anchor-url-dom-write-location-expected.txt.
        * http/tests/security/xssAuditor/script-tag-with-source-no-quote.html: Added.

2009-07-12  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Dan Bernstein.

        https://bugs.webkit.org/show_bug.cgi?id=27197
        QuickTime supports data: urls, add a layout test.

        * media/audio-data-url-expected.txt: Added.
        * media/audio-data-url.html: Added.
            New test.

        * platform/gtk/Skipped:
            Skip the new test.

2009-07-12  Daniel Bates  <dbates@intudata.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=27189
        
        Tests that XSSAuditor does not block HTML Base elements whose path has the 
        same host as the page.

        * http/tests/security/xssAuditor/base-href-safe3-expected.txt: Added.
        * http/tests/security/xssAuditor/base-href-safe3.html: Added.
        * http/tests/security/xssAuditor/resources/base-href/base-href-safe3.html: Added.

2009-07-11  Oliver Hunt  <oliver@apple.com>

        Reviewed by Simon Fraser.

        Bug 27187 - Match Gecko behaviour for canvas path mutation APIs on an empty path
        <https://bugs.webkit.org/show_bug.cgi?id=27187>

        Add tests for the behaviour of effected APIs.

        * fast/canvas/canvas-modify-emptyPath-expected.txt: Added.
        * fast/canvas/canvas-modify-emptyPath.html: Added.
        * fast/canvas/resources/canvas-modify-emptyPath.js: Added.
        (getColor):

2009-07-11  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Antti Koivisto.

        HTMLMediaElement.canPlayType "maybe" and "probably" reversed
        https://bugs.webkit.org/show_bug.cgi?id=27186

        * media/video-can-play-type-expected.txt:
        * media/video-can-play-type.html:

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

        Enable support for accelerated compositing and 3d transforms on Leopard.
        <https://bugs.webkit.org/show_bug.cgi?id=20166>
        <rdar://problem/6120614>

        Reviewed by Oliver Hunt.
        
        Add Leopard-specific pixel results for compositing and 3d-transform tests, since
        there are gamma differences between Leopard and SnowLeopard. Also some layer
        intersection behavior differs betweeen the two.

        * platform/mac-leopard/compositing/direct-image-compositing-expected.checksum: Added.
        * platform/mac-leopard/compositing/direct-image-compositing-expected.png: Added.
        * platform/mac-leopard/compositing/geometry/root-layer-update-expected.checksum: Added.
        * platform/mac-leopard/compositing/geometry/root-layer-update-expected.png: Added.
        * platform/mac-leopard/compositing/overflow/overflow-positioning-expected.checksum: Added.
        * platform/mac-leopard/compositing/overflow/overflow-positioning-expected.png: Added.
        * platform/mac-leopard/compositing/repaint/become-overlay-composited-layer-expected.checksum: Added.
        * platform/mac-leopard/compositing/repaint/become-overlay-composited-layer-expected.png: Added.
        * platform/mac-leopard/compositing/repaint/layer-repaint-rects-expected.checksum: Added.
        * platform/mac-leopard/compositing/repaint/layer-repaint-rects-expected.png: Added.
        * platform/mac-leopard/transforms/3d/general/perspective-units-expected.checksum: Added.
        * platform/mac-leopard/transforms/3d/general/perspective-units-expected.png: Added.
        * platform/mac-leopard/transforms/3d/point-mapping/3d-point-mapping-2-expected.checksum: Added.
        * platform/mac-leopard/transforms/3d/point-mapping/3d-point-mapping-2-expected.png: Added.
        * platform/mac-leopard/transforms/3d/point-mapping/3d-point-mapping-coplanar-expected.checksum: Added.
        * platform/mac-leopard/transforms/3d/point-mapping/3d-point-mapping-coplanar-expected.png: Added.
        * platform/mac-leopard/transforms/3d/point-mapping/3d-point-mapping-deep-expected.checksum: Added.
        * platform/mac-leopard/transforms/3d/point-mapping/3d-point-mapping-deep-expected.png: Added.
        * platform/mac-leopard/transforms/3d/point-mapping/3d-point-mapping-expected.checksum: Added.
        * platform/mac-leopard/transforms/3d/point-mapping/3d-point-mapping-expected.png: Added.
        * platform/mac-leopard/transforms/3d/point-mapping/3d-point-mapping-origins-expected.checksum: Added.
        * platform/mac-leopard/transforms/3d/point-mapping/3d-point-mapping-origins-expected.png: Added.
        * platform/mac-leopard/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.checksum: Added.
        * platform/mac-leopard/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.png: Added.
        * platform/mac-leopard/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.checksum: Added.
        * platform/mac-leopard/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.png: Added.

        * platform/mac-tiger/fast/media/mq-transform-02-expected.checksum: Renamed from LayoutTests/platform/mac-leopard/fast/media/mq-transform-02-expected.checksum.
        * platform/mac-tiger/fast/media/mq-transform-02-expected.png: Renamed from LayoutTests/platform/mac-leopard/fast/media/mq-transform-02-expected.png.
        * platform/mac-tiger/fast/media/mq-transform-02-expected.txt: Renamed from LayoutTests/platform/mac-leopard/fast/media/mq-transform-02-expected.txt.
        * platform/mac-tiger/fast/media/mq-transform-03-expected.checksum: Renamed from LayoutTests/platform/mac-leopard/fast/media/mq-transform-03-expected.checksum.
        * platform/mac-tiger/fast/media/mq-transform-03-expected.png: Renamed from LayoutTests/platform/mac-leopard/fast/media/mq-transform-03-expected.png.
        * platform/mac-tiger/fast/media/mq-transform-03-expected.txt: Renamed from LayoutTests/platform/mac-leopard/fast/media/mq-transform-03-expected.txt.
        Fix the media query results for leopard, which now supports 3d transforms. Move the 3d-disabled results
        to the Tiger directory.

2009-07-10  Daniel Bates  <dbates@intudata.com>

        Reviewed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=26921

        Tests protection against HTML entities encoded attacks.

        * http/tests/security/xssAuditor/inline-event-HTML-entities-expected.txt: Added.
        * http/tests/security/xssAuditor/inline-event-HTML-entities.html: Added.
        * http/tests/security/xssAuditor/javascript-link-HTML-entities-control-char-expected.txt: Added.
        * http/tests/security/xssAuditor/javascript-link-HTML-entities-control-char.html: Added.
        * http/tests/security/xssAuditor/javascript-link-HTML-entities-expected.txt: Added.
        * http/tests/security/xssAuditor/javascript-link-HTML-entities-named-expected.txt: Added.
        * http/tests/security/xssAuditor/javascript-link-HTML-entities-named.html: Added.
        * http/tests/security/xssAuditor/javascript-link-HTML-entities-null-char-expected.txt: Added.
        * http/tests/security/xssAuditor/javascript-link-HTML-entities-null-char.html: Added.
        * http/tests/security/xssAuditor/javascript-link-HTML-entities.html: Added.
        * http/tests/security/xssAuditor/link-onclick-entities-expected.txt: Added.
        * http/tests/security/xssAuditor/link-onclick-entities.html: Added.
        * http/tests/security/xssAuditor/script-tag-entities-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-entities.html: Added.
        * http/tests/security/xssAuditor/script-tag-with-source-entities-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-with-source-entities.html: Added.

2009-07-10  Daniel Bates  <dbates@intudata.com>

        Reviewed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=27151

        Tests prevention of JavaScript URLs that contain null- and non-null control characters.

        * http/tests/security/xssAuditor/javascript-link-control-char-expected.txt: Added.
        * http/tests/security/xssAuditor/javascript-link-control-char.html: Added.
        * http/tests/security/xssAuditor/javascript-link-expected.txt: Added.
        * http/tests/security/xssAuditor/javascript-link-null-char-expected.txt: Added.
        * http/tests/security/xssAuditor/javascript-link-null-char.html: Added.
        * http/tests/security/xssAuditor/javascript-link.html: Added.
        * http/tests/security/xssAuditor/resources/echo-intertag-click-and-notify.pl: Added.

2009-07-10  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Skip tests in the Gtk port that
        - are dependent on eventSender
        - require platform-specific results
        - regressed (with links to the regression bug report)
        - failing (due to missing/incomplete implementation)

        * platform/gtk/Skipped:

2009-07-10  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Simon Fraser.

        <rdar://problem/7049066>.
        Update media tests for new SnowLeopard controller layout.

        * platform/mac/media/controls-after-reload-expected.txt:
        * platform/mac/media/controls-styling-expected.txt:
        * platform/mac/media/video-empty-source-expected.txt:
        * platform/mac/media/video-zoom-controls-expected.txt:

2009-07-10  Peter Kasting  <pkasting@google.com>

        https://bugs.webkit.org/show_bug.cgi?id=19562
        Disable a failing layout test caused by the patch for this bug until
        I have time to determine that the obvious fix is correct.

        * fast/dom/domListEnumeration.html: Removed.
        * fast/dom/domListEnumeration.html-disabled: Copied from LayoutTests/fast/dom/domListEnumeration.html.

2009-07-10  Michelangelo De Simone  <micdesim@gmail.com>

        Reviewed by Adele Peterson.

        https://bugs.webkit.org/show_bug.cgi?id=19562
        Minimal test case for ValidityState; more tests are going to be added
        along with specific validation routines.

        * fast/forms/ValidityState-001-expected.txt: Added.
        * fast/forms/ValidityState-001.html: Added.

2009-07-10  Simon Hausmann  <hausmann@webkit.org>

        No Review, just re-ordering Qt DRT skip list.

        Moved skipped crash tests to the crash section.

        * platform/qt/Skipped:

2009-07-10  Dirk Pranke  <dpranke@chromium.org>

        Reviewed by Darin Adler.

        Changing the test string from a platform-dependent file:/// to a more
        generic http://.

        https://bugs.webkit.org/show_bug.cgi?id=27138

        * fast/dom/anchor-toString-expected.txt:
        * fast/dom/anchor-toString.html:

2009-07-10  Simon Hausmann  <hausmann@webkit.org>

        No Review, just skipping a new test for Qt DRT.

        Skip fast/forms/slider-delete-while-dragging-thumb.html due to missing eventSender
        bits & pieces.

        * platform/qt/Skipped:

2009-07-10  Dan Bernstein  <mitz@apple.com>

        Reviewed by Simon Fraser.

        - test for https://bugs.webkit.org/show_bug.cgi?id=27137
          <rdar://problem/7043124> REGRESSION (r44311): Reproducible crash due
          to infinite recursion into FrameLoader::gotoAnchor() ->
          FrameView::layout()

        * fast/loader/goto-anchor-infinite-layout-expected.txt: Added.
        * fast/loader/goto-anchor-infinite-layout.html: Added.

2009-07-09  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Holger Freyther.

        Re-enabled dom/xhtml/level2/html/HTMLBaseElement0{1,2} for the Qt DRT,
        as there's now a cross-platform result and it passes.

        * platform/qt/Skipped:
        * platform/qt/dom/xhtml/level2/html/HTMLBaseElement01-expected.txt: Removed.
        * platform/qt/dom/xhtml/level2/html/HTMLBaseElement02-expected.txt: Removed.

2009-07-08  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Holger Freyther.

        https://bugs.webkit.org/show_bug.cgi?id=27108

        Remove fast/loader/frame-creation-removal.html from the skip list, it
        passes now.

        * platform/qt/Skipped:

2009-07-08  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Holger Freyther.

        https://bugs.webkit.org/show_bug.cgi?id=27109

        Remove various tests from the Qt skip list that previously failed
        due to DRT side-effects.

        * platform/qt/Skipped:

2009-07-09  Oliver Hunt  <oliver@apple.com>

        Reviewed by Maciej Stachowiak.

        Bug 27142 - canPlayType() should return empty string for unsupported content
        <https://bugs.webkit.org/show_bug.cgi?id=27142>

        Update test to check for the empty string rather than "no"        

        * media/video-can-play-type-expected.txt:
        * media/video-can-play-type.html:

2009-07-09  Roland Steiner  <rolandsteiner@google.com>

        Reviewed by Maciej Stachowiak.

        Test proper parsing of HTML5 <rp> and <rt> tags.
        Both tags are optional if followed by another <rp>/<rt> tag.
        
        See also https://bugs.webkit.org/show_bug.cgi?id=26985

        * fast/ruby: Added.
        * fast/ruby/parse-rp-expected.txt: Added.
        * fast/ruby/parse-rp.html: Added.

2009-07-09  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Darin Adler.
        
        REGRESSION: crash in edge cases of floating point parsing.
        <rdar://problem/7044458>
        https://bugs.webkit.org/show_bug.cgi?id=27110
        
        Test cases for both JavaScript and CSS use of dtoa.

        * fast/css/number-parsing-crash-2-expected.txt: Added.
        * fast/css/number-parsing-crash-2.html: Added.
        * fast/css/number-parsing-crash-expected.txt: Added.
        * fast/css/number-parsing-crash.html: Added.
        * fast/js/number-parsing-crash-expected.txt: Added.
        * fast/js/number-parsing-crash.html: Added.
        * fast/js/resources/number-parsing-crash.js: Added.

2009-07-09  Drew Wilson  <atwilson@google.com>

        Reviewed by Alexey Proskuryakov.

        https://bugs.webkit.org/show_bug.cgi?id=26903

        Turned on CHANNEL_MESSAGING by default, re-enabled the various tests, and updated expected results.

        * fast/dom/Window/window-properties-expected.txt:
        * fast/dom/constructors-cached-navigate-expected.txt:
        * fast/events/message-channel-gc-2.html: Renamed from LayoutTests/fast/events/message-channel-gc-2.html-disabled.
        * fast/events/message-channel-gc-3.html: Renamed from LayoutTests/fast/events/message-channel-gc-3.html-disabled.
        * fast/events/message-channel-gc-4.html: Renamed from LayoutTests/fast/events/message-channel-gc-4.html-disabled.
        * fast/events/message-channel-gc.html: Renamed from LayoutTests/fast/events/message-channel-gc.html-disabled.
        * fast/events/message-channel-listener-circular-ownership.html: Renamed from LayoutTests/fast/events/message-channel-listener-circular-ownership.html-disabled.
        * fast/events/message-port-clone.html: Renamed from LayoutTests/fast/events/message-port-clone.html-disabled.
        * fast/events/message-port-constructor-for-deleted-document.html: Renamed from LayoutTests/fast/events/message-port-constructor-for-deleted-document.html-disabled.
        * fast/events/message-port-deleted-document.html: Renamed from LayoutTests/fast/events/message-port-deleted-document.html-disabled.
        * fast/events/message-port-deleted-frame.html: Renamed from LayoutTests/fast/events/message-port-deleted-frame.html-disabled.
        * fast/events/message-port-inactive-document.html: Renamed from LayoutTests/fast/events/message-port-inactive-document.html-disabled.
        * fast/events/message-port-no-wrapper.html: Renamed from LayoutTests/fast/events/message-port-no-wrapper.html-disabled.
        * fast/events/message-port.html: Renamed from LayoutTests/fast/events/message-port.html-disabled.
        * fast/js/global-constructors-expected.txt:
        * fast/workers/worker-cloneport.html: Renamed from LayoutTests/fast/workers/worker-cloneport.html-disabled.
        * fast/workers/worker-messageport-gc.html: Renamed from LayoutTests/fast/workers/worker-messageport-gc.html-disabled.
        * fast/workers/worker-messageport.html: Renamed from LayoutTests/fast/workers/worker-messageport.html-disabled.
        * http/tests/security/MessagePort/event-listener-context.html: Renamed from LayoutTests/http/tests/security/MessagePort/event-listener-context.html-disabled

2009-07-09  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Simon Fraser.

        Full page zoom breaks remaining and elapsed time display in the
        <video> controller.
        https://bugs.webkit.org/show_bug.cgi?id=27123

        * media/video-zoom-controls.html: Remove duplicated code.
        * platform/mac-leopard/media/video-zoom-controls-expected.txt: Copied from LayoutTests/platform/mac/media/video-zoom-controls-expected.txt.
        * platform/mac-snowleopard/Skipped:
        * platform/mac/media/video-zoom-controls-expected.checksum: Removed. The test is not reliable for pixel test.
        * platform/mac/media/video-zoom-controls-expected.png: Removed.
        * platform/mac/media/video-zoom-controls-expected.txt: Updated

2009-07-09  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        Test for 
        Bug 27130 - Need to implement ARIA role="toolbar"
        https://bugs.webkit.org/show_bug.cgi?id=27130

        * platform/mac/accessibility/aria-toolbar-expected.txt: Added.
        * platform/mac/accessibility/aria-toolbar.html: Added.

2009-07-09  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        Test for
        Bug 27129 - AX: possible assertion for a non-native image in accessibility
        https://bugs.webkit.org/show_bug.cgi?id=27129

        * accessibility/non-native-image-crash-expected.txt: Added.
        * accessibility/non-native-image-crash.html: Added.

2009-07-09  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Adele Peterson.

        Possible crashes when mouse clicks not dispatched because range input destroyed while 
        thumb is being dragged (e.g. scrub to end of movie)
        <rdar://problem/7037494> 
        https://bugs.webkit.org/show_bug.cgi?id=27101

        Tests deleting a control while capturing mouse events.

        * fast/forms/search-delete-while-cancel-button-clicked-expected.txt: Added.
        * fast/forms/search-delete-while-cancel-button-clicked.html: Added.
        * fast/forms/slider-delete-while-dragging-thumb-expected.txt: Added.
        * fast/forms/slider-delete-while-dragging-thumb.html: Added.
        * media/audio-delete-while-slider-thumb-clicked-expected.txt: Added.
        * media/audio-delete-while-slider-thumb-clicked.html: Added.
        * media/audio-delete-while-step-button-clicked-expected.txt: Added.
        * media/audio-delete-while-step-button-clicked.html: Added.

        * platform/mac-snowleopard/Skipped:
            Skip the new media controller tests until <rdar://problem/6502936> is fixed.

2009-07-08  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Simon Fraser.

        Make sure we can click outside the slider thumb and start dragging.
        https://bugs.webkit.org/show_bug.cgi?id=26229

        Along with the events chain, test that the slider value are correct,
        and that clicking outside the slider and dragging works as expected.

        * fast/forms/slider-mouse-events-expected.txt:
        * fast/forms/slider-mouse-events.html:

2009-07-08  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Simon Fraser.

        https://bugs.webkit.org/show_bug.cgi?id=27100

        Reenable media/video-empty-source.html. Test the controls
        look when there is no src specified in a <video> element.

        * platform/mac-leopard/media/video-empty-source-expected.checksum:
        * platform/mac-leopard/media/video-empty-source-expected.png:
        * platform/mac-leopard/media/video-empty-source-expected.txt: Copied from LayoutTests/platform/mac/media/video-empty-source-expected.txt.
        * platform/mac-snowleopard/Skipped:
        * platform/mac/media/video-empty-source-expected.checksum:
        * platform/mac/media/video-empty-source-expected.png:
        * platform/mac/media/video-empty-source-expected.txt:

2009-07-08  Simon Hausmann  <hausmann@webkit.org>

        Rubber-stamped by Holger Freyther a while ago.

        Add two more tests to the Qt skip list due to missing DRT
        features.

        * platform/qt/Skipped:

2009-07-08  Daniel Bates  <dbates@intudata.com>

        Reviewed by Adam Barth.
        
        https://bugs.webkit.org/show_bug.cgi?id=26918
        
        Tests prevention of injected HTML Base tag.

        * http/tests/security/xssAuditor/base-href-control-char-expected.txt: Added.
        * http/tests/security/xssAuditor/base-href-control-char.html: Added.
        * http/tests/security/xssAuditor/base-href-expected.txt: Added.
        * http/tests/security/xssAuditor/base-href-null-char-expected.txt: Added.
        * http/tests/security/xssAuditor/base-href-null-char.html: Added.
        * http/tests/security/xssAuditor/base-href-safe-expected.txt: Added.
        * http/tests/security/xssAuditor/base-href-safe.html: Added.
        * http/tests/security/xssAuditor/base-href-safe2-expected.txt: Added.
        * http/tests/security/xssAuditor/base-href-safe2.html: Added.
        * http/tests/security/xssAuditor/base-href-scheme-relative-expected.txt: Added.
        * http/tests/security/xssAuditor/base-href-scheme-relative.html: Added.
        * http/tests/security/xssAuditor/base-href.html: Added.
        * http/tests/security/xssAuditor/resources/base-href: Added.
        * http/tests/security/xssAuditor/resources/base-href/base-href-safe2.html: Added.
        * http/tests/security/xssAuditor/resources/base-href/really-safe-script.js: Added.
        * http/tests/security/xssAuditor/resources/base-href/safe-script.js: Added.
        * http/tests/security/xssAuditor/resources/echo-head-base-href.pl: Added.
        * http/tests/security/xssAuditor/resources/safe-script.js: Added.

2009-07-08  Daniel Bates  <dbates@intudata.com>

        Reviewed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=27071

        Tests that HTTP parameters that contain null- and non-null-control characters are 
        properly handled by XSSAuditor.
        
        * http/tests/security/xssAuditor/anchor-url-dom-write-location-inline-event-null-char-expected.txt: Added.
        * http/tests/security/xssAuditor/anchor-url-dom-write-location-inline-event-null-char.html: Added.
        * http/tests/security/xssAuditor/embed-tag-control-char-expected.txt: Added.
        * http/tests/security/xssAuditor/embed-tag-control-char.html: Added.
        * http/tests/security/xssAuditor/embed-tag-expected.txt: Added.
        * http/tests/security/xssAuditor/embed-tag-null-char-expected.txt: Added.
        * http/tests/security/xssAuditor/embed-tag-null-char.html: Added.
        * http/tests/security/xssAuditor/embed-tag.html: Added.
        * http/tests/security/xssAuditor/link-onclick-control-char-expected.txt: Added.
        * http/tests/security/xssAuditor/link-onclick-control-char.html: Added.
        * http/tests/security/xssAuditor/link-onclick-null-char-expected.txt: Added.
        * http/tests/security/xssAuditor/link-onclick-null-char.html: Added.
        * http/tests/security/xssAuditor/object-embed-tag-control-char-expected.txt: Added.
        * http/tests/security/xssAuditor/object-embed-tag-control-char.html: Added.
        * http/tests/security/xssAuditor/object-embed-tag-expected.txt: Added.
        * http/tests/security/xssAuditor/object-embed-tag-null-char-expected.txt: Added.
        * http/tests/security/xssAuditor/object-embed-tag-null-char.html: Added.
        * http/tests/security/xssAuditor/object-embed-tag.html: Added.
        * http/tests/security/xssAuditor/object-tag-expected.txt: Added.
        * http/tests/security/xssAuditor/object-tag.html: Added.
        * http/tests/security/xssAuditor/resources/execGetURL.swf: Added.
        * http/tests/security/xssAuditor/script-tag-post-control-char-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-post-control-char.html: Added.
        * http/tests/security/xssAuditor/script-tag-post-null-char-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-post-null-char.html: Added.
        * http/tests/security/xssAuditor/script-tag-with-source-control-char-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-with-source-control-char.html: Added.
        * http/tests/security/xssAuditor/script-tag-with-source-null-char-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-with-source-null-char.html: Added.

2009-07-08  Pierre d'Herbemont  <pdherbemont@apple.com>

        Rubber-stamped by Simon Fraser.

        Fix the media/controls-after-reload.html and media/controls-styling.html
        on windows. (Needed a line at end of file)

        * platform/win/media/controls-after-reload-expected.txt:
        * platform/win/media/controls-styling-expected.txt:

2009-07-08  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Simon Fraser.

        Add special test results for media/controls-after-reload.html
        and media/controls-styling.html on Windows.

        * platform/win/media/controls-after-reload-expected.txt: Added.
        * platform/win/media/controls-styling-expected.txt: Added.

2009-07-08  Pierre d'Herbemont  <pdherbemont@apple.com>

        Fix the Leopard test result for media/controls-after-reload.txt.

        * platform/mac-leopard/media/controls-after-reload-expected.txt:

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

        Reviewed by Dan Bernstein.

        -webkit-perspective should be a Length
        https://bugs.webkit.org/show_bug.cgi?id=27066

        * platform/mac/transforms/3d/general/perspective-non-layer-expected.checksum: Added.
        * platform/mac/transforms/3d/general/perspective-non-layer-expected.png: Added.
        * platform/mac/transforms/3d/general/perspective-non-layer-expected.txt: Added.
        Add missing results for existing test.
        
        * platform/mac/transforms/3d/general/perspective-units-expected.checksum: Added.
        * platform/mac/transforms/3d/general/perspective-units-expected.png: Added.
        * platform/mac/transforms/3d/general/perspective-units-expected.txt: Added.
        * transforms/3d/general/perspective-units.html: Added.

2009-07-07  Brady Eidson  <beidson@apple.com>

        Reviewed by Mark Rowe.

        https://bugs.webkit.org/show_bug.cgi?id=27049 - In dumpBackForwardList() mode, DRT should normalize file urls.

        * fast/loader/subframe-navigate-during-main-frame-load-expected.txt: Make the results agnostic to the layout of 
          filesystem on the testing machine.

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

        Reviewed by Dan Bernstein.

        Repaint issue after layer drops out of composited mode.
        <https://bugs.webkit.org/show_bug.cgi?id=27022>

        Test for repainting on the next style change after a layer stops being composited.

        * compositing/repaint/layer-repaint-rects.html: Added.
        * platform/mac/compositing/repaint/layer-repaint-rects-expected.checksum: Added.
        * platform/mac/compositing/repaint/layer-repaint-rects-expected.png: Added.
        * platform/mac/compositing/repaint/layer-repaint-rects-expected.txt: Added.

2009-07-07  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt and Darin Adler.

        - test for https://bugs.webkit.org/show_bug.cgi?id=26963
          <rdar://problem/7030998> Reproducible crash at
          FontCache::getFontData() when a custom font is used in a pseudo-style

        * fast/css/pseudo-cache-stale.html: Added.
        * platform/mac/fast/css/pseudo-cache-stale-expected.checksum: Added.
        * platform/mac/fast/css/pseudo-cache-stale-expected.png: Added.
        * platform/mac/fast/css/pseudo-cache-stale-expected.txt: Added.

2009-07-07  Dirk Pranke  <dpranke@chromium.org>

        Reviewed by Darin Fisher.

        revise test expectations for bug 26088
        http://bugs.webkit.org/show_bug.cgi?id=26088

        generate pixel expectations, move location of generic expected file
        for the crash test.

        * fast/text/text-large-negative-letter-spacing-with-opacity-expected.txt: Copied from platform/mac/fast/text/text-large-negative-letter-spacing-with-opacity-expected.txt.
        * platform/mac/fast/text/text-large-negative-letter-spacing-with-opacity-expected.txt: Removed.
        * platform/mac/fast/text/text-letter-spacing-expected.checksum: Added.
        * platform/mac/fast/text/text-letter-spacing-expected.png: Added.

2009-07-07  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Simon Fraser.

        https://bugs.webkit.org/show_bug.cgi?id=27047

        Make sure nothing changing the src and reloading doesn't
        change the look of the controller.

        * media/controls-after-reload.html: Added.
        * platform/mac-leopard/media/controls-after-reload-expected.txt: Added.
        * platform/mac/media/controls-after-reload-expected.txt: Added.

2009-07-07  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Simon Fraser.

        Add a specific leopard result for controls-styling.html, given that it doesn't
        use the new controller look.

        * platform/mac-leopard/media/controls-styling-expected.txt: Added.

2009-07-07  Gavin Barraclough  <barraclough@apple.com>

        Reviewed by Geoff Garen.

        fast/js/global-recursion-on-full-stack.html is a little finicky.

        The test recurses down the JS stack to find the bottom (catching this with an exception),
        then tries to call a host function (document.write), switch writes new '<script>' code,
        and expects this code to be run, then expects this code to try to call 'f();' again,
        which it expects to fail, and it expects to catch that exception.  However it is possible
        that one of the earlier stages (the call to document.write, entering the interpreter to
        run the new global code) will fail, depending on exactly how much stack space was free at
        the point the last call to f() failed.

        Tweak the test to make it work.

        * fast/js/global-recursion-on-full-stack.html:

2009-07-07  Dan Bernstein  <mitz@apple.com>

        Reviewed by Simon Fraser.

        - tests for https://bugs.webkit.org/show_bug.cgi?id=27042
          <rdar://problem/7010981> Incomplete painting of newly created floats

        * fast/repaint/float-in-new-block-with-layout-delta.html: Added.
        * fast/repaint/float-new-in-block.html: Added.
        * platform/mac/fast/repaint/float-in-new-block-with-layout-delta-expected.checksum: Added.
        * platform/mac/fast/repaint/float-in-new-block-with-layout-delta-expected.png: Added.
        * platform/mac/fast/repaint/float-in-new-block-with-layout-delta-expected.txt: Added.
        * platform/mac/fast/repaint/float-new-in-block-expected.checksum: Added.
        * platform/mac/fast/repaint/float-new-in-block-expected.png: Added.
        * platform/mac/fast/repaint/float-new-in-block-expected.txt: Added.

2009-07-07  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/7024039> REGRESSION (r42158): Back-forward navigation does not work correctly on nytimes.com

        * fast/loader/resources/subframe-navigate-during-main-frame-load2.html: Added.
        * fast/loader/subframe-navigate-during-main-frame-load-expected.txt: Added.
        * fast/loader/subframe-navigate-during-main-frame-load.html: Added.

        * http/tests/navigation/javascriptlink-subframeload-expected.txt: Updated results to
          reflect the progression!
        * platform/mac/http/tests/navigation/javascriptlink-frames-expected.txt: Ditto!

        * http/tests/misc/redirect-to-about-blank.html: Add missing semi-colons.

2009-07-06  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Simon Fraser.

        Make sure overriding properties won't affect the media controller.

        * media/controls-styling.html: Added.

2009-07-07  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Gustavo Noronha.

        [GTK] textarea height property works only if other property are defined
        https://bugs.webkit.org/show_bug.cgi?id=18984

        Let WebCore handle textarea's metrics instead of readjusting it RenderthemeGtk.

        Test: fast/forms/textarea-metrics.html

        * platform/gtk/Skipped:

2009-07-07  Ben Murdoch  <benm@google.com>

        Reviewed by Antti Koivisto.

        HTML5 Database becomes locked if a transaction is in progress when the page is refreshed.
        https://bugs.webkit.org/show_bug.cgi?id=25711

        Tests fix for https://bugs.webkit.org/show_bug.cgi?id=25711, where
        web storage databases could become locked until the browser is
        shut down if the page is refreshed whilst a transaction is in
        progress.

        * storage/database-lock-after-reload-expected.txt: Added.
        * storage/database-lock-after-reload.html: Added.
        * storage/resources/database-lock-after-reload-2.html: Added.

2009-07-08  Tor Arne VestbÃÂ¸  <tor.arne.vestbo@nokia.com>

        Rubber-stamped by Simon Hausmann.

        Remove non-existing tests from the Qt skipped list.

        * platform/qt/Skipped:

2009-07-07  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Holger Freyther.

        Removed subframe-self-close.html from the Qt skip list.

        * platform/qt/Skipped:

2009-07-07  Simon Hausmann  <hausmann@webkit.org>

        Reviewed by Holger Freyther.

        Added all current failing Qt DRT tests to the skip list, for a fresh start.

        * platform/qt/Skipped:

2009-07-06  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Simon Fraser.

        <rdar://problem/7035474> Make new media controller UI default on SnowLeopard

        Disable media tests that depend on controller size/position on SnowLeopard until
        <rdar://problem/6502936> Update run-webkit-tests to deal with new media controller look
        has been fixed

        * platform/mac-snowleopard/Skipped:

2009-07-06  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by David Hyatt.

        Bug 15135: REGRESSION (r19843-r19850): Changing a flexbox's
        contents makes its container scroll to the top
        https://bugs.webkit.org/show_bug.cgi?id=15135

        Delay updateing scroll bar of descendants of flexbox until their
        positions are determined.  In this way we can prevent descendants
        of flexible boxes from changing positions of their scrollbars
        using tentative positions.

        * fast/flexbox/repaint-scrollbar-expected.txt: Added.
        * fast/flexbox/repaint-scrollbar.html: Added.
        * fast/flexbox/resources/repaint-scrollbar.js: Added.

2009-07-06  Hironori Bono  <hbono@chromium.org>

        Reviewed by Maciej Stachowiak.

        Make unconfirmed IME text affect textarea's value.
        This matches input and contentEditable elements as well
        IE and Firefox.

        This fixes https://bugs.webkit.org/show_bug.cgi?id=25061.

        Input elements would go down this code path because it
        would always get a null compositionNode from frame->editor().
        Special casing compositionNodes is wrong because we explicitly
        want unconfirmed IME input in the textarea's value (assuming we
        want to match IE and Firefox here).

        This change is originally created by Ojan Vafai <ojan@chromium.org> and
        I just changed its manual tests with an automated test on his behalf.
 
        * platform/mac/editing/input/text-control-ime-input-expected.txt: Added.
        * platform/mac/editing/input/text-control-ime-input.html: Added.

2009-07-06  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Eric Seidel.

        Fix crash when indenting in an empty table cell.
        https://bugs.webkit.org/show_bug.cgi?id=26872

        The crash is that we would call splitTreeToNode where the node
        and the nodeToSplitTo were the same node.

        * editing/execCommand/indent-empty-table-cell-expected.txt: Added.
        * editing/execCommand/indent-empty-table-cell.html: Added.

2009-07-05  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Simon Fraser.

        https://bugs.webkit.org/show_bug.cgi?id=26943

        LayoutTest showing extra transition when the first one
        is finished.

        * transitions/extra-transition-expected.txt: Added.
        * transitions/extra-transition.html: Added.
        * transitions/resources: Added.
        * transitions/resources/Aurora.jpg: Added.

2009-07-05  Simon Fraser  <simon.fraser@apple.com>

        Revert the previous commit because it broke the
        animations/transition-and-animation-1.html
        testcase.

        * transitions/extra-transition-expected.txt: Removed.
        * transitions/extra-transition.html: Removed.
        * transitions/resources/Aurora.jpg: Removed.

2009-07-05  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Simon Fraser.

        https://bugs.webkit.org/show_bug.cgi?id=26943

        LayoutTest showing extra transition when the first one
        is finished.

        * transitions/extra-transition-expected.txt: Added.
        * transitions/extra-transition.html: Added.
        * transitions/resources: Added.
        * transitions/resources/Aurora.jpg: Added.

2009-07-05  Rob Buis  <rwlbuis@gmail.com>

        Reviewed by Maciej Stachowiak.

        Test for:
        Bug 26897 - Dynamic SVG images do not display correctly
        https://bugs.webkit.org/show_bug.cgi?id=26897

        * platform/mac/svg/custom/createImageElement2-expected.checksum: Added.
        * platform/mac/svg/custom/createImageElement2-expected.png: Added.
        * platform/mac/svg/custom/createImageElement2-expected.txt: Added.
        * svg/custom/createImageElement2.xhtml: Added.

2009-07-03  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Not reviewed. Forgot to land ontimer-inline-event.html results within my last WML commit.

        * wml/ontimer-inline-event-expected.txt: Test title changed, update results.

2009-07-03  Dmitry Titov  <dimich@chromium.org>

        Reviewed by Darin Fisher.

        Increase delay in worker-terminate layout test to make it more reliable.
        https://bugs.webkit.org/show_bug.cgi?id=26917

        This test used time delay to see of terminated worker does not return
        messages (terminated). In some test conditions, the current delay (500ms)
        is too short and test fails. Move setting the delay to the end of initialization
        and increase it 2x to make test more reliable.

        * fast/workers/worker-terminate.html:

2009-07-03  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Skip tests that require expected results that Gtk doesn't have.

        * platform/gtk/Skipped:

2009-07-02  Pierre d'Herbemont  <pdherbemont@apple.com>

        Added the test result of r45511 for platform/mac.

        * platform/mac/media/controls-strict-expected.txt: Added.

2009-07-02  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Simon Fraser. 

        https://bugs.webkit.org/show_bug.cgi?id=26939

        Media controller is rendered badly at http://www.mozilla.com/en-US/firefox/video/firefox-3.5.html

        Test that the controller renders correctly in strict mode as well.

        * media/controls-strict.html: Added.
        * platform/mac/media/controls-strict-mode-expected.txt: Added.

2009-07-02  David Hyatt  <hyatt@apple.com>

        Reviewed by Mark Rowe.

        Land new results from my change to make replaced elements no longer be overflow:hidden by
        default.  This affected plaintext dumping, which is clearly a bug in and of itself.  For now
        I am just updating the results and will file a followup bug about the fact that text dumping actually
        does something different with overflow on replaced elements (when it clearly should not).

        * fast/block/float/crash-replaced-display-block-expected.txt:
        * fast/dom/Range/acid3-surround-contents-expected.txt:
        * fast/dom/object-embed-plugin-scripting-expected.txt:
        * fast/parser/badentity-expected.txt:
        * http/tests/security/local-video-poster-from-remote-expected.txt:

2009-07-02  Brady Eidson  <beidson@apple.com>

        Rubberstamped by John Sullivan.

        Add Tiger-specific results for these tests.

        * platform/mac-tiger/Skipped:
        * platform/mac-tiger/platform/mac/fast/loader/file-url-mimetypes-2-expected.txt: Added.
        * platform/mac-tiger/platform/mac/fast/loader/file-url-mimetypes-3-expected.txt: Added.
        * platform/mac-tiger/platform/mac/fast/loader/file-url-mimetypes-expected.txt:

2009-07-02  Brady Eidson  <beidson@apple.com>

        Skip the correct test names.

        * platform/mac-tiger/Skipped:

2009-07-02  Brady Eidson  <beidson@apple.com>

        Rubberstamped by Sam Weinig

        Split up file-url-mimetypes.html into 3 tests to avoid any risk of timing out on slower machines.

        * platform/mac/fast/loader/file-url-mimetypes-2-expected.txt: Added.
        * platform/mac/fast/loader/file-url-mimetypes-2.html: Copied from platform/mac/fast/loader/file-url-mimetypes.html.
        * platform/mac/fast/loader/file-url-mimetypes-3-expected.txt: Added.
        * platform/mac/fast/loader/file-url-mimetypes-3.html: Copied from platform/mac/fast/loader/file-url-mimetypes.html.
        * platform/mac/fast/loader/file-url-mimetypes-expected.txt:
        * platform/mac/fast/loader/file-url-mimetypes.html:
        * platform/mac-tiger/Skipped:

2009-07-02  Brady Eidson  <beidson@apple.com>

        Resolve failing Tiger layout test until I can fix it.

        * platform/mac-tiger/Skipped:

2009-07-02  Dirk Pranke  <dpranke@chromium.org>

        Reviewed by Darin Fisher.

        Fix https://bugs.webkit.org/show_bug.cgi?id=26088 - Chromium crashes
        when a text run with a large negative letter-spacing attribute is
        layered on top of an opaque div. The patch makes TransparencyWin.cpp
        more resilient to failures.

        * fast/text/text-large-negative-letter-spacing-with-opacity.html: Added.
        * fast/text/text-letter-spacing.html: Added.
        * platform/mac/fast/text/text-large-negative-letter-spacing-with-opacity-expected.txt: Added.
        * platform/mac/fast/text/text-letter-spacing-expected.checksum: Added.
        * platform/mac/fast/text/text-letter-spacing-expected.png: Added.
        * platform/mac/fast/text/text-letter-spacing-expected.txt: Added.

2009-07-02  David Hyatt  <hyatt@apple.com>

        Reviewed by Simon Fraser.

        Test cases for bug 22119, clicks in scrollbar of transformed element don't work.

        * platform/mac/fast/forms/listbox-scrollbar-hit-test-expected.txt: Added.
        * platform/mac/fast/forms/listbox-scrollbar-hit-test.html: Added.
        * platform/mac/fast/overflow/overflow-scrollbar-hit-test-expected.txt: Added.
        * platform/mac/fast/overflow/overflow-scrollbar-hit-test.html: Added.

2009-07-02  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt and Simon Fraser.

        - test for part of <rdar://problem/6933052> SPOD playing video in a div
          with a box shadow

        * fast/box-shadow/transform-fringing.html: Added.
        * platform/mac/fast/box-shadow/transform-fringing-expected.checksum: Added.
        * platform/mac/fast/box-shadow/transform-fringing-expected.png: Added.
        * platform/mac/fast/box-shadow/transform-fringing-expected.txt: Added.

2009-07-02  Brady Eidson  <beidson@apple.com>

        Rubberstamped by Sam Weinig.

        Add more sample files for extensions we should know the MIME types for.

        * platform/mac/fast/loader/file-url-mimetypes.html:
        * platform/mac/fast/loader/file-url-mimetypes-expected.txt:
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-3fr.3fr: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-aaf.aaf: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ada.ada: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-adb.adb: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ads.ads: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-app.app: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-applescript.applescript: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-arw.arw: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-as.as: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-aupreset.aupreset: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-c++.c++: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-c.c: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-caf.caf: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-cc.cc: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-cp.cp: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-cpp.cpp: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-cr2.cr2: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-cxx.cxx: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-defs.defs: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-dfont.dfont: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-dlyan.dlyan: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-dng.dng: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-dylib.dylib: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-exp.exp: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-exr.exr: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-f.f: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-f77.f77: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-f90.f90: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-f95.f95: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-fff.fff: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-for.for: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-h++.h++: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-h.h: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-hh.hh: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-hp.hp: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-hpp.hpp: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-hxx.hxx: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-icc.icc: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-icm.icm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-icns.icns: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-jav.jav: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-java.java: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-jfx.jfx: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-l.l: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-lid.lid: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-lm.lm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-lmm.lmm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-lpp.lpp: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-lxx.lxx: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-m.m: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-m4a.m4a: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-m4b.m4b: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-m4v.m4v: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-mig.mig: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-mm.mm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-mos.mos: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-mrw.mrw: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-nef.nef: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-o.o: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-omf.omf: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-orf.orf: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-pas.pas: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-pch++.pch++: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-pch.pch: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-pef.pef: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-pf.pf: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-pfa.pfa: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-pfb.pfb: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-plist.plist: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-r.r: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-raf.raf: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-raw.raw: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-s.s: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-scpt.scpt: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-sd2.sd2: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-sf2.sf2: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-srf.srf: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-suit.suit: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-tbz.tbz: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-tbz2.tbz2: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ttc.ttc: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ttf.ttf: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ul.ul: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ulaw.ulaw: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ulw.ulw: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-war.war: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-y.y: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ym.ym: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ymm.ymm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ypp.ypp: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-yxx.yxx: Added.

2009-07-02  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Simon Fraser.

        <rdar://problem/6518119>

        Delay dumping the render tree because the media controller may not be done with
        layout immediately.

        * media/video-empty-source.html:

2009-07-02  Antonio Gomes   <antonio.gomes@openbossa.org>

        Reviewed by Simon Hausmann.

        https://bugs.webkit.org/show_bug.cgi?id=26896

        Updated computed-style-expected.txt and computed-style-without-renderer-expected.txt
        files according to the default font size value (13) set in DumpRenderTree/qt/DumpRenderTree.cpp .

        * platform/qt/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/qt/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:

2009-07-01  Xan Lopez  <xlopez@igalia.com>

        Disable accessibility tests until we have the accessibility
        controller.

        * platform/gtk/Skipped:

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

        Reviewed by Dan Bernstein.

        <video> fails to show on http://camendesign.com/code/video_for_everybody
        <rdar://problem/7026010> 
        https://bugs.webkit.org/show_bug.cgi?id=26919
        
        Testcase for changing the root layer size, and ensuring that all
        the compositing layers are correctly repositioned.

        * compositing/geometry/root-layer-update.html: Added.
        * platform/mac/compositing/geometry/root-layer-update-expected.checksum: Added.
        * platform/mac/compositing/geometry/root-layer-update-expected.png: Added.
        * platform/mac/compositing/geometry/root-layer-update-expected.txt: Added.

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

        Reviewed by Dan Bernstein
        
        <rdar://problem/7026010> <video> fails to show on http://camendesign.com/code/video_for_everybody

        Test for outline width affecting compositing layer positions.
        
        * compositing/geometry/outline-change.html: Added.
        * platform/mac/compositing/geometry/outline-change-expected.checksum: Added.
        * platform/mac/compositing/geometry/outline-change-expected.png: Added.
        * platform/mac/compositing/geometry/outline-change-expected.txt: Added.

2009-07-01  Daniel Bates  <dbates@intudata.com>

        Reviewed by Adam Barth.
        
        https://bugs.webkit.org/show_bug.cgi?id=26899
        
        Tests that XSSAuditor prevents injected scripts that contain control characters.

        * http/tests/security/xssAuditor/script-tag-control-char-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-control-char.html: Added.
        * http/tests/security/xssAuditor/script-tag-null-char-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-null-char.html: Added.

2009-07-01  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Oliver Hunt.

        Test for Bug 26909: aria-label needs to be supported
        https://bugs.webkit.org/show_bug.cgi?id=26909

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

2009-07-01  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Beth Dakin.

        Tests for Bug 26900: AX: Manual spell check with Command-; does not bring up suggestions
        https://bugs.webkit.org/show_bug.cgi?id=26900

        * accessibility/editable-webarea-context-menu-point-expected.txt: Added.
        * accessibility/editable-webarea-context-menu-point.html: Added.

2009-07-01  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by George Staikos.

        Fixes: https://bugs.webkit.org/show_bug.cgi?id=26885

        Add new WML testcases covering onenterforward/ontimer support.

        * wml/onenterforward-event-expected.txt: Added.
        * wml/onenterforward-event.html: Added.
        * wml/onenterforward-inline-event-expected.txt: Added.
        * wml/onenterforward-inline-event.html: Added.
        * wml/ontimer-event-expected.txt: Added.
        * wml/ontimer-event.html: Added.
        * wml/resources/onenterforward-event.js: Added.
        (setupTestDocument):
        (prepareTest):
        (executeTest):
        * wml/resources/onenterforward-event.wml: Added.
        * wml/resources/onenterforward-inline-event.js: Added.
        (setupTestDocument):
        (prepareTest):
        (executeTest):
        * wml/resources/onenterforward-inline-event.wml: Added.
        * wml/resources/ontimer-event.js: Added.
        (setupTestDocument):
        (prepareTest):
        (executeTest):
        * wml/resources/ontimer-event.wml: Added.
        * wml/resources/ontimer-inline-event.js:

2009-07-01  David Hyatt  <hyatt@apple.com>

        Reviewed by Simon Fraser.

        Add layout test for being able to set attributes on dcol elements.
        
        * fast/dom/HTMLDataGridElement/DataGridColumns-dom-attributes-expected.txt: Added.
        * fast/dom/HTMLDataGridElement/DataGridColumns-dom-attributes.html: Added.

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

        Reviewed by Dimitri Glazkov.
        
        Add some missing pixel results for compositing tests.

        * platform/mac/compositing/layers-inside-overflow-scroll-expected.checksum: Added.
        * platform/mac/compositing/layers-inside-overflow-scroll-expected.png: Added.
        * platform/mac/compositing/overflow/overflow-scroll-expected.checksum: Added.
        * platform/mac/compositing/overflow/overflow-scroll-expected.png: Added.

2009-07-01  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by George Staikos.

        Fixes: https://bugs.webkit.org/show_bug.cgi?id=26884

        WMLTestCase.js relies on timing-dependant hacks, making it difficult to predict results on slower machines.
        Fix by rewriting and simplifying the testing procedure, which contained unnecessary quirks working around older WML bugs.

        * wml/resources/WMLTestCase.js:
        (createWMLTestCase.iframeElement.onload):
        (createWMLTestCase):
        (startTest):

2009-07-01  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by Holger Freyther.

        Apply same cleanup to WML testcases living in http/tests/wml/. Forgot about them in my last commit.

        * http/tests/wml/resources/go-task-get-method-accept-charset.js:
        (setupTestDocument):
        * http/tests/wml/resources/go-task-get-method.js:
        (setupTestDocument):
        * http/tests/wml/resources/go-task-post-method-accept-charset.js:
        (setupTestDocument):
        * http/tests/wml/resources/go-task-post-method.js:
        (setupTestDocument):
        * http/tests/wml/resources/post-data-to-server.js:
        (setupTestDocument):

2009-07-01  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by Holger Freyther.

        Slightly cleanup some WML testcases:
        Use "anchorElement.textContent = '...'" instead of "anchorElement.appendChild(document.createTextNode('...'))"

        * wml/resources/go-task-get-method-external-deck-with-href.js:
        (setupTestDocument):
        * wml/resources/go-task-get-method-external-deck.js:
        (setupTestDocument):
        * wml/resources/go-task-get-method-same-deck.js:
        (setupTestDocument):
        * wml/resources/input-format.js:
        (setupTestDocument):
        * wml/resources/variable-reference-invalid-character.js:
        (setupTestDocument):
        * wml/resources/variable-reference-valid.js:
        (setupTestDocument):

2009-06-30  Xan Lopez  <xlopez@igalia.com>

        Disable test using eventSender.

        * platform/gtk/Skipped:

2009-06-30  Xan Lopez  <xlopez@igalia.com>

        Disable new tests until we enable the accessibility controller.

        * platform/gtk/Skipped:

2009-06-30  Simon Fraser  <simon.fraser@apple.com>

        Rubber-stamped by Dan Bernstein.
        
        Update compositing pixel results now that DRT dumps them correctly.
        
        * compositing/overflow/overflow-scroll.html:
        Fixed typo in this testcase.
        
        * platform/mac/compositing/overflow/ancestor-overflow-expected.checksum:
        * platform/mac/compositing/overflow/ancestor-overflow-expected.png:
        * platform/mac/compositing/overflow/overflow-positioning-expected.checksum:
        * platform/mac/compositing/overflow/overflow-positioning-expected.png:
        * platform/mac/compositing/overflow/overflow-scroll-expected.txt:
        * platform/mac/compositing/overflow/parent-overflow-expected.checksum:
        * platform/mac/compositing/overflow/parent-overflow-expected.png:
        * platform/mac/compositing/repaint/content-into-overflow-expected.checksum:
        * platform/mac/compositing/repaint/content-into-overflow-expected.png:
        * platform/mac/compositing/repaint/overflow-into-content-expected.checksum:
        * platform/mac/compositing/repaint/overflow-into-content-expected.png:

2009-06-30  Eric Seidel  <eric@webkit.org>

        No review, reverting r45396.  (George Staikos agrees the change was wrong.)
        http://trac.webkit.org/changeset/45396

        * fast/css/getComputedStyle/computed-style-font-family-expected.txt:

2009-06-30  David Hyatt  <hyatt@apple.com>

        Reviewed by Beth Dakin.

        Add layout test for https://bugs.webkit.org/show_bug.cgi?id=26858.

        * fast/dom/HTMLDataGridElement/DataGridColumns-dom-expected.txt: Added.
        * fast/dom/HTMLDataGridElement/DataGridColumns-dom.html: Added.

2009-06-30  Antonio Gomes   <antonio.gomes@openbossa.org>

        Reviewed by Simon Hausmann.

        Updated LayoutTests/fast/css/getComputedStyle/computed-style-font-family-expected.txt
        according to the default font size value set in WebKit/qt/Api/qwebsettings.cpp (in
        this case '14').

        * fast/css/getComputedStyle/computed-style-font-family-expected.txt:

2009-06-30  Antonio Gomes   <antonio.gomes@openbossa.org>

        Reviewed by Simon Hausmann.

        Updated LayoutTests/platform/qt/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt
        to some newly cross-platform CSS properties.

        * platform/qt/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:

2009-06-30  David Levin  <levin@chromium.org>

        Reviewed by Oliver Hunt.

        Make media/video-document-types pass again.  It broke when the
        call to waitUntilDone was accidently made asynchronous in r45378.

        * media/video-document-types.html:

2009-06-30  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dave Hyatt, Dan Bernstein.

        <rdar://problem/6191676> Redraw issues scrolling overflow:scroll div with compositing
        
        Testcase for various configurations of compositing and positioning with overflow.

        * compositing/overflow/overflow-scroll.html: Added.
        * platform/mac/compositing/overflow/overflow-scroll-expected.txt: Added.

2009-06-30  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Dan Bernstein.

        https://bugs.webkit.org/show_bug.cgi?id=26764
        Uncaught NOT_FOUND_ERR: DOMException 8 loading empty text file

        * fast/parser/empty-text-resource-expected.txt: Added.
        * fast/parser/empty-text-resource.html: Added.

2009-06-30  Drew Wilson  <atwilson@google.com>

        Reviewed by David Levin.

        <https://bugs.webkit.org/show_bug.cgi?id=25435>

        Added tests for sending MessagePorts to/from workers.

        * fast/workers/resources/worker-cloneport.js: Added.
        (onmessage):
        * fast/workers/resources/worker-messageport.js: Added.
        (onmessage):
        (pingBack):
        * fast/workers/worker-cloneport-expected.txt: Added.
        * fast/workers/worker-cloneport.html-disabled: Added.
        Tests for cloning a port while messages are sent from another thread.
        * fast/workers/worker-messageport-expected.txt: Added.
        * fast/workers/worker-messageport.html-disabled: Added.
        General tests for sending messages to workers via message ports.
        * fast/workers/worker-messageport-gc-expected.txt: Added.
        * fast/workers/worker-messageport-gc.html-disabled: Added.
        Tests to ensure Workers don't shut down when reachable only via MessagePorts.

2009-06-30  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Simon Fraser.
        
        <rdar://problem/7019799> Slow loading MediaDocument can fall back to plug-in unnecessarily
        
        Don't test iframe immediately, switch over from <video> to <embed> may not have
        happend when the document 'load' event fires.

        * media/video-document-types.html:

2009-06-30  Xan Lopez  <xlopez@igalia.com>

        Skip new editing tests.

        They are failing because we don't have a dumpEditingCallbacks
        implementation.

        * platform/gtk/Skipped:

2009-06-29  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        <rdar://problem/7016214> JSON.parse fails to parse valid JSON with most Unicode characters
        <https://bugs.webkit.org/show_bug.cgi?id=26802>

        Add test of unicode parsing in JSON.

        * fast/js/JSON-parse-expected.txt:
        * fast/js/resources/JSON-parse.js:
        (createTests.result):
        (createTests):

2009-06-29  Antonio Gomes   <antonio.gomes@openbossa.org>

        Reviewed by Simon Hausmann.

        Updated LayoutTests/platform/qt/fast/css/getComputedStyle/computed-style-expected.txt to some newly cross-platform CSS properties.

        The file has not been updated for a while.

        * platform/win/fast/css/getComputedStyle/computed-style-expected.txt:

2009-06-29  Sam Weinig  <sam@webkit.org>

        Reviewed by Dave Hyatt.

        Update for the change in DataGridDataSource API.

        * fast/dom/HTMLDataGridElement/DataGridDataSource-basic-expected.txt:
        * fast/dom/HTMLDataGridElement/DataGridDataSource-basic.html:

2009-06-29  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Simon Fraser  <simon.fraser@apple.com>.

        https://bugs.webkit.org/show_bug.cgi?id=26706

        Added tests for -webkit-text-fill-color and
        text-shadow, since these go through different
        paths.

        * transitions/override-transition-crash-expected.txt:
        * transitions/override-transition-crash.html:

2009-06-29  David Hyatt  <hyatt@apple.com>

        Reviewed by Mark Rowe.

        Update layout tests for addition of HTMLDataGridCellElement constructor.

        * fast/dom/Window/window-properties-expected.txt:
        * fast/js/global-constructors-expected.txt:

2009-06-29  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by Adam Treat.

        Rename go-task-animation.* to ontimer-inline-event.* to reflect what it really tests.

        * wml/go-task-animation-expected.txt: Removed.
        * wml/go-task-animation.html: Removed.
        * wml/ontimer-inline-event-expected.txt: Copied from wml/go-task-animation-expected.txt.
        * wml/ontimer-inline-event.html: Copied from wml/go-task-animation.html.
        * wml/resources/animation.wml: Removed.
        * wml/resources/go-task-animation.js: Removed.
        * wml/resources/ontimer-inline-event.js: Copied from wml/resources/go-task-animation.js.
        * wml/resources/ontimer-inline-event.wml: Copied from wml/resources/animation.wml.

2009-06-29  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by Adam Treat.

        Fixes: https://bugs.webkit.org/show_bug.cgi?id=26246

        Implement most WML specific <select> element features.
        Add two tests covering most select/variable related functionality.

        * http/tests/wml/post-data-to-server-expected.txt: Added.
        * http/tests/wml/post-data-to-server.html: Added.
        * http/tests/wml/resources/dumpVariables.cgi: Added.
        * http/tests/wml/resources/post-data-to-server.js: Added.
        (setupTestDocument):
        (sendTextToControl):
        (prepareTest):
        (executeTest):
        * wml/resources/WMLTestCase.js:
        (createWMLTestCase.iframeElement.onload):
        (createWMLTestCase):
        (delayExecuteTest):
        * wml/resources/select-element-variables.js: Added.
        (setupTestDocument):
        (prepareTest):
        (executeTest):
        * wml/select-element-variables-expected.txt: Added.
        * wml/select-element-variables.html: Added.

2009-06-28  Dan Bernstein  <mitz@apple.com>

        Reviewed by Simon Fraser.

        - add a test case for https://bugs.webkit.org/show_bug.cgi?id=26783
          <rdar://problem/7014543> REGRESSION (r45296): Subfolders not displayed
          in MobileMe iDisk Web App

        * fast/dom/Element/scrollWidth-expected.txt:
        * fast/dom/Element/scrollWidth.html:

2009-06-27  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=26780
        
        Testcases for compositing and self-painting layers (for which we use
        video to make an element composited while being in the normal flow),
        and for moving layers inside an overflow:scroll div.

        * compositing/layers-inside-overflow-scroll.html: Added.
        * compositing/resources/video.mp4: Added.
        * compositing/self-painting-layers.html: Added.
        * platform/mac/compositing/layers-inside-overflow-scroll-expected.txt: Added.
        * platform/mac/compositing/self-painting-layers-expected.txt: Added.

2009-06-28  John Abd-El-Malek  <jam@chromium.org>

        https://bugs.webkit.org/show_bug.cgi?id=15457

        Layout tests to ensure that "src" paramater is added when it's missing
        but "data" is present.

        * plugins/netscape-plugin-map-data-to-src-expected.txt: Added.
        * plugins/netscape-plugin-map-data-to-src.html: Added.

2009-06-28  Eric Seidel  <eric@webkit.org>

        No review.  Just updating test results Kevin seems to have missed.

        Test failure started with:
        http://trac.webkit.org/changeset/45287
        The new results definitely look better.

        * fast/profiler/profile-with-no-title-expected.txt:

2009-06-27  Ryosuke Niwa  <rniwa@google.com>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=26762

        Clean up for IndentOutdentCommand::indentRegion, and solved most of problems related to the bug 21712.
        https://bugs.webkit.org/show_bug.cgi?id=21712
        
        The following test cases are intended for 21712, but included here
        since this patch already solved a lot of problems.

        * editing/execCommand/indent-nested-lists-1-expected.txt: Added.
        * editing/execCommand/indent-nested-lists-1.html: Added.
        * editing/execCommand/indent-nested-lists-2-expected.txt: Added.
        * editing/execCommand/indent-nested-lists-2.html: Added.
        * editing/execCommand/indent-nested-lists-3-expected.txt: Added.
        * editing/execCommand/indent-nested-lists-3.html: Added.
        * editing/execCommand/indent-nested-lists-4-expected.txt: Added.
        * editing/execCommand/indent-nested-lists-4.html: Added.
        * editing/execCommand/indent-nested-lists-5-expected.txt: Added.
        * editing/execCommand/indent-nested-lists-5.html: Added.
        * editing/execCommand/indent-nested-lists-6-expected.txt: Added.
        * editing/execCommand/indent-nested-lists-6.html: Added.
        * editing/execCommand/indent-nested-lists-7-expected.txt: Added.
        * editing/execCommand/indent-nested-lists-7.html: Added.
        * editing/execCommand/outdent-nested-lists-1-expected.txt: Added.
        * editing/execCommand/outdent-nested-lists-1.html: Added.
        * editing/execCommand/outdent-nested-lists-2-expected.txt: Added.
        * editing/execCommand/outdent-nested-lists-2.html: Added.
        * editing/execCommand/outdent-nested-lists-3-expected.txt: Added.
        * editing/execCommand/outdent-nested-lists-3.html: Added.
        * editing/execCommand/outdent-nested-lists-4-expected.txt: Added.
        * editing/execCommand/outdent-nested-lists-4.html: Added.

2009-06-27  Daniel Bates  <dbates@intudata.com>

        Reviewed by Adam Barth.
        
        https://bugs.webkit.org/show_bug.cgi?id=26776
        
        More tests for the XSSAuditor.

        * http/tests/security/xssAuditor/anchor-url-dom-write-location-expected.txt: Added.
        * http/tests/security/xssAuditor/anchor-url-dom-write-location-inline-event-expected.txt: Added.
        * http/tests/security/xssAuditor/anchor-url-dom-write-location-inline-event.html: Added.
        * http/tests/security/xssAuditor/anchor-url-dom-write-location-javascript-URL-expected.txt: Added.
        * http/tests/security/xssAuditor/anchor-url-dom-write-location-javascript-URL.html: Added.
        * http/tests/security/xssAuditor/anchor-url-dom-write-location.html: Added.
        * http/tests/security/xssAuditor/dom-write-URL-expected.txt: Added.
        * http/tests/security/xssAuditor/dom-write-URL.html: Added.
        * http/tests/security/xssAuditor/dom-write-innerHTML-expected.txt: Added.
        * http/tests/security/xssAuditor/dom-write-innerHTML.html: Added.
        * http/tests/security/xssAuditor/dom-write-location-expected.txt: Added.
        * http/tests/security/xssAuditor/dom-write-location-inline-event-expected.txt: Added.
        * http/tests/security/xssAuditor/dom-write-location-inline-event.html: Added.
        * http/tests/security/xssAuditor/dom-write-location-javascript-URL-expected.txt: Added.
        * http/tests/security/xssAuditor/dom-write-location-javascript-URL.html: Added.
        * http/tests/security/xssAuditor/dom-write-location.html: Added.
        * http/tests/security/xssAuditor/faux-script1-expected.txt: Added.
        * http/tests/security/xssAuditor/faux-script1.html: Added.
        * http/tests/security/xssAuditor/faux-script2-expected.txt: Added.
        * http/tests/security/xssAuditor/faux-script2.html: Added.
        * http/tests/security/xssAuditor/faux-script3-expected.txt: Added.
        * http/tests/security/xssAuditor/faux-script3.html: Added.
        * http/tests/security/xssAuditor/get-from-iframe-expected.txt: Added.
        * http/tests/security/xssAuditor/get-from-iframe.html: Added.
        * http/tests/security/xssAuditor/malformed-HTML-expected.txt: Added.
        * http/tests/security/xssAuditor/malformed-HTML.html: Added.
        * http/tests/security/xssAuditor/post-from-iframe-expected.txt: Added.
        * http/tests/security/xssAuditor/post-from-iframe.html: Added.
        * http/tests/security/xssAuditor/resources/anchor-url-dom-write-location-click.html: Added.
        * http/tests/security/xssAuditor/resources/echo-dom-write-URL.html: Added.
        * http/tests/security/xssAuditor/resources/echo-dom-write-innerHTML.html: Added.
        * http/tests/security/xssAuditor/resources/echo-dom-write-location.html: Added.
        * http/tests/security/xssAuditor/resources/utilities.js: Added.
        (sendRequestFromIFrame):

2009-06-27  Daniel Bates  <dbates@intudata.com>

        Reviewed by Adam Barth.

        Tests for https://bugs.webkit.org/show_bug.cgi?id=26708

        Tests prevention of injected scripts with scheme relative paths, iFrame JavaScript URLs, 
        and UTF-7 encoding.

        * http/tests/security/xssAuditor/http-equiv-utf-7-encoded-expected.txt: Added.
        * http/tests/security/xssAuditor/http-equiv-utf-7-encoded.html: Added.
        * http/tests/security/xssAuditor/iframe-javascript-url-expected.txt: Added.
        * http/tests/security/xssAuditor/iframe-javascript-url.html: Added.
        * http/tests/security/xssAuditor/resources/echo-intertag-default-encode.pl: Added.
        * http/tests/security/xssAuditor/script-tag-utf-7-encoded-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-utf-7-encoded.html: Added.
        * http/tests/security/xssAuditor/script-tag-with-source-relative-scheme-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-with-source-relative-scheme.html: Added.

2009-06-27  Oliver Hunt  <oliver@apple.com>

        Reviewed by Maciej Stachowiak.

        Bug 26771: Canvas is incorrectly tainted when drawing from a video element that uses <source> elements

        Add test to protect against incorrectly tainting the canvas.

        * media/video-canvas-source-expected.txt: Added.
        * media/video-canvas-source.html: Added.

2009-06-26  Alexey Proskuryakov  <ap@webkit.org>

        Updating Tiger results for a recently modified test.

        * platform/mac-tiger/fast/encoding/idn-security-expected.txt:

2009-06-26  Dan Bernstein  <mitz@apple.com>

        Reviewed by Oliver Hunt.

        * fast/dom/Element/scrollWidth-expected.txt: Added.
        * fast/dom/Element/scrollWidth.html: Added.

2009-06-26  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Oliver Hunt.

        Tests for Bug 26725: aria-hidden, aria-disabled, aria-readonly need to be implemented

        * accessibility/aria-disabled-expected.txt: Added.
        * accessibility/aria-disabled.html: Added.
        * accessibility/aria-hidden-expected.txt: Added.
        * accessibility/aria-hidden.html: Added.
        * accessibility/aria-readonly-expected.txt: Added.
        * accessibility/aria-readonly.html: Added.

2009-06-26  Brady Eidson  <beidson@apple.com>

        OMG.

        * platform/mac-tiger/fast/loader/file-url-mimetypes-expected.txt: Removed.
        * platform/mac-tiger/platform: Added.
        * platform/mac-tiger/platform/mac: Added.
        * platform/mac-tiger/platform/mac/fast: Added.
        * platform/mac-tiger/platform/mac/fast/loader: Added.
        * platform/mac-tiger/platform/mac/fast/loader/file-url-mimetypes-expected.txt: Copied from platform/mac-tiger/fast/loader/file-url-mimetypes-expected.txt.

2009-06-26  Brady Eidson  <beidson@apple.com>

        Fix Tiger results for the new mime type layout test.

        * platform/mac-tiger/fast/loader: Added.
        * platform/mac-tiger/fast/loader/file-url-mimetypes-expected.txt: Added.

2009-06-26  Jessie Berlin  <jberlin@apple.com>

        Reviewed by Mark Rowe.
        
        Fix the build bots.

        * editing/selection/drag-start-event-client-x-y-expected.txt:

2009-06-26  Brady Eidson  <beidson@apple.com>

        Step 2 (new Mac results)

        * platform/mac/fast/images/favicon-as-image-expected.checksum: Added.
        * platform/mac/fast/images/favicon-as-image-expected.png: Added.
        * platform/mac/fast/images/favicon-as-image-expected.txt: Added.

2009-06-26  Brady Eidson  <beidson@apple.com>

        1st step of fixing the layout test I broke on Mac platforms.

        * platform/mac-leopard/fast/images/favicon-as-image-expected.checksum: Removed.
        * platform/mac-leopard/fast/images/favicon-as-image-expected.png: Removed.
        * platform/mac-leopard/fast/images/favicon-as-image-expected.txt: Removed.
        * platform/mac-tiger/fast/images/favicon-as-image-expected.checksum: Removed.
        * platform/mac-tiger/fast/images/favicon-as-image-expected.png: Removed.
        * platform/mac-tiger/fast/images/favicon-as-image-expected.txt: Removed.
        * platform/mac/fast/images/favicon-as-image-expected.checksum: Removed.
        * platform/mac/fast/images/favicon-as-image-expected.png: Removed.
        * platform/mac/fast/images/favicon-as-image-expected.txt: Removed.
        * platform/win/fast/images: Added.
        * platform/win/fast/images/favicon-as-image-expected.checksum: Copied from platform/mac/fast/images/favicon-as-image-expected.checksum.
        * platform/win/fast/images/favicon-as-image-expected.png: Copied from platform/mac/fast/images/favicon-as-image-expected.png.
        * platform/win/fast/images/favicon-as-image-expected.txt: Copied from platform/mac/fast/images/favicon-as-image-expected.txt.

2009-06-26  Mark Rowe  <mrowe@apple.com>

        Land updated results after the test change.

        * editing/selection/user-drag-element-and-user-select-none-expected.txt:

2009-06-26  Jessie Berlin  <jberlin@apple.com>

        Reviewed by Mark Rowe.
        
        Layout test for making sure the client X Y coordinates of the event
        in a dragstart handler are correct.
        
        https://bugs.webkit.org/show_bug.cgi?id=26723

        * editing/selection/drag-start-event-client-x-y-expected.txt: Added.
        * editing/selection/drag-start-event-client-x-y.html: Added.

2009-06-26  Mark Rowe  <mrowe@apple.com>

        Reviewed by Sam Weinig.

        Fix user-drag-element-and-user-select-none.html to not rely on a bug in Mac DRT.

        * editing/selection/user-drag-element-and-user-select-none.html:

2009-06-25  Brady Eidson  <beidson@apple.com>

        Reviewed by Sam Weinig

        <rdar://problem/6961578> REGRESSION (r43511): Opening .fdf files from Acrobat Professional fails

        Add a test file for each of file extensions we think WebKit on Mac should know the MIME type for.

        * platform/mac/fast/loader/file-url-mimetypes-expected.txt: Added.
        * platform/mac/fast/loader/file-url-mimetypes.html: Added.
        * platform/mac/fast/loader/resources: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-3g2.3g2: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-3gp.3gp: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-3gp2.3gp2: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-3gpp.3gpp: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-Z.Z: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ac3.ac3: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ai.ai: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-aif.aif: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-aifc.aifc: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-aiff.aiff: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-asc.asc: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-asf.asf: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-asx.asx: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-au.au: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-avi.avi: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-bcpio.bcpio: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-bin.bin: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-bmp.bmp: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-bz.bz: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-bz2.bz2: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-cdf.cdf: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-class.class: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-cpgz.cpgz: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-cpio.cpio: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-cpt.cpt: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-crw.crw: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-csh.csh: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-css.css: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-dcr.dcr: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-dif.dif: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-dir.dir: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-dll.dll: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-dls.dls: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-dmg.dmg: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-dms.dms: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-doc.doc: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-docm.docm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-docx.docx: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-dotm.dotm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-dotx.dotx: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-dv.dv: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-dvi.dvi: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-dxr.dxr: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-efx.efx: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-eps.eps: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-etx.etx: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-exe.exe: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ez.ez: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-fdf.fdf: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-fla.fla: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-fp.fp: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-fp2.fp2: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-fp3.fp3: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-fp4.fp4: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-fp5.fp5: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-fp6.fp6: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-fpx.fpx: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-gif.gif: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-gtar.gtar: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-gz.gz: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-gzip.gzip: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-hdf.hdf: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-hqx.hqx: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-htm.htm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-html.html: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ice.ice: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ico.ico: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ics.ics: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ief.ief: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-iges.iges: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-igs.igs: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-iso.iso: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-j2k.j2k: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-jar.jar: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-javascript.javascript: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-jhtml.jhtml: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-jnlp.jnlp: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-jp2.jp2: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-jpe.jpe: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-jpeg.jpeg: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-jpf.jpf: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-jpg.jpg: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-jpx.jpx: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-js.js: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-jscript.jscript: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-kar.kar: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-latex.latex: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-lha.lha: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-lzh.lzh: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-m15.m15: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-m2v.m2v: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-m3u.m3u: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-m4p.m4p: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-m75.m75: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-mac.mac: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-man.man: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-me.me: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-mesh.mesh: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-mid.mid: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-midi.midi: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-mif.mif: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-mov.mov: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-movie.movie: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-mp2.mp2: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-mp3.mp3: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-mp4.mp4: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-mpe.mpe: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-mpeg.mpeg: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-mpg.mpg: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-mpga.mpga: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ms.ms: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-msh.msh: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-mxu.mxu: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-nc.nc: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-oda.oda: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-odc.odc: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-odf.odf: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-odg.odg: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-odi.odi: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-odm.odm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-odp.odp: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ods.ods: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-odt.odt: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-otc.otc: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-otf.otf: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-otg.otg: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-oth.oth: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-oti.oti: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-otp.otp: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ots.ots: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ott.ott: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-pbm.pbm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-pct.pct: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-pcx.pcx: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-pdb.pdb: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-pdf.pdf: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-pgm.pgm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-pgn.pgn: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ph3.ph3: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ph4.ph4: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-php.php: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-php3.php3: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-php4.php4: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-phtml.phtml: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-pic.pic: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-pict.pict: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-pl.pl: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-pls.pls: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-pm.pm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-png.png: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-pnm.pnm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-pnt.pnt: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-pntg.pntg: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-potm.potm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-potx.potx: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ppm.ppm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ppsm.ppsm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ppsx.ppsx: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ppt.ppt: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-pptm.pptm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-pptx.pptx: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ps.ps: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-psd.psd: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-py.py: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-qif.qif: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-qt.qt: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-qti.qti: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-qtif.qtif: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-qtz.qtz: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ra.ra: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ram.ram: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ras.ras: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-rb.rb: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-rbw.rbw: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-rgb.rgb: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-rm.rm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-roff.roff: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-rpm.rpm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-rtf.rtf: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-rtx.rtx: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-sgi.sgi: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-sgm.sgm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-sgml.sgml: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-sh.sh: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-shar.shar: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-shtm.shtm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-shtml.shtml: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-silo.silo: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-sit.sit: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-sitx.sitx: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-skd.skd: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-skm.skm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-skp.skp: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-skt.skt: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-smf.smf: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-smi.smi: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-smil.smil: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-snd.snd: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-so.so: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-spl.spl: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-src.src: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-sv4cpio.sv4cpio: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-sv4crc.sv4crc: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-svg.svg: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-svgz.svgz: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-swf.swf: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-t.t: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-tar.tar: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-targa.targa: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-tcl.tcl: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-tex.tex: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-texi.texi: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-texinfo.texinfo: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-text.text: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-tga.tga: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-tgz.tgz: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-tif.tif: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-tiff.tiff: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-torrent.torrent: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-tr.tr: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-tsv.tsv: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-txt.txt: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-ustar.ustar: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-vcard.vcard: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-vcd.vcd: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-vcf.vcf: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-vfw.vfw: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-vrml.vrml: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-wav.wav: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-wave.wave: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-wax.wax: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-wbmp.wbmp: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-wbxml.wbxml: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-webarchive.webarchive: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-wm.wm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-wma.wma: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-wmd.wmd: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-wml.wml: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-wmlc.wmlc: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-wmls.wmls: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-wmlsc.wmlsc: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-wmp.wmp: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-wmv.wmv: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-wmx.wmx: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-wrl.wrl: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-wvx.wvx: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-xbm.xbm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-xdp.xdp: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-xfd.xfd: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-xfdf.xfdf: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-xht.xht: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-xhtm.xhtm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-xhtml.xhtml: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-xls.xls: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-xlsb.xlsb: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-xlsm.xlsm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-xlsx.xlsx: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-xltm.xltm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-xltx.xltx: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-xml.xml: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-xpm.xpm: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-xsl.xsl: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-xwd.xwd: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-xyz.xyz: Added.
        * platform/mac/fast/loader/resources/mimeTypeExamples/example-zip.zip: Added.

2009-06-25  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Simon Fraser.

        https://bugs.webkit.org/show_bug.cgi?id=26659

        Update layout tests since the fullscreen button no longer has a renderer.

        * platform/mac/fast/layers/video-layer-expected.txt:
        * platform/mac/media/audio-controls-rendering-expected.txt:
        * platform/mac/media/video-controls-rendering-expected.txt:
        * platform/mac/media/video-display-toggle-expected.txt:
        * platform/mac/media/video-empty-source-expected.txt:
        * platform/mac/media/video-zoom-controls-expected.txt:

2009-06-26  Adele Peterson  <adele@apple.com>

        Reviewed by Darin Adler.

        Test for <rdar://problem/7000796>
        REGRESSION(34681): Breaking up quoted text makes new, unquoted text blue after certain steps; repros with some messages

        * editing/inserting/break-blockquote-after-delete.html: Added.
        * platform/mac/editing/inserting/break-blockquote-after-delete-expected.checksum: Added.
        * platform/mac/editing/inserting/break-blockquote-after-delete-expected.png: Added.
        * platform/mac/editing/inserting/break-blockquote-after-delete-expected.txt: Added.

2009-06-26  Yongjun Zhang  <yongjun.zhang@nokia.com>

        Reviewed by Eric Seidel.

        Bug 20303: [Qt] Key events are not working in frames.

        Add a layout test to test the event is sent to the right sub-frame.

        * platform/qt/fast/events/event-sender-keydown-frame-expected.txt: Added.
        * platform/qt/fast/events/event-sender-keydown-frame.html: Added.

2009-06-26  Rob Buis  <rwlbuis@gmail.com>

        Reviewed by Eric Seidel.

        Test for:
        https://bugs.webkit.org/show_bug.cgi?id=26682
        Bug 26682: It should be possible to add image to SVG DOM programmatically (using JavaScript)

        * platform/mac/svg/custom/createImageElement-expected.checksum: Added
        * platform/mac/svg/custom/createImageElement-expected.png: Added
        * platform/mac/svg/custom/createImageElement-expected.txt: Added.
        * svg/custom/createImageElement.svg: Added.

2009-06-26  Takeshi Yoshino  <tyoshino@google.com>

        Reviewed by Timothy Hatcher.

        Bug 26156: In view-source mode, always render the contents using HTMLViewSourceDocument
        https://bugs.webkit.org/show_bug.cgi?id=26156

        When in view-source mode, render the contents using HTMLViewSourceDocument
        regardless it's applicable for any plugin or not.

        Chromium tells WebCore to render the contents of specified URL when
        view-source: prefix is added to the URL. But currently, DOMImplementation
        ignores inViewSourceMode() when the MIME type is indicating that the contents
        are neither texts nor HTML family documents.

        For example, we can check the contents of asf file without launching media
        player. Rendering contents for view-source:-specified input is not what user
        expects.

        http://code.google.com/p/chromium/issues/detail?id=10545

        I want to fix this issue by this patch. IMHO, regardless of this Chromium
        specific issue, I think we should force use of HTMLViewSourceDocument when
        inViewSourceMode() is specified.

        * fast/frames/resources/viewsource-fake-image-file.png: Added.
        * fast/frames/viewsource-on-image-file.html: Added.
        * platform/mac/fast/frames/viewsource-on-image-file-expected.txt: Added.

2009-06-26  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Sam Weinig.

        <rdar://problem/6651201> Update lookalike character list.

        * fast/encoding/idn-security-expected.txt:
        * fast/encoding/idn-security.html:

2009-06-26  Jungshik Shin  <jshin@chromium.org>

        Reviewed by Eric Seidel.

        Add an additional test for bug 23786 (mistreatment of CR/LF 
        as zero-width characters in Chromium port).  Tests using Bidi text were
        added when the fix was checked in. Without the patch, Chromium used
        to fail the same way with LTR complex scripts as well. (that is,
        CR and LF were treated as zero-width space). To prevent a potential
        regression in the future, a new test with Hindi (a LTR complex script)
        is added. 

        The expected results for Mac and Windows are added while this test
        is added to Skipped file for gtk. I guess this test just needs
        a new test result generated on gtk.

        https://bugs.webkit.org/show_bug.cgi?id=25698

        * fast/text/international/hindi-whitespace.html: Added.
        * platform/gtk/Skipped:
        * platform/mac/fast/text/international/hindi-whitespace-expected.checksum: Added.
        * platform/mac/fast/text/international/hindi-whitespace-expected.png: Added.
        * platform/mac/fast/text/international/hindi-whitespace-expected.txt: Added.
        * platform/win/fast/text/international/hindi-whitespace-expected.checksum: Added.
        * platform/win/fast/text/international/hindi-whitespace-expected.png: Added.
        * platform/win/fast/text/international/hindi-whitespace-expected.txt: Added.

2009-06-25  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=26681
        <rdar://problem/7003461> Problem updating applicationCache when server returns 304

        * http/tests/appcache/resources/uncacheable-resource.php: Added.
        * http/tests/appcache/resources/versioned-manifest.php:
        Added the kind of resource that was causing trouble.

2009-06-25  Ryosuke Niwa  <rniwa@google.com>

        Reviewed by Eric Seidel.

        The following pixel tests have been converted into dumpastext tests. This
        fixes the bug 26336 partially.

        * editing/execCommand/remove-list-1-expected.txt: Added.
        * editing/execCommand/remove-list-1.html:
        * editing/execCommand/remove-list-items-expected.txt: Added.
        * editing/execCommand/remove-list-items.html:
        * platform/mac/editing/execCommand/remove-list-1-expected.checksum: Removed.
        * platform/mac/editing/execCommand/remove-list-1-expected.png: Removed.
        * platform/mac/editing/execCommand/remove-list-1-expected.txt: Removed.
        * platform/mac/editing/execCommand/remove-list-items-expected.checksum: Removed.
        * platform/mac/editing/execCommand/remove-list-items-expected.png: Removed.
        * platform/mac/editing/execCommand/remove-list-items-expected.txt: Removed.
        * platform/qt/editing/execCommand/remove-list-1-expected.txt: Removed.
        * platform/qt/editing/execCommand/remove-list-items-expected.txt: Removed.

2009-06-25  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Oliver Hunt.
        
        <rdar://problem/6990481>
        
        Handle perspective computation on non-layer objects.

        * transforms/3d/general/perspective-non-layer.html: Added.

2009-06-25  Simon Fraser  <simon.fraser@apple.com>

        Rubber-stamped by Eric Seidel
        
        Update this test after the video controller changes.

        * platform/mac/fast/layers/video-layer-expected.txt:

2009-06-25  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Not reviewed. Skip another failing test due to lack of eventSender impl.

        * platform/gtk/Skipped:

2009-06-25  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Not reviewed. Skip failing gtk tests due to missing DRT features.

        * platform/gtk/Skipped:

2009-06-25  Simon Fraser  <simon.fraser@apple.com>

        Rubber-stamped by Dan Bernstein.
        
        Add Windows-specific test results, since Windows does not have
        3d transforms enabled.

        * platform/win/fast/media/mq-transform-02-expected.txt: Copied from LayoutTests/platform/mac-leopard/fast/media/mq-transform-02-expected.txt.
        * platform/win/fast/media/mq-transform-03-expected.txt: Copied from LayoutTests/platform/mac-leopard/fast/media/mq-transform-03-expected.txt.

2009-06-25  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=26653

        After the change to -webkit-box usage for controller bar, we need to
        update the media layout tests.

        * platform/mac/media/audio-controls-rendering-expected.txt:
        * platform/mac/media/video-controls-rendering-expected.txt:
        * platform/mac/media/video-display-toggle-expected.txt:
        * platform/mac/media/video-empty-source-expected.txt:
        * platform/mac/media/video-zoom-controls-expected.txt:

2009-06-25  Ryosuke Niwa  <rniwa@google.com>

        Reviewed by Eric Seidel.

        The following pixel tests have been converted into dumpastext tests. This
        fixes the bug 26336 partially.

        * editing/execCommand/5432254-2-expected.txt: Added.
        * editing/execCommand/5432254-2.html:
        * editing/execCommand/5700414-1-expected.txt: Added.
        * editing/execCommand/5700414-1.html:
        * editing/execCommand/5700414-2-expected.txt: Added.
        * editing/execCommand/5700414-2.html:
        * platform/mac/editing/execCommand/5432254-2-expected.checksum: Removed.
        * platform/mac/editing/execCommand/5432254-2-expected.png: Removed.
        * platform/mac/editing/execCommand/5432254-2-expected.txt: Removed.
        * platform/mac/editing/execCommand/5700414-1-expected.checksum: Removed.
        * platform/mac/editing/execCommand/5700414-1-expected.png: Removed.
        * platform/mac/editing/execCommand/5700414-1-expected.txt: Removed.
        * platform/mac/editing/execCommand/5700414-2-expected.checksum: Removed.
        * platform/mac/editing/execCommand/5700414-2-expected.png: Removed.
        * platform/mac/editing/execCommand/5700414-2-expected.txt: Removed.
        * platform/qt/editing/execCommand/5432254-2-expected.txt: Removed.

2009-06-25  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=26436

        Windows Chromium bug fix: save context of destination canvas in
        TransparencyWin::compositeTextComposite() before the function
        modifies the context.

        * fast/canvas/resources/translate-text.js: Added.
        (description.pixelValueAt):
        (pixelToString):
        (pixelShouldBe):
        * fast/canvas/translate-text-expected.txt: Added.
        * fast/canvas/translate-text.html: Added.

2009-06-25  Takeshi Yoshino  <tyoshino@google.com>

        Reviewed by David Levin.

        Bug 26207: Rebaseline the expected image for fast/forms/select-style.html for Mac.
        https://bugs.webkit.org/show_bug.cgi?id=26207

        Replace the expected image for fast/forms/select-style-expected.html for
        Mac which need to be rebaselined due to r43903
        (http://trac.webkit.org/changeset/43903).

        * platform/mac/fast/forms/select-style-expected.png:

2009-06-25  John Gregg  <johnnyg@google.com>

        Reviewed by Sam Weinig.

        Bug 23721: Changing dropdown's selectedIndex within onchange handler fires another onchange
        https://bugs.webkit.org/show_bug.cgi?id=23721

        Check for unnecessary calls to onchange in response to script
        actions.

        * fast/forms/select-script-onchange-expected.txt: Added.
        * fast/forms/select-script-onchange.html: Added.

2009-06-25  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - test for https://bugs.webkit.org/show_bug.cgi?id=26671
          <rdar://problem/7001880> Safari 4.0 crashes in
          WebCore::DOMTimer::fired()

        * fast/dom/style-sheet-candidate-remove-unrendered-document-expected.txt: Added.
        * fast/dom/style-sheet-candidate-remove-unrendered-document.html: Added.

2009-06-25  Eric Seidel  <eric@webkit.org>

        No review, just skipping a new test.

        Skip new test on platforms missing eventSender.beginDragWithFiles
        Test: http/tests/security/clipboard/clipboard-file-access.html
        https://bugs.webkit.org/show_bug.cgi?id=25916

        * platform/gtk/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:

2009-06-24  Dan Bernstein  <mitz@apple.com>

        Reviewed by Simon Fraser.

        - test for <rdar://problem/7001817> REGRESSION (r41902): Base position
          track at UCSC Genome Browser doesn't work because image map prevents
          img from hit-testing

        * fast/replaced/image-map-2-expected.txt: Added.
        * fast/replaced/image-map-2.html: Added.

2009-06-24  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Oliver Hunt.

        Tests for Bug 26668: AX: need a way to retrieve the language for an element.

        * accessibility/language-attribute-expected.txt: Added.
        * accessibility/language-attribute.html: Added.

2009-06-24  Oliver Hunt  <oliver@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/6940519> REGRESSION (Safari 4 Public Beta - TOT): google.com/adplanner shows blank page instead of site details in "basic research'

        Add test cases for excessively large comma expressions.

        * fast/js/excessive-comma-usage-expected.txt: Added.
        * fast/js/excessive-comma-usage.html: Added.
        * fast/js/resources/excessive-comma-usage.js: Added.

2009-06-24  Rob Buis  <rwlbuis@gmail.com>

        Reviewed by Eric Seidel.

        Tests for:
        https://bugs.webkit.org/show_bug.cgi?id=26392
        Bug 26392: In html, modification of xlink:href of an newly inserted svg image does not work.
        https://bugs.webkit.org/show_bug.cgi?id=26328
        Bug 26328: changing href attribute of svg images dows not work when changing display attribute as well

        * platform/mac/svg/custom/js-update-image-and-display-expected.checksum: Added
        * platform/mac/svg/custom/js-update-image-and-display-expected.png: Added
        * platform/mac/svg/custom/js-update-image-and-display-expected.txt: Added
        * svg/custom/js-update-image-and-display.svg: Added.
        * platform/mac/svg/custom/js-update-image-and-display2-expected.checksum: Added
        * platform/mac/svg/custom/js-update-image-and-display2-expected.png: Added
        * platform/mac/svg/custom/js-update-image-and-display2-expected.txt: Added
        * svg/custom/js-update-image-and-display2.svg: Added.
        * platform/mac/svg/custom/js-update-image-and-display3-expected.checksum: Added
        * platform/mac/svg/custom/js-update-image-and-display3-expected.png: Added
        * platform/mac/svg/custom/js-update-image-and-display3-expected.txt: Added
        * svg/custom/js-update-image-and-display3.svg: Added.

2009-06-24  Dan Bernstein  <mitz@apple.com>

        - add Windows results for one new test and one test
          whose Mac results changed recently

        * platform/win/fast/forms/search-vertical-alignment-expected.checksum: Added.
        * platform/win/fast/forms/search-vertical-alignment-expected.png: Added.
        * platform/win/fast/forms/search-vertical-alignment-expected.txt: Added.
        * platform/win/fast/replaced/width100percent-searchfield-expected.checksum: Added.
        * platform/win/fast/replaced/width100percent-searchfield-expected.png: Added.
        * platform/win/fast/replaced/width100percent-searchfield-expected.txt:

2009-06-24  David Hyatt  <hyatt@apple.com>

        Reviewed by Sam Weinig.

        Add test for https://bugs.webkit.org/show_bug.cgi?id=26687.

        * fast/dom/HTMLDataGridElement/DataGridColumns-basic-expected.txt: Added.
        * fast/dom/HTMLDataGridElement/DataGridColumns-basic.html: Added.

2009-06-24  Oliver Hunt  <oliver@apple.com>

        Reviewed by NOBODY (Disabling failing test!).

        * media/video-canvas.html-disabled: Renamed from LayoutTests/media/video-canvas.html.

2009-06-24  Eric Seidel  <eric@webkit.org>

        Reviewed by Mark Rowe.

        Add new drag tests to the Skipped lists for non-mac platforms.

        Skipped tests:
        fast/events/drag-to-navigate.html
        fast/events/prevent-drag-to-navigate.html

        * platform/gtk/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:

2009-06-24  Oliver Hunt  <oliver@apple.com>

        Reviewed by NOBODY (attempted test fix).

        Attempting to make test more reliable.

        * media/video-canvas.html:

2009-06-05  Eric Seidel  <eric@webkit.org>

        Reviewed by Oliver Hunt.

        https://bugs.webkit.org/show_bug.cgi?id=25922
        Fix dropEffect = "none" to work as expected.

        * fast/events/drag-to-navigate-expected.txt: Copied from LayoutTests/editing/selection/doubleclick-whitespace-img-crash-expected.txt.
        * fast/events/drag-to-navigate.html: Added.
        * fast/events/prevent-drag-to-navigate-expected.txt: Copied from LayoutTests/editing/selection/doubleclick-whitespace-img-crash-expected.txt.
        * fast/events/prevent-drag-to-navigate.html: Added.
        * fast/events/resources/file-for-drag-to-navigate.html: Added.
        * fast/events/resources/file-for-prevent-drag-to-navigate.html: Added.

2009-06-23  Oliver Hunt  <oliver@apple.com>

        Reviewed by NOBODY (missed a file).

        Add expected results for test i landed earlier

        * fast/js/dictionary-no-cache-expected.txt: Added.

2009-06-23  Oliver Hunt  <oliver@apple.com> and Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Sam Weinig and Dave Hyatt.

        <rdar://problem/6164797> Add Canvas API to allow drawing of <video> frames
        <https://bugs.webkit.org/show_bug.cgi?id=25920>

        Add tests for drawing a video to the canvas element.

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

2009-06-23  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        <rdar://problem/6992806> REGRESSION: Enumeration can skip new properties in cases of prototypes that have more than 64 (26593)
        <https://bugs.webkit.org/show_bug.cgi?id=26593>

        Add tests to ensure we correctly invalidate caching that depends on structure chains
        that include dictionaries.

        * fast/js/dictionary-no-cache.html: Added.
        * fast/js/dictionary-no-cache-expected.txt: Added.
        * fast/js/resources/dictionary-no-cache.js: Added.

2009-06-23  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Mark Rowe.
        
        Resets the results for a test that was missed in 
        http://trac.webkit.org/changeset/45016.

        * editing/execCommand/5142012-3-expected.txt:

2009-06-23  Sam Weinig  <sam@webkit.org>

        Reviewed by Dave Hyatt.

        Test for https://bugs.webkit.org/show_bug.cgi?id=26516
        Add initial implementation of DataGridDataSource

        * fast/dom/HTMLDataGridElement: Added.
        * fast/dom/HTMLDataGridElement/DataGridDataSource-basic-expected.txt: Added.
        * fast/dom/HTMLDataGridElement/DataGridDataSource-basic.html: Added.

2009-06-23  Ryosuke Niwa  <rniwa@google.com>

        Reviewed by Justin Garcia.

        Undo the changeset 21212 to fix the regression bug 14062.
        The changeset 21212 attempted to fix rdar://problem/5002441.
        The changeset 21212 modified InsertTextCommand::input so as to convert
        all spaces in text to non-breaking spaces for rdar://problem/5002441.
        However, the bug was originally caused by rebalanceWhitespaceAt
        and this workaround introduced a regression bug 14062.
        Because rebalanceWhitespaceAt appears to behave correctly now,
        the workaround introduced in 21212 is no longer needed.

        The following test cases are affected by this change.
        This patch removes unappropriate non-breaking spaces (&nbsp;) and
        inserts normal spaces instead.

        * editing/deleting/2610675-1-expected.txt: Replaced.
        * editing/deleting/2610675-2-expected.txt: Replaced.
        * editing/deleting/2610675-3-expected.txt: Replaced.
        * editing/inserting/insert-before-link-1-expected.txt: Replaced.
        * editing/inserting/space-after-removeformat-expected.txt: Added.
        * editing/inserting/space-after-removeformat.html: Added.
        * platform/mac/editing/execCommand/5482023-expected.checksum: Replaced.
        * platform/mac/editing/execCommand/5482023-expected.png: Replaced.
        * platform/mac/editing/execCommand/5482023-expected.txt: Replaced.
        * platform/mac/editing/input/text-input-controller-expected.txt: Replaced.
        * platform/mac/editing/inserting/editable-html-element-expected.checksum: Replaced.
        * platform/mac/editing/inserting/editable-html-element-expected.png: Replaced.
        * platform/mac/editing/inserting/editable-html-element-expected.txt: Replaced.
        * platform/mac/editing/pasteboard/4989774-expected.checksum: Replaced.
        * platform/mac/editing/pasteboard/4989774-expected.png: Replaced.
        * platform/mac/editing/pasteboard/4989774-expected.txt: Replaced.
        * platform/mac/editing/selection/4983858-expected.checksum: Replaced.
        * platform/mac/editing/selection/4983858-expected.png: Replaced.
        * platform/mac/editing/selection/4983858-expected.txt: Replaced.

2009-06-23  Beth Dakin  <bdakin@apple.com>

        Reviewed by Dave Hyatt.

        Test for https://bugs.webkit.org/show_bug.cgi?id=26523 <col> 
        elements width can't be changed with javascript

        * fast/dom/HTMLTableColElement: Added.
        * fast/dom/HTMLTableColElement/resize-table-using-col-width.html: Added.
        * platform/mac/fast/dom/HTMLTableColElement: Added.
        * platform/mac/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.checksum: Added.
        * platform/mac/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.png: Added.
        * platform/mac/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.txt: Added.

2009-06-23  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Dan Bernstein.

        This test hits an edge case where typingStyle would never get cleared.
        In addition to making every text insertion go into its own text node,
        this caused large performance problems.
        
        https://bugs.webkit.org/show_bug.cgi?id=26279

        * editing/execCommand/5770834-1-expected.txt:
            These results match how they were before r43243. It's not clear to me 
            why changes to font-size are affecting text-align styling though.
        * editing/inserting/font-size-clears-from-typing-style-expected.txt: Added.
        * editing/inserting/font-size-clears-from-typing-style.html: Added.
        * editing/inserting/resources/TEMPLATE.html: Copied from LayoutTests/editing/execCommand/resources/TEMPLATE.html.
        * editing/inserting/resources/font-size-clears-from-typing-style.js: Added.
        * platform/mac/editing/execCommand/remove-formatting-2-expected.txt:

2009-06-23  Kevin McCullough  <kmccullough@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/6994790> CrashTracer: [USER] 8 crashes in Mail trying to
        add a blank line to pasted Facebook content (under
        CompositeEditCommand::positionAvoidingSpecialElementBoundary)

        * editing/inserting/return-with-object-element-expected.txt: Added.
        * editing/inserting/return-with-object-element.html: Added.

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

        Reviewed by Dave Hyatt.
        
        https://bugs.webkit.org/show_bug.cgi?id=24863
        
        Testcase for reflections on composited layers.

        * compositing/reflections/reflection-on-composited.html: Added.
        * platform/mac/compositing/reflections/reflection-on-composited-expected.txt: Added.

2009-06-23  Antti Koivisto  <antti@apple.com>

        Reviewed by Darin Adler.
        
        https://bugs.webkit.org/show_bug.cgi?id=26643
        Memory cache should respect Cache-Control: no-store
        
        Update the test to cover no-store.

        * http/tests/cache/subresource-expiration-expected.txt:
        * http/tests/cache/subresource-expiration.html:

2009-06-23  Kevin McCullough  <kmccullough@apple.com>

        Reviewed by Adele Peterson.

        <rdar://problem/6902203> REGRESSION: 'Return' insertion point incorrect
        after manually quoting blank line then hitting return

        * editing/inserting/insert-br-quoted-007-expected.txt: Added.
        * editing/inserting/insert-br-quoted-007.html: Added.

2009-06-23  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by NOBODY, layout tests fix.
        
        'timeupdate' events are, by definition, timing dependent so it isn't
        a good idea to log them in layout test results.

        * media/event-attributes-expected.txt:
        * media/event-attributes.html:

2009-06-23  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Darin Adler.
        
        <rdar://problem/6978938> Need HTML 5 event attributes for media elements

        * media/event-attributes-expected.txt: Added.
        * media/event-attributes.html: Added.
        * media/progress-event-total.html: Cleanup, use event handler attributes.
        * media/progress-event.html: Ditto.

        * media/video-size-intrinsic-scale.html: Remove duplicate 'waitForEvent("ratechange")'
        * media/video-source-add-src.html: Ditto.
        * media/video-source-error.html: Ditto.
        * media/video-timeupdate-during-playback.html: Ditto.

        * platform/gtk/Skipped: Skip new test.

2009-06-23  Adam Barth  <abarth@webkit.org>

        Reviewed by Sam Weinig.

        https://bugs.webkit.org/show_bug.cgi?id=26589

        More tests for the XSSAuditor.  (I converted the server side to Perl
        after Sam reviewed the patch because the PHP scripts didn't agree with
        the Tiger and Windows buildbots.)

        * http/tests/security/xssAuditor/img-onerror-tricky-expected.txt: Added.
        * http/tests/security/xssAuditor/img-onerror-tricky.html: Added.
        * http/tests/security/xssAuditor/link-onclick-expected.txt: Added.
        * http/tests/security/xssAuditor/link-onclick.html: Added.
        * http/tests/security/xssAuditor/property-escape-expected.txt: Added.
        * http/tests/security/xssAuditor/property-escape.html: Added.
        * http/tests/security/xssAuditor/resources/echo-intertag-post-and-notify.pl: Added.
        * http/tests/security/xssAuditor/resources/echo-intertag-post.pl: Added.
        * http/tests/security/xssAuditor/resources/echo-intertag-utf-7.pl: Added.
        * http/tests/security/xssAuditor/resources/echo-intertag.php: Removed.
        * http/tests/security/xssAuditor/resources/echo-intertag.pl: Added.
        * http/tests/security/xssAuditor/resources/echo-property.pl: Added.
        * http/tests/security/xssAuditor/resources/redir.php: Added.
        * http/tests/security/xssAuditor/resources/xss.js: Added.
        * http/tests/security/xssAuditor/script-tag-convoluted-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-convoluted.html: Added.
        * http/tests/security/xssAuditor/script-tag-open-redirect-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-open-redirect.html: Added.
        * http/tests/security/xssAuditor/script-tag-post-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-post.html: Added.
        * http/tests/security/xssAuditor/script-tag-redirect-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-redirect.html: Added.
        * http/tests/security/xssAuditor/script-tag-utf-7-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-utf-7.html: Added.
        * http/tests/security/xssAuditor/script-tag-with-source-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-with-source.html: Added.
        * http/tests/security/xssAuditor/script-tag.html:

2009-06-22  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Alexey Proskuryakov.

        https://bugs.webkit.org/show_bug.cgi?id=17820

        Skip layout tests for DST if the test runs not in PST/PDT.

        * fast/js/date-DST-time-cusps-expected.txt:
        * fast/js/date-big-setdate-expected.txt:
        * fast/js/resources/date-DST-time-cusps.js:
        * fast/js/resources/date-big-setdate.js:

2009-06-22  Oliver Hunt  <oliver@apple.com>

        Reviewed by Alexey Proskuryakov.

        Bug 26640: JSON.stringify needs to special case Boolean objects
        <https://bugs.webkit.org/show_bug.cgi?id=26640>

        Add tests for serialisation of wrapped and unwrapped primitives.

        * fast/js/JSON-stringify-expected.txt:
        * fast/js/resources/JSON-stringify.js:
        * fast/js/resources/json2-es5-compat.js:
          Modify Str() to match ES5 errata

2009-06-22  Sam Weinig  <sam@webkit.org>

        Reviewed by Gavin Barraclough.

        Add event handler attribute getter/setters to HTMLFrameSetElement
        as specified in HTML 5.  These match the ones on HTMLBodyElement.

        * fast/dom/event-attribute-availability-expected.txt:
        * fast/dom/resources/event-attribute-availability.js:

2009-06-22  Oliver Hunt  <oliver@apple.com>

        Reviewed by Darin Adler.

        Bug 26591: Support revivers in JSON.parse
        <https://bugs.webkit.org/show_bug.cgi?id=26591>

        Test cases for JSON.parse with a reviver function.

        * fast/js/JSON-parse-expected.txt:
        * fast/js/resources/JSON-parse.js:
        (createTests.log):
        (createTests.result):
        (createTests.logOrder):
        (createTests.var):
        (createTests.throwAfterFifthCall):
        (createTests):

2009-06-22  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dave Hyatt.
        
        https://bugs.webkit.org/show_bug.cgi?id=26430
        
        Testcase for a layer's composited position being affected by a later sibling.

        * compositing/sibling-positioning.html: Added.
        * platform/mac/compositing/sibling-positioning-expected.txt: Added.

2009-06-22  Sam Weinig  <sam@webkit.org>

        Reviewed by Mark Rowe.

        Add event handler attribute getter/setters to HTMLBodyElement
        as specified in HTML 5.

        * fast/dom/event-attribute-availability-expected.txt:
        * fast/dom/resources/event-attribute-availability.js:

2009-05-21  Eric Seidel  <eric@webkit.org>

        Reviewed by Maciej Stachowiak.

        Expose files in the clipboard in ondrop events.
        https://bugs.webkit.org/show_bug.cgi?id=25916

        File.fileSize subtests fail due to limitations of DRT during http tests:
        https://bugs.webkit.org/show_bug.cgi?id=25909

        Directory subtests fail until correct of directory File tests is decided by:
        https://bugs.webkit.org/show_bug.cgi?id=25879

        * http/tests/security/clipboard/clipboard-file-access-expected.txt: Added.
        * http/tests/security/clipboard/clipboard-file-access.html: Added.
        * http/tests/security/clipboard/resources/TEMPLATE.html: Added.
        * http/tests/security/clipboard/resources/apple.gif: Copied from LayoutTests/editing/pasteboard/resources/apple.gif.
        * http/tests/security/clipboard/resources/clipboard-file-access.js: Added.
        (var):
        (moveMouseToCenterOfElement):
        (dragFilesOntoDragTarget):
        (fileListShouldBe):
        (draggingPathsShouldResultInFiles):
        (runTest):
        * http/tests/security/clipboard/resources/mozilla.gif: Copied from LayoutTests/editing/pasteboard/resources/mozilla.gif.

2009-06-22  David Levin  <levin@chromium.org>

        Reviewed by Alexey Proskuryakov.

        Fix layout tests to account for removal of DOMStringList, which was done
        in http://trac.webkit.org/changeset/44943.

        * fast/dom/Window/window-properties-expected.txt:
        * fast/js/global-constructors-expected.txt:

2009-06-22  David Levin  <levin@chromium.org>

        Reviewed by David Hyatt and Eric Seidel.

        REGRESSION: When the main page (ScrollView) has a custom scrollbar, it crashes on destruction.
        https://bugs.webkit.org/show_bug.cgi?id=26326

        Test that refreshing an iframe with custom scrollbars works without crashing.

        * scrollbars/resources/page-with-custom-scrollbars.html: Added.
        * scrollbars/scrollbar-crash-on-refresh-expected.txt: Added.
        * scrollbars/scrollbar-crash-on-refresh.html: Added.

2009-06-22  Dan Bernstein  <mitz@apple.com>

        Reviewed by Simon Fraser.

        - test for https://bugs.webkit.org/show_bug.cgi?id=23606
          <rdar://problem/6537777> CSS gradient not repainted when image load
          completes

        * fast/repaint/background-generated.html: Added.
        * platform/mac/fast/repaint/background-generated-expected.checksum: Added.
        * platform/mac/fast/repaint/background-generated-expected.png: Added.
        * platform/mac/fast/repaint/background-generated-expected.txt: Added.

2009-06-22  Darin Adler  <darin@apple.com>

        * platform/gtk/Skipped: Skip two new tests.

2009-06-22  Darin Adler  <darin@apple.com>

        * fast/js/JSON-stringify-expected.txt: Update results.

2009-06-21  Oliver Hunt  <oliver@apple.com>

        Reviewed by Darin Adler.

        Bug 26592: Support standard toJSON functions

        Add tests of Date.toJSON.

        * fast/js/JSON-stringify-expected.txt:
        * fast/js/resources/JSON-stringify.js:
        (createTests.result):
        (createTests.result.push.):

2009-06-21  Oliver Hunt  <oliver@apple.com>

        Reviewed by Sam Weinig.

        Bug 26594: JSC needs to support Date.toISOString
        <https://bugs.webkit.org/show_bug.cgi?id=26594>

        A few basic correctness tests for Date.toISOString.

        * fast/js/date-toisostring-expected.txt: Added.
        * fast/js/date-toisostring.html: Added.
        * fast/js/resources/date-toisostring.js: Added.

2009-06-21  Sam Weinig  <sam@webkit.org>

        Reviewed by Oliver Hunt.

        Test for https://bugs.webkit.org/show_bug.cgi?id=26596
        Only expose event handler attributes to elements and documents.

        * fast/dom/event-attribute-availability-expected.txt: Added.
        * fast/dom/event-attribute-availability.html: Added.
        * fast/dom/resources/event-attribute-availability.js: Added.

2009-06-21  Daniel Bates  <dbates@intudata.com>

        Reviewed by Adam Barth.
        
        Test for https://bugs.webkit.org/show_bug.cgi?id=26580
        
        Tests that XSSAuditor (if enabled) prevents script execution in child window.

        * http/tests/security/xssAuditor/link-opens-new-window-expected.txt: Added.
        * http/tests/security/xssAuditor/link-opens-new-window.html: Added.
        * http/tests/security/xssAuditor/resources/echo-intertag-and-notify.php: Added.

2009-06-21  Dan Bernstein  <mitz@apple.com>

        Rubber-stamped by Mark Rowe.

        - make repaint tests more reliable when run in Safari

        * fast/repaint/resources/repaint.js:
        (runRepaintTest): Increased the timeout from 0 to 100, to ensure that
        painting occurs once before repaintTest() is called.

2009-06-21  Oliver Hunt  <oliver@apple.com>

        Reviewed by Darin Adler and Cameron Zwarich.

        Bug 26587: Support JSON.parse

        Add tests to cover basic usage of JSON.parse

        * fast/js/JSON-parse.html: Added.
        * fast/js/JSON-parse-expected.txt: Added.
        * fast/js/resources/JSON-parse.js: Added.
        (createTests.result):
        (createTests):

2009-06-21  Drew Wilson  <atwilson@google.com>
 
        Reviewed by David Levin.
       
        <https://bugs.webkit.org/show_bug.cgi?id=26448>

        New tests for MessagePort GC cases that weren't previously covered.

        * fast/events/message-channel-gc-4-expected.txt: Added.
        Test for case where both MessagePorts are in-transit (cloned) when a GC occurs.
        * fast/events/message-channel-gc-4.html-disabled: Added.

2009-06-21  Drew Wilson  <atwilson@google.com>

        Reviewed by David Levin.

        <https://bugs.webkit.org/show_bug.cgi?id=25043>
        Updated MessageChannel/MessagePorts tests to reflect latest spec (close event has been removed).
        Added more tests of port cloning.

        * fast/events/message-channel-gc-2-expected.txt:
        * fast/events/message-channel-gc-2.html-disabled:
        * fast/events/message-channel-gc-3-expected.txt:
        * fast/events/message-channel-gc-3.html-disabled:
        * fast/events/message-channel-gc-expected.txt:
        * fast/events/message-channel-gc.html-disabled:
        * fast/events/message-port-clone-expected.txt: Added.
        * fast/events/message-port-clone.html-disabled: Added.
        * fast/events/message-port-expected.txt:
        * fast/events/message-port-no-wrapper-expected.txt: Added.
        * fast/events/message-port-onclose-expected.txt: Removed.
        * fast/events/message-port-onclose.html-disabled: Removed.
        * fast/events/message-port.html-disabled:

2009-06-21  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        - test for https://bugs.webkit.org/show_bug.cgi?id=15383
          <rdar://problem/5682745> resize: vertical does not restrict to vertical
          resize

        * fast/css/resize-single-axis-expected.txt: Added.
        * fast/css/resize-single-axis.html: Added.

2009-06-21  Sam Weinig  <sam@webkit.org>

        Reviewed by Eric Seidel.

        Test for https://bugs.webkit.org/show_bug.cgi?id=26578
        event.currentTarget for listener registered on window should point to the window object like in Firefox

        * fast/events/event-trace-expected.txt: Added.
        * fast/events/event-trace.html: Added.

2009-06-21  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        - test for https://bugs.webkit.org/show_bug.cgi?id=9694
          resize value not compared

        * fast/css/resize-value-compared-expected.txt: Added.
        * fast/css/resize-value-compared.html: Added.

2009-06-21  Darin Adler  <darin@apple.com>

        * platform/gtk/Skipped: Skip one more test.

2009-06-20  Darin Adler  <darin@apple.com>

        * platform/gtk/Skipped: Skip some new tests.

2009-06-19  Alice Liu  <alice.liu@apple.com>

        Fix https://bugs.webkit.org/show_bug.cgi?id=26568 
        Repro crash animating GIF if previously used in a closed window's back/forward list
        Also filed as <rdar://problem/6978362>

        Reviewed by Maciej Stachowiak.

        Adding resource used in WebCore/manual-tests/animated-gif-bfcache-crash.html
        * http/tests/misc/resources/animated-gif-with-offsets.gif: Added.

2009-06-20  Sam Weinig  <sam@webkit.org>

        Reviewed by Adam Barth.

        Test for https://bugs.webkit.org/show_bug.cgi?id=26554

        Test writing to parent and top.

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

2009-06-20  Mark Rowe  <mrowe@apple.com>

        Reviewed by Dan Bernstein.

        Test for <https://bugs.webkit.org/show_bug.cgi?id=15106>.
        Bug 15106: REGRESSION: Can't drag text as element when user-select is set to none

        * editing/selection/user-drag-element-and-user-select-none-expected.txt: Added.
        * editing/selection/user-drag-element-and-user-select-none.html: Added.

2009-06-20  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        Bug 26528: REGRESSION (r44674): Assertion in TextIterator::pushFullyClippedState while counting matches for "a" on apple.com
        https://bugs.webkit.org/show_bug.cgi?id=26528
        rdar://problem/6985329

        * editing/selection/find-in-text-control-expected.txt: Updated to expect
        finding text in <input type="text"> and <input type="search">, but not
        in <input type="password">.

        * editing/selection/find-in-text-control.html: Added tests for <input>
        elements as well as <textarea> elements. Also tweaked result output
        format to accomodate multiple text nodes.

2009-06-20  Xan Lopez  <xlopez@igalia.com>

        Skip new accessibility test, we still lack and accessibilityController.

        * platform/gtk/Skipped:

2009-06-20  Xan Lopez  <xlopez@igalia.com>

        We don't seem to support these new HTTP tests either, skip them.

        * platform/gtk/Skipped:

2009-06-20  Xan Lopez  <xlopez@igalia.com>

        Skip test that requires eventSender.

        * platform/gtk/Skipped:

2009-06-19  Ryosuke Niwa  <rniwa@google.com>

        Reviewed by Maciej Stachowiak.

        This fixs the bug 26361. The original test case did not invoke the event that
        triggered the actual test. This patch adds code to invoke this event, and also
        converts it from a pixel test to a dumpAsText test.

        * editing/deleting/5156801-expected.txt: Added.
        * editing/deleting/5156801.html:
        * platform/mac/editing/deleting/5156801-expected.checksum: Removed.
        * platform/mac/editing/deleting/5156801-expected.png: Removed.
        * platform/mac/editing/deleting/5156801-expected.txt: Removed.
        * platform/qt/editing/deleting/5156801-expected.txt: Removed.

2009-06-19  David Hyatt  <hyatt@apple.com>

        Reviewed by Anders Carlsson.

        https://bugs.webkit.org/show_bug.cgi?id=26547
        
        Implement the IDL interface for HTMLDataGridColELement.

        * fast/dom/Window/window-properties-expected.txt:
        * fast/js/global-constructors-expected.txt:

2009-06-19  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - text for <rdar://problem/6967596> Safari hung using 100% CPU when I
          tried to look up a word in Dictionary using command-control-d

        * editing/selection/move-by-line-005-expected.txt: Added.
        * editing/selection/move-by-line-005.html: Added.

2009-06-19  Dan Bernstein  <mitz@apple.com>

        Reviewed by Anders Carlsson.

        - update test results after r44806

        * platform/mac/fast/replaced/width100percent-searchfield-expected.txt:

2009-06-18  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Oliver Hunt.

        https://bugs.webkit.org/show_bug.cgi?id=26426

        Use 1<<23-1 as steps of no-repeat patterns instead of 100000000.0f.
        The original number cannot be represented by mantissa of float
        (23bit) so that it caused some error.

        * fast/canvas/image-object-in-canvas.html:
        * platform/mac/fast/canvas/image-object-in-canvas-expected.checksum:
        * platform/mac/fast/canvas/image-object-in-canvas-expected.png:
        * platform/mac/fast/canvas/image-object-in-canvas-expected.txt:

2009-06-18  Adam Barth  <abarth@webkit.org>

        Reviewed by Sam Weinig.

        https://bugs.webkit.org/show_bug.cgi?id=26199

        Added a basic test for the XSSAuditor.

        * http/tests/security/xssAuditor/resources/echo-intertag.php: Added.
        * http/tests/security/xssAuditor/script-tag-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag.html: Added.

2009-06-18  Dirk Schulze  <krit@webkit.org>

        Reviewed by Oliver Hunt.

        Test for feOffset with the primitiveUnits objectBoundingBox
        and userSpaceOnUse.

        * platform/mac/svg/filters/feOffset-expected.checksum: Added.
        * platform/mac/svg/filters/feOffset-expected.png: Added.
        * platform/mac/svg/filters/feOffset-expected.txt: Added.
        * svg/filters/feOffset.svg: Added.

2009-06-18  Dirk Schulze  <krit@webkit.org>

        Reviewed by Oliver Hunt.

        Added a test of batik and a own one to check behavior of the
        new feTile effect in SVG.

        * platform/mac/svg/batik/filters/feTile-expected.checksum: Added.
        * platform/mac/svg/batik/filters/feTile-expected.png: Added.
        * platform/mac/svg/batik/filters/feTile-expected.txt: Added.
        * platform/mac/svg/filters/feTile-expected.checksum: Added.
        * platform/mac/svg/filters/feTile-expected.png: Added.
        * platform/mac/svg/filters/feTile-expected.txt: Added.
        * svg/batik/filters/feTile.svg: Added.
        * svg/filters/feTile.svg: Added.

2009-06-18  Dirk Schulze  <krit@webkit.org>

        Reviewed by Oliver Hunt.

        Check the feMerge implementation.

        * platform/mac/svg/filters/feMerge-expected.checksum: Added.
        * platform/mac/svg/filters/feMerge-expected.png: Added.
        * platform/mac/svg/filters/feMerge-expected.txt: Added.
        * svg/filters/feMerge.svg: Added.

2009-06-18  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        Test for Bug 26522: In DOM mode, VoiceOver reads some mouseover text on web sites strangely.
        Strangely the layout output for another test changed, but the actual test was ok.

        * accessibility/non-data-table-cell-title-ui-element-expected.txt: Added.
        * accessibility/non-data-table-cell-title-ui-element.html: Added.
        * platform/mac/accessibility/table-multi-bodies-expected.txt:

2009-06-18  Ryosuke Niwa  <rniwa@google.com>

        Reviewed by Eric Seidel.

        The following pixel tests have been converted into dumpastext tests. This
        fixes the bug 26336 partially.

        * editing/execCommand/insertHTML-expected.txt: Added.
        * editing/execCommand/insertHTML.html:
        * editing/execCommand/switch-list-type-expected.txt: Added.
        * editing/execCommand/switch-list-type.html:
        * platform/mac/editing/execCommand/insertHTML-expected.checksum: Removed.
        * platform/mac/editing/execCommand/insertHTML-expected.png: Removed.
        * platform/mac/editing/execCommand/insertHTML-expected.txt: Removed.
        * platform/mac/editing/execCommand/switch-list-type-expected.checksum: Removed.
        * platform/mac/editing/execCommand/switch-list-type-expected.png: Removed.
        * platform/mac/editing/execCommand/switch-list-type-expected.txt: Removed.
        * platform/qt/editing/execCommand/insertHTML-expected.txt: Removed.
        * platform/qt/editing/execCommand/switch-list-type-expected.txt: Removed.

2009-06-18  Ryosuke Niwa  <rniwa@google.com>

        Reviewed by Eric Seidel.

        The following pixel tests have been converted into dumpastext tests. This
        fixes the bug 26336 partially.

        * editing/execCommand/5207369-expected.txt: Added.
        * editing/execCommand/5207369.html:
        * editing/execCommand/5210032-expected.txt: Added.
        * editing/execCommand/5210032.html:
        * editing/execCommand/5432254-1-expected.txt: Added.
        * editing/execCommand/5432254-1.html:
        * platform/mac/editing/execCommand/5207369-expected.checksum: Removed.
        * platform/mac/editing/execCommand/5207369-expected.png: Removed.
        * platform/mac/editing/execCommand/5207369-expected.txt: Removed.
        * platform/mac/editing/execCommand/5210032-expected.checksum: Removed.
        * platform/mac/editing/execCommand/5210032-expected.png: Removed.
        * platform/mac/editing/execCommand/5210032-expected.txt: Removed.
        * platform/mac/editing/execCommand/5432254-1-expected.checksum: Removed.
        * platform/mac/editing/execCommand/5432254-1-expected.png: Removed.
        * platform/mac/editing/execCommand/5432254-1-expected.txt: Removed.
        * platform/qt/editing/execCommand/5207369-expected.txt: Removed.
        * platform/qt/editing/execCommand/5210032-expected.txt: Removed.
        * platform/qt/editing/execCommand/5432254-1-expected.txt: Removed.

2009-06-18  Ryosuke Niwa  <rniwa@google.com>

        Reviewed by Eric Seidel.

        The following pixel tests have been converted into dumpastext tests. This
        fixes the bug 26336 partially.

        * editing/execCommand/5142012-3-expected.txt: Added.
        * editing/execCommand/5142012-3.html:
        * editing/execCommand/5144139-1-expected.txt: Added.
        * editing/execCommand/5144139-1.html:
        * editing/execCommand/5164796-expected.txt: Added.
        * editing/execCommand/5164796.html:
        * platform/mac/editing/execCommand/5142012-3-expected.checksum: Removed.
        * platform/mac/editing/execCommand/5142012-3-expected.png: Removed.
        * platform/mac/editing/execCommand/5142012-3-expected.txt: Removed.
        * platform/mac/editing/execCommand/5144139-1-expected.checksum: Removed.
        * platform/mac/editing/execCommand/5144139-1-expected.png: Removed.
        * platform/mac/editing/execCommand/5144139-1-expected.txt: Removed.
        * platform/mac/editing/execCommand/5164796-expected.checksum: Removed.
        * platform/mac/editing/execCommand/5164796-expected.png: Removed.
        * platform/mac/editing/execCommand/5164796-expected.txt: Removed.
        * platform/qt/editing/execCommand/5142012-3-expected.txt: Removed.
        * platform/qt/editing/execCommand/5144139-1-expected.txt: Removed.
        * platform/qt/editing/execCommand/5164796-expected.txt: Removed.

2009-06-18  Ryosuke Niwa  <rniwa@google.com>

        Reviewed by Eric Seidel.

        The following pixel tests have been converted into dumpastext tests. This
        fixes the bug 26336 partially.

        * editing/execCommand/4916583-expected.txt: Added.
        * editing/execCommand/4916583.html:
        * editing/execCommand/5119244-expected.txt: Added.
        * editing/execCommand/5119244.html:
        * editing/execCommand/5120591-expected.txt: Added.
        * editing/execCommand/5120591.html:
        * platform/mac/editing/execCommand/4916583-expected.checksum: Removed.
        * platform/mac/editing/execCommand/4916583-expected.png: Removed.
        * platform/mac/editing/execCommand/4916583-expected.txt: Removed.
        * platform/mac/editing/execCommand/5119244-expected.checksum: Removed.
        * platform/mac/editing/execCommand/5119244-expected.png: Removed.
        * platform/mac/editing/execCommand/5119244-expected.txt: Removed.
        * platform/mac/editing/execCommand/5120591-expected.checksum: Removed.
        * platform/mac/editing/execCommand/5120591-expected.png: Removed.
        * platform/mac/editing/execCommand/5120591-expected.txt: Removed.
        * platform/qt/editing/execCommand/4916583-expected.txt: Removed.
        * platform/qt/editing/execCommand/5119244-expected.txt: Removed.
        * platform/qt/editing/execCommand/5120591-expected.txt: Removed.

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

        Reviewed by Dan Bernstein.

        <rdar://problem/6983207> Non-layer content is not re-rendered when transition
        starts sometimes (with hardware acceleration).

        * compositing/repaint/become-overlay-composited-layer.html: Added.
        * platform/mac/compositing/repaint/become-overlay-composited-layer-expected.txt: Added.

2009-06-18  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Maciej Stachowiak and Dave Levin.

        https://bugs.webkit.org/show_bug.cgi?id=26510
        Add tests for authentication behavior with cross-origin XMLHttpRequest

        * http/tests/xmlhttprequest/cross-origin-authorization-expected.txt: Added.
        * http/tests/xmlhttprequest/cross-origin-authorization.html: Added.
        * http/tests/xmlhttprequest/cross-origin-no-authorization-expected.txt: Added.
        * http/tests/xmlhttprequest/cross-origin-no-authorization.html: Added.
        * http/tests/xmlhttprequest/resources/cross-origin-authorization.php: Added.
        * http/tests/xmlhttprequest/resources/cross-origin-check-cookies.php: Added.
        * http/tests/xmlhttprequest/resources/cross-origin-no-authorization.php: Added.
        * http/tests/xmlhttprequest/resources/cross-origin-preset-authorization-frame.html: Added.
        * platform/mac-tiger/Skipped:

2009-06-17  Darin Adler  <darin@apple.com>

        Reviewed by Oliver Hunt.

        Bug 26429: Make JSON.stringify non-recursive so it can handle objects
        of arbitrary complexity
        https://bugs.webkit.org/show_bug.cgi?id=26429

        * fast/js/JSON-stringify-expected.txt: Updated.
        * fast/js/resources/JSON-stringify.js: Changed the infinite object and
        infinite array tests to instead just test something a fixed number of
        levels deep. Otherwise we end up with an infinite loop in the test,
        which would lead to the slow-script dialog in the production web browser.
        Also raised the number from 512 to 2048 since there's no fixed limit any more.

2009-06-17  Erik Arvidsson  <arv@chromium.org>

        Reviewed by Adele Peterson.

        https://bugs.webkit.org/show_bug.cgi?id=15189
        Test case for textarea input event.

        * fast/forms/resources/textarea-input-event.js: Added.
        (handleDivOnInput):
        (handleTextareaOnInput):
        * fast/forms/textarea-input-event-expected.txt: Added.
        * fast/forms/textarea-input-event.html: Added.

2009-06-18  Rob Buis  <rwlbuis@gmail.com>

        Reviewed by Niko.

        Test for:
        https://bugs.webkit.org/show_bug.cgi?id=26385
        Root SVG element is not checked on requiredFeatures, requiredExtension like other elements

        Also do the isValid check for outer <svg>.

        * platform/mac/svg/custom/outer-svg-unknown-feature-expected.checksum: Added.
        * platform/mac/svg/custom/outer-svg-unknown-feature-expected.png: Added.
        * platform/mac/svg/custom/outer-svg-unknown-feature-expected.txt: Added.
        * svg/custom/outer-svg-unknown-feature.svg: Added.

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

        Reviewed by Mark Rowe.

        https://bugs.webkit.org/show_bug.cgi?id=26499
        
        New expected results after making <video> elements get RenderLayers.

        * platform/mac/fast/replaced/border-radius-clip-expected.txt:

2009-06-18  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - test and updated result for <rdar://problem/6913221>
          REGRESSION (Safari 3-4): Search field on apple.com cuts entered text

        * fast/forms/search-vertical-alignment.html: Added.
        * platform/mac/fast/forms/search-vertical-alignment-expected.checksum: Added.
        * platform/mac/fast/forms/search-vertical-alignment-expected.png: Added.
        * platform/mac/fast/forms/search-vertical-alignment-expected.txt: Added.
        * platform/mac/fast/forms/search-zoomed-expected.checksum:
        * platform/mac/fast/forms/search-zoomed-expected.png:
        * platform/mac/fast/forms/search-zoomed-expected.txt:

2009-06-18  Chris Evans  <scarybeasts@gmail.com>

        Reviewed by Adam Barth.

        Added test for bug 26454 (broken 8-digit hex entities).
        https://bugs.webkit.org/show_bug.cgi?id=26454

        * fast/parser/eightdigithexentity-expected.txt: Added.
        * fast/parser/eightdigithexentity.html: Added.

2009-06-17  Gavin Barraclough  <barraclough@apple.com>

        Reviewed by Mark Rowe.

        Add tests to check shifts by non-constant amounts.

        * fast/js/kde/operators-expected.txt:
        * fast/js/kde/resources/operators.js:

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

        Reviewed by Darin Adler.
        
        https://bugs.webkit.org/show_bug.cgi?id=26499
        
        New expected results after making <video> elements get RenderLayers.

        * platform/mac/media/video-aspect-ratio-expected.txt:
        * platform/mac/media/video-controls-rendering-expected.txt:
        * platform/mac/media/video-display-toggle-expected.txt:
        * platform/mac/media/video-empty-source-expected.txt:
        * platform/mac/media/video-zoom-controls-expected.txt:
        * platform/mac/media/video-zoom-expected.txt:

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

        Reviewed by Darin Adler
        
        Update results after enabling 3d rendering on SnowLeopard.

        * platform/mac-leopard/fast/media/mq-transform-02-expected.checksum: Copied from LayoutTests/platform/mac/fast/media/mq-transform-02-expected.checksum.
        * platform/mac-leopard/fast/media/mq-transform-02-expected.png: Copied from LayoutTests/platform/mac/fast/media/mq-transform-02-expected.png.
        * platform/mac-leopard/fast/media/mq-transform-02-expected.txt: Copied from LayoutTests/platform/mac/fast/media/mq-transform-02-expected.txt.
        * platform/mac-leopard/fast/media/mq-transform-03-expected.checksum: Copied from LayoutTests/platform/mac/fast/media/mq-transform-03-expected.checksum.
        * platform/mac-leopard/fast/media/mq-transform-03-expected.png: Copied from LayoutTests/platform/mac/fast/media/mq-transform-03-expected.png.
        * platform/mac-leopard/fast/media/mq-transform-03-expected.txt: Copied from LayoutTests/platform/mac/fast/media/mq-transform-03-expected.txt.
        Copy the old "mac" results to "mac-leopard" since 3d-rendering is disabled there.
        
        * platform/mac/fast/media/mq-transform-02-expected.checksum:
        * platform/mac/fast/media/mq-transform-02-expected.png:
        * platform/mac/fast/media/mq-transform-02-expected.txt:
        * platform/mac/fast/media/mq-transform-03-expected.checksum:
        * platform/mac/fast/media/mq-transform-03-expected.png:
        * platform/mac/fast/media/mq-transform-03-expected.txt:
        New "mac" results for 3d rendering enabled.
        
        * platform/mac/transforms/3d/point-mapping/3d-point-mapping-2-expected.txt:
        * platform/mac/transforms/3d/point-mapping/3d-point-mapping-deep-expected.txt:
        * platform/mac/transforms/3d/point-mapping/3d-point-mapping-expected.txt:
        * platform/mac/transforms/3d/point-mapping/3d-point-mapping-origins-expected.txt:
        * platform/mac/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.txt:
        Update the results now that these tests are active.

2009-06-17  David Hyatt  <hyatt@apple.com>

        Reviewed by Anders Carlsson.

        Update window properties layout test for HTMLDataGridElement addition.

        * fast/dom/Window/window-properties-expected.txt:

2009-06-17  Adam Roben  <aroben@apple.com>

        Fix Skipped file format after r44519

        * platform/qt/Skipped:
        * platform/win/Skipped:
        Removed bogus ": Added."s in these files.

2009-06-17  David Levin  <levin@chromium.org>

        Reviewed by NOBODY, layout tests fix.

        https://bugs.webkit.org/show_bug.cgi?id=26326
        This reverts commit r44751.

        Once that change was checked scrollbars/scrollbar-orientation.html started
        crashing on Windows.

        * scrollbars/resources/page-with-custom-scrollbars.html: Removed.
        * scrollbars/scrollbar-crash-on-refresh-expected.txt: Removed.
        * scrollbars/scrollbar-crash-on-refresh.html: Removed.

2009-06-16  David Levin  <levin@chromium.org>

        Reviewed by David Hyatt.

        REGRESSION: When the main page (ScrollView) has a custom scrollbar, it crashes on destruction.
        https://bugs.webkit.org/show_bug.cgi?id=26326

        Test that refreshing an iframe with custom scrollbars works without crashing.

        * scrollbars/resources/page-with-custom-scrollbars.html: Added.
        * scrollbars/scrollbar-crash-on-refresh-expected.txt: Added.
        * scrollbars/scrollbar-crash-on-refresh.html: Added.

2009-06-16  Xan Lopez  <xlopez@igalia.com>

        Disable another new test.

        * platform/gtk/Skipped:

2009-06-16  Jian Li  <jianli@chromium.org>

        Reviewed by Adam Barth and David Levin.

        Bug 26146: Change to use ThreadableLoader to load the worker script
        in order to check URL origin for redirection.
        https://bugs.webkit.org/show_bug.cgi?id=26146

        Add a layout test to cover the scenario that the worker script is
        loaded from different redirect origin.

        * http/tests/workers/resources/worker-redirect-target.js: Added.
        * http/tests/workers/worker-redirect-expected.txt: Added.
        * http/tests/workers/worker-redirect.html: Added.

2009-06-16  Xan Lopez  <xlopez@igalia.com>

        editing/deleting/4875189.html was changed from pixel to
        dumpAsText, so remove it from Skipped list.

        * platform/gtk/Skipped:

2009-06-16  Xan Lopez  <xlopez@igalia.com>

        Fix typo in test name.

        * platform/gtk/Skipped:

2009-06-16  Xan Lopez  <xlopez@igalia.com>

        Disable new tests.

        * platform/gtk/Skipped:

== Rolled over to ChangeLog-2009-06-16 ==
