2010-02-03  Mark Rowe  <mrowe@apple.com>

        Merge r48879.

    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

2010-02-03  Mark Rowe  <mrowe@apple.com>

        Merge r48363.

    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:

2010-02-02  Mark Rowe  <mrowe@apple.com>

        Merge r54242.

    2010-02-02  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=34076
        <rdar://problem/7594601> Crash in mangleme in WebCore::Element::getAttribute

        * fast/forms/misplaced-img-form-registration-expected.txt: Added.
        * fast/forms/misplaced-img-form-registration.html: Added.

2010-02-01  Mark Rowe  <mrowe@apple.com>

        Merge r53116.

    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-02-01  Mark Rowe  <mrowe@apple.com>

        Merge r53115.

    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-02-01  Mark Rowe  <mrowe@apple.com>

        Merge r53114.

    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-02-01  Mark Rowe  <mrowe@apple.com>

        Merge r53096.

    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-02-01  Mark Rowe  <mrowe@apple.com>

        Merge r53093.

    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-02-01  Mark Rowe  <mrowe@apple.com>

        Merge r53078.

    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-02-01  Mark Rowe  <mrowe@apple.com>

        Merge r51976.

    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):

2010-02-01  Mark Rowe  <mrowe@apple.com>

        Merge r51704.

    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.

2010-02-01  Mark Rowe  <mrowe@apple.com>

        Merge r51962.

    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.

2010-02-01  Mark Rowe  <mrowe@apple.com>

        Merge r50110.

    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.

2010-02-01  Mark Rowe  <mrowe@apple.com>

        Merge r52784.

    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-02-01  Mark Rowe  <mrowe@apple.com>

        Merge r51645.

    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.

2010-02-01  Mark Rowe  <mrowe@apple.com>

        Merge r50310.

    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/7067033>
        https://bugs.webkit.org/show_bug.cgi?id=30892

        * editing/undo/redo-style-expected.txt: Added.
        * editing/undo/redo-style.html: Added.

2010-02-01  Mark Rowe  <mrowe@apple.com>

        Merge r53812.

    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-02-01  Mark Rowe  <mrowe@apple.com>

        Merge r50466.

    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.

2010-02-01  Mark Rowe  <mrowe@apple.com>

        Merge r50470.

    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.

2010-02-01  Mark Rowe  <mrowe@apple.com>

        Merge r50083.

    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.

2010-01-27  Mark Rowe  <mrowe@apple.com>

        Merge r53567.

    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-27  Mark Rowe  <mrowe@apple.com>

        Merge r53368.

    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-27  Mark Rowe  <mrowe@apple.com>

        Merge r53512.

    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-27  Mark Rowe  <mrowe@apple.com>

        Merge r53369.

    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-27  Mark Rowe  <mrowe@apple.com>

        Merge r53220.

    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-27  Mark Rowe  <mrowe@apple.com>

        Merge r53163.

    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-27  Mark Rowe  <mrowe@apple.com>

        Merge r52351.

    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".

2010-01-27  Mark Rowe  <mrowe@apple.com>

        Merge r52773.

    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-27  Mark Rowe  <mrowe@apple.com>

        Merge r52352.

    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.

2010-01-27  Mark Rowe  <mrowe@apple.com>

        Merge r52233.

    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.

2010-01-27  Mark Rowe  <mrowe@apple.com>

        Merge r50196.

    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.

2010-01-25  Mark Rowe  <mrowe@apple.com>

        Merge r52527.

    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.

2010-01-25  Mark Rowe  <mrowe@apple.com>

        Merge r46792.

    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:

2010-01-25  Mark Rowe  <mrowe@apple.com>

        Merge r50698.

    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.

2010-01-25  Mark Rowe  <mrowe@apple.com>

        Merge r52073.

    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.

2010-01-25  Mark Rowe  <mrowe@apple.com>

        Merge r48810.

    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.

2010-01-25  Mark Rowe  <mrowe@apple.com>

        Merge r51877.

    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.

2010-01-25  Mark Rowe  <mrowe@apple.com>

        Merge r51727.

    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-11-03  Mark Rowe  <mrowe@apple.com>

        Merge r50443.

    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-10-30  Mark Rowe  <mrowe@apple.com>

        Merge r50356.

    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-30  Mark Rowe  <mrowe@apple.com>

        Merge r50355.

    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-27  Mark Rowe  <mrowe@apple.com>

        Merge r50165.

    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-23  Mark Rowe  <mrowe@apple.com>

        Merge r50004.

    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-13  Mark Rowe  <mrowe@apple.com>

        Merge r48590.

    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-10-13  Mark Rowe  <mrowe@apple.com>

        Merge r49433.

    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-13  Mark Rowe  <mrowe@apple.com>

        Merge r47494.

    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-10-12  Mark Rowe  <mrowe@apple.com>

        Merge r47883.

    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-10-12  Mark Rowe  <mrowe@apple.com>

        Merge r48572.

    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-10-12  Mark Rowe  <mrowe@apple.com>

        Merge r47801.

    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-10-12  Mark Rowe  <mrowe@apple.com>

        Merge r48546.

    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-10-12  Mark Rowe  <mrowe@apple.com>

        Merge r47900.

    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-10-12  Mark Rowe  <mrowe@apple.com>

        Merge r48743.

    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-10-12  Mark Rowe  <mrowe@apple.com>

        Merge r46136.

    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-10-12  Mark Rowe  <mrowe@apple.com>

        Merge r48647.

    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-10-12  Mark Rowe  <mrowe@apple.com>

        Merge r48953.

    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-10-12  Mark Rowe  <mrowe@apple.com>

        Merge r46548.

    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-10-12  Mark Rowe  <mrowe@apple.com>

        Merge r45945.

    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-10-08  Mark Rowe  <mrowe@apple.com>

        Merge r48521.

    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-10-08  Mark Rowe  <mrowe@apple.com>

        Merge r48361.

    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-10-08  Mark Rowe  <mrowe@apple.com>

        Merge r46210.

    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-09-14  Mark Rowe  <mrowe@apple.com>

        Merge r48368.

    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-08-17  Steve Falkenburg  <sfalken@apple.com>

        Merge r47312.

    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-07-14  Mark Rowe  <mrowe@apple.com>

        Merge r45850.

    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-14  Mark Rowe  <mrowe@apple.com>

        Merge r45836.

    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-12  Mark Rowe  <mrowe@apple.com>

        Merge r45758.

    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-12  Mark Rowe  <mrowe@apple.com>

        Merge r45744.

    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-12  Mark Rowe  <mrowe@apple.com>

        Merge r45710.

    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-12  Mark Rowe  <mrowe@apple.com>

        <rdar://problem/7045243> Roll text metrics change out

        * fast/dom/tabindex-clamp-expected.txt:
        * fast/forms/text-control-intrinsic-widths-expected.txt:
        * fast/forms/textarea-metrics-expected.txt:
        * fast/replaced/table-percent-height-text-controls-expected.txt:
        * platform/mac-leopard/fast/forms/input-text-maxlength-expected.txt:
        * platform/mac-leopard/fast/forms/input-text-paste-maxlength-expected.txt:
        * platform/mac/editing/deleting/5168598-expected.txt:
        * platform/mac/editing/inserting/4960120-1-expected.txt:
        * platform/mac/editing/inserting/5607069-2-expected.txt:
        * platform/mac/editing/inserting/5607069-3-expected.txt:
        * platform/mac/editing/inserting/before-after-input-element-expected.txt:
        * platform/mac/editing/inserting/typing-tab-designmode-forms-expected.txt:
        * platform/mac/editing/pasteboard/4806874-expected.txt:
        * platform/mac/editing/pasteboard/drop-text-without-selection-expected.txt:
        * platform/mac/editing/pasteboard/input-field-1-expected.txt:
        * platform/mac/editing/pasteboard/nested-blocks-with-text-area-expected.txt:
        * platform/mac/editing/pasteboard/nested-blocks-with-text-field-expected.txt:
        * platform/mac/editing/pasteboard/pasting-tabs-expected.txt:
        * platform/mac/editing/selection/3690703-2-expected.txt:
        * platform/mac/editing/selection/3690703-expected.txt:
        * platform/mac/editing/selection/3690719-expected.txt:
        * platform/mac/editing/selection/4895428-3-expected.txt:
        * platform/mac/editing/selection/4975120-expected.txt:
        * platform/mac/editing/selection/5136696-expected.txt:
        * platform/mac/editing/selection/5213963-expected.txt:
        * platform/mac/editing/selection/drag-select-1-expected.txt:
        * platform/mac/editing/selection/drag-text-delay-expected.txt:
        * platform/mac/editing/selection/select-from-textfield-outwards-expected.txt:
        * platform/mac/editing/spelling/spellcheck-attribute-expected.txt:
        * platform/mac/fast/block/margin-collapse/103-expected.txt:
        * platform/mac/fast/css/line-height-expected.txt:
        * platform/mac/fast/css/pseudo-cache-stale-expected.txt:
        * platform/mac/fast/css/resize-corner-tracking-expected.txt:
        * platform/mac/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
        * platform/mac/fast/dom/isindex-002-expected.txt:
        * platform/mac/fast/dynamic/008-expected.txt:
        * platform/mac/fast/events/autoscroll-expected.txt:
        * platform/mac/fast/events/context-no-deselect-expected.txt:
        * platform/mac/fast/events/label-focus-expected.txt:
        * platform/mac/fast/forms/basic-textareas-expected.txt:
        * platform/mac/fast/forms/box-shadow-override-expected.txt:
        * platform/mac/fast/forms/control-restrict-line-height-expected.txt:
        * platform/mac/fast/forms/encoding-test-expected.txt:
        * platform/mac/fast/forms/fieldset-align-expected.txt:
        * platform/mac/fast/forms/form-element-geometry-expected.txt:
        * platform/mac/fast/forms/input-align-expected.txt:
        * platform/mac/fast/forms/input-appearance-bkcolor-expected.txt:
        * platform/mac/fast/forms/input-appearance-default-bkcolor-expected.txt:
        * platform/mac/fast/forms/input-appearance-disabled-expected.txt:
        * platform/mac/fast/forms/input-appearance-focus-expected.txt:
        * platform/mac/fast/forms/input-appearance-height-expected.txt:
        * platform/mac/fast/forms/input-appearance-preventDefault-expected.txt:
        * platform/mac/fast/forms/input-appearance-readonly-expected.txt:
        * platform/mac/fast/forms/input-appearance-selection-expected.txt:
        * platform/mac/fast/forms/input-appearance-visibility-expected.txt:
        * platform/mac/fast/forms/input-appearance-width-expected.txt:
        * platform/mac/fast/forms/input-baseline-expected.txt:
        * platform/mac/fast/forms/input-disabled-color-expected.txt:
        * platform/mac/fast/forms/input-double-click-selection-gap-bug-expected.txt:
        * platform/mac/fast/forms/input-paste-undo-expected.txt:
        * platform/mac/fast/forms/input-readonly-autoscroll-expected.txt:
        * platform/mac/fast/forms/input-readonly-dimmed-expected.txt:
        * platform/mac/fast/forms/input-readonly-empty-expected.txt:
        * platform/mac/fast/forms/input-spaces-expected.txt:
        * platform/mac/fast/forms/input-table-expected.txt:
        * platform/mac/fast/forms/input-text-click-inside-expected.txt:
        * platform/mac/fast/forms/input-text-click-outside-expected.txt:
        * platform/mac/fast/forms/input-text-double-click-expected.txt:
        * platform/mac/fast/forms/input-text-drag-down-expected.txt:
        * platform/mac/fast/forms/input-text-option-delete-expected.txt:
        * platform/mac/fast/forms/input-text-scroll-left-on-blur-expected.txt:
        * platform/mac/fast/forms/input-text-self-emptying-click-expected.txt:
        * platform/mac/fast/forms/input-text-word-wrap-expected.txt:
        * platform/mac/fast/forms/input-type-change2-expected.txt:
        * platform/mac/fast/forms/input-type-text-min-width-expected.txt:
        * platform/mac/fast/forms/input-value-expected.txt:
        * platform/mac/fast/forms/input-width-expected.txt:
        * platform/mac/fast/forms/isindex-placeholder-expected.txt:
        * platform/mac/fast/forms/linebox-overflow-in-textarea-padding-expected.txt:
        * platform/mac/fast/forms/negativeLineHeight-expected.txt:
        * platform/mac/fast/forms/password-placeholder-expected.txt:
        * platform/mac/fast/forms/password-placeholder-text-security-expected.txt:
        * platform/mac/fast/forms/placeholder-pseudo-style-expected.txt:
        * platform/mac/fast/forms/placeholder-set-attribute-expected.txt:
        * platform/mac/fast/forms/placeholder-set-value-expected.txt:
        * platform/mac/fast/forms/search-cancel-button-style-sharing-expected.txt:
        * platform/mac/fast/forms/search-display-none-cancel-button-expected.txt:
        * platform/mac/fast/forms/search-placeholder-value-changed-expected.txt:
        * platform/mac/fast/forms/search-rtl-expected.txt:
        * platform/mac/fast/forms/search-styled-expected.txt:
        * platform/mac/fast/forms/search-transformed-expected.txt:
        * platform/mac/fast/forms/search-vertical-alignment-expected.txt:
        * platform/mac/fast/forms/search-zoomed-expected.txt:
        * platform/mac/fast/forms/searchfield-heights-expected.txt:
        * platform/mac/fast/forms/tabbing-input-iframe-expected.txt:
        * platform/mac/fast/forms/textAreaLineHeight-expected.txt:
        * platform/mac/fast/forms/textarea-align-expected.txt:
        * platform/mac/fast/forms/textarea-rows-cols-expected.txt:
        * platform/mac/fast/forms/textarea-scroll-height-expected.txt:
        * platform/mac/fast/forms/textarea-scrollbar-expected.txt:
        * platform/mac/fast/forms/textarea-scrolled-type-expected.txt:
        * platform/mac/fast/forms/textarea-setinnerhtml-expected.txt:
        * platform/mac/fast/forms/textarea-width-expected.txt:
        * platform/mac/fast/forms/textfield-drag-into-disabled-expected.txt:
        * platform/mac/fast/forms/textfield-outline-expected.txt:
        * platform/mac/fast/forms/textfield-overflow-expected.txt:
        * platform/mac/fast/forms/visual-hebrew-text-field-expected.txt:
        * platform/mac/fast/invalid/residual-style-expected.txt:
        * platform/mac/fast/lists/dynamic-marker-crash-expected.txt:
        * platform/mac/fast/overflow/overflow-x-y-expected.txt:
        * platform/mac/fast/parser/comment-in-textarea-expected.txt:
        * platform/mac/fast/parser/entity-comment-in-textarea-expected.txt:
        * platform/mac/fast/parser/open-comment-in-textarea-expected.txt:
        * platform/mac/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.txt:
        * platform/mac/fast/repaint/search-field-cancel-expected.txt:
        * platform/mac/fast/repaint/subtree-root-skipped-expected.txt:
        * platform/mac/fast/replaced/replaced-breaking-expected.txt:
        * platform/mac/fast/replaced/replaced-breaking-mixture-expected.txt:
        * platform/mac/fast/replaced/width100percent-searchfield-expected.txt:
        * platform/mac/fast/replaced/width100percent-textarea-expected.txt:
        * platform/mac/fast/replaced/width100percent-textfield-expected.txt:
        * platform/mac/fast/table/003-expected.txt:
        * platform/mac/fast/table/colspanMinWidth-expected.txt:
        * platform/mac/fast/table/spanOverlapRepaint-expected.txt:
        * platform/mac/fast/table/text-field-baseline-expected.txt:
        * platform/mac/fast/text/international/rtl-white-space-pre-wrap-expected.txt:
        * platform/mac/fast/text/textIteratorNilRenderer-expected.txt:
        * platform/mac/fast/transforms/transformed-focused-text-input-expected.txt:
        * platform/mac/http/tests/navigation/anchor-frames-expected.txt:
        * platform/mac/http/tests/navigation/javascriptlink-frames-expected.txt:
        * platform/mac/svg/custom/inline-svg-in-xhtml-expected.txt:
        * platform/mac/svg/hixie/mixed/003-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug1188-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug12384-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug18359-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug194024-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug24200-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug2479-2-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug2479-3-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug2479-4-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug28928-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug30559-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug30692-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug4382-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug4527-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug46368-1-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug46368-2-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug51037-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug55545-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug59354-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug7342-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug96334-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug99948-expected.txt:
        * platform/mac/tables/mozilla/dom/tableDom-expected.txt:
        * platform/mac/tables/mozilla/other/move_row-expected.txt:
        * platform/mac/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
        * platform/mac/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
        * svg/custom/svg-fonts-in-text-controls-expected.txt:

2009-07-12  Mark Rowe  <mrowe@apple.com>

        <rdar://problem/7047403> Disable channel messaging

        * fast/dom/Window/window-properties-expected.txt:
        * fast/dom/constructors-cached-navigate-expected.txt:
        * fast/events/message-channel-gc-2-expected.txt:
        * fast/events/message-channel-gc-3-expected.txt:
        * fast/events/message-channel-gc-4-expected.txt:
        * fast/events/message-channel-gc-expected.txt:
        * fast/events/message-channel-listener-circular-ownership-expected.txt:
        * fast/events/message-port-clone-expected.txt:
        * fast/events/message-port-deleted-document-expected.txt:
        * fast/events/message-port-deleted-frame-expected.txt:
        * fast/events/message-port-expected.txt:
        * fast/events/message-port-inactive-document-expected.txt:
        * fast/events/message-port-no-wrapper-expected.txt:
        * fast/js/global-constructors-expected.txt:
        * fast/workers/worker-cloneport-expected.txt:
        * fast/workers/worker-messageport-expected.txt:
        * fast/workers/worker-messageport-gc-expected.txt:
        * http/tests/security/MessagePort/event-listener-context-expected.txt:

2009-07-11  Mark Rowe  <mrowe@apple.com>

        <rdar://problem/7048551> Disable datagrid

        Update test results for the disabling of datagrid.

        * fast/dom/HTMLDataGridElement/DataGridColumns-basic-expected.txt:
        * fast/dom/HTMLDataGridElement/DataGridColumns-dom-attributes-expected.txt:
        * fast/dom/HTMLDataGridElement/DataGridColumns-dom-expected.txt:
        * fast/dom/Window/window-properties-expected.txt:
        * fast/js/global-constructors-expected.txt:

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 ==
