2012-06-26  Dave Tharp  <dtharp@codeaurora.org>

        ietestcenter/css3/valuesandunits/units-000.htm asserts
        https://bugs.webkit.org/show_bug.cgi?id=86176

        Reviewed by Beth Dakin.

        Adding explicit tests for viewport border length tests. Inspired by IE Test center
        units-000 test which highlighted that vw, vh, and vmin were not being handled in computeLengthDouble().
        Also, adjusting test_expectations and Skipped for units-000, which no longer Asserts with this
        patch implemented.

        * css3/viewport-percentage-lengths/css3-viewport-percentage-lengths-vh-border-expected.html: Added.
        * css3/viewport-percentage-lengths/css3-viewport-percentage-lengths-vh-border.html: Added.
        * css3/viewport-percentage-lengths/css3-viewport-percentage-lengths-vmin-border-expected.html: Added.
        * css3/viewport-percentage-lengths/css3-viewport-percentage-lengths-vmin-border.html: Added.
        * css3/viewport-percentage-lengths/css3-viewport-percentage-lengths-vw-border-expected.htm: Added.
        * css3/viewport-percentage-lengths/css3-viewport-percentage-lengths-vw-border.html: Added.
        * ietestcenter/css3/valuesandunits/units-000.htm:
        * platform/chromium/TestExpectations:
        * platform/efl/TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/qt/TestExpectations:

2012-06-26  Filip Pizlo  <fpizlo@apple.com>

        DFG::operationNewArray is unnecessarily slow, and may use the wrong array
        prototype when inlined
        https://bugs.webkit.org/show_bug.cgi?id=89821

        Rubber stamped by Geoffrey Garen.

        * fast/js/dfg-cross-global-object-inline-new-array-expected.txt: Added.
        * fast/js/dfg-cross-global-object-inline-new-array-literal-expected.txt: Added.
        * fast/js/dfg-cross-global-object-inline-new-array-literal-with-variables-expected.txt: Added.
        * fast/js/dfg-cross-global-object-inline-new-array-literal-with-variables.html: Added.
        * fast/js/dfg-cross-global-object-inline-new-array-literal.html: Added.
        * fast/js/dfg-cross-global-object-inline-new-array-with-elements-expected.txt: Added.
        * fast/js/dfg-cross-global-object-inline-new-array-with-elements.html: Added.
        * fast/js/dfg-cross-global-object-inline-new-array-with-size-expected.txt: Added.
        * fast/js/dfg-cross-global-object-inline-new-array-with-size.html: Added.
        * fast/js/dfg-cross-global-object-inline-new-array.html: Added.
        * fast/js/script-tests/cross-global-object-inline-global-var.js:
        (done):
        * fast/js/script-tests/dfg-cross-global-object-inline-new-array-literal-with-variables.js: Added.
        (foo):
        (done):
        (doit):
        * fast/js/script-tests/dfg-cross-global-object-inline-new-array-literal.js: Added.
        (foo):
        (done):
        (doit):
        * fast/js/script-tests/dfg-cross-global-object-inline-new-array-with-elements.js: Added.
        (foo):
        (done):
        (doit):
        * fast/js/script-tests/dfg-cross-global-object-inline-new-array-with-size.js: Added.
        (foo):
        (done):
        (doit):
        * fast/js/script-tests/dfg-cross-global-object-inline-new-array.js: Added.
        (foo):
        (done):
        (doit):

2012-06-26  Adam Klein  <adamk@chromium.org>

        MutationObserver.observe should treat a null or undefined options argument as empty
        https://bugs.webkit.org/show_bug.cgi?id=89992

        Reviewed by Ojan Vafai.

        * fast/mutation/observe-exceptions-expected.txt:

2012-06-26  Alpha Lam  <hclam@chromium.org>

        [chromium] Mark a layout test as timeout
        https://bugs.webkit.org/show_bug.cgi?id=90003

        fast/js/repeat-cached-vm-reentry.html started timing out on Mac debug and Win debug builds
        between r121233:121239.

        * platform/chromium/TestExpectations:

2012-06-26  Julien Chaffraix  <jchaffraix@webkit.org>

        Crash in FixedTableLayout::layout
        https://bugs.webkit.org/show_bug.cgi?id=88676

        Reviewed by Abhishek Arya.

        * fast/table/auto-table-layout-colgroup-removal-crash-expected.txt: Added.
        * fast/table/auto-table-layout-colgroup-removal-crash.html: Added.
        * fast/table/fixed-table-layout/colgroup-removal-crash-expected.txt: Added.
        * fast/table/fixed-table-layout/colgroup-removal-crash.html: Added.
        2 cases where we remove a colgroup after having done layout.

        * fast/table/fixed-table-layout/prepend-in-fixed-table-expected.txt: Added.
        * fast/table/fixed-table-layout/prepend-in-fixed-table.html: Added.
        This is a copy of fast/table/prepend-in-anonymous-table.html modified to work with
        fixed table layout. This covers a bug found during testing that is fixed as part of
        this broader change.

2012-06-26  Alpha Lam  <hclam@chromium.org>

        [chromium] Mark a layout test as fail
        https://bugs.webkit.org/show_bug.cgi?id=89998

        compositing/webgl/webgl-nonpremultiplied-blend.html started failing after r121267, give it IMAGE failure.

        * platform/chromium/TestExpectations:

2012-06-26  Allan Sandfeld Jensen  <allan.jensen@nokia.com>

        [Qt] Baseline missing for 3D transforms tests.
        https://bugs.webkit.org/show_bug.cgi?id=89973

        Reviewed by Csaba Osztrogonác.

        Unskip the transforms/3d/hit-testing, and skip one failing transforms/3d/point-mapping test.
        Add missing baselines for all unskipped 3D transforms tests.

        * platform/qt/Skipped:
        * platform/qt/transforms/3d/hit-testing/backface-hit-test-expected.txt: Added.
        * platform/qt/transforms/3d/hit-testing/backface-no-transform-hit-test-expected.txt: Added.
        * platform/qt/transforms/3d/point-mapping/3d-point-mapping-2-expected.txt: Added.
        * platform/qt/transforms/3d/point-mapping/3d-point-mapping-3-expected.txt: Added.
        * platform/qt/transforms/3d/point-mapping/3d-point-mapping-coplanar-expected.txt: Added.
        * platform/qt/transforms/3d/point-mapping/3d-point-mapping-deep-expected.txt: Added.
        * platform/qt/transforms/3d/point-mapping/3d-point-mapping-expected.txt: Added.
        * platform/qt/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.txt: Added.
        * platform/qt/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.txt: Added.

2012-06-26  Philip Rogers  <pdr@google.com>

        Fix bug where animations failed to start
        https://bugs.webkit.org/show_bug.cgi?id=89943

        Reviewed by Nikolas Zimmermann.

        * svg/custom/animate-initial-pause-unpause-expected.txt: Added.
        * svg/custom/animate-initial-pause-unpause.html: Added.

2012-06-26  Thiago Marcos P. Santos  <thiago.santos@intel.com>

        [EFL] Gardening of new passing tests
        https://bugs.webkit.org/show_bug.cgi?id=89970

        Unreviewed gardening.

        * platform/efl/TestExpectations:

2012-06-26  Simon Pena  <spena@igalia.com>

        [GTK] Assert failure in fast/canvas/canvas-createImageData.html for 64bit Debug bot
        https://bugs.webkit.org/show_bug.cgi?id=89647

        Unreviewed, update GTK test expectations.

        r121215 has fixed the assertion failure, so the test doesn't crash
        anymore.

        * platform/gtk/TestExpectations:

2012-06-26  Taiju Tsuiki  <tzik@chromium.org>

        Web Inspector: Add requestMetadata command and metadataReceived event to FileSystem
        https://bugs.webkit.org/show_bug.cgi?id=87856

        Reviewed by Yury Semikhatsky.

        * http/tests/inspector/filesystem/filesystem-test.js:
        (initialize_FileSystemTest.InspectorTest.writeFile):
        (initialize_FileSystemTest.InspectorTest.dumpMetadataRequestResult):
        (initialize_FileSystemTest):
        (writeFile.didGetFileSystem):
        (writeFile):
        (writeFile.didGetWriter.writer.onwrite):
        (writeFile.didGetWriter):
        * http/tests/inspector/filesystem/get-metadata-expected.txt: Added.
        * http/tests/inspector/filesystem/get-metadata.html: Added.

2012-06-26  Philip Rogers  <pdr@google.com>

        Fix setCurrentTime for paused animations
        https://bugs.webkit.org/show_bug.cgi?id=81350

        Reviewed by Nikolas Zimmermann.

        This test does not use the SVG animation test framework because the framework
        works by pausing animations and testing animated values at fixed times
        (through calling setCurrentTime). Testing this patch requires that we run
        the animation and cannot be tested with the animation test framework.

        * svg/custom/animate-pause-resume-expected.txt: Added.
        * svg/custom/animate-pause-resume.html: Added.

2012-06-26  Tony Chang  <tony@chromium.org>

        [Qt] Enable grid layout LayoutTests
        https://bugs.webkit.org/show_bug.cgi?id=89909

        Reviewed by Csaba Osztrogonác.

        * platform/qt/Skipped: Enable fast/css-grid-layout tests.

2012-06-26  Mario Sanchez Prada  <msanchez@igalia.com>

        Unreviewed gardening after r120845.
        Update expectations for test crashing in the GTK 64bit debug bot.

        * platform/gtk/TestExpectations: Add test to CRASHING section.

2012-06-26  Dominic Cooney  <dominicc@chromium.org>

        WheelEvent should inherit from MouseEvent
        https://bugs.webkit.org/show_bug.cgi?id=76104

        Reviewed by Kentaro Hara.

        * fast/events/event-creation-expected.txt:
        * fast/events/event-creation.html: Also check WheelEvent instanceof MouseEvent as well as UIEvent, Event

2012-06-25  Fumitoshi Ukai  <ukai@chromium.org>

        Unreviewed, update chromium test expectations.

        * platform/chromium/TestExpectations:

2012-06-25  Filip Pizlo  <fpizlo@apple.com>

        Value profiling should use tier-up threshold randomization to get more coverage
        https://bugs.webkit.org/show_bug.cgi?id=89802

        Reviewed by Gavin Barraclough.
        
        * fast/js/dfg-store-unexpected-value-into-argument-and-osr-exit-expected.txt: Added.
        * fast/js/dfg-store-unexpected-value-into-argument-and-osr-exit.html: Added.
        * fast/js/script-tests/dfg-store-unexpected-value-into-argument-and-osr-exit.js: Added.
        (foo):

2012-06-25  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow] Deleting list distributed to Shadow DOM does not work correctly.
        https://bugs.webkit.org/show_bug.cgi?id=89170

        Reviewed by Ryosuke Niwa.

        * editing/shadow/delete-list-in-shadow-expected.txt: Added.
        * editing/shadow/delete-list-in-shadow.html: Added.

2012-06-25  Kent Tamura  <tkent@chromium.org>

        Unreviewed, rolling out r121145.
        http://trac.webkit.org/changeset/121145
        https://bugs.webkit.org/show_bug.cgi?id=89847

        Had an objection for the change.

        * fast/forms/state-restore-broken-state-expected.txt:
        * fast/forms/state-restore-various-values-expected.txt: Removed.
        * fast/forms/state-restore-various-values.html: Removed.

2012-06-25  Anders Carlsson  <andersca@apple.com>

        [Lion WK2] fast/loader/reload-zero-byte-plugin.html hits assert
        https://bugs.webkit.org/show_bug.cgi?id=89611
        <rdar://problem/11714023>

        Reviewed by Sam Weinig.

        Remove the test from the Skipped list.

        * platform/mac-wk2/Skipped:

2012-06-25  Dirk Pranke  <dpranke@chromium.org>

        remove chromium vista baselines
        https://bugs.webkit.org/show_bug.cgi?id=89927

        Unreviewed, expectations change.

        Now that we no longer run tests on Vista, no need for the
        baselines either.

        * platform/chromium-win-vista/canvas/philip/tests/2d.line.cap.round-expected.txt: Removed.
        * platform/chromium-win-vista/canvas/philip/tests/2d.strokeRect.zero.5-expected.txt: Removed.
        * platform/chromium-win-vista/compositing/geometry/horizontal-scroll-composited-expected.png: Removed.
        * platform/chromium-win-vista/compositing/overflow/theme-affects-visual-overflow-expected.txt: Removed.
        * platform/chromium-win-vista/compositing/shadows/shadow-drawing-expected.png: Removed.
        * platform/chromium-win-vista/css1/font_properties/font-expected.txt: Removed.
        * platform/chromium-win-vista/css1/text_properties/line_height-expected.txt: Removed.
        * platform/chromium-win-vista/css1/units/percentage_units-expected.png: Removed.
        * platform/chromium-win-vista/css2.1/t040103-ident-03-c-expected.png: Removed.
        * platform/chromium-win-vista/css2.1/t0803-c5505-imrgn-00-a-ag-expected.txt: Removed.
        * platform/chromium-win-vista/css3/selectors3/html/css3-modsel-23-expected.png: Removed.
        * platform/chromium-win-vista/css3/selectors3/html/css3-modsel-24-expected.png: Removed.
        * platform/chromium-win-vista/css3/selectors3/html/css3-modsel-32-expected.txt: Removed.
        * platform/chromium-win-vista/css3/selectors3/html/css3-modsel-68-expected.png: Removed.
        * platform/chromium-win-vista/css3/selectors3/html/css3-modsel-69-expected.png: Removed.
        * platform/chromium-win-vista/css3/selectors3/xhtml/css3-modsel-23-expected.png: Removed.
        * platform/chromium-win-vista/css3/selectors3/xhtml/css3-modsel-24-expected.png: Removed.
        * platform/chromium-win-vista/css3/selectors3/xhtml/css3-modsel-69-expected.png: Removed.
        * platform/chromium-win-vista/css3/selectors3/xml/css3-modsel-23-expected.png: Removed.
        * platform/chromium-win-vista/css3/selectors3/xml/css3-modsel-24-expected.png: Removed.
        * platform/chromium-win-vista/css3/selectors3/xml/css3-modsel-68-expected.png: Removed.
        * platform/chromium-win-vista/css3/selectors3/xml/css3-modsel-69-expected.png: Removed.
        * platform/chromium-win-vista/editing/inserting/4959067-expected.txt: Removed.
        * platform/chromium-win-vista/editing/pasteboard/paste-xml-expected.txt: Removed.
        * platform/chromium-win-vista/editing/style/style-3681552-fix-002-expected.txt: Removed.
        * platform/chromium-win-vista/fast/backgrounds/size/backgroundSize20-expected.png: Removed.
        * platform/chromium-win-vista/fast/backgrounds/size/backgroundSize21-expected.png: Removed.
        * platform/chromium-win-vista/fast/backgrounds/size/backgroundSize22-expected.png: Removed.
        * platform/chromium-win-vista/fast/block/positioning/trailing-space-test-expected.png: Removed.
        * platform/chromium-win-vista/fast/box-shadow/single-pixel-shadow-expected.png: Removed.
        * platform/chromium-win-vista/fast/canvas/canvas-fillRect-gradient-shadow-expected.txt: Removed.
        * platform/chromium-win-vista/fast/canvas/canvas-resize-after-paint-without-layout-expected.png: Removed.
        * platform/chromium-win-vista/fast/canvas/webgl/context-lost-expected.txt: Removed.
        * platform/chromium-win-vista/fast/compact/001-expected.png: Removed.
        * platform/chromium-win-vista/fast/css/box-shadow-and-border-radius-expected.png: Removed.
        * platform/chromium-win-vista/fast/css/text-rendering-expected.png: Removed.
        * platform/chromium-win-vista/fast/css/text-rendering-expected.txt: Removed.
        * platform/chromium-win-vista/fast/css/zoom-body-scroll-expected.txt: Removed.
        * platform/chromium-win-vista/fast/dom/HTMLMeterElement/meter-appearances-capacity-expected.txt: Removed.
        * platform/chromium-win-vista/fast/dom/HTMLProgressElement/progress-element-expected.txt: Removed.
        * platform/chromium-win-vista/fast/forms/select-writing-direction-natural-expected.txt: Removed.
        * platform/chromium-win-vista/fast/inline-block/002-expected.png: Removed.
        * platform/chromium-win-vista/fast/inline/002-expected.png: Removed.
        * platform/chromium-win-vista/fast/js/large-expressions-expected.txt: Removed.
        * platform/chromium-win-vista/fast/multicol/client-rects-expected.png: Removed.
        * platform/chromium-win-vista/fast/multicol/client-rects-expected.txt: Removed.
        * platform/chromium-win-vista/fast/multicol/vertical-rl/nested-columns-expected.png: Removed.
        * platform/chromium-win-vista/fast/parser/style-script-head-test-expected.png: Removed.
        * platform/chromium-win-vista/fast/repaint/background-misaligned-expected.png: Removed.
        * platform/chromium-win-vista/fast/repaint/inline-relative-positioned-expected.txt: Removed.
        * platform/chromium-win-vista/fast/replaced/image-tag-expected.png: Removed.
        * platform/chromium-win-vista/fast/sub-pixel/selection/selection-gaps-at-fractional-offsets-expected.png: Removed.
        * platform/chromium-win-vista/fast/table/tableInsideCaption-expected.png: Removed.
        * platform/chromium-win-vista/fast/text/atsui-kerning-and-ligatures-expected.png: Removed.
        * platform/chromium-win-vista/fast/text/backslash-to-yen-sign-expected.txt: Removed.
        * platform/chromium-win-vista/fast/text/international/bidi-mirror-he-ar-expected.txt: Removed.
        * platform/chromium-win-vista/fast/text/international/bidi-neutral-run-expected.png: Removed.
        * platform/chromium-win-vista/fast/text/international/danda-space-expected.png: Removed.
        * platform/chromium-win-vista/fast/text/international/plane2-expected.txt: Removed.
        * platform/chromium-win-vista/fast/text/selection-painted-separately-expected.txt: Removed.
        * platform/chromium-win-vista/fast/text/selection-rect-rounding-expected.txt: Removed.
        * platform/chromium-win-vista/fast/text/stroking-decorations-expected.png: Removed.
        * platform/chromium-win-vista/fast/text/stroking-expected.png: Removed.
        * platform/chromium-win-vista/fast/text/unicode-variation-selector-expected.png: Removed.
        * platform/chromium-win-vista/fast/text/whitespace/normal-after-nowrap-breaking-expected.png: Removed.
        * platform/chromium-win-vista/fast/writing-mode/broken-ideographic-font-expected.txt: Removed.
        * platform/chromium-win-vista/fast/writing-mode/english-lr-text-expected.png: Removed.
        * platform/chromium-win-vista/http/tests/misc/acid2-expected.txt: Removed.
        * platform/chromium-win-vista/http/tests/misc/acid2-pixel-expected.png: Removed.
        * platform/chromium-win-vista/platform/chromium/compositing/layout-width-change-expected.png: Removed.
        * platform/chromium-win-vista/platform/chromium/virtual/gpu/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.txt: Removed.
        * platform/chromium-win-vista/platform/chromium/virtual/gpu/fast/canvas/canvas-resize-after-paint-without-layout-expected.png: Removed.
        * platform/chromium-win-vista/svg/W3C-I18N/g-dirLTR-ubNone-expected.txt: Removed.
        * platform/chromium-win-vista/svg/W3C-I18N/g-dirLTR-ubOverride-expected.txt: Removed.
        * platform/chromium-win-vista/svg/W3C-I18N/g-dirRTL-ubNone-expected.txt: Removed.
        * platform/chromium-win-vista/svg/W3C-I18N/g-dirRTL-ubOverride-expected.txt: Removed.
        * platform/chromium-win-vista/svg/W3C-I18N/text-dirLTR-ubNone-expected.txt: Removed.
        * platform/chromium-win-vista/svg/W3C-I18N/text-dirLTR-ubOverride-expected.png: Removed.
        * platform/chromium-win-vista/svg/W3C-I18N/text-dirLTR-ubOverride-expected.txt: Removed.
        * platform/chromium-win-vista/svg/W3C-I18N/text-dirRTL-ubNone-expected.txt: Removed.
        * platform/chromium-win-vista/svg/W3C-I18N/text-dirRTL-ubOverride-expected.txt: Removed.
        * platform/chromium-win-vista/svg/W3C-I18N/tspan-dirLTR-ubEmbed-in-rtl-context-expected.txt: Removed.
        * platform/chromium-win-vista/svg/W3C-I18N/tspan-dirLTR-ubNone-in-rtl-context-expected.txt: Removed.
        * platform/chromium-win-vista/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-default-context-expected.png: Removed.
        * platform/chromium-win-vista/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-default-context-expected.txt: Removed.
        * platform/chromium-win-vista/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-ltr-context-expected.png: Removed.
        * platform/chromium-win-vista/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-ltr-context-expected.txt: Removed.
        * platform/chromium-win-vista/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-rtl-context-expected.png: Removed.
        * platform/chromium-win-vista/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-rtl-context-expected.txt: Removed.
        * platform/chromium-win-vista/svg/W3C-I18N/tspan-dirNone-ubOverride-in-default-context-expected.png: Removed.
        * platform/chromium-win-vista/svg/W3C-I18N/tspan-dirNone-ubOverride-in-default-context-expected.txt: Removed.
        * platform/chromium-win-vista/svg/W3C-I18N/tspan-dirNone-ubOverride-in-ltr-context-expected.png: Removed.
        * platform/chromium-win-vista/svg/W3C-I18N/tspan-dirNone-ubOverride-in-ltr-context-expected.txt: Removed.
        * platform/chromium-win-vista/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-rtl-context-expected.txt: Removed.
        * platform/chromium-win-vista/svg/W3C-I18N/tspan-direction-rtl-expected.txt: Removed.
        * platform/chromium-win-vista/svg/W3C-SVG-1.1-SE/text-intro-05-t-expected.png: Removed.
        * platform/chromium-win-vista/svg/W3C-SVG-1.1-SE/text-intro-05-t-expected.txt: Removed.
        * platform/chromium-win-vista/svg/W3C-SVG-1.1/animate-elem-52-t-expected.png: Removed.
        * platform/chromium-win-vista/svg/W3C-SVG-1.1/filters-conv-01-f-expected.png: Removed.
        * platform/chromium-win-vista/svg/W3C-SVG-1.1/filters-conv-01-f-expected.txt: Removed.
        * platform/chromium-win-vista/svg/W3C-SVG-1.1/masking-intro-01-f-expected.png: Removed.
        * platform/chromium-win-vista/svg/W3C-SVG-1.1/text-intro-05-t-expected.png: Removed.
        * platform/chromium-win-vista/svg/W3C-SVG-1.1/text-intro-05-t-expected.txt: Removed.
        * platform/chromium-win-vista/svg/as-image/image-respects-pageScaleFactor-expected.png: Removed.
        * platform/chromium-win-vista/svg/as-image/image-respects-pageScaleFactor-expected.txt: Removed.
        * platform/chromium-win-vista/svg/as-object/svg-embedded-in-html-in-iframe-expected.txt: Removed.
        * platform/chromium-win-vista/svg/css/composite-shadow-text-expected.png: Removed.
        * platform/chromium-win-vista/svg/css/shadow-changes-expected.png: Removed.
        * platform/chromium-win-vista/svg/custom/bug45331-expected.txt: Removed.
        * platform/chromium-win-vista/svg/custom/js-late-gradient-and-object-creation-expected.png: Removed.
        * platform/chromium-win-vista/svg/custom/js-late-pattern-and-object-creation-expected.png: Removed.
        * platform/chromium-win-vista/svg/custom/mouse-move-on-svg-root-expected.png: Removed.
        * platform/chromium-win-vista/svg/custom/mouse-move-on-svg-root-expected.txt: Removed.
        * platform/chromium-win-vista/svg/custom/object-sizing-width-50p-height-50p-on-target-svg-absolute-expected.txt: Removed.
        * platform/chromium-win-vista/svg/custom/object-sizing-width-50p-height-75p-on-target-svg-absolute-expected.txt: Removed.
        * platform/chromium-win-vista/svg/custom/object-sizing-width-50p-on-target-svg-absolute-expected.txt: Removed.
        * platform/chromium-win-vista/svg/custom/object-sizing-width-75p-height-50p-on-target-svg-absolute-expected.txt: Removed.
        * platform/chromium-win-vista/svg/custom/object-sizing-width-75p-height-50p-on-target-svg-expected.txt: Removed.
        * platform/chromium-win-vista/svg/custom/pattern-referencing-preserve-aspect-ratio-expected.txt: Removed.
        * platform/chromium-win-vista/svg/custom/use-clipped-hit-expected.txt: Removed.
        * platform/chromium-win-vista/svg/custom/use-disappears-after-style-update-expected.txt: Removed.
        * platform/chromium-win-vista/svg/custom/use-modify-target-symbol-expected.txt: Removed.
        * platform/chromium-win-vista/svg/dynamic-updates/SVGImageElement-dom-preserveAspectRatio-attr-expected.png: Removed.
        * platform/chromium-win-vista/svg/dynamic-updates/SVGImageElement-dom-width-attr-expected.png: Removed.
        * platform/chromium-win-vista/svg/dynamic-updates/SVGImageElement-dom-x-attr-expected.png: Removed.
        * platform/chromium-win-vista/svg/dynamic-updates/SVGImageElement-dom-y-attr-expected.png: Removed.
        * platform/chromium-win-vista/svg/dynamic-updates/SVGImageElement-svgdom-height-prop-expected.png: Removed.
        * platform/chromium-win-vista/svg/dynamic-updates/SVGImageElement-svgdom-preserveAspectRatio-prop-expected.png: Removed.
        * platform/chromium-win-vista/svg/dynamic-updates/SVGImageElement-svgdom-width-prop-expected.png: Removed.
        * platform/chromium-win-vista/svg/dynamic-updates/SVGImageElement-svgdom-x-prop-expected.png: Removed.
        * platform/chromium-win-vista/svg/dynamic-updates/SVGImageElement-svgdom-y-prop-expected.png: Removed.
        * platform/chromium-win-vista/svg/filters/big-sized-filter-2-expected.png: Removed.
        * platform/chromium-win-vista/svg/filters/feComposite-expected.png: Removed.
        * platform/chromium-win-vista/svg/filters/feDisplacementMap-expected.png: Removed.
        * platform/chromium-win-vista/svg/filters/feLighting-crash-expected.png: Removed.
        * platform/chromium-win-vista/svg/filters/feMerge-expected.png: Removed.
        * platform/chromium-win-vista/svg/filters/shadow-on-filter-expected.png: Removed.
        * platform/chromium-win-vista/svg/filters/shadow-on-rect-with-filter-expected.png: Removed.
        * platform/chromium-win-vista/svg/filters/subRegion-in-userSpace-expected.png: Removed.
        * platform/chromium-win-vista/svg/stroke/zero-length-path-linecap-rendering-expected.txt: Removed.
        * platform/chromium-win-vista/svg/stroke/zero-length-subpaths-linecap-rendering-expected.txt: Removed.
        * platform/chromium-win-vista/svg/text/bidi-text-query-expected.png: Removed.
        * platform/chromium-win-vista/svg/text/bidi-text-query-expected.txt: Removed.
        * platform/chromium-win-vista/svg/text/bidi-tspans-expected.txt: Removed.
        * platform/chromium-win-vista/svg/text/text-intro-05-t-expected.png: Removed.
        * platform/chromium-win-vista/svg/text/text-intro-05-t-expected.txt: Removed.
        * platform/chromium-win-vista/svg/zoom/page/zoom-foreignObject-expected.png: Removed.
        * platform/chromium-win-vista/svg/zoom/page/zoom-hixie-rendering-model-004-expected.png: Removed.
        * platform/chromium-win-vista/svg/zoom/page/zoom-mask-with-percentages-expected.png: Removed.
        * platform/chromium-win-vista/tables/mozilla/bugs/bug120107-expected.png: Removed.
        * platform/chromium-win-vista/tables/mozilla/bugs/bug1271-expected.png: Removed.
        * platform/chromium-win-vista/tables/mozilla/bugs/bug12908-2-expected.png: Removed.
        * platform/chromium-win-vista/tables/mozilla/bugs/bug13169-expected.png: Removed.
        * platform/chromium-win-vista/tables/mozilla/bugs/bug196870-expected.png: Removed.
        * platform/chromium-win-vista/tables/mozilla/bugs/bug50695-2-expected.png: Removed.
        * platform/chromium-win-vista/tables/mozilla/marvin/tables_align_center-expected.png: Removed.
        * platform/chromium-win-vista/tables/mozilla_expected_failures/bugs/bug61042-1-expected.png: Removed.
        * platform/chromium-win-vista/tables/mozilla_expected_failures/bugs/bug92647-1-expected.png: Removed.
        * platform/chromium-win-vista/transforms/2d/hindi-rotated-expected.png: Removed.
        * platform/chromium-win-vista/transforms/2d/hindi-rotated-expected.txt: Removed.

2012-06-25  Pablo Flouret  <pablof@motorola.com>

        EventSource: Events should not be dispatched after close()
        https://bugs.webkit.org/show_bug.cgi?id=85346

        Reviewed by Adam Barth.

        * http/tests/eventsource/eventsource-events-after-close-expected.txt: Added.
        * http/tests/eventsource/eventsource-events-after-close.html: Added.

2012-06-25  Dirk Pranke  <dpranke@chromium.org>

        remove support for chromium vista from tools
        https://bugs.webkit.org/show_bug.cgi?id=89915

        Reviewed by Tony Chang.

        * platform/chromium/TestExpectations:

2012-06-25  Alpha Lam  <hclam@chromium.org>

        Unreviewed. Build fix.

        Rebaseline layout test expectations from r121179.

        * platform/chromium-linux/compositing/reflections/animation-inside-reflection-expected.png:
        * platform/chromium-mac-snowleopard/compositing/reflections/animation-inside-reflection-expected.png:
        * platform/chromium-mac/compositing/reflections/animation-inside-reflection-expected.png:
        * platform/chromium-win/compositing/reflections/animation-inside-reflection-expected.png:

2012-06-25  Jon Lee  <jonlee@apple.com>

        Mac bot gardening.
        https://bugs.webkit.org/show_bug.cgi?id=89611

        * platform/mac-wk2/Skipped:

2012-06-25  Alpha Lam  <hclam@chromium.org>

        Unreviewed, rolling out r121129.
        http://trac.webkit.org/changeset/121129
        https://bugs.webkit.org/show_bug.cgi?id=89542

        Chromium ASan failure: crbug.com/134402

        * fast/css/variables/border-width.html:
        * fast/css/variables/build-supports-variables-expected.txt: Removed.
        * fast/css/variables/build-supports-variables.html: Removed.
        * fast/css/variables/colors-test.html:
        * fast/css/variables/complex-cycle.html:
        * fast/css/variables/computed-style.html:
        * fast/css/variables/inherited-values.html:
        * fast/css/variables/inline-styles.html:
        * fast/css/variables/invalid-shorthand.html:
        * fast/css/variables/invalid-variable-value.html:
        * fast/css/variables/multi-level-cycle.html:
        * fast/css/variables/redefinition.html:
        * fast/css/variables/shorthand.html:
        * fast/css/variables/simple-cycle.html:
        * fast/css/variables/transform-test.html:
        * fast/css/variables/undefined.html:
        * fast/css/variables/use-before-defined.html:
        * fast/css/variables/var-inside-shorthand.html:
        * fast/css/variables/variable-chain.html:

2012-06-25  Raymond Toy  <rtoy@google.com>

        Add layout tests for audio codecs
        https://bugs.webkit.org/show_bug.cgi?id=88794

        Reviewed by Chris Rogers.

        New tests and expected results
        * webaudio/codec-tests/aac/vbr-128kbps-44khz-expected.wav: Added.
        * webaudio/codec-tests/aac/vbr-128kbps-44khz.html: Added.
        * webaudio/codec-tests/mp3/128kbps-44khz-expected.wav: Added.
        * webaudio/codec-tests/mp3/128kbps-44khz.html: Added.
        * webaudio/codec-tests/vorbis/vbr-128kbps-44khz-expected.wav: Added.
        * webaudio/codec-tests/vorbis/vbr-128kbps-44khz.html: Added.
        * webaudio/codec-tests/vorbis/vbr-70kbps-44khz-expected.wav: Added.
        * webaudio/codec-tests/vorbis/vbr-70kbps-44khz.html: Added.
        * webaudio/codec-tests/vorbis/vbr-96kbps-44khz-expected.wav: Added.
        * webaudio/codec-tests/vorbis/vbr-96kbps-44khz.html: Added.
        * webaudio/codec-tests/wav/24bit-22khz-resample-expected.wav: Added.
        * webaudio/codec-tests/wav/24bit-22khz-resample.html: Added.
        * webaudio/codec-tests/wav/24bit-44khz-expected.wav: Added.
        * webaudio/codec-tests/wav/24bit-44khz.html: Added.
        * webaudio/resources/audio-codec-test.js: Added.
        (runDecodingTest):
        (finishedLoading):

        Media files for the tests
        * webaudio/resources/media/128kbps-44khz.mp3: Added.
        * webaudio/resources/media/24bit-22khz.wav: Added.
        * webaudio/resources/media/24bit-44khz.wav: Added.
        * webaudio/resources/media/vbr-128kbps-44khz.m4a: Added.
        * webaudio/resources/media/vbr-128kbps-44khz.ogg: Added.
        * webaudio/resources/media/vbr-70kbps-44khz.ogg: Added.
        * webaudio/resources/media/vbr-96kbps-44khz.ogg: Added.

        Platform-specific expected results
        * platform/chromium-linux/webaudio/codec-tests/aac/vbr-128kbps-44khz-expected.wav: Added.
        * platform/chromium-linux/webaudio/codec-tests/mp3/128kbps-44khz-expected.wav: Added.
        * platform/chromium-linux/webaudio/codec-tests/wav/24bit-22khz-resample-expected.wav: Added.
        * platform/chromium-mac/webaudio/codec-tests/aac/vbr-128kbps-44khz-expected.wav: Added.
        * platform/chromium-mac/webaudio/codec-tests/mp3/128kbps-44khz-expected.wav: Added.
        * platform/chromium-win/webaudio/codec-tests/aac/vbr-128kbps-44khz-expected.wav: Added.
        * platform/chromium-win/webaudio/codec-tests/mp3/128kbps-44khz-expected.wav: Added.
        * platform/chromium-win/webaudio/codec-tests/wav/24bit-22khz-resample-expected.wav: Added.

        New test expectations
        * platform/chromium/TestExpectations: Disable aac/mp3 tests until bots have support.
        * platform/efl/TestExpectations: Disable all webaudio codec tests
        * platform/gtk/TestExpectations: Disable all webaudio codec tests
        * platform/mac/TestExpectations: Disable all webaudio codec tests
        * platform/qt/TestExpectations: Disable all webaudio codec tests

2012-06-25  Huang Dongsung  <luxtella@company100.net>

        [Texmap] TextureMapperPaintOptions should keep current surface.
        https://bugs.webkit.org/show_bug.cgi?id=89266

        Add a opacity property to two div layers in animation-insiVde-reflection
        test.
        Texmap has a bug when a transparent reflection layer has another
        transparent reflection layer, so two reflection layer in
        animation-inside-reflection test have opacity in order to cover Texmap's
        bug.

        Reviewed by Noam Rosenthal.

        * compositing/reflections/animation-inside-reflection.html:
        * platform/chromium-linux/compositing/reflections/animation-inside-reflection-expected.png:
        * platform/chromium-mac-leopard/compositing/reflections/animation-inside-reflection-expected.png:
        * platform/chromium-mac-snowleopard/compositing/reflections/animation-inside-reflection-expected.png:
        * platform/chromium-mac/compositing/reflections/animation-inside-reflection-expected.png:
        * platform/chromium-win/compositing/reflections/animation-inside-reflection-expected.png:
        * platform/efl/compositing/reflections/animation-inside-reflection-expected.png:
        * platform/mac-snowleopard/compositing/reflections/animation-inside-reflection-expected.png:
        * platform/qt/compositing/reflections/animation-inside-reflection-expected.png: Added.
        * platform/qt/compositing/reflections/animation-inside-reflection-expected.txt: Added.

2012-06-25  Jon Lee  <jonlee@apple.com>

        Missing implementation of textInputController.setComposition() causes bot redness
        https://bugs.webkit.org/show_bug.cgi?id=89845

        * platform/mac/Skipped: Skip fast/forms/input-set-composition-scroll.html

2012-06-25  Adam Barth  <abarth@webkit.org>

        ASSERT(m_wheelEventHandlerCount > 0) can fire
        https://bugs.webkit.org/show_bug.cgi?id=89856

        Reviewed by Eric Seidel.

        Test what happens when we move a node with wheel and/or touch events
        from one document to another. Prior to this patch, this test triggers
        ASSERT(m_wheelEventHandlerCount > 0) in Document.cpp.

        * fast/events/move-element-with-wheel-and-touch-event-listeners-expected.txt: Added.
        * fast/events/move-element-with-wheel-and-touch-event-listeners.html: Added.

2012-06-25  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow] Executing Italic and InsertUnorderedList in Shadow DOM causes a crash
        https://bugs.webkit.org/show_bug.cgi?id=88495

        Reviewed by Ryosuke Niwa.

        * editing/shadow/insertorderedlist-crash-expected.txt: Added.
        * editing/shadow/insertorderedlist-crash.html: Added.

2012-06-25  Allan Sandfeld Jensen  <allan.jensen@nokia.com>

        [Qt] Unskip 3D transform tests.
        https://bugs.webkit.org/show_bug.cgi?id=89878

        Reviewed by Csaba Osztrogonác.

        * platform/qt-5.0-wk2/Skipped:
        * platform/qt/Skipped:

2012-06-25  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: toggling style should not start property edit first.
        https://bugs.webkit.org/show_bug.cgi?id=89834

        Reviewed by Yury Semikhatsky.

        * http/tests/inspector/elements-test.js:
        (initialize_ElementTest.InspectorTest.dumpSelectedElementStyles):
        (initialize_ElementTest.InspectorTest.toggleStylePropertyEnabled):
        * inspector/styles/styles-disable-inherited.html:
        * inspector/styles/styles-disable-then-change.html:
        * inspector/styles/styles-disable-then-delete.html:
        * inspector/styles/styles-disable-then-enable.html:
        * inspector/styles/undo-property-toggle.html:

2012-06-25  Philip Rogers  <pdr@google.com>

        Fix rewinding of SVG animations
        https://bugs.webkit.org/show_bug.cgi?id=89846

        Reviewed by Nikolas Zimmermann.

        * svg/animations/animate-reset-freeze-expected.txt: Added.
        * svg/animations/animate-reset-freeze.html: Added.

2012-06-25  Kent Tamura  <tkent@chromium.org>

        Change the serialization format of form control state to make the code simple
        https://bugs.webkit.org/show_bug.cgi?id=89847

        Reviewed by Hajime Morita.

        * fast/forms/state-restore-broken-state-expected.txt:
        Apply the serialization format change.
        * fast/forms/state-restore-various-values-expected.txt: Added.
        * fast/forms/state-restore-various-values.html: Added.

2012-06-24  Kristóf Kosztyó  <kkristof@inf.u-szeged.hu>

        [Qt] Unreviewed gardening, skip new failing tests.

        * platform/qt/Skipped:

2012-06-24  Kristóf Kosztyó  <kkristof@inf.u-szeged.hu>

        [Qt] Unreviewed gardening, skip new failing tests.

        * platform/qt/Skipped:

2012-06-24  Joone Hur  <joone.hur@intel.com>

        Unreviewed GTK/EFL gardening after r121121.
        Marked fast/forms/input-set-composition-scroll.html as known failure
        tracked by the bug 89845.

        * platform/efl/TestExpectations:
        * platform/gtk/TestExpectations:

2012-06-24  Mike Lawther  <mikelawther@chromium.org>

        CSS3 calc: transitions starting and ending with a calc expression move to end state
        https://bugs.webkit.org/show_bug.cgi?id=89738

        Reviewed by Tony Chang.

        * css3/calc/transition-start-end-with-calc-expected.txt: Added.
        * css3/calc/transition-start-end-with-calc.html: Added.

2012-06-21  Kent Tamura  <tkent@chromium.org>

        Selected option is not restored correctly
        https://bugs.webkit.org/show_bug.cgi?id=89623

        Reviewed by Hajime Morita.

        * fast/forms/select/select-state-restore-expected.txt: Added.
        * fast/forms/select/select-state-restore.html: Added.

2012-06-24  David Barr  <davidbarr@chromium.org>

        Add snap to css3-images image-resolution
        https://bugs.webkit.org/show_bug.cgi?id=89745

        Reviewed by Tony Chang.

        * fast/css/image-resolution/image-resolution-expected.txt:
        * fast/css/image-resolution/image-resolution.html:

2012-06-24  Oli Lan  <olilan@chromium.org>

        After Editor::setComposition is called, input should scroll to the end of the composition.
        https://bugs.webkit.org/show_bug.cgi?id=88999

        Reviewed by Ryosuke Niwa.

        This tests that after setComposition is called, the input scrolls to the end of the composition
        (i.e. that the end of the selection/composition is revealed).

        * fast/forms/input-set-composition-scroll-expected.txt: Added.
        * fast/forms/input-set-composition-scroll.html: Added.

2012-06-24  Adam Barth  <abarth@webkit.org>

        The comment in test_expectations_android.txt is unclear as to the purpose of this file.
        https://bugs.webkit.org/show_bug.cgi?id=89832

        Reviewed by Ojan Vafai.

        This patch attempts to clarify the purpose of this file and what will
        happen to it in the future.

        * platform/chromium/test_expectations_android.txt:

2012-06-24  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Skip fast/text/hyphen-min-preferred-width.html
        https://bugs.webkit.org/show_bug.cgi?id=89831

        Unreviewed EFL gardening. Skip the auto-hyphenation added
        in r121102 as the EFL port does not support the feature.

        * platform/efl/TestExpectations:

2012-06-24  Joone Hur  <joone.hur@intel.com>

        Unreviewed EFL gardening, generating baselines required after r121085.

        * platform/efl/fast/css/text-overflow-ellipsis-text-align-center-expected.txt: Added.
        * platform/efl/fast/css/text-overflow-ellipsis-text-align-justify-expected.txt: Added.
        * platform/efl/fast/css/text-overflow-ellipsis-text-align-left-expected.txt: Added.
        * platform/efl/fast/css/text-overflow-ellipsis-text-align-right-expected.txt: Added.
        * platform/efl/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.txt: Added.
        * platform/efl/fast/css/vertical-text-overflow-ellipsis-text-align-justify-expected.txt: Added.
        * platform/efl/fast/css/vertical-text-overflow-ellipsis-text-align-left-expected.txt: Added.
        * platform/efl/fast/css/vertical-text-overflow-ellipsis-text-align-right-expected.txt: Added.

2012-06-24  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening, generating baselines required after r121085.

        * platform/gtk/fast/css/text-overflow-ellipsis-text-align-center-expected.txt: Added.
        * platform/gtk/fast/css/text-overflow-ellipsis-text-align-justify-expected.txt: Added.
        * platform/gtk/fast/css/text-overflow-ellipsis-text-align-left-expected.txt: Added.
        * platform/gtk/fast/css/text-overflow-ellipsis-text-align-right-expected.txt: Added.
        * platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.txt: Added.
        * platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-justify-expected.txt: Added.
        * platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-left-expected.txt: Added.
        * platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-right-expected.txt: Added.

2012-06-24  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening, move some flaky tests under the
        proper section in the TestExpectations file and narrow down
        test expectations for failures that were shown not to be flaky.

        * platform/gtk/TestExpectations:

2012-06-23  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening, skip the auto-hyphenation test
        added in r121102 as the GTK port does not support the feature.

        * platform/gtk/TestExpectations:

2012-06-23  Zan Dobersek  <zandobersek@gmail.com>

        [Gtk] REGRESSION(r120918): Causes flaky DND tests
        https://bugs.webkit.org/show_bug.cgi?id=89770

        Reviewed by Martin Robinson.

        Remove test expectations for fast/events/domactivate-sets-underlying-click-event-as-handled.html
        as the test now passes since the file chooser dialog is no longer run.

        * platform/gtk/TestExpectations:

2012-06-23  Kenneth Russell  <kbr@google.com>

        [chromium] Layout Test fast/text/hyphen-min-preferred-width.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=89820

        Unreviewed gardening; marked test as known failure.

        * platform/chromium/TestExpectations:

2012-06-23  Dan Bernstein  <mitz@apple.com>

        RenderText’s minimum preferred width is incorrect automatic hyphenation is used
        https://bugs.webkit.org/show_bug.cgi?id=89814

        Reviewed by Sam Weinig.

        * fast/text/hyphen-min-preferred-width-expected.html: Added.
        * fast/text/hyphen-min-preferred-width.html: Added.

2012-06-23  Kenneth Russell  <kbr@google.com>

        Unreviewed Chromium gardening. Marked tests flaky per bugs 89812
        and 89813.

        * platform/chromium/TestExpectations:

2012-06-23  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening, adding test expectations for two
        flaky media tests.

        * platform/gtk/TestExpectations:

2012-06-23  Fumitoshi Ukai  <ukai@chromium.org>

        Unreviewed. Fix chromium test expectations

        * platform/chromium/TestExpectations:

2012-06-23  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening after 121063, adding IMAGE test expectation
        for tests in fast/css-grid-layout now that some reftests are working
        properly and causing failures for platforms that don't support the
        feature yet.

        * platform/gtk/TestExpectations:

2012-06-22  Benjamin Poulain  <bpoulain@apple.com>

        Text with text-overflow:ellipsis and text-align:right is left aligned
        https://bugs.webkit.org/show_bug.cgi?id=88705

        Reviewed by Dan Bernstein.

        * fast/css/text-overflow-ellipsis-text-align-center.html: Added.
        * fast/css/text-overflow-ellipsis-text-align-justify.html: Added.
        * fast/css/text-overflow-ellipsis-text-align-left.html: Added.
        * fast/css/text-overflow-ellipsis-text-align-right.html: Added.
        * fast/css/vertical-text-overflow-ellipsis-text-align-center.html: Added.
        * fast/css/vertical-text-overflow-ellipsis-text-align-justify.html: Added.
        * fast/css/vertical-text-overflow-ellipsis-text-align-left.html: Added.
        * fast/css/vertical-text-overflow-ellipsis-text-align-right.html: Added.
        The vertical-text tests are incorrect due to other bugs. Add they to track regressions/progressions
        going forward.

        * platform/chromium/TestExpectations: The tests need platform specific results.
        * platform/mac/fast/css/text-overflow-ellipsis-text-align-center-expected.txt: Added.
        * platform/mac/fast/css/text-overflow-ellipsis-text-align-justify-expected.txt: Added.
        * platform/mac/fast/css/text-overflow-ellipsis-text-align-left-expected.txt: Added.
        * platform/mac/fast/css/text-overflow-ellipsis-text-align-right-expected.txt: Added.
        * platform/mac/fast/css/text-overflow-ellipsis-text-align-center-expected.txt: Added.
        * platform/mac/fast/css/text-overflow-ellipsis-text-align-justify-expected.txt: Added.
        * platform/mac/fast/css/text-overflow-ellipsis-text-align-left-expected.txt: Added.
        * platform/mac/fast/css/text-overflow-ellipsis-text-align-right-expected.txt: Added.

2012-06-22  Alexandru Chiculita  <achicu@adobe.com>

        [CSS Shaders] Re-enable the CSS Shaders compile time flag on Safari Mac
        https://bugs.webkit.org/show_bug.cgi?id=89781

        Reviewed by Dean Jackson.

        Renabled CSS Shaders tests on Safari for Mac.

        * platform/mac/Skipped:

2012-06-22  Kenneth Russell  <kbr@google.com>

        Unreviewed Chromium gardening. Marked test as needing rebaseline
        after http://trac.webkit.org/changeset/121076 per jamesr.

        * platform/chromium/TestExpectations:

2012-06-22  Hayato Ito  <hayato@chromium.org>

        [Shadow] ShadowRoot.activeElement should use the result of re-targeting algorithm.
        https://bugs.webkit.org/show_bug.cgi?id=89763

        Reviewed by Dimitri Glazkov.

        * fast/dom/shadow/shadow-root-activeElement-expected.txt:
        * fast/dom/shadow/shadow-root-activeElement.html:

2012-06-22  Kenneth Russell  <kbr@google.com>

        Unreviewed Chromium gardening. Suppressed additional test failures
        tracked in bugs 73692 and 89789.

        * platform/chromium/TestExpectations:

2012-06-22  Kenneth Russell  <kbr@google.com>

        Layout test fast/regions/get-regions-by-content-node2.html crashing intermittently
        https://bugs.webkit.org/show_bug.cgi?id=89794

        Unreviewed; suppressed test failure.

        * platform/chromium/TestExpectations:

2012-06-22  Julien Chaffraix  <jchaffraix@webkit.org>

        REGRESSION(r116446): Crash in RenderBoxModelObject::adjustedPositionRelativeToOffsetParent
        https://bugs.webkit.org/show_bug.cgi?id=89785

        Reviewed by Abhishek Arya.

        * fullscreen/full-screen-crash-offsetLeft-expected.html: Added.
        * fullscreen/full-screen-crash-offsetLeft.html: Added.

2012-06-22  Beth Dakin  <bdakin@apple.com>

        Skipping this test because it's failing most of the time since 
        recent modifications. 
        https://bugs.webkit.org/show_bug.cgi?id=89790 will be used to 
        track fixing the real issue.

        * platform/mac/Skipped:

2012-06-22  Kenneth Russell  <kbr@google.com>

        [Chromium] Layout test plugins/embed-attributes-style.html failing on Mac
        https://bugs.webkit.org/show_bug.cgi?id=89789

        Unreviewed; disabled now-failing test.

        * platform/chromium/TestExpectations:

2012-06-22  Tony Chang  <tony@chromium.org>

        Fix the CSS grid layout tests added in r120984
        https://bugs.webkit.org/show_bug.cgi?id=89782

        Reviewed by Julien Chaffraix.

        We need to call testRunner.overridePreference("WebKitCSSGridLayoutEnabled", true)
        to enable grid layout in tests. These tests were passing due to other bugs in the tests.

        * fast/css-grid-layout/containing-block-grids-expected.html: Simplify expected results.
        * fast/css-grid-layout/containing-block-grids.html: Set the display to none and override it with grid/inline-grid to make sure it's applying.
        The default display of block would also produce the correct results.
        * fast/css-grid-layout/floating-empty-grids-expected.html: Fix a missing close } which was causing the
        other styles to be ignored. Also, one of the boxes wasn't showing up because it was a div instead of a span.
        * fast/css-grid-layout/floating-empty-grids.html: Same fixes as for expected.

2012-06-22  Michael Nordman  <michaeln@google.com>

        ApplicationCache - verify that an open network whitelist doesn't break online vs fallback layering.
        https://bugs.webkit.org/show_bug.cgi?id=89714

        An explicit online network namespace should trump a fallback namespace, the fallback should not be used.
        Chrome had a bug where if a '*' was in the NETWORK section, explicit entries got ignored, and that
        expected behavior was botched. See http://code.google.com/p/chromium/issues/detail?id=133816 for more
        details about the chrome bug and code change this LayoutTest aims to verify.

        Reviewed by Tony Chang.

        * http/tests/appcache/resources/online-fallback-layering.manifest:

2012-06-22  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Snapshot metadata in front end to avoid IPC round-trips
        https://bugs.webkit.org/show_bug.cgi?id=88467

        Reviewed by Tony Chang.

        * storage/indexeddb/metadata-expected.txt: Added.
        * storage/indexeddb/metadata.html: Added.
        * storage/indexeddb/resources/metadata.js: Added.
        (test):
        (firstOpen.request.onsuccess.request.onsuccess.trans.oncomplete):
        (firstOpen.request.onsuccess.request.onsuccess):
        (firstOpen.request.onsuccess):
        (firstOpen):
        (secondOpen.request.onsuccess.request.onsuccess.trans.oncomplete):
        (secondOpen.request.onsuccess.request.onsuccess):
        (secondOpen.request.onsuccess):
        (secondOpen):
        (thirdOpen.request.onsuccess.request.onsuccess.trans.onabort):
        (thirdOpen.request.onsuccess.request.onsuccess):
        (thirdOpen.request.onsuccess):
        (thirdOpen):
        (fourthOpen.request.onsuccess.request.onsuccess.trans.oncomplete):
        (fourthOpen.request.onsuccess.request.onsuccess):
        (fourthOpen.request.onsuccess):
        (fourthOpen):
        (checkState):

2012-06-22  Jon Lee  <jonlee@apple.com>

        editing/spelling/grammar-edit-word.html fails on WK2 bots
        https://bugs.webkit.org/show_bug.cgi?id=89199

        * platform/mac-wk2/Skipped:

2012-06-22  Jeff Timanus  <twiz@chromium.org>

        [Chromium] Change implementing a fast-path for copying GPU-accelerated Canvas2D instances to WebGL textures.
        https://bugs.webkit.org/show_bug.cgi?id=86275

        This change adds the necessary plumbing to the various rendering contexts to copy the backing store texture of
        a Canvas2D instance to be copied to a WebGL texture.  The GL_CHROMIUM_copy_texture extension is necessary
        because the backing-store for a GPU-accelerated skia Canvas2D is normally in BGRA format, which is not supported
        by glCopyTexImage.

        Reviewed by Kenneth Russell.

        * platform/chromium/TestExpectations: Temporarily suppressed layout test, fast/canvas/webgl/gl-teximage.html until a rebaseline can be submitted.

2012-06-22  Kenneth Russell  <kbr@google.com>

        Layout Test media/event-attributes.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=73692

        Unreviewed test expectations update; mark test as occasionally
        crashing as well.

        * platform/chromium/TestExpectations:

2012-06-22  Jon Lee  <jonlee@apple.com>

        fast/canvas/canvas-createImageData.html crashes on Lion WK2 Debug bot
        https://bugs.webkit.org/show_bug.cgi?id=89780

        * platform/mac-wk2/Skipped: Add to skipped list for wk2.

2012-06-22  Dan Bernstein  <mitz@apple.com>

        RenderText’s minimum preferred width is incorrect when soft hyphens are used
        https://bugs.webkit.org/show_bug.cgi?id=89775

        Reviewed by Simon Fraser.

        * fast/text/soft-hyphen-min-preferred-width-expected.html: Added.
        * fast/text/soft-hyphen-min-preferred-width.html: Added.

2012-06-22  Jan Keromnes  <janx@linux.com>

        Web Inspector: ExtensionPanel.onSearch listener doesn't work
        https://bugs.webkit.org/show_bug.cgi?id=89517

        Reviewed by Yury Semikhatsky.

        * inspector/extensions/extensions-panel-expected.txt:
        * inspector/extensions/extensions-panel.html:

2012-06-22  Silvia Pfeiffer  <silviapf@chromium.org>

        [Chromium] Adjust the displayed elements of the new Chrome media controls.
        https://bugs.webkit.org/show_bug.cgi?id=89416

        Reviewed by Eric Carlson.

        * platform/chromium/TestExpectations:
        Skipping a test temporarily for win and mac until rebaseline.

2012-06-22  Florin Malita  <fmalita@chromium.org>

        REGRESSION (Safari 5.1.5 - ToT): Crash in RenderSVGRoot::computeReplacedLogicalWidth
        https://bugs.webkit.org/show_bug.cgi?id=85797

        Reviewed by Darin Adler.

        * svg/custom/svg-width-intrinsic-crash-expected.txt: Added.
        * svg/custom/svg-width-intrinsic-crash.html: Added.

2012-06-22  Hayato Ito  <hayato@chromium.org>

        Modify event re-targeting algorithm so that we can tell which distributed node is clicked.
        https://bugs.webkit.org/show_bug.cgi?id=89073

        Reviewed by Dimitri Glazkov.

        * fast/dom/shadow/shadow-dom-event-dispatching-expected.txt:

2012-06-22  Abhishek Arya  <inferno@chromium.org>

        Crash in DragController::concludeEditDrag.
        https://bugs.webkit.org/show_bug.cgi?id=89762

        Reviewed by Ryosuke Niwa.

        * editing/pasteboard/drop-text-events-sideeffect-crash-expected.txt: Added.
        * editing/pasteboard/drop-text-events-sideeffect-crash.html: Added.

2012-06-22  Takashi Sakamoto  <tasak@google.com>

        [Shadow] parentTreeScope() of nested shadow DOM subtree returns document().
        https://bugs.webkit.org/show_bug.cgi?id=89172

        Reviewed by Hajime Morita.

        * fast/dom/shadow/parent-tree-scope-in-shadow-expected.txt: Added.
        * fast/dom/shadow/parent-tree-scope-in-shadow.html: Added.

2012-06-22  Tony Chang  <tony@chromium.org>

        -webkit-flex-flow shouldn't be an enumerable property of the computed style
        https://bugs.webkit.org/show_bug.cgi?id=89698

        Reviewed by Ojan Vafai.

        * css3/flexbox/css-properties-expected.txt:
        * css3/flexbox/css-properties.html:
        * fast/css/getComputedStyle/computed-style-expected.txt:
        * fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * fast/css/getComputedStyle/resources/property-names.js:
        * svg/css/getComputedStyle-basic-expected.txt:

2012-06-22  Ádám Kallai  <kadam@inf.u-szeged.hu>

        [Qt] Unreviewed gardening. Skip failing test after r121019.
        https://bugs.webkit.org/show_bug.cgi?id=89760

        * platform/qt/Skipped:

2012-06-22  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed gardening after r120924.

        * platform/qt-5.0-wk1/editing/inserting/4960120-1-expected.png: Added.
        * platform/qt-5.0-wk1/editing/inserting/4960120-1-expected.txt: Added.
        * platform/qt-5.0-wk1/editing/inserting/before-after-input-element-expected.png: Added.
        * platform/qt-5.0-wk1/editing/inserting/before-after-input-element-expected.txt: Added.

2012-06-22  Yoshifumi Inoue  <yosin@chromium.org>

        REGRESSION(r117738):[Forms] validationMessage IDL attribute should not have range overflow message if value isn't range overflow
        https://bugs.webkit.org/show_bug.cgi?id=89736

        Reviewed by Kent Tamura.

        Tests for HTMLInputElement.validationMessage attribute.

        * fast/forms/date/input-date-validation-message-expected.txt: Added.
        * fast/forms/date/input-date-validation-message.html: Added.
        * fast/forms/number/input-number-validation-message-expected.txt: Added.
        * fast/forms/number/input-number-validation-message.html: Added.
        * fast/forms/range/input-range-validation-message-expected.txt: Added.
        * fast/forms/range/input-range-validation-message.html: Added.

2012-06-21  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Support separate script compilation and execution.
        https://bugs.webkit.org/show_bug.cgi?id=89646

        Reviewed by Pavel Feldman.

        * inspector/debugger/debugger-compile-and-run-expected.txt: Added.
        * inspector/debugger/debugger-compile-and-run.html: Added.
        * platform/gtk/TestExpectations:
        * platform/mac/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:
        * platform/wincairo/Skipped:

2012-06-22  Ryosuke Niwa  <rniwa@webkit.org>

        Use testRunner instead of layoutTestController in fast/hidpi, history, html, images, inline, inline-block, innerHTML, inspector-support, invalid tests
        https://bugs.webkit.org/show_bug.cgi?id=89744

        Reviewed by Kent Tamura.

        * fast/hidpi/broken-image-icon-hidpi.html:
        * fast/hidpi/broken-image-with-size-hidpi.html:
        * fast/hidpi/clip-text-in-hidpi.html:
        * fast/hidpi/device-scale-factor-paint.html:
        * fast/hidpi/focus-rings.html:
        * fast/hidpi/image-set-as-background.html:
        * fast/hidpi/image-set-background-dynamic.html:
        * fast/hidpi/image-set-background-repeat-without-size.html:
        * fast/hidpi/image-set-background-repeat.html:
        * fast/hidpi/image-set-border-image-comparison.html:
        * fast/hidpi/image-set-border-image-dynamic.html:
        * fast/hidpi/image-set-border-image-simple.html:
        * fast/hidpi/image-set-in-content-dynamic.html:
        * fast/hidpi/image-set-out-of-order.html:
        * fast/hidpi/image-set-simple.html:
        * fast/hidpi/image-set-without-specified-width.html:
        * fast/hidpi/resize-corner-hidpi.html:
        * fast/hidpi/video-controls-in-hidpi.html:
        * fast/history/back-forward-reset-after-error-handling.html:
        * fast/history/form-submit-in-frame-via-onclick.html:
        * fast/history/form-submit-in-frame.html:
        * fast/history/forward-during-load.html:
        * fast/history/gesture-before-onload-form-submit.html:
        * fast/history/gesture-before-onload-location-href.html:
        * fast/history/go-back-to-changed-name.html:
        * fast/history/history-back-initial-vs-final-url.html:
        * fast/history/history-back-twice-with-subframes-assert.html:
        * fast/history/history-back-within-subframe-hash.html:
        * fast/history/history-back-within-subframe-url.html:
        * fast/history/history-length.html:
        * fast/history/history-replace-updates-current-item.html:
        * fast/history/history-subframe-with-name.html:
        * fast/history/history_reload.html:
        * fast/history/location-replace-hash.html:
        * fast/history/multiple-classes-visited.html:
        * fast/history/nested-visited-test.html:
        * fast/history/redirect-via-iframe.html:
        * fast/history/resources/clicked-link-is-visited-2.html:
        * fast/history/resources/history-back-within-subframe-hash-2.html:
        * fast/history/resources/history-replace-updates-current-item-done.html:
        * fast/history/resources/history_reload_window.html:
        * fast/history/resources/redirect-target.html:
        * fast/history/same-document-iframes-changing-fragment.html:
        * fast/history/same-document-iframes-changing-pushstate.html:
        * fast/history/saves-state-after-fragment-nav.html:
        * fast/history/saves-state-after-frame-nav.html:
        * fast/history/self-is-visited.html:
        * fast/history/sibling-visited-test.html:
        * fast/history/timed-refresh-in-cached-frame.html:
        * fast/history/visited-generated-content-test.html:
        * fast/history/visited-link-background-color.html:
        * fast/history/window-open.html:
        * fast/html/adopt-parent-frame.html:
        * fast/html/body-offset-properties.html:
        * fast/html/crash-style-first-letter.html:
        * fast/html/details-add-summary-1-and-click.html:
        * fast/html/details-add-summary-10-and-click.html:
        * fast/html/details-add-summary-2-and-click.html:
        * fast/html/details-add-summary-3-and-click.html:
        * fast/html/details-add-summary-4-and-click.html:
        * fast/html/details-add-summary-5-and-click.html:
        * fast/html/details-add-summary-6-and-click.html:
        * fast/html/details-add-summary-7-and-click.html:
        * fast/html/details-add-summary-8-and-click.html:
        * fast/html/details-add-summary-9-and-click.html:
        * fast/html/details-children-merge-crash.html:
        * fast/html/details-element-render-inline-crash.html:
        * fast/html/details-mouse-click.html:
        * fast/html/details-remove-summary-1-and-click.html:
        * fast/html/details-remove-summary-2-and-click.html:
        * fast/html/details-remove-summary-3-and-click.html:
        * fast/html/details-remove-summary-4-and-click.html:
        * fast/html/details-remove-summary-5-and-click.html:
        * fast/html/details-remove-summary-6-and-click.html:
        * fast/html/details-replace-summary-child.html:
        * fast/html/details-replace-text.html:
        * fast/html/details-summary-document-child.html:
        * fast/html/draggable.html:
        * fast/html/empty-fragment-id-goto-top.html:
        * fast/html/font-face-empty-should-not-crash.html:
        * fast/html/marquee-scrollamount.html:
        * fast/html/nav-element.html:
        * fast/html/object-image-nested-fallback.html:
        * fast/html/pending-stylesheet-crash.html:
        * fast/html/process-end-tag-for-inbody-crash.html:
        * fast/html/script-allowed-types-languages.html:
        * fast/html/select-dropdown-consistent-background-color.html:
        * fast/html/set-text-direction.html:
        * fast/html/tab-order.html:
        * fast/html/tabindex-removal.html:
        * fast/html/text-field-input-types.html:
        * fast/html/xhtml-serialize.html:
        * fast/images/animated-background-image-crash.html:
        * fast/images/animated-gif-restored-from-bfcache.html:
        * fast/images/bad-png.html:
        * fast/images/busted-oval-does-not-render.html:
        * fast/images/destroyed-image-load-event.html:
        * fast/images/dont-crash-with-null-gif-frames.html:
        * fast/images/drag-pdf-as-image.html:
        * fast/images/embed-does-not-propagate-dimensions-to-object-ancestor.html:
        * fast/images/embed-image.html:
        * fast/images/exif-orientation-css.html:
        * fast/images/exif-orientation.html:
        * fast/images/extra-image-in-image-document.html:
        * fast/images/gif-loop-count.html:
        * fast/images/image-empty-data.html:
        * fast/images/image-invalid-data.html:
        * fast/images/image-load-event-in-fragment.html:
        * fast/images/image-map-multiple-xhtml.xhtml:
        * fast/images/image-map-multiple.html:
        * fast/images/image-map-zoom.html:
        * fast/images/imagemap-scroll.html:
        * fast/images/jpeg-with-color-profile.html:
        * fast/images/large-size-image-crash.html:
        * fast/images/link-body-content-imageDimensionChanged-crash.html:
        * fast/images/load-img-with-empty-src.html:
        * fast/images/paletted-png-with-color-profile.html:
        * fast/images/percent-height-image.html:
        * fast/images/png-extra-row-crash.html:
        * fast/images/png-suite/test.html:
        * fast/images/png-with-color-profile.html:
        * fast/images/read-past-end-of-buffer.html:
        * fast/images/rgb-jpeg-endian-pixels.html:
        * fast/images/rgb-jpeg-with-adobe-marker-only.html:
        * fast/images/rgb-png-with-cmyk-color-profile.html:
        * fast/images/script-counter-imageDimensionChanged-crash.html:
        * fast/images/script-tests/move-image-to-new-document.js:
        * fast/images/size-failure.html:
        * fast/images/style-access-during-imageChanged-crash.html:
        * fast/images/style-access-during-imageChanged-style-freeze.html:
        * fast/images/support-broken-image-delegate.html:
        * fast/images/text-content-crash-2.html:
        * fast/images/text-content-crash.html:
        * fast/images/webp-image-decoding.html:
        * fast/images/ycbcr-with-cmyk-color-profile.html:
        * fast/images/zoomed-img-size.html:
        * fast/inline-block/anonymous-block-crash.html:
        * fast/inline-block/inline-block-vertical-align-2.html:
        * fast/inline-block/relative-positioned-rtl-crash.html:
        * fast/inline/boundingBox-with-continuation.html:
        * fast/inline/clean-after-removing-temp-boxes.html:
        * fast/inline/continuation-positioned-reparenting.html:
        * fast/inline/crash-new-continuation-with-outline.html:
        * fast/inline/dirtyLinesForInline.html:
        * fast/inline/inline-body-crash.html:
        * fast/inline/inline-body-with-scrollbar-crash.html:
        * fast/inline/inline-box-adjust-position-crash.html:
        * fast/inline/inline-box-adjust-position-crash2.html:
        * fast/inline/inline-child-height-width-calc-crash.html:
        * fast/inline/inline-destroy-dirty-lines-crash.html:
        * fast/inline/inline-marquee-crash.html:
        * fast/inline/relative-positioned-overflow.html:
        * fast/inline/skipped-whitespace-boundingBox.html:
        * fast/inline/skipped-whitespace-client-rect.html:
        * fast/inline/update-always-create-line-boxes-full-layout-crash.html:
        * fast/innerHTML/004-expected.txt:
        * fast/innerHTML/004.xhtml:
        * fast/innerHTML/005-expected.txt:
        * fast/innerHTML/005.html:
        * fast/innerHTML/additional-inline-style.html:
        * fast/innerHTML/innerHTML-case.html:
        * fast/innerHTML/innerHTML-changing-document-properties.xhtml:
        * fast/innerHTML/innerHTML-custom-tag.html:
        * fast/innerHTML/innerHTML-iframe.html:
        * fast/innerHTML/innerHTML-nbsp.xhtml:
        * fast/innerHTML/innerHTML-script-tag-crash.xhtml:
        * fast/innerHTML/javascript-url.html:
        * fast/inspector-support/cssURLQuotes.html:
        * fast/inspector-support/style.html:
        * fast/inspector-support/uncaught-dom1-exception.html:
        * fast/inspector-support/uncaught-dom3-exception.html:
        * fast/inspector-support/uncaught-dom8-exception.html:
        * fast/invalid/invalidSVGFont.html:
        * fast/invalid/nestedh3s-rapidweaver.html:
        * fast/invalid/test-case-tr-th-td-should-not-close-dl-list.html:
        * platform/gtk/fast/images/exif-orientation-css-expected.txt:
        * platform/gtk/fast/images/exif-orientation-expected.txt:
        * platform/mac/fast/images/exif-orientation-css-expected.txt:
        * platform/mac/fast/images/exif-orientation-expected.txt:
        * platform/qt/fast/history/back-to-unreachable-url-then-forward.html:
        * platform/qt/fast/history/resources/check-scroll-position.html:

2012-06-21  Ryosuke Niwa  <rniwa@webkit.org>

        Use testRunner instead of layoutTestController in fast/fast-mobile-scrolling, flexbox, forms, frames, gradients tests
        https://bugs.webkit.org/show_bug.cgi?id=89741

        Reviewed by Kent Tamura.

        * fast/flexbox/box-ordinal-group.html:
        * fast/flexbox/box-size-integer-overflow.html:
        * fast/flexbox/crash-button-input-autofocus.html:
        * fast/flexbox/crash-button-keygen.html:
        * fast/flexbox/crash-button-relayout.html:
        * fast/flexbox/crash-flexbox-no-layout-child.html:
        * fast/flexbox/horizontal-box-float-crash.html:
        * fast/flexbox/inline-children-crash.html:
        * fast/flexbox/layoutHorizontalBox-crash.html:
        * fast/flexbox/line-clamp-crash.html:
        * fast/flexbox/overhanging-floats-not-removed-crash.html:
        * fast/flexbox/resources/box-orient-button.js:
        * fast/forms/:
        * fast/frames/:
        * fast/gradients/crash-on-1px-border.html:
        * fast/gradients/crash-on-degenerate-gradient.html:
        * fast/gradients/crash-on-remove.html:
        * fast/gradients/crash-on-tr.html:
        * fast/gradients/css3-color-stop-units.html:
        * fast/gradients/css3-color-stops.html:
        * fast/gradients/css3-linear-angle-gradients.html:
        * fast/gradients/css3-linear-right-angle-gradients.html:
        * fast/gradients/css3-radial-gradient-crash.html:
        * fast/gradients/css3-radial-gradients.html:
        * fast/gradients/css3-radial-gradients2.html:
        * fast/gradients/css3-radial-gradients3.html:
        * fast/gradients/css3-repeating-end-fill.html:
        * fast/gradients/css3-repeating-linear-gradients.html:
        * fast/gradients/css3-repeating-linear-gradients2.html:
        * fast/gradients/css3-repeating-radial-gradients.html:
        * fast/gradients/gradient-after-transparent-border.html:
        * fast/gradients/gradient-on-pseudoelement-crash.html:
        * platform/chromium/fast/forms/search-popup-crasher.html:
        * platform/gtk/fast/forms/menulist-typeahead-find.html:
        * platform/gtk/fast/frames/scrolling-iframe-out-of-viewport.html:
        * platform/mac/fast/forms/attributed-strings.html:
        * platform/mac/fast/forms/listbox-scrollbar-hit-test.html:
        * platform/mac/fast/forms/script-tests/focus-option-control-on-page.js:
        (startTest):
        (runKeyPresses):
        (notifyDone):

2012-06-21  Joone Hur  <joone.hur@intel.com>

        [EFL] Unreviewed gardening, unskip now passing tests.

        * platform/efl/Skipped:
        * platform/efl/fast/viewport/viewport-126-expected.txt: Added.
        * platform/efl/fast/viewport/viewport-127-expected.txt: Added.
        * platform/efl/fast/viewport/viewport-65-expected.txt: Added.
        * platform/efl/fast/viewport/viewport-82-expected.txt: Added.
        * platform/efl/fast/viewport/viewport-84-expected.txt: Added.
        * platform/efl/fast/viewport/viewport-87-expected.txt: Added.

2012-06-21  Hans Wennborg  <hans@chromium.org>

        s/layoutTestController/testRunner/ in speech tests
        https://bugs.webkit.org/show_bug.cgi?id=89654

        Reviewed by Ryosuke Niwa.

        * fast/speech/bubble-position.html:
        * fast/speech/change-focus.html:
        * fast/speech/input-onspeechchange-event.html:
        * fast/speech/input-ontextinput-event.html:
        * fast/speech/input-readonly-and-disabled.html:
        * fast/speech/input-text-language-tag.html:
        * fast/speech/input-text-speechbutton.html:
        * fast/speech/input-text-speechstart.html:
        * fast/speech/scripted/speechrecognition-basics.html:
        * fast/speech/scripted/speechrecognition-errors.html:
        * fast/speech/speech-button-ignore-generated-events.html:
        * fast/speech/speech-input-result-list-not-enough-arguments.html:
        * fast/speech/speech-input-scripting.html:

2012-06-21  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r120982.
        http://trac.webkit.org/changeset/120982
        https://bugs.webkit.org/show_bug.cgi?id=89740

        [chromium] ASSERTION FAILED:
        m_allocatedTextureIds.contains(textureId) (Requested by ukai
        on #webkit).

        * platform/chromium/TestExpectations:

2012-06-21  Ryosuke Niwa  <rniwa@webkit.org>

        LabelsNostList isn't updated properly after its owner node is adopted into a new document
        https://bugs.webkit.org/show_bug.cgi?id=89730

        Reviewed by Darin Adler.

        * fast/forms/label/labels-owner-node-adopted-expected.txt: Added.
        * fast/forms/label/labels-owner-node-adopted.html: Added.

2012-06-21  Abhishek Arya  <inferno@chromium.org>

        Crash in RenderBlock::layoutPositionedObjects.
        https://bugs.webkit.org/show_bug.cgi?id=89599

        Reviewed by Julien Chaffraix.

        * fast/table/table-split-positioned-object-crash-expected.txt: Added.
        * fast/table/table-split-positioned-object-crash.html: Added.

2012-06-21  Tony Gentilcore  <tonyg@chromium.org>

        [Chromium][Win] Missing trailing newlines in one text test expectation, debug only
        https://bugs.webkit.org/show_bug.cgi?id=89534

        Reviewed by Tony Gentilcore.

        * fast/canvas/resize-while-save-active-expected.txt:
        * fast/canvas/resize-while-save-active.html: Make test deterministic by running script after load and fix line endings.

2012-06-21  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow][Editing] Assertion in VisibleSelection::adjuseSelectionToAvoidCrossingBoundaries() is triggered.
        https://bugs.webkit.org/show_bug.cgi?id=89081

        Reviewed by Ryosuke Niwa.

        * editing/shadow/adjusting-editing-boundary-with-table-in-shadow-expected.txt: Added.
        * editing/shadow/adjusting-editing-boundary-with-table-in-shadow.html: Added.

2012-06-21  Gregg Tavares  <gman@google.com>

        Make GL error messages consistent in LayoutTests
        https://bugs.webkit.org/show_bug.cgi?id=89689

        Reviewed by Kenneth Russell.

        * fast/canvas/webgl/resources/webgl-test.js:
        (shouldGenerateGLError):
        (glErrorShouldBe):
        * fast/canvas/webgl/webgl-depth-texture-expected.txt:

2012-06-21  Kenneth Russell  <kbr@google.com>

        [chromium] Layout Test fast/speech/scripted/speechgrammar-basics.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=89717

        Unreviewed. Added suppression for flaky crash.

        * platform/chromium/TestExpectations:

2012-06-21  Julien Chaffraix  <jchaffraix@webkit.org>

        Add support for the grid and inline-grid display types.
        https://bugs.webkit.org/show_bug.cgi?id=60732

        Reviewed by Tony Chang.

        Based on an earlier patch by David Hyatt <hyatt@apple.com>.

        * fast/css-grid-layout/containing-block-grids-expected.html: Added.
        * fast/css-grid-layout/containing-block-grids.html: Added.
        * fast/css-grid-layout/floating-empty-grids-expected.html: Added.
        * fast/css-grid-layout/floating-empty-grids.html: Added.

2012-06-21  Kenneth Russell  <kbr@google.com>

        [chromium] Layout test failures after fixing GraphicsLayerChromium scale factors
        https://bugs.webkit.org/show_bug.cgi?id=89702

        Unreviewed TestExpectations update to suppress failures.

        * platform/chromium/TestExpectations:

2012-06-21  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r120945.
        http://trac.webkit.org/changeset/120945
        https://bugs.webkit.org/show_bug.cgi?id=89703

        editing/shadow/breaking-editing-boundaries.html started to
        crash (Requested by hayato on #webkit).

        * fast/dom/shadow/shadow-dom-event-dispatching-expected.txt:

2012-06-21  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Fix layout tests to clear previous database structures
        https://bugs.webkit.org/show_bug.cgi?id=89609

        Reviewed by Tony Chang.

        A handful of tests weren't deleting previously created stores (or the whole
        database), which made them fail if trivially re-run in Chromium or under
        NRWT with --iterations=2.

        * storage/indexeddb/cursor-key-order-expected.txt:
        * storage/indexeddb/cursor-primary-key-order-expected.txt:
        * storage/indexeddb/open-during-transaction-expected.txt:
        * storage/indexeddb/resources/cursor-key-order.js:
        (prepareDatabase.deleteRequest.onsuccess.openreq.onsuccess.verreq.onsuccess):
        (prepareDatabase.deleteRequest.onsuccess.openreq.onsuccess):
        (prepareDatabase.deleteRequest.onsuccess):
        (prepareDatabase):
        * storage/indexeddb/resources/cursor-primary-key-order.js:
        (prepareDatabase.deleteRequest.onsuccess.openRequest.onsuccess.versionChangeRequest.onsuccess):
        (prepareDatabase.deleteRequest.onsuccess.openRequest.onsuccess):
        (prepareDatabase.deleteRequest.onsuccess):
        (prepareDatabase):
        * storage/indexeddb/resources/factory-deletedatabase-interactions.js:
        * storage/indexeddb/resources/open-close-version.js:
        (test6):
        (test6.halfDone):
        * storage/indexeddb/resources/open-during-transaction.js:
        (prepareDatabase.deleteRequest.onsuccess.openreq1.onsuccess.setverreq.onsuccess.setverreq.result.oncomplete):
        (prepareDatabase.deleteRequest.onsuccess.openreq1.onsuccess.setverreq.onsuccess):
        (prepareDatabase.deleteRequest.onsuccess.openreq1.onsuccess):
        (prepareDatabase.deleteRequest.onsuccess):
        (prepareDatabase):
        * storage/indexeddb/transaction-abort-with-js-recursion-cross-frame-expected.txt:
        * storage/indexeddb/transaction-abort-with-js-recursion-cross-frame.html:

2012-06-21  Kenneth Russell  <kbr@google.com>

        [Chromium] Rebaseline video tests after r120939
        https://bugs.webkit.org/show_bug.cgi?id=89696

        Unreviewed test expectations update to adjust bug number and
        silence failures on Windows platform. Rebaselines are still needed.

        * platform/chromium/TestExpectations:

2012-06-21  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Implement spec behavior for multiEntry indexes with invalid/duplicate subkeys
        https://bugs.webkit.org/show_bug.cgi?id=86123

        Reviewed by Darin Fisher.

        * storage/indexeddb/index-multientry-expected.txt:
        * storage/indexeddb/resources/index-multientry.js:
        (addData):
        (verifyIndexes.request.onsuccess):
        (verifyIndexes):
        (verifyUniqueConstraint.request.onsuccess.request.onsuccess.request.onerror):
        (verifyUniqueConstraint.request.onsuccess.request.onsuccess):
        (verifyUniqueConstraint.request.onsuccess):
        (verifyUniqueConstraint):

2012-06-21  Tim Horton  <timothy_horton@apple.com>

        SVGImageCache isn't invalidated for <img> on dynamic page scale changes
        https://bugs.webkit.org/show_bug.cgi?id=89621
        <rdar://problem/11714677>

        Reviewed by Simon Fraser.

        Add a test that ensures that dynamic changes to pageScaleFactor are propagated through
        to the SVGImageCache.

        * platform/mac/svg/as-image/image-respects-pageScaleFactor-change-expected.png: Added.
        * platform/mac/svg/as-image/image-respects-pageScaleFactor-change-expected.txt: Added.
        * svg/as-image/image-respects-pageScaleFactor-change.html: Added.

2012-06-21  Beth Dakin  <bdakin@apple.com>

        Skipping this failing test. Filed 
        https://bugs.webkit.org/show_bug.cgi?id=89680 to track fixing the 
        real issue.

        * platform/mac/Skipped:

2012-06-21  Philip Rogers  <pdr@google.com>

        Add pending resource even if others are pending
        https://bugs.webkit.org/show_bug.cgi?id=89633

        Reviewed by Dirk Schulze.

        * svg/custom/use-multiple-pending-resources-expected.svg: Added.
        * svg/custom/use-multiple-pending-resources.svg: Added.

2012-06-21  Tony Chang  <tony@chromium.org>

        Unreviewed gardening. Removing pixel results for CSS computed style tests which are text only tests.

        * platform/qt/fast/css/getComputedStyle/computed-style-expected.png: Removed.
        * platform/qt/fast/css/getComputedStyle/computed-style-without-renderer-expected.png: Removed.

2012-06-21  Tony Chang  <tony@chromium.org>

        Unreviewed gardening. The computed style tests should now pass on EFL after r120870.

        * platform/efl/TestExpectations:

2012-06-21  Hayato Ito  <hayato@chromium.org>

        Modify event re-targeting algorithm so that we can tell which distributed node is clicked.
        https://bugs.webkit.org/show_bug.cgi?id=89073

        Reviewed by Dimitri Glazkov.

        * fast/dom/shadow/shadow-dom-event-dispatching-expected.txt:

2012-06-21  Andrei Onea  <onea@adobe.com>

        [CSSRegions]Change WEBKIT_REGION_RULE value to 16
        https://bugs.webkit.org/show_bug.cgi?id=89421

        Reviewed by Tony Chang.

        Added check for exact value of WEBKIT_REGION_RULE which should be 16,
        according to CSS Regions spec.

        * fast/regions/webkit-region-rule-expected.txt:
        * fast/regions/webkit-region-rule.html:

2012-06-21  Jon Lee  <jonlee@apple.com>

        r120835: fast/box-decoration-break/box-decoration-break-rendering.html failing on mac bots
        https://bugs.webkit.org/show_bug.cgi?id=89620

        * platform/mac/Skipped:

2012-06-21  Silvia Pfeiffer  <silviapf@chromium.org>

        Paint played and buffered ranges differently in Chrome video controls.
        https://bugs.webkit.org/show_bug.cgi?id=89284

        Reviewed by Eric Carlson.

        Rebaseline tests for linux build; mark others in TestExpectations.

        * platform/chromium/TestExpectations:
        * platform/chromium-linux/fast/layers/video-layer-expected.png:
        * platform/chromium-linux/fullscreen/full-screen-stacking-context-expected.png:
        * platform/chromium-linux/http/tests/media/video-buffered-range-contains-currentTime-expected.png:
        * platform/chromium-linux/media/audio-controls-rendering-expected.png:
        * platform/chromium-linux/media/controls-after-reload-expected.png:
        * platform/chromium-linux/media/controls-strict-expected.png:
        * platform/chromium-linux/media/controls-styling-expected.png:
        * platform/chromium-linux/media/controls-without-preload-expected.png:
        * platform/chromium-linux/media/video-controls-rendering-expected.png:
        * platform/chromium-linux/media/video-display-toggle-expected.png:
        * platform/chromium-linux/media/video-playing-and-pause-expected.png:
        * platform/chromium-linux/media/video-zoom-controls-expected.png:
        * platform/chromium-linux/media/audio-repaint-expected.png:
        * platform/chromium-linux/media/controls-layout-direction-expected.png:
        * platform/chromium-linux/media/media-controls-clone-expected.png:
        * platform/chromium-linux/media/media-document-audio-repaint-expected.png:
        * platform/chromium-linux/media/video-no-audio-expected.png:
        * platform/chromium-win/fast/layers/video-layer-expected.txt:
        * platform/chromium-win/media/audio-controls-rendering-expected.txt:
        * platform/chromium-win/media/audio-repaint-expected.txt:
        * platform/chromium-win/media/controls-after-reload-expected.txt:
        * platform/chromium-win/media/controls-strict-expected.txt:
        * platform/chromium-win/media/controls-styling-expected.txt:
        * platform/chromium-win/media/controls-without-preload-expected.txt:
        * platform/chromium-win/media/media-controls-clone-expected.txt:
        * platform/chromium-win/media/media-document-audio-repaint-expected.txt:
        * platform/chromium-win/media/video-controls-rendering-expected.txt:
        * platform/chromium-win/media/video-display-toggle-expected.txt:
        * platform/chromium-win/media/video-no-audio-expected.txt:
        * platform/chromium-win/media/video-playing-and-pause-expected.txt:
        * platform/chromium-win/media/video-zoom-controls-expected.txt:

2012-06-21  Julien Chaffraix  <jchaffraix@webkit.org>

        Non-fixed length margins don't work with align=center
        https://bugs.webkit.org/show_bug.cgi?id=89626

        Reviewed by Levi Weintraub.

        * fast/block/negative-start-margin-align-center-percent-expected.html: Added.
        * fast/block/negative-start-margin-align-center-percent.html: Added.
        * fast/block/positive-margin-block-child-align-center-calc-expected.html: Added.
        * fast/block/positive-margin-block-child-align-center-calc.html: Added.

2012-06-21  Simon Pena  <spena@igalia.com>

        [GTK] Update TestExpectations
        https://bugs.webkit.org/show_bug.cgi?id=89664

        Unreviewed gardening. Mark editing/deleting/delete-3800834-fix.html
        as flaky.

        * platform/gtk/TestExpectations:

2012-06-21  Shinya Kawanaka  <shinyak@chromium.org>

        [Crash][Editing] Pressing enter on LI element triggers assertion in Shadow DOM.
        https://bugs.webkit.org/show_bug.cgi?id=89171

        Reviewed by Ryosuke Niwa.

        * editing/shadow/pressing-enter-on-list-expected.txt: Added.
        * editing/shadow/pressing-enter-on-list.html: Added.

2012-06-21  Amy Ousterhout  <aousterh@chromium.org>

        DeviceOrientation and DeviceMotion Test Cleanup
        https://bugs.webkit.org/show_bug.cgi?id=89662

        Reviewed by Ryosuke Niwa.

        Replaces 'LayoutTestController' with 'TestRunner' in debug messages.
        This makes it consistent with testRunner, which replaced layoutTestController.

        * fast/dom/DeviceMotion/script-tests/no-page-cache.js:
        * fast/dom/DeviceOrientation/script-tests/add-listener-from-callback.js:
        * fast/dom/DeviceOrientation/script-tests/basic-operation.js:
        * fast/dom/DeviceOrientation/script-tests/event-after-navigation.js:
        * fast/dom/DeviceOrientation/script-tests/multiple-frames.js:
        * fast/dom/DeviceOrientation/script-tests/no-page-cache.js:
        * fast/dom/DeviceOrientation/script-tests/no-synchronous-events.js:
        * fast/dom/DeviceOrientation/script-tests/null-values.js:
        (setMockOrientation):
        * fast/dom/DeviceOrientation/script-tests/updates.js:
        (setMockOrientation):

2012-06-21  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed gardening, unskip now passing tests.

        * platform/qt/Skipped:
        * platform/qt/editing/inserting/4960120-1-expected.png: Added.
        * platform/qt/editing/inserting/4960120-1-expected.txt:
        * platform/qt/editing/inserting/before-after-input-element-expected.png: Added.
        * platform/qt/editing/inserting/before-after-input-element-expected.txt:
        * platform/qt/editing/inserting/insert-text-with-newlines-expected.png: Added.
        * platform/qt/editing/inserting/insert-text-with-newlines-expected.txt:
        * platform/qt/http/tests/misc/favicon-as-image-expected.png: Added.
        * platform/qt/http/tests/misc/favicon-as-image-expected.txt: Added.

2012-06-21  Simon Pena  <spena@igalia.com>

        [GTK] Add new baseline and update TestExpectations
        https://bugs.webkit.org/show_bug.cgi?id=89651

        Unreviewed gardening.

        * platform/gtk/TestExpectations: marked
        svg/W3C-SVG-1.1/animate-elem-{32,33,40,41,46}-t.svg as flaky, and
        fast/canvas/canvas-createImageData.html as crashing on DEBUG
        * platform/gtk/fast/hidpi/device-scale-factor-paint-expected.png: Added.
        * platform/gtk/fast/hidpi/device-scale-factor-paint-expected.txt: Added.

2012-06-21  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed gardening, skip a new failing test.

        * platform/qt-5.0-wk2/Skipped:

2012-06-20  Hans Wennborg  <hans@chromium.org>

        Speech JavaScript API: SpeechRecognition should hook up with ActiveDOMObject more
        https://bugs.webkit.org/show_bug.cgi?id=89217

        Reviewed by Adam Barth.

        Add a layout test to check that speech recognition gets aborted when
        navigating away from the page.

        * fast/speech/scripted/navigate-away-expected.txt: Added.
        * fast/speech/scripted/navigate-away-iframe-expected.txt: Added.
        * fast/speech/scripted/navigate-away-iframe.html: Added.
        * fast/speech/scripted/navigate-away.html: Added.

2012-06-21  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>

        [EFL] Gardening after r120847
        https://bugs.webkit.org/show_bug.cgi?id=89640

        Unreviewed gardening. Newly added compositing/backface-visibility/backface-visibility-webgl.html 
        test does not pass on EFL port due to missing WebGL support.

        * platform/efl/TestExpectations:

2012-06-21  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] accessibility/textbox-role-reports-line-number.html fails
        https://bugs.webkit.org/show_bug.cgi?id=75785

        Reviewed by Chris Fleizach.

        Move a Mac specific accessibility test to the platform directory.

        * platform/gtk/TestExpectations: Removed test from gtk test expectations.
        * platform/mac/accessibility/textbox-role-reports-line-number-expected.txt: Renamed from LayoutTests/accessibility/textbox-role-reports-line-number-expected.txt.
        * platform/mac/accessibility/textbox-role-reports-line-number.html: Renamed from LayoutTests/accessibility/textbox-role-reports-line-number.html.
        * platform/win/accessibility/textbox-role-reports-line-number-expected.txt: Removed.

2012-06-21  Taiju Tsuiki  <tzik@chromium.org>

        Web Inspector: Move requestId allocation from FileSystem frontend to backend
        https://bugs.webkit.org/show_bug.cgi?id=89555

        Reviewed by Vsevolod Vlasov.

        * http/tests/inspector/filesystem/filesystem-test.js:
        (initialize_FileSystemTest.InspectorTest.dumpReadDirectoryResult):
        (initialize_FileSystemTest):
        * http/tests/inspector/filesystem/get-filesystem-root.html:
        * http/tests/inspector/filesystem/read-directory-expected.txt:
        * http/tests/inspector/filesystem/read-directory.html:

2012-06-20  Hayato Ito  <hayato@chromium.org>

        [Shadow][Editing] Deleting character in distributed element caused a crash
        https://bugs.webkit.org/show_bug.cgi?id=88484

        Reviewed by Ryosuke Niwa.

        * editing/shadow/delete-characters-in-distributed-node-crash-expected.txt: Added.
        * editing/shadow/delete-characters-in-distributed-node-crash.html: Added.

2012-06-20  Kent Tamura  <tkent@chromium.org>

        Unmodified form control value are overwritten by another form
        control value with the same name after navigating and going back
        https://bugs.webkit.org/show_bug.cgi?id=89409

        Reviewed by Hajime Morita.

        * fast/forms/resources/state-restore-broken-state-2.html:
        Take care of the signature string at the beginning of the array.
        * fast/forms/state-restore-broken-state-expected.txt:
        Updated for the serialized format change.
        * fast/forms/state-restore-to-non-edited-controls-expected.txt:
        * fast/forms/state-restore-to-non-edited-controls.html:
        Add a test for a case of duplicated names.

2012-06-20  Adam Barth  <abarth@webkit.org>

        Unskip fast/hidpi/device-scale-factor-paint.html
        https://bugs.webkit.org/show_bug.cgi?id=89618

        Reviewed by Beth Dakin.

        Now that this test doesn't cause WebKit2 to crash, we can unskip it.

        * fast/hidpi/device-scale-factor-paint-expected.html: Removed.
            - Previously, this test was a reftest, but the reference also tried
              to set the device scale factor, which seems problematic. This
              patch converts the test to a normal image test. There aren't any
              scrollbars or text, so many platforms should be able to use the
              same expected PNG file.
        * fast/hidpi/device-scale-factor-paint.html:
            - Wrap the call to notifyDone in a thunk because it doesn't work otherwise.
        * platform/mac/Skipped:
        * platform/mac/fast/hidpi/device-scale-factor-paint-expected.png: Added.
        * platform/mac/fast/hidpi/device-scale-factor-paint-expected.txt: Added.
        * platform/wk2/Skipped:

2012-06-20  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Remove redundant IDBObjectStore.delete() overloads
        https://bugs.webkit.org/show_bug.cgi?id=89587

        Reviewed by Darin Fisher.

        * storage/indexeddb/deleted-objects-expected.txt:
        * storage/indexeddb/resources/deleted-objects.js: Test IDBKeyRange overloads.
        (openDatabase.request.onsuccess.request.onsuccess):
        (openDatabase.request.onsuccess):
        (openDatabase):

2012-06-20  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow][Editing] Selection will break editing boundaries in Shadow DOM.
        https://bugs.webkit.org/show_bug.cgi?id=89075

        Reviewed by Antti Koivisto.

        Test cases to confirm that (1) selection does not break editing boundary,
        and (2) content-editable is not propagated from shadow host to shadow DOM.

        Actually a patch for Bug 88514 contains a test for (2), but it is not enough.


        * editing/shadow/breaking-editing-boundary-with-table.html: Added.
        * editing/shadow/contenteditable-propagation-at-shadow-boundary.html: Added.

2012-06-20  Adam Barth  <abarth@webkit.org>

        internals.settings.setDeviceScaleFactor doesn't work for WebKit2 and must be removed
        https://bugs.webkit.org/show_bug.cgi?id=89274

        Reviewed by James Robinson.

        * fast/hidpi/device-scale-factor-paint.html:

2012-06-20  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed gardening, skip new failing tests.

        * platform/qt/Skipped:

2012-06-20  Tony Chang  <tony@chromium.org>

        Computed style tests are a maintenance burden on the project
        https://bugs.webkit.org/show_bug.cgi?id=87991

        Reviewed by Eric Seidel.

        Convert computed-style.html, computed-style-without-renderer.html and getComputedStyle-basic.xhtml
        to use a whitelist of properties rather than a blacklist. The whitelist includes all properties
        that are supported based on the checked in results so all ports can share the same values. Adding
        new properties won't cause these tests to be rebaselined.

        * fast/css/getComputedStyle/computed-style-expected.txt:
        * fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * fast/css/getComputedStyle/computed-style-without-renderer.html: Remove indenting and use a fixed
        width for the middle div so we don't get fractional pixel values for ports with fractional pixel
        values enabled.
        * fast/css/getComputedStyle/computed-style.html:
        * fast/css/getComputedStyle/resources/property-names.js: Whitelist of common CSS properties.
        * platform/chromium-linux-x86/svg/css/getComputedStyle-basic-expected.txt: Removed.
        * platform/chromium-linux/svg/css/getComputedStyle-basic-expected.txt: Removed.
        * platform/chromium-mac-leopard/fast/css/getComputedStyle/computed-style-expected.txt: Removed.
        * platform/chromium-mac-leopard/svg/css/getComputedStyle-basic-expected.txt: Removed.
        * platform/chromium-mac-snowleopard/svg/css/getComputedStyle-basic-expected.txt: Removed.
        * platform/chromium-mac/fast/css/getComputedStyle/computed-style-expected.txt: Removed.
        * platform/chromium-mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Removed.
        * platform/chromium-mac/svg/css/getComputedStyle-basic-expected.txt: Removed.
        * platform/chromium-win-vista/svg/css/getComputedStyle-basic-expected.txt: Removed.
        * platform/chromium-win-xp/svg/css/getComputedStyle-basic-expected.txt: Removed.
        * platform/chromium-win/fast/css/getComputedStyle/computed-style-expected.txt: Removed.
        * platform/chromium-win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Removed.
        * platform/chromium-win/svg/css/getComputedStyle-basic-expected.txt: Removed.
        * platform/gtk/fast/css/getComputedStyle/computed-style-expected.txt: Removed.
        * platform/gtk/svg/css/getComputedStyle-basic-expected.txt: Removed.
        * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt: Removed.
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Removed.
        * platform/mac/svg/css/getComputedStyle-basic-expected.txt: Removed.
        * platform/qt/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Removed.
        * platform/qt/svg/css/getComputedStyle-basic-expected.png: Removed.
        * platform/qt/svg/css/getComputedStyle-basic-expected.txt: Removed.
        * platform/win/fast/css/getComputedStyle/computed-style-expected.txt: Removed.
        * platform/win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Removed.
        * svg/css/getComputedStyle-basic-expected.txt:
        * svg/css/getComputedStyle-basic.xhtml:

2012-06-20  Abhishek Arya  <inferno@chromium.org>

        Crash on accessing a removed renderer from percent height descendant map.
        https://bugs.webkit.org/show_bug.cgi?id=88017

        Reviewed by Eric Seidel.

        * fast/block/percent-height-descendant-not-removed-crash2-expected.txt: Added.
        * fast/block/percent-height-descendant-not-removed-crash2.html: Added.

2012-06-20  Julien Chaffraix  <jchaffraix@webkit.org>

        REGRESSION(r113885): Margin not properly applied to elements with align=center
        https://bugs.webkit.org/show_bug.cgi?id=89515

        Reviewed by Levi Weintraub.

        * fast/block/negative-margin-start-positive-margin-end-expected.html: Added.
        * fast/block/negative-margin-start-positive-margin-end.html: Added.
        * fast/block/negative-start-margin-align-center-expected.html: Added.
        * fast/block/negative-start-margin-align-center.html: Added.
        * fast/block/positive-margin-block-child-align-center-expected.html: Added.
        * fast/block/positive-margin-block-child-align-center.html: Added.
        * fast/block/positive-margin-start-align-center-expected.html: Added.
        * fast/block/positive-margin-start-align-center.html: Added.
        * fast/block/positive-margin-start-negative-margin-end-align-center-expected.html: Added.
        * fast/block/positive-margin-start-negative-margin-end-align-center.html: Added.
        Those checks the combination of margin start / end both positive and negative.

        * fast/block/positive-margin-block-child-align-center-rtl-expected.html: Added.
        * fast/block/positive-margin-block-child-align-center-rtl.html: Added.
        One ltr test as I didn't find any.

        * fast/table/table-cell-negative-start-margin-align-center-expected.html: Added.
        * fast/table/table-cell-negative-start-margin-align-center.html: Added.
        This test is very similar to the one above but involves a table.

2012-06-20  Robert Hogan  <robert@webkit.org>

        r120844: Skip two tests on Qt
        
        The tests fast/block/float/previous-sibling-abspos-001.html and 
        fast/block/float/previous-sibling-float-001.html have pixel differences
        on Qt. Skip them for now - bug 89597 opened.
        
        Unreviewed, gardening.

        * platform/qt/Skipped:

2012-06-20  Elliott Sprehn  <esprehn@gmail.com>

        Add support for fit-content etc
        https://bugs.webkit.org/show_bug.cgi?id=38919

        Reviewed by Tony Chang.

        Tests for CSS3 intrinsic dimension keywords as defined in the
        writing modes spec. This tests the implementation for width and
        ensures that height properties don't allow the new keywords yet
        since they're not implemented by this patch.

        * fast/css-intrinsic-dimensions/height-dynamic-property-value-expected.txt: Added.
        * fast/css-intrinsic-dimensions/height-dynamic-property-value.html: Added.
        * fast/css-intrinsic-dimensions/height-property-value-expected.txt: Added.
        * fast/css-intrinsic-dimensions/height-property-value.html: Added.
        * fast/css-intrinsic-dimensions/max-width-constrained-expected.html: Added.
        * fast/css-intrinsic-dimensions/max-width-constrained.html: Added.
        * fast/css-intrinsic-dimensions/max-width-unconstrained-expected.html: Added.
        * fast/css-intrinsic-dimensions/max-width-unconstrained.html: Added.
        * fast/css-intrinsic-dimensions/min-width-expected.html: Added.
        * fast/css-intrinsic-dimensions/min-width.html: Added.
        * fast/css-intrinsic-dimensions/width-avoid-floats-expected.html: Added.
        * fast/css-intrinsic-dimensions/width-avoid-floats.html: Added.
        * fast/css-intrinsic-dimensions/width-dynamic-property-value-expected.txt: Added.
        * fast/css-intrinsic-dimensions/width-dynamic-property-value.html: Added.
        * fast/css-intrinsic-dimensions/width-expected.html: Added.
        * fast/css-intrinsic-dimensions/width-keyword-classes.css: Added.
        (.min-content):
        (.max-content):
        (.fill-available):
        (.fit-content):
        (.max-width-min-content):
        (.max-width-max-content):
        (.max-width-fill-available):
        (.max-width-fit-content):
        (.min-width-min-content):
        (.min-width-max-content):
        (.min-width-fill-available):
        (.min-width-fit-content):
        * fast/css-intrinsic-dimensions/width-property-value-expected.txt: Added.
        * fast/css-intrinsic-dimensions/width-property-value.html: Added.
        * fast/css-intrinsic-dimensions/width.html: Added.

2012-06-20  Christopher Cameron  <ccameron@chromium.org>

        [chromium] webkit-backface-visibility doesn't work with video
        https://bugs.webkit.org/show_bug.cgi?id=88908

        When determining a contents layer's backface culling, use the parent
        layer's transform and backface-visibility properties. Track which
        layers need this special treatment with useParentBackfaceVisibility
        and setUseParentBackfaceVisibility functions in WebCore::LayerChromium,
        WebKit::WebLayer, and WebCore::CCLayerImpl.

        Reviewed by Adrienne Walker.

        * compositing/backface-visibility/backface-visibility-image-expected.png: Added.
        * compositing/backface-visibility/backface-visibility-image-expected.txt: Added.
        * compositing/backface-visibility/backface-visibility-image.html: Added.
        * compositing/backface-visibility/backface-visibility-webgl-expected.png: Added.
        * compositing/backface-visibility/backface-visibility-webgl-expected.txt: Added.
        * compositing/backface-visibility/backface-visibility-webgl.html: Added.

2012-06-20  Nate Chapin  <japhet@chromium.org>

        Test for https://bugs.webkit.org/show_bug.cgi?id=89378.
        Reviewed by Eric Seidel.

        * http/tests/xmlhttprequest/reentrant-cancel-expected.txt: Added.
        * http/tests/xmlhttprequest/reentrant-cancel.html: Added.

2012-06-20  Robert Hogan  <robert@webkit.org>

        Negative margin block doesn't properly clear a float enclosed by a previous sibling
        https://bugs.webkit.org/show_bug.cgi?id=10900

        Reviewed by Eric Seidel.

        * fast/block/float/previous-sibling-abspos-001-expected.html: Added.
        * fast/block/float/previous-sibling-abspos-001.html: Added.
        * fast/block/float/previous-sibling-abspos-002-expected.html: Added.
        * fast/block/float/previous-sibling-abspos-002.html: Added.
        * fast/block/float/previous-sibling-float-001-expected.html: Added.
        * fast/block/float/previous-sibling-float-001.html: Added.
        * fast/block/float/previous-sibling-float-002-expected.html: Added.
        * fast/block/float/previous-sibling-float-002.html: Added.
        * fast/css/clear-float-sibling-expected.html: Added.
        * fast/css/clear-float-sibling.html: Added.

2012-06-20  Alexis Menard  <alexis.menard@openbossa.org>

        [CSS3 Backgrounds and Borders] Implement box-decoration-break rendering.
        https://bugs.webkit.org/show_bug.cgi?id=88228

        Reviewed by Eric Seidel.

        Add new tests to cover the feature.

        * fast/box-decoration-break/box-decoration-break-rendering-expected.html: Added.
        * fast/box-decoration-break/box-decoration-break-rendering.html: Added.

2012-06-20  Hans Wennborg  <hans@chromium.org>

        Speech JavaScript API: add SpeechRecognition.maxAlternatives attribute
        https://bugs.webkit.org/show_bug.cgi?id=89459

        Reviewed by Eric Seidel.

        Update the basic test to check for presence of the maxAlternatives attribute.

        * fast/speech/scripted/basics-expected.txt:
        * fast/speech/scripted/basics.html:

2012-06-20  Takashi Sakamoto  <tasak@google.com>

        applyAuthorStyles makes rules declared in all enclosing shadow dom subtrees applicable.
        https://bugs.webkit.org/show_bug.cgi?id=89061

        Reviewed by Dimitri Glazkov.

        * fast/css/style-scoped/style-scoped-apply-author-styles-expected.txt: Added.
        * fast/css/style-scoped/style-scoped-apply-author-styles.html: Added.

2012-06-20  Sergio Villar Senin  <svillar@igalia.com>

        Unreviewed GTK gardening. Removed some tests from TestExpectations
        as they were passing in the tree bots.

        * platform/gtk/TestExpectations:

2012-06-20  Hajime Morrita  <morrita@chromium.org>

        Unreviewed rebaselining.

        * platform/chromium-linux/platform/chromium/virtual/gpu/fast/canvas/quadraticCurveTo-expected.png:
        * platform/chromium-mac-leopard/platform/chromium/virtual/gpu/fast/canvas/quadraticCurveTo-expected.png: Added.
        * platform/chromium-mac-snowleopard/platform/chromium/virtual/gpu/fast/canvas/quadraticCurveTo-expected.png:
        * platform/chromium-mac/platform/chromium/virtual/gpu/fast/canvas/quadraticCurveTo-expected.png:
        * platform/chromium-win/platform/chromium/virtual/gpu/fast/canvas/quadraticCurveTo-expected.png:
        * platform/chromium/TestExpectations:

2012-06-19  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt][Mac] Speculative skipping to try to paint the bot green.

        * platform/qt-mac/Skipped:

2012-06-19  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt][Mac] Skip one more crashing test.

        * platform/qt-mac/Skipped:

2012-06-19  Cris Neckar  <cdn@chromium.org>

        Add test which inserts a CounterNode subtree which contains reset nodes into another tree. 
        https://bugs.webkit.org/show_bug.cgi?id=88142

        Reviewed by Adam Barth.

        * fast/css/counters/counter-reset-subtree-insert-crash-expected.txt: Added.
        * fast/css/counters/counter-reset-subtree-insert-crash.html: Added.

2012-06-19  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed expected update after r120735.

        * fast/css/getComputedStyle/computed-style-expected.txt:
        * fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:

2012-06-19  Kinuko Yasuda  <kinuko@chromium.org>

        Use testRunner instead of layoutTestController in fast/{files,filesystem}
        https://bugs.webkit.org/show_bug.cgi?id=89462

        Reviewed by Ryosuke Niwa.

        * fast/files/apply-blob-url-to-img.html:
        * fast/files/apply-blob-url-to-xhr.html:
        * fast/files/blob-builder-crash.html:
        * fast/files/blob-slice-overflow.html:
        * fast/files/blob-slice-test.html:
        * fast/files/create-blob-url-crash.html:
        * fast/files/domurl-script-execution-context-crash.html:
        * fast/files/file-reader-abort.html:
        * fast/files/file-reader-directory-crash.html:
        * fast/files/file-reader-event-listener.html:
        * fast/files/file-reader-file-url.html:
        * fast/files/file-reader-sandbox-iframe.html:
        * fast/files/null-origin-string.html:
        * fast/files/read-blob-async.html:
        * fast/files/read-file-async.html:
        * fast/files/resources/file-reader-real.html:
        * fast/files/resources/setup-for-read-common.js:
        * fast/files/revoke-blob-url.html:
        * fast/files/script-tests/xhr-response-blob.js:
        * fast/files/workers/inline-worker-via-blob-url.html:
        * fast/files/workers/worker-apply-blob-url-to-xhr.html:
        * fast/files/workers/worker-read-blob-async.html:
        * fast/files/workers/worker-read-blob-sync.html:
        * fast/files/workers/worker-read-file-async.html:
        * fast/files/workers/worker-read-file-sync.html:
        * fast/filesystem/cross-filesystem-op.html:
        * fast/filesystem/file-after-reload-crash.html:
        * fast/filesystem/file-metadata-after-write.html:
        * fast/filesystem/filesystem-no-callback-null-ptr-crash.html:
        * fast/filesystem/filesystem-uri-origin.html:

2012-06-19  Takashi Sakamoto  <tasak@google.com>

        [Shadow DOM] ShadowRoot.host should be gone
        https://bugs.webkit.org/show_bug.cgi?id=88387

        Reviewed by Dimitri Glazkov.

        * fast/css/style-scoped/style-scoped-in-shadow-expected.txt:
        * fast/css/style-scoped/style-scoped-in-shadow.html:
        * fast/dom/shadow/resources/shadow-dom.js:
        (isShadowRoot):
        * fast/dom/shadow/shadow-root-js-api-expected.txt:
        * fast/dom/shadow/shadow-root-js-api.html:
        Just removed references to shadow root's host attribute.

2012-06-19  Kent Tamura  <tkent@chromium.org>

        Fix a form restore test broken by HTML5 parser
        https://bugs.webkit.org/show_bug.cgi?id=89539

        Reviewed by Kentaro Hara.

        Before HTML5 parser, we parsed innerHTML input text and we attached
        renderers to parsed nodes at the same time. The parsed nodes had
        restored form values because we restore form values only for attached
        elements.

        After HTML5 parser, we don't attach renderers during innerHTML
        parsing. state-restore-to-nonedited-controls.html used innerHTML to
        built a form and the test haven't worked since introducing HTML5 parser.

        This patch changes the test so that it uses document.write() instead of
        innerHTML.

        * fast/forms/state-restore-to-non-edited-controls-expected.txt:
        Note that the FAIL line is expected. It's due to Bug 88685.
        * fast/forms/state-restore-to-non-edited-controls.html:
        Use document.write() instead of innerHTML.

2012-06-19  Ryosuke Niwa  <rniwa@webkit.org>

        Test fix after r120521.

        * webarchive/resources/dump-webarchive.js:
        * webarchive/test-duplicate-resources-expected.webarchive:
        * webarchive/test-script-src-expected.webarchive:

2012-06-19  Ryosuke Niwa  <rniwa@webkit.org>

        Use testRunner instead of layoutTestController in fast/doctypes, dom, dynamic, encoding, events, eventsource, and exclusions tests
        https://bugs.webkit.org/show_bug.cgi?id=89438

        Reviewed by Tony Chang.

        * fast/doctypes/005-case-preserving.html:
        * fast/doctypes/doctype-after-comment.html:
        * fast/doctypes/doctype-at-end.html:
        * fast/doctypes/doctype-in-element.html:
        * fast/doctypes/doctype-parsing.html:
        * fast/doctypes/html-doctype.html:
        * fast/doctypes/xhtml-with-xhtmlmp-doctype.xhtml:
        * fast/doctypes/xml-doctype.xhtml:
        * fast/dom/:
        * fast/dynamic/5872671.html:
        * fast/dynamic/ancestor-to-absolute.html:
        * fast/dynamic/checkbox-selection-crash.html:
        * fast/dynamic/containing-block-change.html:
        * fast/dynamic/crash-generated-counter.html:
        * fast/dynamic/crash-generated-image.html:
        * fast/dynamic/crash-generated-quote.html:
        * fast/dynamic/crash-generated-text.html:
        * fast/dynamic/crash-paint-no-documentElement-renderer.html-disabled:
        * fast/dynamic/float-remove-above-line-2.html:
        * fast/dynamic/float-remove-above-line.html:
        * fast/dynamic/hover-before-position-after-style-change.html:
        * fast/dynamic/hover-before-position-after-style-change2.html:
        * fast/dynamic/hover-style-recalc-crash.html:
        * fast/dynamic/hovered-detach.html:
        * fast/dynamic/inline-to-block-crash.html:
        * fast/dynamic/insertAdjacentElement.html:
        * fast/dynamic/insertAdjacentHTML-allowed-parents.html:
        * fast/dynamic/insertAdjacentHTML.html:
        * fast/dynamic/insertAdjacentText.html:
        * fast/dynamic/jQuery-animation-crash.html:
        * fast/dynamic/layer-hit-test-crash.html:
        * fast/dynamic/layer-no-longer-paginated.html:
        * fast/dynamic/outerHTML-no-element.html:
        * fast/dynamic/paused-event-dispatch.html:
        * fast/dynamic/position-absolute-to-fixed-crash.html:
        * fast/dynamic/position-change-layout.html:
        * fast/dynamic/recursive-layout.html:
        * fast/dynamic/style-access-late-stylesheet-load.html:
        * fast/dynamic/subtree-common-root.html:
        * fast/dynamic/subtree-table-cell-height.html:
        * fast/dynamic/subtree-unrooted.html:
        * fast/encoding/:
        * fast/events/:
        * platform/chromium/fast/events/drag-downloadURL.html:
        * platform/chromium/fast/events/intercept-postmessage.html:
        * platform/chromium/fast/events/rtl-scrollbar.html:
        * platform/gtk/fast/events/event-sender-metakey.html:
        * platform/mac/fast/dom/HTMLImageElement/dashboard-src-quirk.html:
        * platform/mac/fast/dom/character-index-for-point.html:
        * platform/mac/fast/dom/objc-wrapper-identity.html:
        * platform/mac/fast/dom/wrapper-classes-objc.html:
        * platform/mac/fast/dom/wrapper-round-tripping.html:
        * platform/mac/fast/events/objc-event-api.html:
        * platform/mac/fast/events/objc-keyboard-event-creation.html:
        * platform/qt/fast/events/event-sender-keydown-frame.html:
        * platform/win/fast/events/alt-numpad.html:
        * platform/win/fast/events/alt-space-scroll.html:
        * platform/win/fast/events/double-dead-char.html:
        * platform/win/fast/events/keyLocation-numpad.html:
        * platform/win/fast/events/panScroll-correct-direction.html:
        * platform/win/fast/events/panScroll-event-fired.html:
        * platform/win/fast/events/panScroll-image-no-scroll.html:
        * platform/win/fast/events/panScroll-imageMap-href-no-scroll.html:
        * platform/win/fast/events/panScroll-imageMap-noHref-scroll.html:
        * platform/win/fast/events/panScroll-nested-divs.html:
        * platform/win/fast/events/panScroll-no-iframe-jump.html:
        * platform/win/fast/events/panScroll-preventDefault.html:
        * platform/win/fast/events/script-tests/context-click-events.js:

2012-06-19  Jon Honeycutt  <jhoneycutt@apple.com>

        Remove the failing expected results added in
        http://trac.webkit.org/changeset/119190 now that these tests pass.

        Rubber-stamped by Jessie Berlin.

        * platform/win/fast/frames/frame-set-scaling-hit-expected.txt: Removed.
        * platform/win/fast/frames/frame-with-noresize-can-be-resized-after-removal-of-noresize-expected.txt: Removed.
        * platform/win/fast/frames/frame-with-noresize-can-be-resized-after-setting-noResize-to-false-expected.txt: Removed.
        * platform/win/fast/frames/frames-with-frameborder-zero-can-be-resized-expected.txt: Removed.

2012-06-19  Erik Arvidsson  <arv@chromium.org>

        [V8] Fix issue where a callback got a null calling context
        https://bugs.webkit.org/show_bug.cgi?id=89532

        Reviewed by Kentaro Hara.

        * fast/dom/Window/post-message-crash-expected.txt: Added.
        * fast/dom/Window/post-message-crash.html: Added.

2012-06-19  Kenneth Russell  <kbr@google.com>

        [Chromium] Unreviewed test expectations update.

        * platform/chromium-win-xp/platform/chromium/virtual/gpu/fast/canvas/resize-while-save-active-expected.txt: Removed.
        * platform/chromium/TestExpectations:
            Referenced bugs 89529 and 89534.

2012-06-19  Greg Billock  <gbillock@google.com>

        Add filesystem regression test to check that the filesystem object is
        not serializable as created by javascript.
        https://bugs.webkit.org/show_bug.cgi?id=88267

        Reviewed by David Levin.

        * fast/filesystem/filesystem-unserializable-expected.html: Added.
        * fast/filesystem/filesystem-unserializable.html: Added.
        * fast/filesystem/script-tests/filesystem-unserializable.js: Added.

2012-06-19  Beth Dakin  <bdakin@apple.com>

        Skipping failing tests to keep the bots green. Filed 
        https://bugs.webkit.org/show_bug.cgi?id=89528 to track fixing the 
        real problem.

        * platform/mac/Skipped:

2012-06-19  Kenneth Russell  <kbr@google.com>

        [Chromium][Mac] Layout Test ietestcenter/css3/bordersbackgrounds/border-radius-clip-002.htm is failing
        https://bugs.webkit.org/show_bug.cgi?id=89411

        Unreviewed test expectations update generated by garden-o-matic.

        * ietestcenter/css3/bordersbackgrounds/border-radius-clip-002-expected.txt: Renamed from LayoutTests/platform/efl/ietestcenter/css3/bordersbackgrounds/border-radius-clip-002-expected.txt.
        * platform/chromium-mac-leopard/ietestcenter/css3/bordersbackgrounds/border-radius-clip-002-expected.png: Added.
        * platform/chromium-mac/ietestcenter/css3/bordersbackgrounds/border-radius-clip-002-expected.txt: Removed.
        * platform/chromium-win/ietestcenter/css3/bordersbackgrounds/border-radius-clip-002-expected.png: Added.
        * platform/chromium/TestExpectations:
            Removed IMAGE MISSING expectation for this test.
        * platform/gtk/ietestcenter/css3/bordersbackgrounds/border-radius-clip-002-expected.txt: Removed.

2012-06-19  Filip Pizlo  <fpizlo@apple.com>

        DFG CFA forgets to notify subsequent phases of found constants if it proves LogicalNot to be a constant
        https://bugs.webkit.org/show_bug.cgi?id=89511
        <rdar://problem/11700089>

        Reviewed by Geoffrey Garen.

        * fast/js/dfg-constant-fold-logical-not-branch-expected.txt: Added.
        * fast/js/dfg-constant-fold-logical-not-branch.html: Added.
        * fast/js/script-tests/dfg-constant-fold-logical-not-branch.js: Added.
        (foo1):
        (foo2):
        (Stuff):
        (Stuff.prototype.thingy):
        (Stuff.prototype.otherThingy):

2012-06-19  Jon Honeycutt  <jhoneycutt@apple.com>

        Remove the failing results added in
        http://trac.webkit.org/changeset/119144 and
        http://trac.webkit.org/changeset/119149 now that these tests pass
        without them.

        Rubber-stamped by Jessie Berlin.

        * platform/win/fast/events/popup-allowed-from-gesture-initiated-event-expected.txt: Removed.
        * platform/win/fast/events/popup-allowed-from-gesture-initiated-form-submit-expected.txt: Removed.
        * platform/win/fast/events/popup-blocked-from-fake-user-gesture-expected.txt: Removed.
        * platform/win/fast/events/popup-blocked-from-untrusted-mouse-click-expected.txt: Removed.
        * platform/win/fast/events/popup-blocking-timers-expected.txt: Removed.
        * platform/win/fast/events/remove-target-in-mouseup-deep-expected.txt: Removed.
        * platform/win/fast/events/remove-target-in-mouseup-expected.txt: Removed.
        * platform/win/fast/events/remove-target-in-mouseup-insertback-expected.txt: Removed.
        * platform/win/fast/events/remove-target-in-mouseup-twice-expected.txt: Removed.
        * platform/win/fast/events/remove-target-with-shadow-in-drag-expected.txt: Removed.

2012-06-19  Ken Buchanan  <kenrb@chromium.org>

        Absolute positioned objects should not be added to anonymous block lists
        https://bugs.webkit.org/show_bug.cgi?id=87768

        Reviewed by Abhishek Arya.

        Test crashing condition in bug 87768.

        * fast/block/positioning/abspositioned-object-under-split-relpositioned-inline-crash-expected.txt: Added
        * fast/block/positioning/abspositioned-object-under-split-relpositioned-inline-crash.html: Added
        * fast/block/positioning/insert-positioned-in-anonymous-crash-expected.txt: Added
        * fast/block/positioning/insert-positioned-in-anonymous-crash.html: Added

2012-06-19  Jan Keromnes  <janx@linux.com>

        Web Inspector: extensionPanel.onSearch `action` strings should be enumerated
        https://bugs.webkit.org/show_bug.cgi?id=89509

        Reviewed by Pavel Feldman.

        * inspector/extensions/extensions-api-expected.txt:

2012-06-19  Kenneth Russell  <kbr@google.com>

        [Chromium] Unreviewed gardening.

        * platform/chromium-win-xp/platform/chromium/virtual/gpu/fast/canvas/resize-while-save-active-expected.txt:
            Added expectations without trailing newlines; unclear why this only happens in this configuration.
        * platform/chromium/TestExpectations:
            Added reference to https://bugs.webkit.org/show_bug.cgi?id=89510 .

2012-06-19  Dominik Röttsches  <dominik.rottsches@intel.com>

        [cairo] Fix LayoutTests/fast/canvas/patternfill-repeat.html
        https://bugs.webkit.org/show_bug.cgi?id=53085

        Reviewed by Martin Robinson.

        canvas/philip/tests/2d.pattern.paint.repeat* tests now passing.

        * platform/efl/Skipped:
        * platform/gtk/TestExpectations:

2012-06-19  Hayato Ito  <hayato@chromium.org>

        [Shadow DOM] An upper boundary breaks if a child node of an insertion point is clicked.
        https://bugs.webkit.org/show_bug.cgi?id=89407

        Reviewed by Dimitri Glazkov.

        * fast/dom/shadow/shadow-dom-event-dispatching-expected.txt:
        * fast/dom/shadow/shadow-dom-event-dispatching.html:

2012-06-19  Martin Kosiba  <mkosiba@google.com>

        [Chromium] Add LayoutTests for find in page.
        https://bugs.webkit.org/show_bug.cgi?id=89453

        Reviewed by Adam Barth.

        * platform/chromium/editing/text-iterator/findString-restarts-at-last-position-expected.txt: Added.
        * platform/chromium/editing/text-iterator/findString-restarts-at-last-position.html: Added.
        * platform/chromium/editing/text-iterator/findString-start-search-after-selection-expected.txt: Added.
        * platform/chromium/editing/text-iterator/findString-start-search-after-selection.html: Added.

2012-06-19  Adrienne Walker  <enne@google.com>

        Fix scrollbar layers being misplaced with a clipped owner layer
        https://bugs.webkit.org/show_bug.cgi?id=89486

        Reviewed by Simon Fraser.

        * compositing/overflow/scrollbars-with-clipped-owner-expected.png: Added.
        * compositing/overflow/scrollbars-with-clipped-owner-expected.txt: Added.
        * compositing/overflow/scrollbars-with-clipped-owner.html: Added.

2012-06-19  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow][Editing] applying document.execCommand('bold') twice to elements having shadow insertion points causes a crash.
        https://bugs.webkit.org/show_bug.cgi?id=88502

        Reviewed by Ryosuke Niwa.

        * editing/shadow/bold-twice-in-shadow-expected.txt: Added.
        * editing/shadow/bold-twice-in-shadow.html: Added.

2012-06-19  Jon Honeycutt  <jhoneycutt@apple.com>

        Remove some failing layout tests results added in
        http://trac.webkit.org/changeset/119285 and
        http://trac.webkit.org/changeset/119295. Most of these tests pass
        without the failing results. Only one of them passes with the failing
        result; compositing/layer-creation/spanOverlapsCanvas.html. I left that
        failing result in place.

        Rubber-stamped by Alexey Proskuryakov.

        * platform/win/compositing/geometry/flipped-writing-mode-expected.txt: Removed.
        * platform/win/compositing/geometry/foreground-layer-expected.txt: Removed.
        * platform/win/compositing/geometry/foreground-offset-change-expected.txt: Removed.
        * platform/win/compositing/geometry/horizontal-scroll-composited-expected.txt: Removed.
        * platform/win/compositing/geometry/layer-due-to-layer-children-deep-expected.txt: Removed.
        * platform/win/compositing/geometry/layer-due-to-layer-children-deep-switch-expected.txt: Removed.
        * platform/win/compositing/geometry/layer-due-to-layer-children-expected.txt: Removed.
        * platform/win/compositing/geometry/layer-due-to-layer-children-switch-expected.txt: Removed.
        * platform/win/compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt: Removed.
        * platform/win/compositing/geometry/limit-layer-bounds-opacity-transition-expected.txt: Removed.
        * platform/win/compositing/geometry/limit-layer-bounds-overflow-repaint-expected.txt: Removed.
        * platform/win/compositing/geometry/limit-layer-bounds-overflow-root-expected.txt: Removed.
        * platform/win/compositing/geometry/limit-layer-bounds-positioned-expected.txt: Removed.
        * platform/win/compositing/geometry/limit-layer-bounds-positioned-transition-expected.txt: Removed.
        * platform/win/compositing/geometry/limit-layer-bounds-transformed-expected.txt: Removed.
        * platform/win/compositing/geometry/limit-layer-bounds-transformed-overflow-expected.txt: Removed.
        * platform/win/compositing/geometry/outline-change-expected.txt: Removed.
        * platform/win/compositing/geometry/partial-layout-update-expected.txt: Removed.
        * platform/win/compositing/geometry/preserve-3d-switching-expected.txt: Removed.
        * platform/win/compositing/geometry/root-layer-update-expected.txt: Removed.
        * platform/win/compositing/geometry/tall-page-composited-expected.txt: Removed.
        * platform/win/compositing/geometry/transfrom-origin-on-zero-size-layer-expected.txt: Removed.
        * platform/win/compositing/geometry/vertical-scroll-composited-expected.txt: Removed.
        * platform/win/compositing/geometry/video-opacity-overlay-expected.txt: Removed.
        * platform/win/compositing/iframes/become-composited-nested-iframes-expected.txt: Removed.
        * platform/win/compositing/iframes/become-overlapped-iframe-expected.txt: Removed.
        * platform/win/compositing/iframes/composited-iframe-alignment-expected.txt: Removed.
        * platform/win/compositing/iframes/composited-iframe-scroll-expected.txt: Removed.
        * platform/win/compositing/iframes/composited-parent-iframe-expected.txt: Removed.
        * platform/win/compositing/iframes/connect-compositing-iframe-delayed-expected.txt: Removed.
        * platform/win/compositing/iframes/connect-compositing-iframe-expected.txt: Removed.
        * platform/win/compositing/iframes/connect-compositing-iframe2-expected.txt: Removed.
        * platform/win/compositing/iframes/connect-compositing-iframe3-expected.txt: Removed.
        * platform/win/compositing/iframes/enter-compositing-iframe-expected.txt: Removed.
        * platform/win/compositing/iframes/iframe-content-flipping-expected.txt: Removed.
        * platform/win/compositing/iframes/iframe-copy-on-scroll-expected.txt: Removed.
        * platform/win/compositing/iframes/iframe-in-composited-layer-expected.txt: Removed.
        * platform/win/compositing/iframes/iframe-resize-expected.txt: Removed.
        * platform/win/compositing/iframes/iframe-size-from-zero-expected.txt: Removed.
        * platform/win/compositing/iframes/invisible-iframe-expected.txt: Removed.
        * platform/win/compositing/iframes/invisible-nested-iframe-expected.txt: Removed.
        * platform/win/compositing/iframes/invisible-nested-iframe-hide-expected.txt: Removed.
        * platform/win/compositing/iframes/invisible-nested-iframe-show-expected.txt:
        * platform/win/compositing/iframes/layout-on-compositing-change-expected.txt: Removed.
        * platform/win/compositing/iframes/nested-iframe-scrolling-expected.txt: Removed.
        * platform/win/compositing/iframes/overlapped-iframe-expected.txt: Removed.
        * platform/win/compositing/iframes/overlapped-iframe-iframe-expected.txt:
        * platform/win/compositing/iframes/page-cache-layer-tree-expected.txt: Removed.
        * platform/win/compositing/iframes/resizer-expected.txt: Removed.
        * platform/win/compositing/iframes/scrolling-iframe-expected.txt: Removed.
        * platform/win/compositing/images: Removed.
        * platform/win/compositing/images/clip-on-directly-composited-image-expected.txt: Removed.
        * platform/win/compositing/images/direct-image-background-color-expected.txt: Removed.
        * platform/win/compositing/images/direct-pdf-image-expected.txt: Removed.
        * platform/win/compositing/images/direct-svg-image-expected.txt: Removed.
        * platform/win/compositing/layer-creation/fixed-position-out-of-view-expected.txt: Removed.
        * platform/win/compositing/layer-creation/overflow-scroll-overlap-expected.txt: Removed.
        * platform/win/compositing/layer-creation/overlap-animation-expected.txt: Removed.
        * platform/win/compositing/layer-creation/overlap-child-layer-expected.txt: Removed.
        * platform/win/compositing/layer-creation/overlap-clipping-expected.txt: Removed.
        * platform/win/compositing/layer-creation/overlap-transformed-and-clipped-expected.txt: Removed.
        * platform/win/compositing/layer-creation/overlap-transformed-layer-expected.txt: Removed.
        * platform/win/compositing/layer-creation/overlap-transforms-expected.txt: Removed.
        * platform/win/compositing/layer-creation/rotate3d-overlap-expected.txt: Removed.
        * platform/win/compositing/layer-creation/scroll-partial-update-expected.txt: Removed.
        * platform/win/compositing/layer-creation/stacking-context-overlap-expected.txt: Removed.
        * platform/win/compositing/layer-creation/stacking-context-overlap-nested-expected.txt: Removed.
        * platform/win/compositing/layer-creation/translatez-overlap-expected.txt: Removed.
        * platform/win/compositing/masks: Removed.
        * platform/win/compositing/masks/direct-image-mask-expected.txt: Removed.
        * platform/win/compositing/masks/masked-ancestor-expected.txt: Removed.
        * platform/win/compositing/masks/multiple-masks-expected.txt: Removed.
        * platform/win/compositing/masks/simple-composited-mask-expected.txt: Removed.
        * platform/win/compositing/overflow/ancestor-overflow-expected.txt: Removed.
        * platform/win/compositing/overflow/clip-descendents-expected.txt: Removed.
        * platform/win/compositing/overflow/content-gains-scrollbars-expected.txt: Removed.
        * platform/win/compositing/overflow/content-loses-scrollbars-expected.txt: Removed.
        * platform/win/compositing/overflow/overflow-compositing-descendant-expected.txt: Removed.
        * platform/win/compositing/overflow/overflow-positioning-expected.txt: Removed.
        * platform/win/compositing/overflow/overflow-scrollbar-layers-expected.txt: Removed.
        * platform/win/compositing/overflow/resize-painting-expected.txt: Removed.
        * platform/win/compositing/rtl: Removed.
        * platform/win/compositing/rtl/rtl-absolute-expected.txt: Removed.
        * platform/win/compositing/rtl/rtl-absolute-overflow-expected.txt: Removed.
        * platform/win/compositing/rtl/rtl-absolute-overflow-scrolled-expected.txt: Removed.
        * platform/win/compositing/rtl/rtl-iframe-absolute-expected.txt: Removed.
        * platform/win/compositing/rtl/rtl-iframe-absolute-overflow-expected.txt: Removed.
        * platform/win/compositing/rtl/rtl-iframe-absolute-overflow-scrolled-expected.txt: Removed.
        * platform/win/compositing/rtl/rtl-iframe-fixed-expected.txt: Removed.
        * platform/win/compositing/rtl/rtl-iframe-fixed-overflow-expected.txt: Removed.
        * platform/win/compositing/rtl/rtl-iframe-fixed-overflow-scrolled-expected.txt: Removed.
        * platform/win/compositing/rtl/rtl-iframe-relative-expected.txt: Removed.
        * platform/win/compositing/rtl/rtl-relative-expected.txt: Removed.
        * platform/win/compositing/tiling/crash-reparent-tiled-layer-expected.txt: Removed.
        * platform/win/compositing/visibility: Removed.
        * platform/win/compositing/visibility/layer-visible-content-expected.txt: Removed.
        * platform/win/compositing/visibility/visibility-image-layers-dynamic-expected.txt: Removed.

2012-06-19  Simon Fraser  <simon.fraser@apple.com>

        Rebaseline some media controller tests.

        * platform/mac/media/audio-controls-rendering-expected.txt:
        * platform/mac/media/controls-after-reload-expected.txt:
        * platform/mac/media/controls-strict-expected.txt:
        * platform/mac/media/video-controls-rendering-expected.txt:
        * platform/mac/media/video-display-toggle-expected.txt:
        * platform/mac/media/video-no-audio-expected.txt:
        * platform/mac/media/video-playing-and-pause-expected.txt:

2012-06-19  Abhishek Arya  <inferno@chromium.org>

        Crash in RenderInline::willBeDestroyed.
        https://bugs.webkit.org/show_bug.cgi?id=89386

        Reviewed by Julien Chaffraix.

        * fullscreen/empty-anonymous-block-continuation-crash-expected.txt: Added.
        * fullscreen/empty-anonymous-block-continuation-crash.html: Added.

2012-06-19  Dirk Pranke  <dpranke@chromium.org>

        new-run-webkit-tests reports unexpected pass of pixel tests when pixel testing is disabled
        https://bugs.webkit.org/show_bug.cgi?id=85446

        Reviewed by Simon Fraser.

        This change makes results.html aware of whether pixel tests were
        enabled when the tests were run; if they weren't, we ignore
        expected IMAGE tests that pass instead of reporting them as
        'unexpected pass'.

        * fast/harness/resources/results-test.js:
        (mockResults):
        * fast/harness/results.html:

2012-06-19  Andreas Kling  <kling@webkit.org>

        Remove the -webkit-match-nearest-mail-blockquote-color property.
        <http://webkit.org/b/89480>

        Reviewed by Antti Koivisto.

        * fast/css/getComputedStyle/resources/property-names.js:
        * fast/dom/CSSStyleDeclaration/access-longest-css-property-expected.txt:
        * fast/dom/CSSStyleDeclaration/access-longest-css-property.html:
        * platform/chromium-mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/chromium-win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/chromium-win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/gtk/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/qt/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:

2012-06-19  Abhishek Arya  <inferno@chromium.org>

        Crash in WebCore::RenderSVGModelObject::checkIntersection
        https://bugs.webkit.org/show_bug.cgi?id=89059

        Reviewed by Rob Buis.

        * svg/custom/intersection-list-crash-expected.txt: Added.
        * svg/custom/intersection-list-crash.svg: Added.

2012-06-19  Dan Bernstein  <mitz@apple.com>

        Paginated display API doesn’t allow setting the page progression direction
        https://bugs.webkit.org/show_bug.cgi?id=89394

        Reviewed by Darin Adler.

        * fast/multicol/pagination-h-horizontal-bt.html:
        * fast/multicol/pagination-h-horizontal-tb.html:
        * fast/multicol/pagination-h-vertical-lr.html:
        * fast/multicol/pagination-h-vertical-rl.html:
        * fast/multicol/pagination-v-horizontal-bt.html:
        * fast/multicol/pagination-v-horizontal-tb.html:
        * fast/multicol/pagination-v-vertical-lr.html:
        * fast/multicol/pagination-v-vertical-rl.html:

2012-06-19  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt][Mac] Skip new failing and crashing tests to try to paint the bot green.

        * platform/qt-mac/Skipped:

2012-06-19  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed gardening, remove unnecessary expected files.

        * platform/qt/animations/combo-transform-translate+scale-expected.txt: Removed.
        * platform/qt/compositing/geometry/object-clip-rects-assertion-expected.txt: Removed.
        * platform/qt/css3/calc/getComputedStyle-margin-percentage-expected.txt: Removed.
        * platform/qt/css3/filters/remove-filter-rendering-expected.txt: Removed.
        * platform/qt/editing/inserting/return-key-in-hidden-field-expected.txt: Removed.
        * platform/qt/editing/pasteboard/paste-4039777-fix-expected.txt: Removed.
        * platform/qt/editing/pasteboard/paste-noscript-expected.txt: Removed.
        * platform/qt/editing/pasteboard/select-element-1-expected.txt: Removed.
        * platform/qt/editing/selection/select-line-break-with-opposite-directionality-expected.txt: Removed.
        * platform/qt/fast/css/border-solid-single-edge-antialias-expected.txt: Removed.
        * platform/qt/fast/dom/Window/window-resize-contents-expected.txt: Removed.
        * platform/qt/fast/events/mouse-relative-position-expected.txt: Removed.
        * platform/qt/fast/preloader/document-write-noscript-expected.txt: Removed.
        * platform/qt/fast/repaint/table-hover-on-link-expected.txt: Removed.
        * platform/qt/http/tests/misc/SVGFont-delayed-load-expected.txt: Removed.
        * platform/qt/http/tests/security/xssAuditor/script-tag-with-fancy-unicode-expected.txt: Removed.
        * platform/qt/svg/custom/acid3-test-77-expected.txt: Removed.
        * platform/qt/svg/custom/circular-marker-reference-1-expected.txt: Removed.
        * platform/qt/svg/custom/glyph-setting-d-attribute-expected.txt: Removed.
        * platform/qt/svg/custom/insertItemBefore-from-non-list-origin-expected.txt: Removed.
        * platform/qt/svg/custom/use-transfer-width-height-properties-to-svg-expected.txt: Removed.
        * platform/qt/svg/custom/use-transfer-width-height-properties-to-symbol2-expected.txt: Removed.
        * platform/qt/svg/dom/baseVal-animVal-crash-expected.txt: Removed.
        * platform/qt/svg/dom/css-transforms-expected.txt: Removed.
        * platform/qt/svg/dom/font-face-elements-expected.txt: Removed.
        * platform/qt/svg/hixie/links/001-expected.txt: Removed.
        * platform/qt/tables/mozilla_expected_failures/bugs/bug3517-expected.txt: Removed.

2012-06-19  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed gardening, remove unnecessary expected files.

        * platform/qt-5.0/fast/dom/DeviceMotion/create-event-expected.txt: Removed.
        * platform/qt-5.0/fast/dom/DeviceOrientation/create-event-expected.txt: Removed.

2012-06-19  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed gardening, skip one more failing test.

        * platform/qt-5.0-wk2/Skipped:

2012-06-19  Amy Ousterhout  <aousterh@chromium.org>

        Fixing Typos in DeviceOrientation and DeviceMotion Tests
        https://bugs.webkit.org/show_bug.cgi?id=89339

        Reviewed by Steve Block.

        * fast/dom/DeviceMotion/create-event-expected.txt:
        * fast/dom/DeviceMotion/script-tests/create-event.js:
        * fast/dom/DeviceOrientation/no-synchronous-events-expected.txt:
        * fast/dom/DeviceOrientation/script-tests/no-synchronous-events.js:

2012-06-19  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed gardening, skip one more failing test.

        * platform/qt-5.0-wk2/Skipped:

2012-06-19  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed typo fix.

        * platform/qt/Skipped:

2012-06-19  Alexander Pavlov  <apavlov@chromium.org>

        New inspector/styles/inject-stylesheet.html fails
        https://bugs.webkit.org/show_bug.cgi?id=89364

        Reviewed by Zoltan Herczeg.

        LayoutTestController in Chromium injects testRunner into the Inspector window, while its other implementations don't.
        Additionally, testRunner.addUserStyleSheet() behavior differs across platforms: Chromium injects stylesheets
        with the "Author" level, while the others do with the "User" level, so the Chromium expectation stands apart.

        * inspector/styles/inject-stylesheet-expected.txt:
        * inspector/styles/inject-stylesheet.html:
        * platform/chromium/inspector/styles/inject-stylesheet-expected.txt: Copied from LayoutTests/inspector/styles/inject-stylesheet-expected.txt.
        * platform/qt/Skipped:

2012-06-19  Dominik Röttsches  <dominik.rottsches@intel.com>

        [GTK] Assert failure in svg/batik/text/textDecoration.svg,textEffect3.svg for 64bit Debug bot
        https://bugs.webkit.org/show_bug.cgi?id=89104

        Reviewed by Nikolas Zimmermann.

        Removing CRASH expectations after assertion failure is now fixed.

        * platform/chromium/TestExpectations:
        * platform/gtk/TestExpectations:

2012-06-19  Taiju Tsuiki  <tzik@chromium.org>

        Web Inspector: FileSystem tree should hide uninitialized FileSystem
        https://bugs.webkit.org/show_bug.cgi?id=88602

        Reviewed by Vsevolod Vlasov.

        * http/tests/inspector/filesystem/get-filesystem-root-expected.txt: Added.
        * http/tests/inspector/filesystem/get-filesystem-root.html: Added.

2012-06-19  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] EFL's LayoutTestController does not support setTextDirection
        https://bugs.webkit.org/show_bug.cgi?id=87481

        Reviewed by Hajime Morita.

        Unskip related test case now that EFL's LayoutTestController
        implements setTextDirection.

        * platform/efl/Skipped:

2012-06-19  MORITA Hajime  <morrita@google.com>

        Unreviewed expectation update.

        * platform/chromium/TestExpectations:

2012-06-19  Mike West  <mkwst@chromium.org>

        Add a scheme registry for bypassing Content Security Policy.
        https://bugs.webkit.org/show_bug.cgi?id=89373

        Reviewed by Adam Barth.

        * http/tests/security/contentSecurityPolicy/register-bypassing-scheme-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/register-bypassing-scheme.html: Added.

2012-06-18  Ryosuke Niwa  <rniwa@webkit.org>

        Use testRunner instead of layoutTestController in fast/canvas, clip, compact, constructors, cookies, and css* tests
        https://bugs.webkit.org/show_bug.cgi?id=89431

        Reviewed by Kent Tamura.

        * fast/canvas/:
        * fast/constructors/constructor-as-function-crash.html:
        * fast/css-generated-content/absolute-position-inside-inline.html:
        * fast/css-generated-content/after-with-first-letter-float-crash.html:
        * fast/css-generated-content/attr-missing.html:
        * fast/css-generated-content/before-content-with-list-marker-in-anon-block-crash.html:
        * fast/css-generated-content/block-after.html:
        * fast/css-generated-content/drag-state.html:
        * fast/css-generated-content/empty-content-with-float-crash.html:
        * fast/css-generated-content/first-letter-next-sibling-crash.html:
        * fast/css-generated-content/first-letter-table-cell-format-block-crash.html:
        * fast/css-generated-content/float-first-letter-siblings-convert-to-inline.html:
        * fast/css-generated-content/floating-before-content-with-list-marker-crash.html:
        * fast/css-generated-content/hit-test-generated-content.html:
        * fast/css-generated-content/hover-style-change.html:
        * fast/css-generated-content/inline-splitting-with-after-float-crash.html:
        * fast/css-generated-content/malformed-url.html:
        * fast/css-generated-content/positioned-background-hit-test-crash.html:
        * fast/css-generated-content/positioned-div-with-floating-after-content-crash.html:
        * fast/css-generated-content/positioned-generated-content-under-run-in-crash.html:
        * fast/css-generated-content/remove-div-from-flexible-box-with-floating-after-content-crash.html:
        * fast/css-generated-content/reset-content-to-initial.html:
        * fast/css-generated-content/resources/pass.html:
        * fast/css-generated-content/resources/positioned-div-with-floating-after-content-crash-frame2.html:
        * fast/css-generated-content/spellingToolTip-assert.html:
        * fast/css-generated-content/table-row-after-no-crash.html:
        * fast/css-generated-content/table-with-scrollbar-corner.html:
        * fast/css-generated-content/text-before-table-col-crash.html:
        * fast/css-grid-layout/display-grid-set-get.html:
        * fast/css-grid-layout/grid-columns-rows-get-set-multiple.html:
        * fast/css-grid-layout/grid-columns-rows-get-set.html:
        * fast/css-grid-layout/grid-item-column-row-get-set.html:
        * fast/css/:
        * platform/mac/fast/canvas/canvas-draw-xbm-image.html:
        * platform/qt/fast/canvas/toDataURL-jpeg-alpha.html:
        * platform/qt/fast/canvas/toDataURL-jpeg-primarycolors.html:
        * platform/qt/fast/canvas/toDataURL-jpeg-quality-basic.html:
        * platform/qt/fast/canvas/toDataURL-jpeg-quality-notnumber.html:
        * platform/qt/fast/canvas/toDataURL-jpeg-quality-outsiderange.html:

2012-06-18  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed gardening, skip failing tests.

        * platform/qt-4.8/Skipped:
        * platform/qt-5.0/Skipped:
        * platform/qt/Skipped:

2012-06-18  Ryosuke Niwa  <rniwa@webkit.org>

        Use testRunner instead of layoutTestController in fast/animation, autoresize, backgrounds, block, body-propagation, borders, and box-* tests
        https://bugs.webkit.org/show_bug.cgi?id=89422

        Reviewed by Kent Tamura.

        * fast/animation/request-animation-frame-detach-element.html:
        * fast/animation/request-animation-frame-detach-element2.html:
        * fast/animation/request-animation-frame-disabled.html:
        * fast/animation/request-animation-frame-during-modal.html:
        * fast/animation/request-animation-frame-iframe.html:
        * fast/animation/script-tests/request-animation-frame-cancel.js:
        * fast/animation/script-tests/request-animation-frame-cancel2.js:
        * fast/animation/script-tests/request-animation-frame-disabled.js:
        * fast/animation/script-tests/request-animation-frame-timestamps-advance.js:
        * fast/animation/script-tests/request-animation-frame-timestamps.js:
        * fast/animation/script-tests/request-animation-frame-within-callback.js:
        * fast/animation/script-tests/request-animation-frame.js:
        * fast/autoresize/autoresize-with-iframe.html:
        * fast/autoresize/basic.html:
        * fast/autoresize/turn-off-autoresize.html:
        * fast/backgrounds/animated-gif-as-background.html:
        * fast/backgrounds/animated-svg-as-mask.html:
        * fast/backgrounds/background-fast-path-simple-color.html:
        * fast/backgrounds/background-fill-zero-area-crash.html:
        * fast/backgrounds/background-repeat-computed-style.html:
        * fast/backgrounds/multiple-backgrounds-assert.html:
        * fast/backgrounds/root-background-propagation.html:
        * fast/backgrounds/root-background-propagation2.html:
        * fast/backgrounds/size/contain-and-cover-zoomed.html:
        * fast/backgrounds/solid-color-context-restore.html:
        * fast/block/:
        * fast/borders/border-image-reset-by-border-shorthand.html:
        * fast/borders/border-image-slice-omission.html:
        * fast/borders/border-mixed-alpha.html:
        * fast/borders/border-radius-complex-inner.html:
        * fast/borders/border-radius-parsing.html:
        * fast/borders/negative-border-width.html:
        * fast/borders/outline-alpha-block.html:
        * fast/borders/outline-alpha-inline.html:
        * fast/box-shadow/box-shadow-clipped-slices.html:
        * fast/box-shadow/box-shadow-currentcolor.html:
        * fast/box-shadow/no-blur-multiple-offsets.html:
        * fast/box-shadow/resources/box-shadow-overflow-scroll.js:
        * fast/box-shadow/spread-multiple-inset.html:
        * fast/box-shadow/spread-multiple-normal.html:

2012-06-18  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening, updating baselines after rollouts in r120627.

        * platform/gtk/fast/hidpi/clip-text-in-hidpi-expected.txt:
        * platform/gtk/fast/hidpi/image-set-background-dynamic-expected.txt:
        * platform/gtk/fast/hidpi/image-set-border-image-dynamic-expected.txt:
        * platform/gtk/fast/hidpi/image-set-in-content-dynamic-expected.txt:

2012-06-18  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed gardening, update expected files.

        * platform/qt/Skipped: Skip a new failing test to paint the bot green.
        * platform/qt/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Updated after r120609.
        * platform/qt/fast/multicol/progression-reverse-expected.png: Added after r120609.
        * platform/qt/fast/multicol/progression-reverse-expected.txt: Added after r120609.
        * platform/qt/svg/css/getComputedStyle-basic-expected.txt: Updated after r120609.

2012-06-18  Mark Lam  <mark.lam@apple.com>

        Ensure that error.stack and window.onerror always have the appropriate
        line numbers of the exception being thrown.
        https://bugs.webkit.org/show_bug.cgi?id=89410

        Reviewed by Geoffrey Garen.

        * fast/js/exception-line-number-expected.txt: Added.
        * fast/js/exception-line-number.html: Added.
        * fast/js/script-tests/exception-line-number.js: Added.
        (foo):
        (window.onerror):

2012-06-18  Kinuko Yasuda  <kinuko@chromium.org>

        Unreviewed test fix (one more) for r120667: skip '.svn' directory from the test results.

        * fast/forms/file/input-file-entries.html:

2012-06-18  Mike Lawther  <mikelawther@chromium.org>

       Unreviewed gardening. Add missing expectation file.
               
        * fast/text/title-crash-expected.txt: Added.
        
2012-06-18  Kinuko Yasuda  <kinuko@chromium.org>

        Unreviewed test fix for r120667: skip '.svn' directory from the test results.

        * fast/forms/file/input-file-entries.html:

2012-06-18  Gregg Tavares  <gman@google.com>

        Expose WEBGL_depth_texture extension to WebGL
        https://bugs.webkit.org/show_bug.cgi?id=87029

        Reviewed by Kenneth Russell.

        * fast/canvas/webgl/resources/webgl-test-utils.js:
        (WebGLTestUtils):
        * fast/canvas/webgl/webgl-depth-texture-expected.txt: Added.
        * fast/canvas/webgl/webgl-depth-texture.html: Added.

2012-06-12  Kinuko Yasuda  <kinuko@chromium.org>

        Support File/DirectoryEntry access for <input type=file> if FileSystem API is enabled
        https://bugs.webkit.org/show_bug.cgi?id=88293

        Reviewed by Tony Chang.

        * fast/forms/file/input-file-entries-expected.txt: Added.
        * fast/forms/file/input-file-entries.html: Added.
        * fast/forms/resources/dir1/UTF8-2.txt: Added.
        * fast/forms/resources/dir1/UTF8.txt: Added.
        * fast/forms/resources/dir2/green.jpg: Added.
        * platform/efl/Skipped:
        * platform/efl/TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/mac/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:
        * platform/wincairo/Skipped:
        * platform/wk2/Skipped:

2012-06-18  Shinya Kawanaka  <shinyak@chromium.org>

        [Crash][Editing] VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries() crashes in some Shadow DOM case.
        https://bugs.webkit.org/show_bug.cgi?id=88500

        Reviewed by Ryosuke Niwa.

        * editing/shadow/breaking-editing-boundaries-expected.txt: Added.
        * editing/shadow/breaking-editing-boundaries.html: Added.

2012-06-18  Hajime Morrita  <morrita@chromium.org>

        Unreviewed test marking. Marked border-radius-clip-002.htm as a failure.

        * platform/chromium/TestExpectations:

2012-06-18  Mike Lawther  <mikelawther@chromium.org>

        Crash when setting title dynamically
        https://bugs.webkit.org/show_bug.cgi?id=88083

        Reviewed by Dan Bernstein.

        * fast/text/title-crash.html: Added.

2012-06-18  Adrienne Walker  <enne@google.com>

        RenderLayerBacking sometimes doesn't attach scrollbars to graphics layer tree
        https://bugs.webkit.org/show_bug.cgi?id=89402

        Reviewed by James Robinson.

        Add a test where an image load creates overflow.

        * compositing/overflow/image-load-overflow-scrollbars-expected.png: Added.
        * compositing/overflow/image-load-overflow-scrollbars-expected.txt: Added.
        * compositing/overflow/image-load-overflow-scrollbars.html: Added.

2012-06-18  Ami Fischman  <fischman@chromium.org>

        Make serve-video.php serve 206 responses
        https://bugs.webkit.org/show_bug.cgi?id=89252

        Reviewed by Adam Barth.

        * http/tests/media/resources/serve-video.php:

2012-06-18  Hajime Morrita  <morrita@chromium.org>

        Unreviewed test marking. Marked border-radius-clip-002.htm as a failure.

        * platform/chromium/TestExpectations:

2012-06-18  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] media/video-seek-past-end-playing.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=89301

        Reviewed by Philippe Normand.

        Unskip media/video-seek-past-end-playing.html now that the
        precision problem in MediaPlayerPrivateGStreamer is fixed.

        * platform/efl/TestExpectations:

2012-06-18  Andrew Scherkus  <scherkus@chromium.org>

        [Chromium] Unreviewed. Rebaseline media layout tests due to updated controls.

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

        * platform/chromium-linux-x86/media/video-empty-source-expected.txt: Removed.
        * platform/chromium-linux/fast/layers/video-layer-expected.png:
        * platform/chromium-linux/fullscreen/full-screen-stacking-context-expected.png:
        * platform/chromium-linux/http/tests/media/video-buffered-range-contains-currentTime-expected.png:
        * platform/chromium-linux/media/audio-controls-rendering-expected.png:
        * platform/chromium-linux/media/audio-repaint-expected.png:
        * platform/chromium-linux/media/controls-after-reload-expected.png:
        * platform/chromium-linux/media/controls-layout-direction-expected.png:
        * platform/chromium-linux/media/controls-strict-expected.png:
        * platform/chromium-linux/media/controls-styling-expected.png:
        * platform/chromium-linux/media/controls-without-preload-expected.png:
        * platform/chromium-linux/media/media-controls-clone-expected.png:
        * platform/chromium-linux/media/media-document-audio-repaint-expected.png:
        * platform/chromium-linux/media/video-controls-rendering-expected.png:
        * platform/chromium-linux/media/video-display-toggle-expected.png:
        * platform/chromium-linux/media/video-empty-source-expected.png:
        * platform/chromium-linux/media/video-empty-source-expected.txt: Removed.
        * platform/chromium-linux/media/video-no-audio-expected.png:
        * platform/chromium-linux/media/video-playing-and-pause-expected.png:
        * platform/chromium-linux/media/video-zoom-controls-expected.png:
        * platform/chromium-mac-leopard/fast/layers/video-layer-expected.png:
        * platform/chromium-mac-leopard/http/tests/media/video-buffered-range-contains-currentTime-expected.png:
        * platform/chromium-mac-leopard/media/audio-controls-rendering-expected.png:
        * platform/chromium-mac-leopard/media/audio-repaint-expected.png:
        * platform/chromium-mac-leopard/media/controls-after-reload-expected.png:
        * platform/chromium-mac-leopard/media/controls-strict-expected.png:
        * platform/chromium-mac-leopard/media/controls-styling-expected.png:
        * platform/chromium-mac-leopard/media/controls-without-preload-expected.png:
        * platform/chromium-mac-leopard/media/media-document-audio-repaint-expected.png:
        * platform/chromium-mac-leopard/media/video-controls-rendering-expected.png:
        * platform/chromium-mac-leopard/media/video-display-toggle-expected.png:
        * platform/chromium-mac-leopard/media/video-empty-source-expected.png:
        * platform/chromium-mac-leopard/media/video-empty-source-expected.txt: Removed.
        * platform/chromium-mac-leopard/media/video-no-audio-expected.png:
        * platform/chromium-mac-leopard/media/video-playing-and-pause-expected.png:
        * platform/chromium-mac-snowleopard/fast/layers/video-layer-expected.png:
        * platform/chromium-mac-snowleopard/fullscreen/full-screen-stacking-context-expected.png:
        * platform/chromium-mac-snowleopard/http/tests/media/video-buffered-range-contains-currentTime-expected.png:
        * platform/chromium-mac-snowleopard/media/audio-controls-rendering-expected.png:
        * platform/chromium-mac-snowleopard/media/audio-repaint-expected.png:
        * platform/chromium-mac-snowleopard/media/controls-after-reload-expected.png:
        * platform/chromium-mac-snowleopard/media/controls-layout-direction-expected.png:
        * platform/chromium-mac-snowleopard/media/controls-strict-expected.png:
        * platform/chromium-mac-snowleopard/media/controls-styling-expected.png:
        * platform/chromium-mac-snowleopard/media/controls-without-preload-expected.png:
        * platform/chromium-mac-snowleopard/media/media-controls-clone-expected.png:
        * platform/chromium-mac-snowleopard/media/media-document-audio-repaint-expected.png:
        * platform/chromium-mac-snowleopard/media/video-controls-rendering-expected.png:
        * platform/chromium-mac-snowleopard/media/video-display-toggle-expected.png:
        * platform/chromium-mac-snowleopard/media/video-empty-source-expected.png:
        * platform/chromium-mac-snowleopard/media/video-empty-source-expected.txt: Removed.
        * platform/chromium-mac-snowleopard/media/video-no-audio-expected.png:
        * platform/chromium-mac-snowleopard/media/video-playing-and-pause-expected.png:
        * platform/chromium-mac/fast/layers/video-layer-expected.png:
        * platform/chromium-mac/fast/layers/video-layer-expected.txt:
        * platform/chromium-mac/fullscreen/full-screen-stacking-context-expected.png:
        * platform/chromium-mac/http/tests/media/video-buffered-range-contains-currentTime-expected.png:
        * platform/chromium-mac/media/audio-controls-rendering-expected.png:
        * platform/chromium-mac/media/audio-controls-rendering-expected.txt:
        * platform/chromium-mac/media/audio-repaint-expected.png:
        * platform/chromium-mac/media/audio-repaint-expected.txt:
        * platform/chromium-mac/media/controls-after-reload-expected.png:
        * platform/chromium-mac/media/controls-after-reload-expected.txt:
        * platform/chromium-mac/media/controls-layout-direction-expected.png:
        * platform/chromium-mac/media/controls-strict-expected.png:
        * platform/chromium-mac/media/controls-strict-expected.txt:
        * platform/chromium-mac/media/controls-styling-expected.png:
        * platform/chromium-mac/media/controls-styling-expected.txt:
        * platform/chromium-mac/media/controls-without-preload-expected.png:
        * platform/chromium-mac/media/controls-without-preload-expected.txt:
        * platform/chromium-mac/media/media-controls-clone-expected.png:
        * platform/chromium-mac/media/media-controls-clone-expected.txt:
        * platform/chromium-mac/media/media-document-audio-repaint-expected.png:
        * platform/chromium-mac/media/media-document-audio-repaint-expected.txt:
        * platform/chromium-mac/media/video-controls-rendering-expected.png:
        * platform/chromium-mac/media/video-controls-rendering-expected.txt:
        * platform/chromium-mac/media/video-display-toggle-expected.png:
        * platform/chromium-mac/media/video-display-toggle-expected.txt:
        * platform/chromium-mac/media/video-empty-source-expected.png:
        * platform/chromium-mac/media/video-empty-source-expected.txt:
        * platform/chromium-mac/media/video-no-audio-expected.png:
        * platform/chromium-mac/media/video-no-audio-expected.txt:
        * platform/chromium-mac/media/video-playing-and-pause-expected.png:
        * platform/chromium-mac/media/video-playing-and-pause-expected.txt:
        * platform/chromium-mac/media/video-zoom-controls-expected.png:
        * platform/chromium-mac/media/video-zoom-controls-expected.txt:
        * platform/chromium-win-vista/media/video-empty-source-expected.txt: Removed.
        * platform/chromium-win-xp/media/video-empty-source-expected.txt: Removed.
        * platform/chromium-win/fast/layers/video-layer-expected.png:
        * platform/chromium-win/fast/layers/video-layer-expected.txt:
        * platform/chromium-win/fullscreen/full-screen-stacking-context-expected.png:
        * platform/chromium-win/http/tests/media/video-buffered-range-contains-currentTime-expected.png:
        * platform/chromium-win/media/audio-controls-rendering-expected.png:
        * platform/chromium-win/media/audio-controls-rendering-expected.txt:
        * platform/chromium-win/media/audio-repaint-expected.png:
        * platform/chromium-win/media/audio-repaint-expected.txt:
        * platform/chromium-win/media/controls-after-reload-expected.png:
        * platform/chromium-win/media/controls-after-reload-expected.txt:
        * platform/chromium-win/media/controls-layout-direction-expected.png:
        * platform/chromium-win/media/controls-strict-expected.png:
        * platform/chromium-win/media/controls-strict-expected.txt:
        * platform/chromium-win/media/controls-styling-expected.png:
        * platform/chromium-win/media/controls-styling-expected.txt:
        * platform/chromium-win/media/controls-without-preload-expected.png:
        * platform/chromium-win/media/controls-without-preload-expected.txt:
        * platform/chromium-win/media/media-controls-clone-expected.png:
        * platform/chromium-win/media/media-controls-clone-expected.txt:
        * platform/chromium-win/media/media-document-audio-repaint-expected.png:
        * platform/chromium-win/media/media-document-audio-repaint-expected.txt:
        * platform/chromium-win/media/video-controls-rendering-expected.png:
        * platform/chromium-win/media/video-controls-rendering-expected.txt:
        * platform/chromium-win/media/video-display-toggle-expected.png:
        * platform/chromium-win/media/video-display-toggle-expected.txt:
        * platform/chromium-win/media/video-empty-source-expected.png:
        * platform/chromium-win/media/video-empty-source-expected.txt:
        * platform/chromium-win/media/video-no-audio-expected.png:
        * platform/chromium-win/media/video-no-audio-expected.txt:
        * platform/chromium-win/media/video-playing-and-pause-expected.png:
        * platform/chromium-win/media/video-playing-and-pause-expected.txt:
        * platform/chromium-win/media/video-zoom-controls-expected.png:
        * platform/chromium-win/media/video-zoom-controls-expected.txt:
        * platform/chromium/TestExpectations:
        * platform/win-xp/fast/layers/video-layer-expected.txt: Renamed from LayoutTests/platform/win/fast/layers/video-layer-expected.txt.
        * platform/win-xp/media/audio-controls-rendering-expected.txt: Renamed from LayoutTests/platform/win/media/audio-controls-rendering-expected.txt.
        * platform/win-xp/media/audio-repaint-expected.txt: Renamed from LayoutTests/platform/win/media/audio-repaint-expected.txt.
        * platform/win-xp/media/controls-after-reload-expected.txt: Renamed from LayoutTests/platform/win/media/controls-after-reload-expected.txt.
        * platform/win-xp/media/controls-strict-expected.txt: Renamed from LayoutTests/platform/win/media/controls-strict-expected.txt.
        * platform/win-xp/media/controls-styling-expected.txt: Renamed from LayoutTests/platform/win/media/controls-styling-expected.txt.
        * platform/win-xp/media/controls-without-preload-expected.txt: Renamed from LayoutTests/platform/win/media/controls-without-preload-expected.txt.
        * platform/win-xp/media/media-controls-clone-expected.txt: Renamed from LayoutTests/platform/win/media/media-controls-clone-expected.txt.
        * platform/win-xp/media/media-document-audio-repaint-expected.txt: Renamed from LayoutTests/platform/win/media/media-document-audio-repaint-expected.txt.
        * platform/win-xp/media/video-controls-rendering-expected.txt: Renamed from LayoutTests/platform/win/media/video-controls-rendering-expected.txt.
        * platform/win-xp/media/video-display-toggle-expected.txt: Renamed from LayoutTests/platform/win/media/video-display-toggle-expected.txt.
        * platform/win-xp/media/video-empty-source-expected.txt: Renamed from LayoutTests/platform/win/media/video-empty-source-expected.txt.
        * platform/win-xp/media/video-no-audio-expected.txt: Renamed from LayoutTests/platform/win/media/video-no-audio-expected.txt.
        * platform/win-xp/media/video-playing-and-pause-expected.txt: Renamed from LayoutTests/platform/win/media/video-playing-and-pause-expected.txt.
        * platform/win-xp/media/video-zoom-controls-expected.png: Renamed from LayoutTests/platform/win/media/video-zoom-controls-expected.png.
        * platform/win-xp/media/video-zoom-controls-expected.txt: Renamed from LayoutTests/platform/win/media/video-zoom-controls-expected.txt.

2012-06-18  Andrew Wilson  <atwilson@chromium.org>

        Unreviewed chromium expectations update to mark tests as timing out due to r120627.

        * platform/chromium/TestExpectations:

2012-06-18  Andrew Wilson  <atwilson@chromium.org>

        Unreviewed chromium expectations.

        * platform/chromium-mac/compositing/fixed-position-scroll-offset-history-restore-expected.png: Added.
        * platform/chromium-win/compositing/fixed-position-scroll-offset-history-restore-expected.png: Renamed from LayoutTests/platform/chromium-linux/compositing/fixed-position-scroll-offset-history-restore-expected.png.

2012-06-18  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r120593.
        http://trac.webkit.org/changeset/120593
        https://bugs.webkit.org/show_bug.cgi?id=89404

        Caused failures in fast/forms/file/input-file-entries.html
        (Requested by atwilson on #webkit).

        * fast/forms/file/input-file-entries-expected.txt: Removed.
        * fast/forms/file/input-file-entries.html: Removed.
        * fast/forms/resources/dir1/UTF8-2.txt: Removed.
        * fast/forms/resources/dir1/UTF8.txt: Removed.
        * fast/forms/resources/dir2/green.jpg: Removed.
        * platform/efl/Skipped:
        * platform/efl/TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/mac/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:
        * platform/wincairo/Skipped:
        * platform/wk2/Skipped:

2012-06-18  Enrica Casucci  <enrica@apple.com>

        Skipping dictation tests on WK2.

        Unreviewed.

        * platform/mac-wk2/Skipped:

2012-06-18  David Barr  <davidbarr@chromium.org>

        Add from-image to css3-images image-resolution
        https://bugs.webkit.org/show_bug.cgi?id=85451

        Reviewed by Tony Chang.

        * fast/css/image-resolution/image-resolution-expected.txt:
        * fast/css/image-resolution/image-resolution.html:

2012-06-18  Igor Oliveira  <igor.o@sisa.samsung.com>

        Unreviewed, rolling out r120119.
        http://trac.webkit.org/changeset/120119

        Multiple regressions on ClusterFuzz

        * animations/first-letter-animation-expected.txt: Removed.
        * animations/first-letter-animation.html: Removed.
        * animations/first-letter-play-state-expected.txt: Removed.
        * animations/first-letter-play-state.html: Removed.
        * platform/chromium/TestExpectations:
        * platform/efl/TestExpectations:
        * transitions/first-letter-color-transition-expected.txt: Removed.
        * transitions/first-letter-color-transition.html: Removed.
        * transitions/first-letter-transition-expected.txt: Removed.
        * transitions/first-letter-transition.html: Removed.

2012-06-18  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(r118414): some pages on concursolutions.com doesn't show up
        https://bugs.webkit.org/show_bug.cgi?id=89399

        Reviewed by Adam Barth.

        Add a regression test.

        * fast/html/adjacent-html-context-element-expected.txt: Added.
        * fast/html/adjacent-html-context-element.html: Added.

2012-06-18  Andrew Wilson  <atwilson@chromium.org>

        Unreviewed expectations update for chromium after r120602.

        * platform/chromium-mac-snowleopard/ietestcenter/css3/bordersbackgrounds/border-radius-clip-002-expected.png: Added.

2012-06-18  Adam Barth  <abarth@webkit.org>

        Update baselines after http://trac.webkit.org/changeset/120609.

        * platform/chromium-linux-x86/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-linux/fast/multicol/progression-reverse-expected.png: Added.
        * platform/chromium-linux/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-mac-leopard/fast/css/getComputedStyle: Removed.
        * platform/chromium-mac-leopard/fast/css/getComputedStyle/computed-style-expected.txt: Removed.
        * platform/chromium-mac-leopard/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-mac-snowleopard/fast/multicol/progression-reverse-expected.png: Added.
        * platform/chromium-mac-snowleopard/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-mac/fast/css/getComputedStyle/computed-style-expected.txt: Removed.
        * platform/chromium-mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/chromium-mac/fast/multicol/progression-reverse-expected.png: Added.
        * platform/chromium-mac/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-win-vista/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-win-xp/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/chromium-win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/chromium-win/fast/multicol/progression-reverse-expected.png: Added.
        * platform/chromium-win/svg/css/getComputedStyle-basic-expected.txt:

2012-06-18  Enrica Casucci  <enrica@apple.com>

        Updating test results to include flakey cookies tests.

        Unreviewed.

        * platform/mac/TestExpectations:

2012-06-18  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r120541, r120547, and r120548.
        http://trac.webkit.org/changeset/120541
        http://trac.webkit.org/changeset/120547
        http://trac.webkit.org/changeset/120548
        https://bugs.webkit.org/show_bug.cgi?id=89383

        This approach doesn't work for WebKit2 (Requested by abarth on
        #webkit).

        * compositing/tiled-layers-hidpi.html:
        * fast/canvas/2d.backingStorePixelRatio.html:
        * fast/canvas/2d.imageDataHD.html:
        * fast/hidpi/broken-image-icon-hidpi.html:
        * fast/hidpi/broken-image-with-size-hidpi.html:
        * fast/hidpi/clip-text-in-hidpi.html:
        * fast/hidpi/focus-rings.html:
        * fast/hidpi/image-set-as-background.html:
        * fast/hidpi/image-set-background-dynamic.html:
        * fast/hidpi/image-set-background-repeat-without-size.html:
        * fast/hidpi/image-set-background-repeat.html:
        * fast/hidpi/image-set-border-image-comparison.html:
        * fast/hidpi/image-set-border-image-dynamic.html:
        * fast/hidpi/image-set-border-image-simple.html:
        * fast/hidpi/image-set-in-content-dynamic.html:
        * fast/hidpi/image-set-out-of-order.html:
        * fast/hidpi/image-set-simple.html:
        * fast/hidpi/image-set-without-specified-width.html:
        * fast/hidpi/resize-corner-hidpi.html:
        * fast/hidpi/video-controls-in-hidpi.html:
        * platform/mac-wk2/plugins/contents-scale-factor.html:
        * svg/as-image/image-respects-deviceScaleFactor.html:

2012-06-18  Adam Barth  <abarth@webkit.org>

        Fix the expected result for this test.  This got landed with the wrong expected.txt file.

        * http/tests/security/contentSecurityPolicy/source-list-parsing-malformed-meta-expected.txt:

2012-06-18  Dan Bernstein  <mitz@apple.com>

        Ideographic comma and full-stops are mishandled in linebreak
        https://bugs.webkit.org/show_bug.cgi?id=87041

        Reviewed by Alexey Proskuryakov.

        * fast/text/line-breaks-after-ideographic-comma-or-full-stop-2-expected.txt: Added.
        * fast/text/line-breaks-after-ideographic-comma-or-full-stop-2.html: Added.

2012-06-18  Mike West  <mkwst@chromium.org>

        Crash in CSPSource::parseSource
        https://bugs.webkit.org/show_bug.cgi?id=89353

        Reviewed by Adam Barth.

        * http/tests/security/contentSecurityPolicy/source-list-parsing-malformed-meta.html: Added.

2012-06-18  Robert Hogan  <robert@webkit.org>

        CSS 2.1 failure: table-height-algorithm-012 fails
        https://bugs.webkit.org/show_bug.cgi?id=85652

        Reviewed by Julien Chaffraix.

        * css2.1/20110323/table-height-algorithm-012-expected.html: Added.
        * css2.1/20110323/table-height-algorithm-012.htm: Added.
        * fast/css/vertical-align-baseline-rowspan-001-expected.html: Added.
        * fast/css/vertical-align-baseline-rowspan-001.htm: Added.
        * fast/css/vertical-align-baseline-rowspan-002-expected.html: Added.
        * fast/css/vertical-align-baseline-rowspan-002.htm: Added.
        * fast/css/vertical-align-baseline-rowspan-003-expected.html: Added.
        * fast/css/vertical-align-baseline-rowspan-003.htm: Added.
            These are a few variations on table-height-algorithm-012.htm
        * fast/css/vertical-align-baseline-rowspan-004-expected.html: Added.
        * fast/css/vertical-align-baseline-rowspan-004.htm: Added.
        * fast/css/vertical-align-baseline-rowspan-005-expected.html: Added.
        * fast/css/vertical-align-baseline-rowspan-005.htm: Added.
        * fast/css/vertical-align-baseline-rowspan-006-expected.html: Added.
        * fast/css/vertical-align-baseline-rowspan-006.htm: Added.
            These three test the calculation of the baseline RenderTableSection::calcRowLogicalHeight,
            where we now always use the first row in the span. Without this the 'Filler Text' in the middle
            cell aligns beyond the top of the table.
        * fast/css/vertical-align-baseline-rowspan-007-expected.html: Added.
        * fast/css/vertical-align-baseline-rowspan-007.htm: Added.
        * fast/css/vertical-align-baseline-rowspan-008-expected.html: Added.
        * fast/css/vertical-align-baseline-rowspan-008.htm: Added.
        * fast/css/vertical-align-baseline-rowspan-009-expected.html: Added.
        * fast/css/vertical-align-baseline-rowspan-009.htm: Added.
            These make sure the alignment used in the first row of the span is correct when things like
            the height of the cell and the height of the span are specified.


2012-06-18  Hayato Ito  <hayato@chromium.org>

        Event dispatcher should use InsertionPoint::hasDistribution instead of InsertinPoint::isActive in re-targeting.
        https://bugs.webkit.org/show_bug.cgi?id=89180

        Reviewed by Dimitri Glazkov.

        * fast/dom/shadow/shadow-dom-event-dispatching-expected.txt:
        * fast/dom/shadow/shadow-dom-event-dispatching.html:

2012-06-18  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening, updating baselines after r120596 and r120609.

        * platform/gtk/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/gtk/fast/hidpi/video-controls-in-hidpi-expected.txt:
        * platform/gtk/fast/layers/video-layer-expected.txt:
        * platform/gtk/media/audio-controls-rendering-expected.txt:
        * platform/gtk/media/audio-repaint-expected.txt:
        * platform/gtk/media/controls-strict-expected.txt:
        * platform/gtk/media/controls-styling-expected.txt:
        * platform/gtk/media/controls-without-preload-expected.txt:
        * platform/gtk/media/media-controls-clone-expected.txt:
        * platform/gtk/media/media-document-audio-repaint-expected.txt:
        * platform/gtk/media/video-controls-rendering-expected.txt:
        * platform/gtk/media/video-empty-source-expected.txt:
        * platform/gtk/media/video-no-audio-expected.txt:
        * platform/gtk/media/video-volume-slider-expected.txt:
        * platform/gtk/media/video-zoom-controls-expected.txt:
        * platform/gtk/svg/css/getComputedStyle-basic-expected.txt:

2012-06-18  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed gardening, skip one more failing test to paint.

        * platform/qt/Skipped:

2012-06-18  Dan Bernstein  <mitz@apple.com>

        Column progression direction cannot be set independently of writing direction
        https://bugs.webkit.org/show_bug.cgi?id=89315

        Reviewed by Darin Adler.

        * fast/css/getComputedStyle/computed-style-expected.txt:
        * fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * fast/multicol/progression-reverse-expected.png: Added.
        * fast/multicol/progression-reverse-expected.txt: Added.
        * fast/multicol/progression-reverse.html: Added.
        * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/mac/svg/css/getComputedStyle-basic-expected.txt:
        * svg/css/getComputedStyle-basic-expected.txt:

2012-06-18  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r120598.
        http://trac.webkit.org/changeset/120598
        https://bugs.webkit.org/show_bug.cgi?id=89359

        Patch causes crashes on EFL and GTK release builds (Requested
        by zdobersek on #webkit).

        * platform/efl/Skipped:
        * platform/gtk/TestExpectations:

2012-06-18  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Rebaseline media tests after r120596
        https://bugs.webkit.org/show_bug.cgi?id=89352

        Unreviewed EFL gardening. Rebaseline a few media tests
        due to r120596.

        * platform/efl/fast/layers/video-layer-expected.txt:
        * platform/efl/media/audio-controls-rendering-expected.txt:
        * platform/efl/media/audio-repaint-expected.png:
        * platform/efl/media/audio-repaint-expected.txt:
        * platform/efl/media/controls-after-reload-expected.txt:
        * platform/efl/media/controls-strict-expected.txt:
        * platform/efl/media/controls-styling-expected.txt:
        * platform/efl/media/controls-without-preload-expected.txt:
        * platform/efl/media/media-controls-clone-expected.png:
        * platform/efl/media/media-controls-clone-expected.txt:
        * platform/efl/media/media-document-audio-repaint-expected.txt:
        * platform/efl/media/video-controls-rendering-expected.png:
        * platform/efl/media/video-controls-rendering-expected.txt:
        * platform/efl/media/video-display-toggle-expected.txt:
        * platform/efl/media/video-empty-source-expected.txt:
        * platform/efl/media/video-zoom-controls-expected.png:
        * platform/efl/media/video-zoom-controls-expected.txt:

2012-06-18  Takashi Sakamoto  <tasak@google.com>

        webkit fails IETC border-radius-clip-002
        https://bugs.webkit.org/show_bug.cgi?id=83205

        Reviewed by Simon Fraser.

        * platform/chromium-linux/ietestcenter/css3/bordersbackgrounds/border-radius-clip-002-expected.png:
        * platform/chromium-mac/ietestcenter/css3/bordersbackgrounds/border-radius-clip-002-expected.png:
        * platform/chromium-mac-leopard/ietestcenter/css3/bordersbackgrounds/border-radius-clip-002-expected.png: Removed.
        * platform/chromium-mac-snowleopard/ietestcenter/css3/bordersbackgrounds/border-radius-clip-002-expected.png: Removed.
        * platform/chromium-win/ietestcenter/css3/bordersbackgrounds/border-radius-clip-002-expected.png: Removed.

2012-06-18  Iain Merrick  <husky@google.com>

        Allow updateFixedElementsAfterScrolling() to run during layout.
        https://bugs.webkit.org/show_bug.cgi?id=84965

        This is needed because HistoryController restores the previous scroll
        position during layout (because we don't want an ugly flash of wrongly-
        scrolled content).

        Reviewed by Simon Fraser.

        * compositing/fixed-position-scroll-offset-history-restore-expected.txt: Added.
        * compositing/fixed-position-scroll-offset-history-restore.html: Added.
        * compositing/resources/fixed-position-scroll-offset-history-restore-2.html: Added.
        * platform/chromium-linux/compositing/fixed-position-scroll-offset-history-restore-expected.png: Added.

2012-06-18  Alexander Pavlov  <apavlov@chromium.org>

        CSSOM wrappers are not built for rules in the per-document and page group user stylesheets
        https://bugs.webkit.org/show_bug.cgi?id=89221

        Reviewed by Antti Koivisto.

        * inspector/styles/inject-stylesheet-expected.txt: Added.
        * inspector/styles/inject-stylesheet.html: Added.
        * inspector/styles/resources/inject-stylesheet-iframe-data.html: Added.

2012-06-18  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed gardening, skip one more failing test. (Less test == less problem. :) )

        * platform/qt/Skipped:

2012-06-18  Dominik Röttsches  <dominik.rottsches@intel.com>

        [cairo] Fix LayoutTests/fast/canvas/patternfill-repeat.html
        https://bugs.webkit.org/show_bug.cgi?id=53085

        Reviewed by Martin Robinson.

        canvas/philip/tests/2d.pattern.paint.repeat* tests now passing.

        * platform/efl/Skipped:
        * platform/gtk/TestExpectations:

2012-06-18  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening, remove duplicates from the GTK WK2
        Skipped list that are already present in the generic WK2 Skipped
        list or in GTK's TestExpectations.

        * platform/gtk-wk2/Skipped:

2012-06-12  Kinuko Yasuda  <kinuko@chromium.org>

        Support File/DirectoryEntry access for <input type=file> if FileSystem API is enabled
        https://bugs.webkit.org/show_bug.cgi?id=88293

        Reviewed by Tony Chang.

        * fast/forms/file/input-file-entries-expected.txt: Added.
        * fast/forms/file/input-file-entries.html: Added.
        * fast/forms/resources/dir1/UTF8-2.txt: Added.
        * fast/forms/resources/dir1/UTF8.txt: Added.
        * fast/forms/resources/dir2/green.jpg: Added.
        * platform/efl/Skipped:
        * platform/efl/TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/mac/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:
        * platform/wincairo/Skipped:
        * platform/wk2/Skipped:

2012-06-18  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r120485 and r120582.
        http://trac.webkit.org/changeset/120485
        http://trac.webkit.org/changeset/120582
        https://bugs.webkit.org/show_bug.cgi?id=89345

        chromeos tree breakage (Requested by morrita on #webkit).

        * platform/chromium/TestExpectations:

2012-06-18  János Badics  <jbadics@inf.u-szeged.hu>

        [Qt] Gardening after r120311. It made inspector/extensions/extensions-panel.html flakey.
        https://bugs.webkit.org/show_bug.cgi?id=89333

        Reviewed by Csaba Osztrogonác.

        * platform/qt/Skipped:

2012-06-18  Kinuko Yasuda  <kinuko@chromium.org>

        fast/files/xhr-response-blob should use other file/blob type than javascript
        https://bugs.webkit.org/show_bug.cgi?id=89338

        Reviewed by Kentaro Hara.

        Changing the test to use the most basic text/plain type.
        Also removing platform-specific expectations.

        * fast/files/script-tests/xhr-response-blob.js: Updated.
        * fast/files/xhr-response-blob-expected.txt: Updated.
        * platform/chromium-linux/fast/files/xhr-response-blob-expected.txt: Removed.
        * platform/chromium-mac-snowleopard/fast/files/xhr-response-blob-expected.txt: Removed.
        * platform/chromium-mac/fast/files/xhr-response-blob-expected.txt: Removed.
        * platform/chromium/fast/files/xhr-response-blob-expected.txt: Removed.
        * platform/qt/fast/files/xhr-response-blob-expected.txt: Removed.

2012-06-18  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed gardening after r120574.

        * fast/files/xhr-response-blob-expected.txt:
        * platform/qt/fast/files/xhr-response-blob-expected.txt: Added.

2012-06-18  Taiju Tsuiki  <tzik@chromium.org>

        Fix syntax of FileReader::readAsDataURL result
        https://bugs.webkit.org/show_bug.cgi?id=89330

        When readAsDataURL generates data URL without media type, it used to omit semicolon before
        "base64" keyword.  But this semicolor is required in this case, according to RFC2397.

        Reviewed by Kent Tamura.

        * fast/files/read-blob-async-expected.txt:
        * fast/files/workers/worker-read-blob-async-expected.txt:
        * fast/files/workers/worker-read-blob-sync-expected.txt:
        * platform/chromium/fast/files/read-blob-async-expected.txt:
        * platform/chromium/fast/files/workers/worker-read-blob-async-expected.txt:
        * platform/chromium/fast/files/workers/worker-read-blob-sync-expected.txt:

2012-06-18  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] fast/files/xhr-response-blob.html is crashing
        https://bugs.webkit.org/show_bug.cgi?id=89334

        Reviewed by Kentaro Hara.

        Unskip fast/files/xhr-response-blob.html now that it
        no longer crashes.

        * platform/efl/TestExpectations:
        * platform/efl/fast/files/xhr-response-blob-expected.txt: Added.

2012-06-12  Hans Wennborg  <hans@chromium.org>

        [Chromium] fast/events/constructors/speech-recognition-event-constructor.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=88856

        Reviewed by Adam Barth.

        This fixes and re-enables the layout test that I forgot to update in r120053.

        * fast/events/constructors/speech-recognition-event-constructor-expected.txt:
        * fast/events/constructors/speech-recognition-event-constructor.html:
        * platform/chromium/TestExpectations:

2012-06-18  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] skip fast/files/xhr-response-blob.html
        https://bugs.webkit.org/show_bug.cgi?id=89335

        Unreviewed EFL gardening. Skip fast/files/xhr-response-blob.html
        because it is crashing.

        * platform/efl/TestExpectations:

2012-06-18  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Rebaseline needed after r117339
        https://bugs.webkit.org/show_bug.cgi?id=89328

        Unreviewed EFL gardening. Rebaseline a few tests after r117339.

        * platform/efl/TestExpectations:
        * platform/efl/editing/pasteboard/innerText-inline-table-expected.png: Added.
        * platform/efl/editing/pasteboard/innerText-inline-table-expected.txt: Added.
        * platform/efl/editing/selection/iframe-expected.png: Added.
        * platform/efl/editing/selection/iframe-expected.txt: Added.
        * platform/efl/editing/selection/inline-table-expected.png: Added.
        * platform/efl/editing/selection/inline-table-expected.txt: Added.
        * platform/efl/editing/selection/table-caret-3-expected.png: Added.
        * platform/efl/editing/selection/table-caret-3-expected.txt: Added.
        * platform/efl/tables/mozilla/bugs/bug2479-2-expected.png:
        * platform/efl/tables/mozilla/bugs/bug2479-2-expected.txt:

2012-06-18  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Rebaseline needed after r120477
        https://bugs.webkit.org/show_bug.cgi?id=89325

        Unreviewed EFL gardening. Rebaseline a few tests after r120477.

        * platform/efl/TestExpectations:
        * platform/efl/editing/deleting/delete-3800834-fix-expected.png: Added.
        * platform/efl/editing/deleting/delete-3800834-fix-expected.txt: Added.
        * platform/efl/fast/dynamic/011-expected.png:
        * platform/efl/fast/dynamic/011-expected.txt:
        * platform/efl/fast/forms/formmove3-expected.png:
        * platform/efl/fast/forms/formmove3-expected.txt:
        * platform/efl/fast/forms/preserveFormDuringResidualStyle-expected.png:
        * platform/efl/fast/forms/preserveFormDuringResidualStyle-expected.txt:
        * platform/efl/fast/invalid/001-expected.png:
        * platform/efl/fast/invalid/001-expected.txt:
        * platform/efl/fast/invalid/003-expected.png:
        * platform/efl/fast/invalid/003-expected.txt:
        * platform/efl/fast/invalid/004-expected.png:
        * platform/efl/fast/invalid/004-expected.txt:
        * platform/efl/fast/invalid/007-expected.png:
        * platform/efl/fast/invalid/007-expected.txt:
        * platform/efl/fast/invalid/019-expected.png:
        * platform/efl/fast/invalid/019-expected.txt:
        * platform/efl/fast/multicol/span/clone-anonymous-block-non-inline-child-crash-expected.txt: Added.
        * platform/efl/tables/mozilla/bugs/bug647-expected.png:
        * platform/efl/tables/mozilla/bugs/bug647-expected.txt:
        * platform/efl/tables/mozilla/other/wa_table_tr_align-expected.png:
        * platform/efl/tables/mozilla/other/wa_table_tr_align-expected.txt:

2012-06-15  Kinuko Yasuda  <kinuko@chromium.org>

        XHR_RESPONSE_BLOB is not enabled on some platforms
        https://bugs.webkit.org/show_bug.cgi?id=88859

        Reviewed by Adam Barth.

        Removing xhr.Blob related test from Skipped files.

        * platform/efl/Skipped:
        * platform/gtk/TestExpectations:
        * platform/mac/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:
        * platform/wincairo/Skipped:

2012-06-17  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Add EFL baseline for fast/parser/nested-fragment-parser-crash.html
        https://bugs.webkit.org/show_bug.cgi?id=89329

        Unreviewed EFL gardening. Use the same expectation for
        fast/parser/nested-fragment-parser-crash.html as mac.
        The test is passing since it does not crash.

        * platform/efl/TestExpectations:
        * platform/efl/fast/parser/nested-fragment-parser-crash-expected.txt: Added.

2012-06-17  Hajime Morrita  <morrita@chromium.org>

        Unreviewed, marking some tests as failures..

        * platform/chromium/TestExpectations:

2012-06-17  Julien Chaffraix  <jchaffraix@webkit.org>

        colspan in table-layout:fixed does not add up widths properly
        https://bugs.webkit.org/show_bug.cgi?id=20213

        Reviewed by Abhishek Arya.

        The bug has been fixed (likely by bug 14858) so landing the test case as fixed table layout with cell spanning several
        <col>'s with fixed widths is not properly covered.

        * fast/table/fixed-table-layout/fixed-layout-column-colspan-wrong-size-expected.txt: Added.
        * fast/table/fixed-table-layout/fixed-layout-column-colspan-wrong-size.html: Added.

2012-06-17  Philip Rogers  <pdr@google.com>

        Prevent crash in SVGDocumentExtensions::removeAllElementReferencesForTarget.
        https://bugs.webkit.org/show_bug.cgi?id=88144

        Reviewed by Abhishek Arya.

        * svg/text/textpath-reference-crash-expected.txt: Added.
        * svg/text/textpath-reference-crash.html: Added.

2012-06-17  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening, updating baselines after r120541.

        * platform/gtk/fast/hidpi/clip-text-in-hidpi-expected.txt:
        * platform/gtk/fast/hidpi/image-set-background-dynamic-expected.txt:
        * platform/gtk/fast/hidpi/image-set-border-image-dynamic-expected.txt:
        * platform/gtk/fast/hidpi/image-set-in-content-dynamic-expected.txt:

2012-06-17  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Skip media/video-seek-past-end-playing.html
        https://bugs.webkit.org/show_bug.cgi?id=89302

        Unreviewed EFL gardening. Skip flaky test.

        * platform/efl/TestExpectations:

2012-06-17  Adam Barth  <abarth@webkit.org>

        Update a few more tests to use internals.settings.setDeviceScaleFactor.

        * compositing/tiled-layers-hidpi.html:
        * fast/canvas/2d.backingStorePixelRatio.html:
        * fast/canvas/2d.imageDataHD.html:
        * platform/mac-wk2/plugins/contents-scale-factor.html:

2012-06-16  Adam Barth  <abarth@webkit.org>

        layoutTestController.setBackingScaleFactor is redundant with (and less awesome than) internals.settings.setDeviceScaleFactor
        https://bugs.webkit.org/show_bug.cgi?id=89274

        Reviewed by Levi Weintraub.

        We don't need both layoutTestController.setBackingScaleFactor and
        internals.settings.setDeviceScaleFactor because they do exactly the
        same thing.  This patch removes setBackingScaleFactor because it's
        async nature is annoying and implementing it requires a bunch of
        port-specific code.

        * fast/hidpi/broken-image-icon-hidpi.html:
        * fast/hidpi/broken-image-with-size-hidpi.html:
        * fast/hidpi/clip-text-in-hidpi.html:
        * fast/hidpi/focus-rings.html:
        * fast/hidpi/image-set-as-background.html:
        * fast/hidpi/image-set-background-dynamic.html:
        * fast/hidpi/image-set-background-repeat-without-size.html:
        * fast/hidpi/image-set-background-repeat.html:
        * fast/hidpi/image-set-border-image-comparison.html:
        * fast/hidpi/image-set-border-image-dynamic.html:
        * fast/hidpi/image-set-border-image-simple.html:
        * fast/hidpi/image-set-in-content-dynamic.html:
        * fast/hidpi/image-set-out-of-order.html:
        * fast/hidpi/image-set-simple.html:
        * fast/hidpi/image-set-without-specified-width.html:
        * fast/hidpi/resize-corner-hidpi.html:
        * fast/hidpi/video-controls-in-hidpi.html:
        * svg/as-image/image-respects-deviceScaleFactor.html:

2012-06-16  Mike West  <mkwst@chromium.org>

        Ignore paths in Content Security Policy sources rather than failing to parse them.
        https://bugs.webkit.org/show_bug.cgi?id=89281

        Reviewed by Adam Barth.

        * http/tests/security/contentSecurityPolicy/source-list-parsing-05-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/source-list-parsing-05.html: Added.
        * http/tests/security/contentSecurityPolicy/source-list-parsing-06-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/source-list-parsing-06.html: Added.

2012-06-16  Mike West  <mkwst@chromium.org>

        Fix test cases for `header`/`footer` AXRoleDescription
        https://bugs.webkit.org/show_bug.cgi?id=88911

        The relative URLs to js-test-pre.js and js-test-post.js were incorrect.

        Reviewed by Simon Fraser.

        * platform/mac/accessibility/footer.html:
        * platform/mac/accessibility/header.html:

2012-06-16  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Rebaseline fast/lists/001*.html tests after r120495
        https://bugs.webkit.org/show_bug.cgi?id=89283

        Unreviewed EFL gardening after r120495.

        * platform/efl/fast/lists/001-expected.png:
        * platform/efl/fast/lists/001-expected.txt:
        * platform/efl/fast/lists/001-vertical-expected.png:
        * platform/efl/fast/lists/001-vertical-expected.txt:

2012-06-16  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Rebaseline MathML tests after r120492
        https://bugs.webkit.org/show_bug.cgi?id=89282

        Unreviewed EFL gardening. Several MathML tests needed
        rebaselining after r120492.

        * platform/efl/mathml/presentation/attributes-expected.txt:
        * platform/efl/mathml/presentation/fenced-expected.txt:
        * platform/efl/mathml/presentation/fenced-mi-expected.txt:
        * platform/efl/mathml/presentation/fractions-expected.txt:
        * platform/efl/mathml/presentation/fractions-vertical-alignment-expected.txt:
        * platform/efl/mathml/presentation/mo-stretch-expected.txt:
        * platform/efl/mathml/presentation/mroot-pref-width-expected.txt:
        * platform/efl/mathml/presentation/roots-expected.txt:
        * platform/efl/mathml/presentation/row-alignment-expected.png:
        * platform/efl/mathml/presentation/row-alignment-expected.txt:
        * platform/efl/mathml/presentation/sub-expected.txt:
        * platform/efl/mathml/presentation/subsup-expected.txt:
        * platform/efl/mathml/presentation/sup-expected.txt:
        * platform/efl/mathml/presentation/tables-expected.txt:
        * platform/efl/mathml/presentation/tokenElements-expected.txt:
        * platform/efl/mathml/presentation/under-expected.png:
        * platform/efl/mathml/presentation/under-expected.txt:
        * platform/efl/mathml/presentation/underover-expected.png:
        * platform/efl/mathml/presentation/underover-expected.txt:
        * platform/efl/mathml/xHeight-expected.png:
        * platform/efl/mathml/xHeight-expected.txt:

2012-06-16  Adam Barth  <abarth@webkit.org>

        Remove a bunch of 32-bit specific results.  These results are the same
        on 64 bit.

        * platform/chromium-linux-x86/compositing/color-matching: Removed.
        * platform/chromium-linux-x86/compositing/color-matching/image-color-matching-expected.png: Removed.
        * platform/chromium-linux-x86/css3/filters/crash-hw-sw-switch-expected.png: Removed.
        * platform/chromium-linux-x86/css3/filters/custom: Removed.
        * platform/chromium-linux-x86/css3/filters/custom/custom-filter-shader-cache-expected.png: Removed.
        * platform/chromium-linux-x86/css3/filters/custom/effect-custom-combined-missing-expected.png: Removed.
        * platform/chromium-linux-x86/css3/filters/custom/effect-custom-expected.png: Removed.
        * platform/chromium-linux-x86/css3/filters/custom/missing-custom-filter-shader-expected.png: Removed.
        * platform/chromium-linux-x86/css3/filters/effect-blur-hw-expected.png: Removed.
        * platform/chromium-linux-x86/css3/filters/effect-brightness-expected.png: Removed.
        * platform/chromium-linux-x86/css3/filters/effect-brightness-hw-expected.png: Removed.
        * platform/chromium-linux-x86/css3/filters/effect-contrast-hw-expected.png: Removed.
        * platform/chromium-linux-x86/css3/filters/effect-drop-shadow-hw-expected.png: Removed.
        * platform/chromium-linux-x86/fast/images: Removed.
        * platform/chromium-linux-x86/fast/images/jpeg-with-color-profile-expected.png: Removed.
        * platform/chromium-linux-x86/fast/images/png-with-color-profile-expected.png: Removed.
        * platform/chromium-linux/compositing/color-matching/image-color-matching-expected.png:
        * platform/chromium-linux/css3/filters/crash-hw-sw-switch-expected.png:
        * platform/chromium-linux/css3/filters/custom/custom-filter-shader-cache-expected.png:
        * platform/chromium-linux/css3/filters/custom/effect-custom-combined-missing-expected.png:
        * platform/chromium-linux/css3/filters/custom/effect-custom-expected.png:
        * platform/chromium-linux/css3/filters/custom/missing-custom-filter-shader-expected.png:
        * platform/chromium-linux/css3/filters/effect-blur-hw-expected.png:
        * platform/chromium-linux/css3/filters/effect-brightness-expected.png:
        * platform/chromium-linux/css3/filters/effect-brightness-hw-expected.png:
        * platform/chromium-linux/css3/filters/effect-contrast-hw-expected.png:
        * platform/chromium-linux/css3/filters/effect-drop-shadow-hw-expected.png:
        * platform/chromium-linux/fast/images/jpeg-with-color-profile-expected.png: Added.
        * platform/chromium-linux/fast/images/png-with-color-profile-expected.png: Added.

2012-06-16  Adam Barth  <abarth@webkit.org>

        Update baselines after http://trac.webkit.org/changeset/120485

        * platform/chromium-linux-x86/http/tests/local: Removed.
        * platform/chromium-linux-x86/http/tests/local/file-url-sent-as-referer-expected.png: Removed.
        * platform/chromium-linux-x86/scrollbars: Removed.
        * platform/chromium-linux-x86/scrollbars/listbox-scrollbar-combinations-expected.png: Removed.
        * platform/chromium-linux-x86/scrollbars/overflow-scrollbar-combinations-expected.png: Removed.
        * platform/chromium-linux-x86/svg/as-border-image: Removed.
        * platform/chromium-linux-x86/svg/as-border-image/svg-as-border-image-expected.png: Removed.
        * platform/chromium-linux-x86/svg/custom/createImageElement-expected.png: Removed.
        * platform/chromium-linux-x86/svg/custom/createImageElement2-expected.png: Removed.
        * platform/chromium-linux-x86/svg/custom/focus-ring-expected.png: Removed.
        * platform/chromium-linux-x86/svg/custom/group-opacity-expected.png: Removed.
        * platform/chromium-linux-x86/svg/custom/image-parent-translation-expected.png: Removed.
        * platform/chromium-linux-x86/svg/custom/image-small-width-height-expected.png: Removed.
        * platform/chromium-linux-x86/svg/custom/js-update-image-and-display-expected.png: Removed.
        * platform/chromium-linux-x86/svg/custom/js-update-image-and-display2-expected.png: Removed.
        * platform/chromium-linux-x86/svg/custom/js-update-image-and-display3-expected.png: Removed.
        * platform/chromium-linux-x86/svg/custom/js-update-image-expected.png: Removed.
        * platform/chromium-linux-x86/svg/custom/text-image-opacity-expected.png: Removed.
        * platform/chromium-linux-x86/svg/custom/use-on-g-containing-foreignObject-and-image-expected.png: Removed.
        * platform/chromium-linux-x86/svg/dynamic-updates/SVGImageElement-dom-height-attr-expected.png: Removed.
        * platform/chromium-linux-x86/svg/filters/feImage-subregions-expected.png: Removed.
        * platform/chromium-linux-x86/svg/filters/feImage-subregions-preseveAspectRatio-none-expected.png: Removed.
        * platform/chromium-linux-x86/svg/filters/feImage-subregions-preseveAspectRatio-none-with-viewBox-expected.png: Removed.
        * platform/chromium-linux-x86/svg/filters/filter-source-position-expected.png: Removed.
        * platform/chromium-linux-x86/svg/repaint: Removed.
        * platform/chromium-linux-x86/svg/repaint/image-href-change-expected.png: Removed.
        * platform/chromium-linux-x86/svg/transforms/animated-path-inside-transformed-html-expected.png: Removed.
        * platform/chromium-linux-x86/svg/zoom/page/zoom-background-images-expected.png: Removed.
        * platform/chromium-linux-x86/svg/zoom/page/zoom-svg-through-object-with-absolute-size-2-expected.png: Removed.
        * platform/chromium-linux-x86/svg/zoom/page/zoom-svg-through-object-with-absolute-size-expected.png: Removed.
        * platform/chromium-linux-x86/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.png: Removed.
        * platform/chromium-linux/http/tests/local/file-url-sent-as-referer-expected.png:
        * platform/chromium-linux/scrollbars/listbox-scrollbar-combinations-expected.png:
        * platform/chromium-linux/scrollbars/overflow-scrollbar-combinations-expected.png:
        * platform/chromium-linux/svg/as-border-image/svg-as-border-image-expected.png:
        * platform/chromium-linux/svg/custom/createImageElement2-expected.png:
        * platform/chromium-linux/svg/custom/focus-ring-expected.png:
        * platform/chromium-linux/svg/custom/image-parent-translation-expected.png:
        * platform/chromium-linux/svg/custom/image-small-width-height-expected.png:
        * platform/chromium-linux/svg/custom/text-image-opacity-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGImageElement-dom-height-attr-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGImageElement-dom-preserveAspectRatio-attr-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGImageElement-dom-width-attr-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGImageElement-dom-x-attr-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGImageElement-dom-y-attr-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGImageElement-svgdom-height-prop-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGImageElement-svgdom-preserveAspectRatio-prop-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGImageElement-svgdom-width-prop-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGImageElement-svgdom-x-prop-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGImageElement-svgdom-y-prop-expected.png:
        * platform/chromium-linux/svg/transforms/animated-path-inside-transformed-html-expected.png:
        * platform/chromium-linux/svg/zoom/page/zoom-background-images-expected.png:
        * platform/chromium-linux/svg/zoom/page/zoom-svg-through-object-with-absolute-size-2-expected.png:
        * platform/chromium-linux/svg/zoom/page/zoom-svg-through-object-with-absolute-size-expected.png:
        * platform/chromium-linux/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.png:
        * platform/chromium-win-vista/http/tests/local: Removed.
        * platform/chromium-win-vista/svg/dynamic-updates: Added.
        * platform/chromium-win-vista/svg/dynamic-updates/SVGImageElement-dom-preserveAspectRatio-attr-expected.png: Added.
        * platform/chromium-win-vista/svg/dynamic-updates/SVGImageElement-dom-x-attr-expected.png: Added.
        * platform/chromium-win-vista/svg/dynamic-updates/SVGImageElement-dom-y-attr-expected.png: Added.
        * platform/chromium-win-vista/svg/dynamic-updates/SVGImageElement-svgdom-height-prop-expected.png: Added.
        * platform/chromium-win-vista/svg/dynamic-updates/SVGImageElement-svgdom-width-prop-expected.png: Added.
        * platform/chromium-win-xp/svg/dynamic-updates: Removed.
        * platform/chromium-win/http/tests/local/file-url-sent-as-referer-expected.png:
        * platform/chromium-win/scrollbars/listbox-scrollbar-combinations-expected.png:
        * platform/chromium-win/scrollbars/overflow-scrollbar-combinations-expected.png:
        * platform/chromium-win/svg/as-border-image/svg-as-border-image-expected.png:
        * platform/chromium-win/svg/custom/createImageElement-expected.png:
        * platform/chromium-win/svg/custom/createImageElement2-expected.png:
        * platform/chromium-win/svg/custom/focus-ring-expected.png:
        * platform/chromium-win/svg/custom/group-opacity-expected.png:
        * platform/chromium-win/svg/custom/image-parent-translation-expected.png:
        * platform/chromium-win/svg/custom/image-small-width-height-expected.png:
        * platform/chromium-win/svg/custom/js-update-image-and-display-expected.png:
        * platform/chromium-win/svg/custom/js-update-image-and-display2-expected.png:
        * platform/chromium-win/svg/custom/js-update-image-and-display3-expected.png:
        * platform/chromium-win/svg/custom/js-update-image-expected.png:
        * platform/chromium-win/svg/custom/text-image-opacity-expected.png:
        * platform/chromium-win/svg/custom/use-on-g-containing-foreignObject-and-image-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGImageElement-dom-height-attr-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGImageElement-dom-preserveAspectRatio-attr-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGImageElement-dom-width-attr-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGImageElement-dom-x-attr-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGImageElement-dom-y-attr-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGImageElement-svgdom-height-prop-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGImageElement-svgdom-preserveAspectRatio-prop-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGImageElement-svgdom-width-prop-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGImageElement-svgdom-x-prop-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGImageElement-svgdom-y-prop-expected.png:
        * platform/chromium-win/svg/filters/feImage-subregions-expected.png:
        * platform/chromium-win/svg/filters/feImage-subregions-preseveAspectRatio-none-expected.png:
        * platform/chromium-win/svg/filters/feImage-subregions-preseveAspectRatio-none-with-viewBox-expected.png:
        * platform/chromium-win/svg/filters/filter-source-position-expected.png:
        * platform/chromium-win/svg/repaint/image-href-change-expected.png:
        * platform/chromium-win/svg/transforms/animated-path-inside-transformed-html-expected.png:
        * platform/chromium-win/svg/zoom/page/zoom-background-images-expected.png:
        * platform/chromium-win/svg/zoom/page/zoom-svg-through-object-with-absolute-size-2-expected.png:
        * platform/chromium-win/svg/zoom/page/zoom-svg-through-object-with-absolute-size-expected.png:
        * platform/chromium-win/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.png:

2012-06-16  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening, updating baselines
        after r120492 and r120495.

        * platform/gtk/fast/lists/001-expected.txt:
        * platform/gtk/fast/lists/001-vertical-expected.txt:
        * platform/gtk/mathml/xHeight-expected.txt:

2012-06-16  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed weekend gardening, skip a new failing test.

        * platform/qt-5.0-wk2/Skipped:

2012-06-16  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed weekend gardening.

        * platform/qt-5.0-wk2/fast/forms/box-shadow-override-expected.png: Updated after after r120411.
        * platform/qt-5.0-wk2/fast/forms/box-shadow-override-expected.txt: Updated after after r120411.
        * platform/qt-5.0/fast/forms/box-shadow-override-expected.png: Updated after after r120411.
        * platform/qt-5.0/fast/forms/box-shadow-override-expected.txt: Updated after after r120411.
        * platform/qt/editing/pasteboard/paste-4039777-fix-expected.txt: Updated after r120495.
        * platform/qt/fast/lists/001-expected.png: Updated after r120495.
        * platform/qt/fast/lists/001-expected.txt: Updated after r120495.
        * platform/qt/fast/lists/001-vertical-expected.png: Updated after r120495.
        * platform/qt/fast/lists/001-vertical-expected.txt: Updated after r120495.

2012-06-15  Ryosuke Niwa  <rniwa@webkit.org>

        Use testRunner instead of layoutTestController in fast/workers/storage tests
        https://bugs.webkit.org/show_bug.cgi?id=89271

        Reviewed by Adam Barth.

        * fast/workers/storage/change-version-sync.html:
        * fast/workers/storage/interrupt-database-sync.html-disabled:
        * fast/workers/storage/interrupt-database.html:
        * fast/workers/storage/resources/database-worker.js:
        (onmessage):
        * fast/workers/storage/resources/multiple-transactions-sync.js:
        (checkCompletion):
        * fast/workers/storage/resources/test-inputs-common.js:
        (finishTest):
        * fast/workers/storage/use-same-database-in-page-and-workers.html:

2012-06-15  Ryosuke Niwa  <rniwa@webkit.org>

        Use testRunner instead of layoutTestController in transforms, transitions, traversal, userscripts, webarchive, webaudio, and webintents tests
        https://bugs.webkit.org/show_bug.cgi?id=89269

        Reviewed by Adam Barth.

        * transitions/:
        * traversal/:
        * userscripts/:
        * webarchive/:
        * webaudio/:
        * webintents/web-intents-delivery.html:
        * webintents/web-intents-failure.html:
        * webintents/web-intents-reload.html:
        * webintents/web-intents-reply.html:

2012-06-15  Ryosuke Niwa  <rniwa@webkit.org>

        Use testRunner instead of layoutTestController in the rest of sputnik tests
        https://bugs.webkit.org/show_bug.cgi?id=89262

        Reviewed by Antti Koivisto.

        * sputnik/Implementation_Diagnostics/:
        * sputnik/Regression/:
        * sputnik/Unicode/:

2012-06-15  Ryosuke Niwa  <rniwa@webkit.org>

        Test fix attempt after r120516.

        * fast/workers/storage/resources/database-worker-controller.js:
        (databaseWorker.onmessage):
        (runTest):

2012-06-16  Ryosuke Niwa  <rniwa@webkit.org>

        Use testRunner instead of layoutTestController in storage, tables, touchadjustments, and transforms tests
        https://bugs.webkit.org/show_bug.cgi?id=89263

        Reviewed by Antti Koivisto.

        * storage/domstorage/events/resources/eventTestHarness.js:
        (testStorages.allDone):
        * storage/domstorage/localstorage/delete-removal.html:
        * storage/domstorage/localstorage/enumerate-storage.html:
        * storage/domstorage/localstorage/enumerate-with-length-and-key.html:
        * storage/domstorage/localstorage/index-get-and-set.html:
        * storage/domstorage/localstorage/private-browsing-affects-storage.html:
        * storage/domstorage/localstorage/resources/window-open-second.html:
        * storage/domstorage/localstorage/simple-usage.html:
        * storage/domstorage/localstorage/storagetracker/storage-tracker-1-prepare.html:
        * storage/domstorage/localstorage/storagetracker/storage-tracker-2-create.html:
        * storage/domstorage/localstorage/storagetracker/storage-tracker-3-delete-all-expected.txt:
        * storage/domstorage/localstorage/storagetracker/storage-tracker-3-delete-all.html:
        * storage/domstorage/localstorage/storagetracker/storage-tracker-4-create.html:
        * storage/domstorage/localstorage/storagetracker/storage-tracker-5-delete-one-expected.txt:
        * storage/domstorage/localstorage/storagetracker/storage-tracker-5-delete-one.html:
        * storage/domstorage/localstorage/storagetracker/storage-tracker-6-create.html:
        * storage/domstorage/localstorage/storagetracker/storage-tracker-7-usage-expected.txt:
        * storage/domstorage/localstorage/storagetracker/storage-tracker-7-usage.html:
        * storage/domstorage/localstorage/string-conversion.html:
        * storage/domstorage/localstorage/window-open.html:
        * storage/domstorage/script-tests/storage-functions-not-overwritten.js:
        * storage/domstorage/sessionstorage/delete-removal.html:
        * storage/domstorage/sessionstorage/enumerate-storage.html:
        * storage/domstorage/sessionstorage/enumerate-with-length-and-key.html:
        * storage/domstorage/sessionstorage/index-get-and-set.html:
        * storage/domstorage/sessionstorage/private-browsing-affects-storage.html:
        * storage/domstorage/sessionstorage/resources/window-open-second.html:
        * storage/domstorage/sessionstorage/simple-usage.html:
        * storage/domstorage/sessionstorage/string-conversion.html:
        * storage/domstorage/sessionstorage/window-open.html:
        * storage/domstorage/window-attributes-exist.html:
        * storage/indexeddb/mozilla/index-prev-no-duplicate.html:
        * storage/indexeddb/tutorial.html:
        * storage/websql/change-version-handle-reuse.js:
        (finishTest):
        * storage/websql/change-version-no-crash-on-preflight-failure.html:
        * storage/websql/change-version.html:
        * storage/websql/close-during-stress-test.html:
        * storage/websql/database-lock-after-reload.html:
        * storage/websql/empty-statement.html:
        * storage/websql/execute-sql-args.js:
        (runTransactionTests):
        * storage/websql/executesql-accepts-only-one-statement.html:
        * storage/websql/hash-change-with-xhr.js:
        (stopTest):
        * storage/websql/multiple-databases-garbage-collection.js:
        (checkCompletion):
        * storage/websql/multiple-transactions-on-different-handles.js:
        (checkCompletion):
        * storage/websql/multiple-transactions.js:
        (checkCompletion):
        * storage/websql/null-callbacks.html:
        * storage/websql/open-database-creation-callback-isolated-world.html:
        * storage/websql/open-database-creation-callback.html:
        * storage/websql/open-database-empty-version.html:
        * storage/websql/open-database-over-quota.html:
        * storage/websql/open-database-set-empty-version.html:
        * storage/websql/open-database-while-transaction-in-progress.js:
        (runTest):
        * storage/websql/private-browsing-noread-nowrite.html:
        * storage/websql/quota-tracking.html:
        * storage/websql/read-and-write-transactions-dont-run-together.js:
        (terminateTest):
        * storage/websql/read-transactions-running-concurrently.html:
        * storage/websql/resources/database-common.js:
        (setupAndRunTest):
        * storage/websql/resources/database-lock-after-reload-2.html:
        * storage/websql/sql-data-types.js:
        (notifyDone):
        (runTest):
        * storage/websql/sql-error-codes.js:
        (finishTest):
        (runTest):
        * storage/websql/statement-error-callback-isolated-world.html:
        * storage/websql/statement-error-callback.html:
        * storage/websql/statement-success-callback-isolated-world.html:
        * storage/websql/success-callback.html:
        * storage/websql/test-authorizer.js:
        (terminateTest):
        * storage/websql/transaction-callback-exception-crash.html:
        * storage/websql/transaction-callback-isolated-world.html:
        * storage/websql/transaction-error-callback-isolated-world.html:
        * storage/websql/transaction-error-callback.html:
        * storage/websql/transaction-success-callback-isolated-world.html:
        * tables/hittesting/filltable-emptycells.html:
        * tables/hittesting/filltable-levels.html:
        * tables/hittesting/filltable-outline.html:
        * tables/hittesting/filltable-rtl.html:
        * tables/hittesting/filltable-stress.html:
        * tables/layering/paint-test-layering-1.html:
        * tables/layering/paint-test-layering-2.html:
        * tables/table-section-overflow-clip-crash.html:
        * touchadjustment/block-testing.html:
        * touchadjustment/event-triggered-widgets.html:
        * touchadjustment/html-label.html:
        * touchadjustment/iframe.html:
        * touchadjustment/nested-touch.html:
        * touchadjustment/scroll-delegation/iframe-with-mainframe-scroll-offset.html:
        * touchadjustment/scroll-offset.html:
        * touchadjustment/touch-inlines.html:
        * touchadjustment/zoom-basic.html:
        * touchadjustment/zoom-fatfinger.html:
        * transforms/2d/compound-2d-transforms.html:
        * transforms/2d/cssmatrix-2d-zoom.html:
        * transforms/2d/set-transform-and-top.html:
        * transforms/2d/transform-2d.html:
        * transforms/2d/transform-accuracy.html:
        * transforms/3d/general/3dtransform-values.html:
        * transforms/3d/general/cssmatrix-3d-zoom.html:
        * transforms/3d/general/matrix-with-zoom-3d.html:
        * transforms/3d/general/transform-origin-z-change.html:
        * transforms/3d/hit-testing/hit-preserves-3d.html:
        * transforms/3d/point-mapping/3d-point-mapping-2.html:
        * transforms/3d/point-mapping/3d-point-mapping-3.html:
        * transforms/3d/point-mapping/3d-point-mapping-deep.html:
        * transforms/3d/point-mapping/3d-point-mapping-origins.html:
        * transforms/3d/point-mapping/3d-point-mapping-preserve-3d.html:
        * transforms/no_transform_hit_testing.html:

2012-06-15  Ryosuke Niwa  <rniwa@webkit.org>

        Remove empty directories.

        * platform/editing: Removed.
        * platform/editing/inserting: Removed.
        * websocket: Removed.
        * websocket/tests: Removed.
        * websocket/tests/workers: Removed.

2012-06-15  Andrew Wilson  <atwilson@chromium.org>

        Unreviewed baselines for chromium due to color management changes.
        https://bugs.webkit.org/show_bug.cgi?id=87761

        * platform/chromium-linux-x86/compositing/color-matching/image-color-matching-expected.png: Added.
        * platform/chromium-linux-x86/css3/filters/crash-hw-sw-switch-expected.png: Added.
        * platform/chromium-linux-x86/css3/filters/custom/custom-filter-shader-cache-expected.png: Added.
        * platform/chromium-linux-x86/css3/filters/custom/effect-custom-combined-missing-expected.png: Added.
        * platform/chromium-linux-x86/css3/filters/custom/effect-custom-expected.png: Added.
        * platform/chromium-linux-x86/css3/filters/custom/missing-custom-filter-shader-expected.png: Added.
        * platform/chromium-linux-x86/css3/filters/effect-blur-hw-expected.png: Added.
        * platform/chromium-linux-x86/css3/filters/effect-brightness-expected.png: Added.
        * platform/chromium-linux-x86/css3/filters/effect-brightness-hw-expected.png: Added.
        * platform/chromium-linux-x86/css3/filters/effect-contrast-hw-expected.png: Added.
        * platform/chromium-linux-x86/css3/filters/effect-drop-shadow-hw-expected.png: Added.
        * platform/chromium-linux-x86/fast/images/jpeg-with-color-profile-expected.png: Added.
        * platform/chromium-linux-x86/fast/images/png-with-color-profile-expected.png: Added.
        * platform/chromium-linux-x86/http/tests/local/file-url-sent-as-referer-expected.png: Added.
        * platform/chromium-linux-x86/scrollbars/listbox-scrollbar-combinations-expected.png: Added.
        * platform/chromium-linux-x86/scrollbars/overflow-scrollbar-combinations-expected.png: Added.
        * platform/chromium-linux-x86/svg/as-border-image/svg-as-border-image-expected.png: Added.
        * platform/chromium-linux-x86/svg/custom/createImageElement-expected.png: Added.
        * platform/chromium-linux-x86/svg/custom/createImageElement2-expected.png: Added.
        * platform/chromium-linux-x86/svg/custom/focus-ring-expected.png: Added.
        * platform/chromium-linux-x86/svg/custom/group-opacity-expected.png: Added.
        * platform/chromium-linux-x86/svg/custom/image-parent-translation-expected.png: Added.
        * platform/chromium-linux-x86/svg/custom/image-small-width-height-expected.png: Added.
        * platform/chromium-linux-x86/svg/custom/js-update-image-and-display-expected.png: Added.
        * platform/chromium-linux-x86/svg/custom/js-update-image-and-display2-expected.png: Added.
        * platform/chromium-linux-x86/svg/custom/js-update-image-and-display3-expected.png: Added.
        * platform/chromium-linux-x86/svg/custom/js-update-image-expected.png: Added.
        * platform/chromium-linux-x86/svg/custom/text-image-opacity-expected.png: Added.
        * platform/chromium-linux-x86/svg/custom/use-on-g-containing-foreignObject-and-image-expected.png: Added.
        * platform/chromium-linux-x86/svg/dynamic-updates/SVGImageElement-dom-height-attr-expected.png: Added.
        * platform/chromium-linux-x86/svg/dynamic-updates/SVGImageElement-dom-preserveAspectRatio-attr-expected.png: Added.
        * platform/chromium-linux-x86/svg/dynamic-updates/SVGImageElement-dom-width-attr-expected.png: Added.
        * platform/chromium-linux-x86/svg/dynamic-updates/SVGImageElement-dom-x-attr-expected.png: Added.
        * platform/chromium-linux-x86/svg/dynamic-updates/SVGImageElement-dom-y-attr-expected.png: Added.
        * platform/chromium-linux-x86/svg/dynamic-updates/SVGImageElement-svgdom-height-prop-expected.png: Added.
        * platform/chromium-linux-x86/svg/dynamic-updates/SVGImageElement-svgdom-preserveAspectRatio-prop-expected.png: Added.
        * platform/chromium-linux-x86/svg/dynamic-updates/SVGImageElement-svgdom-width-prop-expected.png: Added.
        * platform/chromium-linux-x86/svg/dynamic-updates/SVGImageElement-svgdom-x-prop-expected.png: Added.
        * platform/chromium-linux-x86/svg/dynamic-updates/SVGImageElement-svgdom-y-prop-expected.png: Added.
        * platform/chromium-linux-x86/svg/filters/feImage-subregions-expected.png: Added.
        * platform/chromium-linux-x86/svg/filters/feImage-subregions-preseveAspectRatio-none-expected.png: Added.
        * platform/chromium-linux-x86/svg/filters/feImage-subregions-preseveAspectRatio-none-with-viewBox-expected.png: Added.
        * platform/chromium-linux-x86/svg/filters/filter-source-position-expected.png: Added.
        * platform/chromium-linux-x86/svg/repaint/image-href-change-expected.png: Added.
        * platform/chromium-linux-x86/svg/transforms/animated-path-inside-transformed-html-expected.png: Added.
        * platform/chromium-linux-x86/svg/zoom/page/zoom-background-images-expected.png: Added.
        * platform/chromium-linux-x86/svg/zoom/page/zoom-svg-through-object-with-absolute-size-2-expected.png: Added.
        * platform/chromium-linux-x86/svg/zoom/page/zoom-svg-through-object-with-absolute-size-expected.png: Added.
        * platform/chromium-linux-x86/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.png: Added.
        * platform/chromium-mac-leopard/compositing/color-matching/image-color-matching-expected.png:
        * platform/chromium-mac-leopard/compositing/masks/direct-image-mask-expected.png: Added.
        * platform/chromium-mac-leopard/compositing/reflections/simple-composited-reflections-expected.png:
        * platform/chromium-mac-leopard/compositing/visibility/visibility-image-layers-expected.png:
        * platform/chromium-mac-leopard/css3/filters/crash-filter-change-expected.png:
        * platform/chromium-mac-leopard/css3/filters/crash-hw-sw-switch-expected.png:
        * platform/chromium-mac-leopard/css3/filters/custom/effect-color-check-expected.png:
        * platform/chromium-mac-leopard/css3/filters/custom/missing-custom-filter-shader-expected.png:
        * platform/chromium-mac-leopard/css3/filters/effect-blur-expected.png:
        * platform/chromium-mac-leopard/css3/filters/effect-blur-hw-expected.png:
        * platform/chromium-mac-leopard/css3/filters/effect-brightness-expected.png:
        * platform/chromium-mac-leopard/css3/filters/effect-brightness-hw-expected.png:
        * platform/chromium-mac-leopard/css3/filters/effect-combined-expected.png:
        * platform/chromium-mac-leopard/css3/filters/effect-contrast-expected.png:
        * platform/chromium-mac-leopard/css3/filters/effect-contrast-hw-expected.png:
        * platform/chromium-mac-leopard/css3/filters/effect-drop-shadow-expected.png:
        * platform/chromium-mac-leopard/css3/filters/effect-drop-shadow-hw-expected.png:
        * platform/chromium-mac-leopard/css3/filters/effect-grayscale-expected.png:
        * platform/chromium-mac-leopard/css3/filters/effect-hue-rotate-expected.png:
        * platform/chromium-mac-leopard/css3/filters/effect-invert-expected.png:
        * platform/chromium-mac-leopard/css3/filters/effect-invert-hw-expected.png:
        * platform/chromium-mac-leopard/css3/filters/effect-opacity-expected.png:
        * platform/chromium-mac-leopard/css3/filters/effect-opacity-hw-expected.png:
        * platform/chromium-mac-leopard/css3/filters/effect-saturate-expected.png:
        * platform/chromium-mac-leopard/css3/filters/effect-sepia-expected.png:
        * platform/chromium-mac-leopard/css3/filters/regions-expanding-expected.png:
        * platform/chromium-mac-leopard/fast/css/background-shorthand-invalid-url-expected.png:
        * platform/chromium-mac-leopard/fast/css/color-correction-expected.png:
        * platform/chromium-mac-leopard/fast/css/color-correction-on-backgrounds-expected.png:
        * platform/chromium-mac-leopard/fast/images/color-jpeg-with-color-profile-expected.png:
        * platform/chromium-mac-leopard/fast/images/jpeg-with-color-profile-expected.png: Added.
        * platform/chromium-mac-leopard/fast/images/png-with-color-profile-expected.png: Added.
        * platform/chromium-mac-leopard/fast/media/mq-min-pixel-ratio-expected.png:
        * platform/chromium-mac-leopard/fast/reflections/reflection-direction-expected.png:
        * platform/chromium-mac-leopard/fast/reflections/reflection-masks-expected.png:
        * platform/chromium-mac-leopard/fast/reflections/reflection-masks-opacity-expected.png:
        * platform/chromium-mac-leopard/fast/reflections/reflection-masks-outset-expected.png:
        * platform/chromium-mac-leopard/fast/reflections/reflection-with-zoom-expected.png:
        * platform/chromium-mac-leopard/platform/chromium/virtual/threaded/compositing/visibility/visibility-image-layers-expected.png: Added.
        * platform/chromium-mac-leopard/scrollbars/listbox-scrollbar-combinations-expected.png:
        * platform/chromium-mac-leopard/scrollbars/overflow-scrollbar-combinations-expected.png:
        * platform/chromium-mac-leopard/svg/custom/createImageElement-expected.png:
        * platform/chromium-mac-leopard/svg/custom/createImageElement2-expected.png:
        * platform/chromium-mac-leopard/svg/custom/focus-ring-expected.png:
        * platform/chromium-mac-leopard/svg/custom/group-opacity-expected.png:
        * platform/chromium-mac-leopard/svg/custom/image-parent-translation-expected.png:
        * platform/chromium-mac-leopard/svg/custom/image-small-width-height-expected.png:
        * platform/chromium-mac-leopard/svg/custom/image-with-transform-clip-filter-expected.png:
        * platform/chromium-mac-leopard/svg/custom/js-update-image-and-display-expected.png:
        * platform/chromium-mac-leopard/svg/custom/js-update-image-and-display2-expected.png:
        * platform/chromium-mac-leopard/svg/custom/js-update-image-and-display3-expected.png:
        * platform/chromium-mac-leopard/svg/custom/js-update-image-expected.png:
        * platform/chromium-mac-leopard/svg/custom/pointer-events-image-css-transform-expected.png:
        * platform/chromium-mac-leopard/svg/custom/pointer-events-image-expected.png:
        * platform/chromium-mac-leopard/svg/custom/text-image-opacity-expected.png:
        * platform/chromium-mac-leopard/svg/custom/use-on-g-containing-foreignObject-and-image-expected.png:
        * platform/chromium-mac-leopard/svg/dynamic-updates/SVGImageElement-dom-height-attr-expected.png:
        * platform/chromium-mac-leopard/svg/dynamic-updates/SVGImageElement-dom-preserveAspectRatio-attr-expected.png:
        * platform/chromium-mac-leopard/svg/dynamic-updates/SVGImageElement-dom-width-attr-expected.png:
        * platform/chromium-mac-leopard/svg/dynamic-updates/SVGImageElement-dom-x-attr-expected.png:
        * platform/chromium-mac-leopard/svg/dynamic-updates/SVGImageElement-dom-y-attr-expected.png:
        * platform/chromium-mac-leopard/svg/dynamic-updates/SVGImageElement-svgdom-height-prop-expected.png:
        * platform/chromium-mac-leopard/svg/dynamic-updates/SVGImageElement-svgdom-preserveAspectRatio-prop-expected.png:
        * platform/chromium-mac-leopard/svg/dynamic-updates/SVGImageElement-svgdom-width-prop-expected.png:
        * platform/chromium-mac-leopard/svg/dynamic-updates/SVGImageElement-svgdom-x-prop-expected.png:
        * platform/chromium-mac-leopard/svg/dynamic-updates/SVGImageElement-svgdom-y-prop-expected.png:
        * platform/chromium-mac-leopard/svg/filters/feImage-subregions-expected.png:
        * platform/chromium-mac-leopard/svg/filters/feImage-subregions-preseveAspectRatio-none-expected.png:
        * platform/chromium-mac-leopard/svg/filters/feImage-subregions-preseveAspectRatio-none-with-viewBox-expected.png:
        * platform/chromium-mac-leopard/svg/filters/filter-source-position-expected.png:
        * platform/chromium-mac-leopard/svg/repaint/image-href-change-expected.png:
        * platform/chromium-mac-leopard/svg/transforms/animated-path-inside-transformed-html-expected.png:
        * platform/chromium-mac-leopard/svg/wicd/test-rightsizing-b-expected.png:
        * platform/chromium-mac-leopard/svg/zoom/page/zoom-background-images-expected.png:
        * platform/chromium-mac-leopard/svg/zoom/page/zoom-svg-through-object-with-absolute-size-2-expected.png:
        * platform/chromium-mac-leopard/svg/zoom/page/zoom-svg-through-object-with-absolute-size-expected.png:
        * platform/chromium-mac-leopard/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.png:
        * platform/chromium-mac-leopard/tables/mozilla/bugs/bug82946-2-expected.png:
        * platform/chromium-mac-snowleopard/compositing/color-matching/image-color-matching-expected.png:
        * platform/chromium-mac-snowleopard/compositing/masks/direct-image-mask-expected.png:
        * platform/chromium-mac-snowleopard/compositing/reflections/simple-composited-reflections-expected.png:
        * platform/chromium-mac-snowleopard/css3/filters/crash-hw-sw-switch-expected.png:
        * platform/chromium-mac-snowleopard/fast/css/color-correction-expected.png:
        * platform/chromium-mac-snowleopard/fast/css/color-correction-on-backgrounds-expected.png:
        * platform/chromium-mac-snowleopard/fast/images/jpeg-with-color-profile-expected.png: Added.
        * platform/chromium-mac-snowleopard/fast/images/png-with-color-profile-expected.png: Added.
        * platform/chromium-mac-snowleopard/fast/media/mq-min-pixel-ratio-expected.png:
        * platform/chromium-mac-snowleopard/fast/reflections/reflection-direction-expected.png:
        * platform/chromium-mac-snowleopard/fast/reflections/reflection-masks-opacity-expected.png:
        * platform/chromium-mac-snowleopard/fast/reflections/reflection-with-zoom-expected.png:
        * platform/chromium-mac-snowleopard/scrollbars/listbox-scrollbar-combinations-expected.png:
        * platform/chromium-mac-snowleopard/scrollbars/overflow-scrollbar-combinations-expected.png:
        * platform/chromium-mac-snowleopard/svg/custom/createImageElement2-expected.png:
        * platform/chromium-mac-snowleopard/svg/custom/focus-ring-expected.png:
        * platform/chromium-mac-snowleopard/svg/custom/image-parent-translation-expected.png:
        * platform/chromium-mac-snowleopard/svg/custom/image-small-width-height-expected.png:
        * platform/chromium-mac-snowleopard/svg/custom/image-with-transform-clip-filter-expected.png:
        * platform/chromium-mac-snowleopard/svg/custom/pointer-events-image-css-transform-expected.png:
        * platform/chromium-mac-snowleopard/svg/custom/pointer-events-image-expected.png:
        * platform/chromium-mac-snowleopard/svg/custom/text-image-opacity-expected.png:
        * platform/chromium-mac-snowleopard/svg/dynamic-updates/SVGImageElement-dom-height-attr-expected.png:
        * platform/chromium-mac-snowleopard/svg/dynamic-updates/SVGImageElement-dom-preserveAspectRatio-attr-expected.png:
        * platform/chromium-mac-snowleopard/svg/dynamic-updates/SVGImageElement-dom-width-attr-expected.png:
        * platform/chromium-mac-snowleopard/svg/dynamic-updates/SVGImageElement-dom-x-attr-expected.png:
        * platform/chromium-mac-snowleopard/svg/dynamic-updates/SVGImageElement-dom-y-attr-expected.png:
        * platform/chromium-mac-snowleopard/svg/dynamic-updates/SVGImageElement-svgdom-height-prop-expected.png:
        * platform/chromium-mac-snowleopard/svg/dynamic-updates/SVGImageElement-svgdom-preserveAspectRatio-prop-expected.png:
        * platform/chromium-mac-snowleopard/svg/dynamic-updates/SVGImageElement-svgdom-width-prop-expected.png:
        * platform/chromium-mac-snowleopard/svg/dynamic-updates/SVGImageElement-svgdom-x-prop-expected.png:
        * platform/chromium-mac-snowleopard/svg/dynamic-updates/SVGImageElement-svgdom-y-prop-expected.png:
        * platform/chromium-mac-snowleopard/svg/transforms/animated-path-inside-transformed-html-expected.png:
        * platform/chromium-mac-snowleopard/svg/wicd/test-rightsizing-b-expected.png:
        * platform/chromium-mac-snowleopard/svg/zoom/page/zoom-svg-through-object-with-absolute-size-2-expected.png:
        * platform/chromium-mac-snowleopard/svg/zoom/page/zoom-svg-through-object-with-absolute-size-expected.png:
        * platform/chromium-mac-snowleopard/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.png:
        * platform/chromium-mac-snowleopard/tables/mozilla/bugs/bug82946-2-expected.png:
        * platform/chromium-mac/compositing/color-matching/image-color-matching-expected.png:
        * platform/chromium-mac/compositing/masks/direct-image-mask-expected.png:
        * platform/chromium-mac/compositing/reflections/simple-composited-reflections-expected.png:
        * platform/chromium-mac/compositing/visibility/visibility-image-layers-expected.png:
        * platform/chromium-mac/css3/filters/crash-filter-change-expected.png:
        * platform/chromium-mac/css3/filters/crash-hw-sw-switch-expected.png:
        * platform/chromium-mac/css3/filters/custom/effect-color-check-expected.png:
        * platform/chromium-mac/css3/filters/custom/missing-custom-filter-shader-expected.png:
        * platform/chromium-mac/css3/filters/effect-blur-expected.png:
        * platform/chromium-mac/css3/filters/effect-blur-hw-expected.png:
        * platform/chromium-mac/css3/filters/effect-brightness-expected.png:
        * platform/chromium-mac/css3/filters/effect-brightness-hw-expected.png:
        * platform/chromium-mac/css3/filters/effect-combined-expected.png:
        * platform/chromium-mac/css3/filters/effect-contrast-expected.png:
        * platform/chromium-mac/css3/filters/effect-contrast-hw-expected.png:
        * platform/chromium-mac/css3/filters/effect-drop-shadow-expected.png:
        * platform/chromium-mac/css3/filters/effect-drop-shadow-hw-expected.png:
        * platform/chromium-mac/css3/filters/effect-grayscale-expected.png:
        * platform/chromium-mac/css3/filters/effect-hue-rotate-expected.png:
        * platform/chromium-mac/css3/filters/effect-invert-expected.png:
        * platform/chromium-mac/css3/filters/effect-invert-hw-expected.png:
        * platform/chromium-mac/css3/filters/effect-opacity-expected.png:
        * platform/chromium-mac/css3/filters/effect-opacity-hw-expected.png:
        * platform/chromium-mac/css3/filters/effect-saturate-expected.png:
        * platform/chromium-mac/css3/filters/effect-sepia-expected.png:
        * platform/chromium-mac/css3/filters/regions-expanding-expected.png:
        * platform/chromium-mac/fast/css/background-shorthand-invalid-url-expected.png:
        * platform/chromium-mac/fast/css/color-correction-expected.png:
        * platform/chromium-mac/fast/css/color-correction-on-backgrounds-expected.png:
        * platform/chromium-mac/fast/images/color-jpeg-with-color-profile-expected.png:
        * platform/chromium-mac/fast/images/jpeg-with-color-profile-expected.png: Added.
        * platform/chromium-mac/fast/images/png-with-color-profile-expected.png: Added.
        * platform/chromium-mac/fast/media/mq-min-pixel-ratio-expected.png:
        * platform/chromium-mac/fast/reflections/reflection-direction-expected.png:
        * platform/chromium-mac/fast/reflections/reflection-masks-expected.png:
        * platform/chromium-mac/fast/reflections/reflection-masks-opacity-expected.png:
        * platform/chromium-mac/fast/reflections/reflection-masks-outset-expected.png:
        * platform/chromium-mac/fast/reflections/reflection-with-zoom-expected.png:
        * platform/chromium-mac/platform/chromium/virtual/threaded/compositing/visibility/visibility-image-layers-expected.png:
        * platform/chromium-mac/scrollbars/listbox-scrollbar-combinations-expected.png:
        * platform/chromium-mac/scrollbars/overflow-scrollbar-combinations-expected.png:
        * platform/chromium-mac/svg/custom/createImageElement-expected.png:
        * platform/chromium-mac/svg/custom/createImageElement2-expected.png:
        * platform/chromium-mac/svg/custom/focus-ring-expected.png:
        * platform/chromium-mac/svg/custom/group-opacity-expected.png:
        * platform/chromium-mac/svg/custom/image-parent-translation-expected.png:
        * platform/chromium-mac/svg/custom/image-small-width-height-expected.png:
        * platform/chromium-mac/svg/custom/image-with-transform-clip-filter-expected.png:
        * platform/chromium-mac/svg/custom/js-update-image-and-display-expected.png:
        * platform/chromium-mac/svg/custom/js-update-image-and-display2-expected.png:
        * platform/chromium-mac/svg/custom/js-update-image-and-display3-expected.png:
        * platform/chromium-mac/svg/custom/js-update-image-expected.png:
        * platform/chromium-mac/svg/custom/pointer-events-image-css-transform-expected.png:
        * platform/chromium-mac/svg/custom/pointer-events-image-expected.png:
        * platform/chromium-mac/svg/custom/text-image-opacity-expected.png:
        * platform/chromium-mac/svg/custom/use-on-g-containing-foreignObject-and-image-expected.png:
        * platform/chromium-mac/svg/dynamic-updates/SVGImageElement-dom-height-attr-expected.png:
        * platform/chromium-mac/svg/dynamic-updates/SVGImageElement-dom-preserveAspectRatio-attr-expected.png:
        * platform/chromium-mac/svg/dynamic-updates/SVGImageElement-dom-width-attr-expected.png:
        * platform/chromium-mac/svg/dynamic-updates/SVGImageElement-dom-x-attr-expected.png:
        * platform/chromium-mac/svg/dynamic-updates/SVGImageElement-dom-y-attr-expected.png:
        * platform/chromium-mac/svg/dynamic-updates/SVGImageElement-svgdom-height-prop-expected.png:
        * platform/chromium-mac/svg/dynamic-updates/SVGImageElement-svgdom-preserveAspectRatio-prop-expected.png:
        * platform/chromium-mac/svg/dynamic-updates/SVGImageElement-svgdom-width-prop-expected.png:
        * platform/chromium-mac/svg/dynamic-updates/SVGImageElement-svgdom-x-prop-expected.png:
        * platform/chromium-mac/svg/dynamic-updates/SVGImageElement-svgdom-y-prop-expected.png:
        * platform/chromium-mac/svg/filters/feImage-subregions-expected.png:
        * platform/chromium-mac/svg/filters/feImage-subregions-preseveAspectRatio-none-expected.png:
        * platform/chromium-mac/svg/filters/feImage-subregions-preseveAspectRatio-none-with-viewBox-expected.png:
        * platform/chromium-mac/svg/filters/filter-source-position-expected.png:
        * platform/chromium-mac/svg/repaint/image-href-change-expected.png:
        * platform/chromium-mac/svg/transforms/animated-path-inside-transformed-html-expected.png:
        * platform/chromium-mac/svg/wicd/test-rightsizing-b-expected.png:
        * platform/chromium-mac/svg/zoom/page/zoom-background-images-expected.png:
        * platform/chromium-mac/svg/zoom/page/zoom-svg-through-object-with-absolute-size-2-expected.png:
        * platform/chromium-mac/svg/zoom/page/zoom-svg-through-object-with-absolute-size-expected.png:
        * platform/chromium-mac/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.png:
        * platform/chromium-mac/tables/mozilla/bugs/bug82946-2-expected.png:
        * platform/chromium-win/compositing/color-matching/image-color-matching-expected.png:
        * platform/chromium-win/css3/filters/crash-filter-change-expected.png:
        * platform/chromium-win/css3/filters/crash-hw-sw-switch-expected.png:
        * platform/chromium-win/css3/filters/effect-blur-expected.png:
        * platform/chromium-win/css3/filters/effect-blur-hw-expected.png:
        * platform/chromium-win/css3/filters/effect-brightness-expected.png:
        * platform/chromium-win/css3/filters/effect-brightness-hw-expected.png:
        * platform/chromium-win/css3/filters/effect-combined-expected.png:
        * platform/chromium-win/css3/filters/effect-contrast-expected.png:
        * platform/chromium-win/css3/filters/effect-contrast-hw-expected.png:
        * platform/chromium-win/css3/filters/effect-drop-shadow-expected.png:
        * platform/chromium-win/css3/filters/effect-drop-shadow-hw-expected.png:
        * platform/chromium-win/css3/filters/effect-grayscale-expected.png:
        * platform/chromium-win/css3/filters/effect-hue-rotate-expected.png:
        * platform/chromium-win/css3/filters/effect-invert-expected.png:
        * platform/chromium-win/css3/filters/effect-invert-hw-expected.png:
        * platform/chromium-win/css3/filters/effect-opacity-expected.png:
        * platform/chromium-win/css3/filters/effect-opacity-hw-expected.png:
        * platform/chromium-win/css3/filters/effect-saturate-expected.png:
        * platform/chromium-win/css3/filters/effect-sepia-expected.png:
        * platform/chromium-win/css3/filters/regions-expanding-expected.png:
        * platform/chromium-win/fast/images/jpeg-with-color-profile-expected.png: Added.
        * platform/chromium-win/fast/images/png-with-color-profile-expected.png: Added.
        * platform/chromium/TestExpectations:

2012-06-15  David Grogan  <dgrogan@chromium.org>

        IndexedDB: Remove obsolete description parameter from factory.open calls
        https://bugs.webkit.org/show_bug.cgi?id=89047

        Reviewed by Tony Chang.

        This parameter has been obsolete for 18 months and is getting replaced
        with a version parameter.

        * storage/indexeddb/mozilla/add-twice-failure-expected.txt:
        * storage/indexeddb/mozilla/autoincrement-indexes-expected.txt:
        * storage/indexeddb/mozilla/bad-keypath-expected.txt:
        * storage/indexeddb/mozilla/clear-expected.txt:
        * storage/indexeddb/mozilla/create-index-unique-expected.txt:
        * storage/indexeddb/mozilla/create-index-with-integer-keys-expected.txt:
        * storage/indexeddb/mozilla/create-objectstore-basics-expected.txt:
        * storage/indexeddb/mozilla/create-objectstore-null-name-expected.txt:
        * storage/indexeddb/mozilla/cursor-mutation-objectstore-only-expected.txt:
        * storage/indexeddb/mozilla/cursor-update-updates-indexes-expected.txt:
        * storage/indexeddb/mozilla/cursors-expected.txt:
        * storage/indexeddb/mozilla/delete-result-expected.txt:
        * storage/indexeddb/mozilla/event-source-expected.txt:
        * storage/indexeddb/mozilla/global-data-expected.txt:
        * storage/indexeddb/mozilla/index-prev-no-duplicate-expected.txt:
        * storage/indexeddb/mozilla/index-prev-no-duplicate.html:
        * storage/indexeddb/mozilla/indexes-expected.txt:
        * storage/indexeddb/mozilla/key-requirements-delete-null-key-expected.txt:
        * storage/indexeddb/mozilla/key-requirements-expected.txt:
        * storage/indexeddb/mozilla/key-requirements-inline-and-passed-expected.txt:
        * storage/indexeddb/mozilla/key-requirements-put-no-key-expected.txt:
        * storage/indexeddb/mozilla/key-requirements-put-null-key-expected.txt:
        * storage/indexeddb/mozilla/object-cursors-expected.txt:
        * storage/indexeddb/mozilla/object-identity-expected.txt:
        * storage/indexeddb/mozilla/object-store-inline-autoincrement-key-added-on-put-expected.txt:
        * storage/indexeddb/mozilla/object-store-remove-values-expected.txt:
        * storage/indexeddb/mozilla/objectstorenames-expected.txt:
        * storage/indexeddb/mozilla/odd-result-order-expected.txt:
        * storage/indexeddb/mozilla/put-get-values-expected.txt:
        * storage/indexeddb/mozilla/readonly-transactions-expected.txt:
        * storage/indexeddb/mozilla/readwrite-transactions-expected.txt:
        * storage/indexeddb/mozilla/readyState-expected.txt:
        * storage/indexeddb/mozilla/remove-index-expected.txt:
        * storage/indexeddb/mozilla/remove-objectstore-expected.txt:
        * storage/indexeddb/mozilla/resources/add-twice-failure.js:
        (test):
        * storage/indexeddb/mozilla/resources/autoincrement-indexes.js:
        (test):
        * storage/indexeddb/mozilla/resources/bad-keypath.js:
        (test):
        * storage/indexeddb/mozilla/resources/clear.js:
        (test):
        * storage/indexeddb/mozilla/resources/create-index-unique.js:
        (test):
        * storage/indexeddb/mozilla/resources/create-index-with-integer-keys.js:
        (test):
        * storage/indexeddb/mozilla/resources/create-objectstore-basics.js:
        (test):
        * storage/indexeddb/mozilla/resources/create-objectstore-null-name.js:
        (test):
        * storage/indexeddb/mozilla/resources/cursor-mutation-objectstore-only.js:
        (test):
        * storage/indexeddb/mozilla/resources/cursor-update-updates-indexes.js:
        (test):
        * storage/indexeddb/mozilla/resources/cursors.js:
        (test):
        * storage/indexeddb/mozilla/resources/delete-result.js:
        (test):
        * storage/indexeddb/mozilla/resources/event-source.js:
        (test):
        * storage/indexeddb/mozilla/resources/global-data.js:
        (test):
        (cleanDatabase):
        * storage/indexeddb/mozilla/resources/indexes.js:
        (test):
        * storage/indexeddb/mozilla/resources/key-requirements-delete-null-key.js:
        (test):
        * storage/indexeddb/mozilla/resources/key-requirements-inline-and-passed.js:
        (test):
        * storage/indexeddb/mozilla/resources/key-requirements-put-no-key.js:
        (test):
        * storage/indexeddb/mozilla/resources/key-requirements-put-null-key.js:
        (test):
        * storage/indexeddb/mozilla/resources/key-requirements.js:
        (test):
        * storage/indexeddb/mozilla/resources/object-cursors.js:
        (test):
        * storage/indexeddb/mozilla/resources/object-identity.js:
        (test):
        * storage/indexeddb/mozilla/resources/object-store-inline-autoincrement-key-added-on-put.js:
        (test):
        * storage/indexeddb/mozilla/resources/object-store-remove-values.js:
        (test):
        * storage/indexeddb/mozilla/resources/objectstorenames.js:
        (test):
        * storage/indexeddb/mozilla/resources/odd-result-order.js:
        (test):
        * storage/indexeddb/mozilla/resources/put-get-values.js:
        (test):
        * storage/indexeddb/mozilla/resources/readonly-transactions.js:
        (test):
        * storage/indexeddb/mozilla/resources/readwrite-transactions.js:
        (test):
        * storage/indexeddb/mozilla/resources/readyState.js:
        (test):
        * storage/indexeddb/mozilla/resources/remove-index.js:
        (test):
        * storage/indexeddb/mozilla/resources/remove-objectstore.js:
        (test):
        * storage/indexeddb/mozilla/resources/versionchange-abort.js:
        (test):
        * storage/indexeddb/mozilla/resources/versionchange.js:
        (test):
        (openSuccess):
        (postSetVersion):
        * storage/indexeddb/mozilla/versionchange-abort-expected.txt:
        * storage/indexeddb/mozilla/versionchange-expected.txt:

2012-06-15  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Raise exceptions when methods are called on deleted objects
        https://bugs.webkit.org/show_bug.cgi?id=89243

        Reviewed by Tony Chang.

        * storage/indexeddb/deleted-objects-expected.txt: Added.
        * storage/indexeddb/deleted-objects.html: Added.
        * storage/indexeddb/resources/deleted-objects.js: Added.
        (test):
        (openDatabase.request.onsuccess.request.onsuccess):
        (openDatabase.request.onsuccess):
        (openDatabase):
        * storage/indexeddb/resources/transaction-basics.js: Fix test that relied on
        non-compliant behavior.
        (addRemoveIDBObjects):
        (addRemoveAddIDBObjects):
        * storage/indexeddb/transaction-basics-expected.txt:

2012-06-15  Abhishek Arya  <inferno@chromium.org>

        Unreviewed. Forgot a rebaseline for r120477.

        * platform/chromium-win/fast/forms/formmove3-expected.txt:

2012-06-15  Filip Pizlo  <fpizlo@apple.com>

        DFG should be able to set watchpoints on structure transitions in the
        method check prototype chain
        https://bugs.webkit.org/show_bug.cgi?id=89058

        Rubber stamped by Gavin Barraclough.

        * fast/js/dfg-call-method-hit-watchpoint-expected.txt: Added.
        * fast/js/dfg-call-method-hit-watchpoint.html: Added.
        * fast/js/script-tests/dfg-call-method-hit-watchpoint.js: Added.
        (Thingy):
        (Thingy.prototype.foo):
        (callFoo):
        (.Thingy.prototype.foo):

2012-06-14  Ryosuke Niwa  <rniwa@webkit.org>

        The default value of text-align should be start instead of -webkit-auto
        https://bugs.webkit.org/show_bug.cgi?id=79914

        Reviewed by Tony Chang.

        Rebaselined tests. For query-text-alignment.html, we now match start and end
        with justifyLeft and justifyRight, which appears to be consistent with Firefox for time being.

        * editing/execCommand/query-text-alignment-expected.txt:
        * editing/execCommand/script-tests/query-text-alignment.js:
        (queryTextAlignment):
        (selectFirstPosition):
        (selectMiddleOfHelloWorld):
        (runRangeTests):
        * editing/pasteboard/paste-4039777-fix-expected.txt:
        * fast/css/getComputedStyle/computed-style-expected.txt:
        * fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * fast/css/list-item-text-align.html:
        * fast/css/text-align-initial-expected.html: Renamed from fast/css/text-align-webkit-auto-expected.html.
        * fast/css/text-align-initial.html: Ditto.
        * fast/events/ondrop-text-html-expected.txt:
        * platform/chromium-linux-x86/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-linux/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-mac-leopard/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/chromium-mac-leopard/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-mac-snowleopard/fast/lists/001-expected.png:
        * platform/chromium-mac-snowleopard/fast/lists/001-vertical-expected.png:
        * platform/chromium-mac-snowleopard/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/chromium-mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/chromium-mac/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-win-vista/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-win-xp/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/chromium-win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/chromium-win/svg/css/getComputedStyle-basic-expected.txt:
        * platform/gtk/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/gtk/svg/css/getComputedStyle-basic-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/mac/fast/lists/001-expected.txt:
        * platform/mac/fast/lists/001-vertical-expected.txt:
        * platform/mac/svg/css/getComputedStyle-basic-expected.txt:
        * platform/qt/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/qt/svg/css/getComputedStyle-basic-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * svg/css/getComputedStyle-basic-expected.txt:

2012-06-15  Jian Li  <jianli@chromium.org>

        [File API] FileReader should work in sandbox iframe
        https://bugs.webkit.org/show_bug.cgi?id=89242

        Reviewed by Adam Barth.

        * fast/files/file-reader-file-url.html:
        * fast/files/file-reader-sandbox-iframe-expected.txt: Added.
        * fast/files/file-reader-sandbox-iframe.html: Added.
        * fast/files/resources/file-reader-real.html: Renamed from LayoutTests/fast/files/resources/file-reader-file-url-iframe.html.

2012-06-15  Jian Li  <jianli@chromium.org>

        http/tests/fileapi/create-blob-url-from-data-url.html fails
        https://bugs.webkit.org/show_bug.cgi?id=89149

        Reviewed by Adam Barth.

        Convert the test to check if blob URL can be created in a data iframe.

        * http/tests/fileapi/create-blob-url-from-data-url-expected.txt:
        * http/tests/fileapi/create-blob-url-from-data-url.html:
        * platform/chromium/TestExpectations:
        * platform/efl/Skipped:
        * platform/gtk/TestExpectations:
        * platform/mac/Skipped:
        * platform/qt/Skipped:

2012-06-15  David Barton  <dbarton@mathscribe.com>

        Inherit style changes in MathML anonymous renderers
        https://bugs.webkit.org/show_bug.cgi?id=88476

        Reviewed by Julien Chaffraix.

        * mathml/presentation/over.xhtml:
        * mathml/presentation/style-changed-expected.html: Added.
        * mathml/presentation/style-changed.html: Added.
        * platform/mac/mathml/presentation/attributes-expected.txt:
        * platform/mac/mathml/presentation/fenced-expected.txt:
        * platform/mac/mathml/presentation/fenced-mi-expected.txt:
        * platform/mac/mathml/presentation/fractions-expected.txt:
        * platform/mac/mathml/presentation/fractions-vertical-alignment-expected.txt:
        * platform/mac/mathml/presentation/mo-expected.txt:
        * platform/mac/mathml/presentation/mo-stretch-expected.txt:
        * platform/mac/mathml/presentation/mroot-pref-width-expected.txt:
        * platform/mac/mathml/presentation/over-expected.png:
        * platform/mac/mathml/presentation/over-expected.txt:
        * platform/mac/mathml/presentation/roots-expected.txt:
        * platform/mac/mathml/presentation/row-alignment-expected.png:
        * platform/mac/mathml/presentation/row-alignment-expected.txt:
        * platform/mac/mathml/presentation/row-expected.txt:
        * platform/mac/mathml/presentation/style-expected.txt:
        * platform/mac/mathml/presentation/sub-expected.txt:
        * platform/mac/mathml/presentation/subsup-expected.txt:
        * platform/mac/mathml/presentation/sup-expected.txt:
        * platform/mac/mathml/presentation/tables-expected.txt:
        * platform/mac/mathml/presentation/tokenElements-expected.txt:
        * platform/mac/mathml/presentation/under-expected.png:
        * platform/mac/mathml/presentation/under-expected.txt:
        * platform/mac/mathml/presentation/underover-expected.png:
        * platform/mac/mathml/presentation/underover-expected.txt:
        * platform/mac/mathml/xHeight-expected.txt:

2012-06-15  Andrew Wilson  <atwilson@chromium.org>

        Unreviewed chromium expectations change.

        * platform/chromium/TestExpectations:

2012-06-15  Ryosuke Niwa  <rniwa@webkit.org>

        Use testRunner instead of layoutTestController in sputnik's conformance tests
        https://bugs.webkit.org/show_bug.cgi?id=89184

        Reviewed by Tony Chang.

        * sputnik/Conformance/:

2012-06-15  Abhishek Arya  <inferno@chromium.org>

        Unreviewed. Rebaselines for r120477.

        * platform/chromium-linux/fast/forms/formmove3-expected.txt:
        * platform/chromium-win/editing/deleting/delete-3800834-fix-expected.txt:
        * platform/chromium-win/fast/dynamic/011-expected.txt:
        * platform/chromium-win/fast/forms/preserveFormDuringResidualStyle-expected.txt:
        * platform/chromium-win/fast/invalid/001-expected.txt:
        * platform/chromium-win/fast/invalid/003-expected.txt:
        * platform/chromium-win/fast/invalid/004-expected.txt:
        * platform/chromium-win/fast/invalid/007-expected.txt:
        * platform/chromium-win/fast/invalid/019-expected.txt:
        * platform/chromium-win/fast/multicol/span/clone-anonymous-block-non-inline-child-crash-expected.txt:
        * platform/chromium-win/tables/mozilla/bugs/bug647-expected.txt:
        * platform/chromium-win/tables/mozilla/other/wa_table_tr_align-expected.txt:

2012-06-13  Vincent Scheib  <scheib@chromium.org>

        Add new Pointer Lock spec webkitRequestPointerLock and webkitExitPointerLock methods.
        https://bugs.webkit.org/show_bug.cgi?id=88891

        Reviewed by Dimitri Glazkov.

        Part of a series of refactoring changes to update pointer lock API to
        the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402

        Entering and exiting mouse lock is provided in the new webkitRequestPointerLock and
        webkitExitPointerLock methods.

        Existing tests updated to use the new methods. Also, several updated to
        support manual testing.

        * pointer-lock/lock-already-locked-expected.txt:
        * pointer-lock/lock-already-locked.html:
        * pointer-lock/mouse-event-delivery-expected.txt:
        * pointer-lock/mouse-event-delivery.html:
        * pointer-lock/pointer-lock-api-expected.txt:
        * pointer-lock/pointer-lock-api.html:
        * pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt:
        * pointer-lock/pointerlockchange-pointerlockerror-events.html:

2012-06-15  Abhishek Arya  <inferno@chromium.org>

        Unreviewed. Rebaselines for r120477.

        * fast/multicol/span/clone-anonymous-block-non-inline-child-crash-expected.txt:
        * platform/chromium-mac-leopard/fast/forms/formmove3-expected.txt: Added.
        * platform/chromium-mac-leopard/fast/forms/preserveFormDuringResidualStyle-expected.txt: Added.
        * platform/chromium-mac-leopard/fast/multicol/span/clone-anonymous-block-non-inline-child-crash-expected.txt: Added.
        * platform/chromium-mac-leopard/tables/mozilla/other/wa_table_tr_align-expected.txt: Added.
        * platform/chromium-mac-snowleopard/fast/forms/formmove3-expected.txt: Added.
        * platform/chromium-mac-snowleopard/fast/forms/preserveFormDuringResidualStyle-expected.txt: Added.
        * platform/chromium-mac-snowleopard/fast/multicol/span/clone-anonymous-block-non-inline-child-crash-expected.txt: Added.
        * platform/chromium-mac-snowleopard/tables/mozilla/other/wa_table_tr_align-expected.txt: Added.
        * platform/chromium-mac/fast/forms/formmove3-expected.txt:
        * platform/chromium-mac/fast/forms/preserveFormDuringResidualStyle-expected.txt:
        * platform/chromium-mac/fast/multicol/span/clone-anonymous-block-non-inline-child-crash-expected.txt:
        * platform/chromium-mac/tables/mozilla/other/wa_table_tr_align-expected.txt:
        * platform/efl/TestExpectations:
        * platform/gtk/editing/deleting/delete-3800834-fix-expected.txt:
        * platform/gtk/fast/dynamic/011-expected.txt:
        * platform/gtk/fast/forms/formmove3-expected.txt:
        * platform/gtk/fast/forms/preserveFormDuringResidualStyle-expected.txt:
        * platform/gtk/fast/invalid/001-expected.txt:
        * platform/gtk/fast/invalid/003-expected.txt:
        * platform/gtk/fast/invalid/004-expected.txt:
        * platform/gtk/fast/invalid/007-expected.txt:
        * platform/gtk/fast/invalid/019-expected.txt:
        * platform/gtk/tables/mozilla/bugs/bug647-expected.txt:
        * platform/gtk/tables/mozilla/other/wa_table_tr_align-expected.txt:
        * platform/qt/editing/deleting/delete-3800834-fix-expected.txt:
        * platform/qt/fast/dynamic/011-expected.txt:
        * platform/qt/fast/forms/formmove3-expected.txt:
        * platform/qt/fast/forms/preserveFormDuringResidualStyle-expected.txt:
        * platform/qt/fast/invalid/001-expected.txt:
        * platform/qt/fast/invalid/003-expected.txt:
        * platform/qt/fast/invalid/004-expected.txt:
        * platform/qt/fast/invalid/007-expected.txt:
        * platform/qt/fast/invalid/019-expected.txt:
        * platform/qt/fast/multicol/span/clone-anonymous-block-non-inline-child-crash-expected.txt:
        * platform/qt/tables/mozilla/bugs/bug647-expected.txt:
        * platform/qt/tables/mozilla/other/wa_table_tr_align-expected.txt:

2012-06-15  Simon Fraser  <simon.fraser@apple.com>

        Rebaseline some tests after r120411.

        * platform/mac/fast/forms/box-shadow-override-expected.txt:
        * platform/mac/fast/forms/input-appearance-height-expected.txt:
        * platform/mac/fast/forms/range/input-appearance-range-expected.txt:
        * platform/mac/fast/multicol/client-rects-expected.txt:
        * platform/mac/media/controls-after-reload-expected.txt:

2012-06-15  Florin Malita  <fmalita@chromium.org>

        Unreviewed chromium rebaseline for r120467.

        * platform/chromium-linux-x86/svg/filters/feLighting-crash-expected.png:
        * platform/chromium-mac-leopard/svg/W3C-SVG-1.1/filters-specular-01-f-expected.png:
        * platform/chromium-mac-leopard/svg/dynamic-updates/SVGFESpecularLightingElement-dom-in-attr-expected.png:
        * platform/chromium-mac-leopard/svg/dynamic-updates/SVGFESpecularLightingElement-dom-specularConstant-attr-expected.png:
        * platform/chromium-mac-leopard/svg/dynamic-updates/SVGFESpecularLightingElement-dom-specularExponent-attr-expected.png:
        * platform/chromium-mac-leopard/svg/dynamic-updates/SVGFESpecularLightingElement-dom-suraceScale-attr-expected.png:
        * platform/chromium-mac-leopard/svg/dynamic-updates/SVGFESpecularLightingElement-inherit-lighting-color-css-prop-expected.png:
        * platform/chromium-mac-leopard/svg/dynamic-updates/SVGFESpecularLightingElement-lighting-color-css-prop-expected.png:
        * platform/chromium-mac-leopard/svg/dynamic-updates/SVGFESpecularLightingElement-svgdom-in-prop-expected.png:
        * platform/chromium-mac-leopard/svg/dynamic-updates/SVGFESpecularLightingElement-svgdom-specularConstant-prop-expected.png:
        * platform/chromium-mac-leopard/svg/dynamic-updates/SVGFESpecularLightingElement-svgdom-specularExponent-prop-expected.png:
        * platform/chromium-mac-leopard/svg/dynamic-updates/SVGFESpecularLightingElement-svgdom-suraceScale-prop-expected.png:
        * platform/chromium-mac-leopard/svg/filters/feLighting-crash-expected.png:
        * platform/chromium-mac-snowleopard/svg/W3C-SVG-1.1/filters-specular-01-f-expected.png:
        * platform/chromium-mac-snowleopard/svg/dynamic-updates/SVGFESpecularLightingElement-dom-in-attr-expected.png:
        * platform/chromium-mac-snowleopard/svg/dynamic-updates/SVGFESpecularLightingElement-dom-specularConstant-attr-expected.png:
        * platform/chromium-mac-snowleopard/svg/dynamic-updates/SVGFESpecularLightingElement-dom-specularExponent-attr-expected.png:
        * platform/chromium-mac-snowleopard/svg/dynamic-updates/SVGFESpecularLightingElement-dom-suraceScale-attr-expected.png:
        * platform/chromium-mac-snowleopard/svg/dynamic-updates/SVGFESpecularLightingElement-inherit-lighting-color-css-prop-expected.png:
        * platform/chromium-mac-snowleopard/svg/dynamic-updates/SVGFESpecularLightingElement-lighting-color-css-prop-expected.png:
        * platform/chromium-mac-snowleopard/svg/dynamic-updates/SVGFESpecularLightingElement-svgdom-in-prop-expected.png:
        * platform/chromium-mac-snowleopard/svg/dynamic-updates/SVGFESpecularLightingElement-svgdom-specularConstant-prop-expected.png:
        * platform/chromium-mac-snowleopard/svg/dynamic-updates/SVGFESpecularLightingElement-svgdom-specularExponent-prop-expected.png:
        * platform/chromium-mac-snowleopard/svg/dynamic-updates/SVGFESpecularLightingElement-svgdom-suraceScale-prop-expected.png:
        * platform/chromium-mac-snowleopard/svg/filters/feLighting-crash-expected.png:
        * platform/chromium-mac/svg/W3C-SVG-1.1/filters-specular-01-f-expected.png:
        * platform/chromium-mac/svg/dynamic-updates/SVGFESpecularLightingElement-dom-in-attr-expected.png:
        * platform/chromium-mac/svg/dynamic-updates/SVGFESpecularLightingElement-dom-specularConstant-attr-expected.png:
        * platform/chromium-mac/svg/dynamic-updates/SVGFESpecularLightingElement-dom-specularExponent-attr-expected.png:
        * platform/chromium-mac/svg/dynamic-updates/SVGFESpecularLightingElement-dom-suraceScale-attr-expected.png:
        * platform/chromium-mac/svg/dynamic-updates/SVGFESpecularLightingElement-inherit-lighting-color-css-prop-expected.png:
        * platform/chromium-mac/svg/dynamic-updates/SVGFESpecularLightingElement-lighting-color-css-prop-expected.png:
        * platform/chromium-mac/svg/dynamic-updates/SVGFESpecularLightingElement-svgdom-in-prop-expected.png:
        * platform/chromium-mac/svg/dynamic-updates/SVGFESpecularLightingElement-svgdom-specularConstant-prop-expected.png:
        * platform/chromium-mac/svg/dynamic-updates/SVGFESpecularLightingElement-svgdom-specularExponent-prop-expected.png:
        * platform/chromium-mac/svg/dynamic-updates/SVGFESpecularLightingElement-svgdom-suraceScale-prop-expected.png:
        * platform/chromium-mac/svg/filters/feLighting-crash-expected.png:
        * platform/chromium-win-vista/svg/filters/feLighting-crash-expected.png:
        * platform/chromium-win-xp/svg/filters/feLighting-crash-expected.png:
        * platform/chromium-win/svg/W3C-SVG-1.1/filters-specular-01-f-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGFESpecularLightingElement-dom-in-attr-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGFESpecularLightingElement-dom-specularConstant-attr-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGFESpecularLightingElement-dom-specularExponent-attr-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGFESpecularLightingElement-dom-suraceScale-attr-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGFESpecularLightingElement-inherit-lighting-color-css-prop-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGFESpecularLightingElement-lighting-color-css-prop-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGFESpecularLightingElement-svgdom-in-prop-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGFESpecularLightingElement-svgdom-specularConstant-prop-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGFESpecularLightingElement-svgdom-specularExponent-prop-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGFESpecularLightingElement-svgdom-suraceScale-prop-expected.png:
        * platform/chromium-win/svg/filters/feLighting-crash-expected.png:
        * platform/chromium/TestExpectations:

2012-06-15  Abhishek Arya  <inferno@chromium.org>

        Cleanup empty anonymous block continuation.
        https://bugs.webkit.org/show_bug.cgi?id=74976

        Reviewed by Julien Chaffraix.

        * fast/inline/inline-empty-block-continuation-remove-expected.html: Added.
        * fast/inline/inline-empty-block-continuation-remove.html: Added.
        and a bunch of rebaselines in existing tests.

2012-06-15  Zan Dobersek  <zandobersek@gmail.com>

        Clean up the flaky tests section in Gtk's TestExpectations file. Remove
        flakiness expectations for tests that have been consistently passing and
        move expectations for tests that have been consistently failing under
        the failing tests section, changing the expectations to represent a constant
        expected failure for that test.

        Rubber-stamped by Philippe Normand.

        * platform/gtk/TestExpectations:

2012-06-15  Taiju Tsuiki  <tzik@chromium.org>

        Web Inspector: Move FileSystem frame management from frontend to backend
        https://bugs.webkit.org/show_bug.cgi?id=89190

        Reviewed by Vsevolod Vlasov.

        * http/tests/inspector/filesystem/read-directory.html:

2012-06-15  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: extension's Resource.getContent always returns original revision.
        https://bugs.webkit.org/show_bug.cgi?id=89219

        Reviewed by Vsevolod Vlasov.

        * inspector/extensions/extensions-resources-expected.txt:
        * inspector/extensions/extensions-resources.html:

2012-06-15  Florin Malita  <fmalita@chromium.org>

        Specular light filters produce dark results
        https://bugs.webkit.org/show_bug.cgi?id=89116

        Reviewed by Dirk Schulze.

        * platform/chromium-linux/svg/W3C-SVG-1.1/filters-specular-01-f-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGFESpecularLightingElement-dom-in-attr-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGFESpecularLightingElement-dom-specularConstant-attr-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGFESpecularLightingElement-dom-specularExponent-attr-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGFESpecularLightingElement-dom-suraceScale-attr-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGFESpecularLightingElement-inherit-lighting-color-css-prop-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGFESpecularLightingElement-lighting-color-css-prop-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGFESpecularLightingElement-svgdom-in-prop-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGFESpecularLightingElement-svgdom-specularConstant-prop-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGFESpecularLightingElement-svgdom-specularExponent-prop-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGFESpecularLightingElement-svgdom-suraceScale-prop-expected.png:
        * platform/chromium-linux/svg/filters/feLighting-crash-expected.png:
        * platform/chromium/TestExpectations:
        * platform/mac/TestExpectations:
        * svg/filters/feSpecularLight-premultiplied-expected.svg: Added.
        * svg/filters/feSpecularLight-premultiplied.svg: Added.

2012-06-15  Stephen Chenney  <schenney@chromium.org>

        SVG Composite of Offset filters incorrectly clips
        https://bugs.webkit.org/show_bug.cgi?id=77660

        Reviewed by Dirk Schulze.

        * svg/filters/container-with-filters-expected.svg: Added.
        * svg/filters/container-with-filters.svg: Added.

2012-06-15  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: CRASH: getProfile is crashing for unknown profiles.
        https://bugs.webkit.org/show_bug.cgi?id=89202

        Reviewed by Pavel Feldman.

        * inspector/profiler/heap-snapshot-get-profile-crash-expected.txt: Added.
        * inspector/profiler/heap-snapshot-get-profile-crash.html: Added.

2012-06-15  Kent Tamura  <tkent@chromium.org>

        [Chromium] Rebaseline for type=range tests.
        https://bugs.webkit.org/show_bug.cgi?id=89067

        * platform/chromium-linux/fast/forms/range/input-appearance-range-expected.txt: Added.

2012-06-15  Ryosuke Niwa  <rniwa@webkit.org>

        Use testRunner instead of layoutTestController in layout test resources
        https://bugs.webkit.org/show_bug.cgi?id=89182

        Reviewed by Kent Tamura.

        * resources/dump-as-markup.js:
        (Markup.waitUntilDone):
        (Markup.notifyDone):
        * resources/magnitude-perf.js:
        (Magnitude._run):
        (Magnitude._runIteration):
        (Magnitude):
        * resources/testharnessreport.js:

2012-06-15  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening, adding TEXT expectation for
        editing/spelling/grammar-edit-word.html after r120423.

        * platform/gtk/TestExpectations:

2012-06-15  Kent Tamura  <tkent@chromium.org>

        [Chromium] Rebaseline for type=range tests.
        https://bugs.webkit.org/show_bug.cgi?id=89067

        * fast/forms/range/range-thumb-height-percentage-expected.txt: Renamed from LayoutTests/platform/efl/fast/forms/range/range-thumb-height-percentage-expected.txt.
        * platform/chromium-linux/fast/forms/range/range-thumb-height-percentage-expected.txt: Renamed from LayoutTests/platform/gtk/fast/forms/range/range-thumb-height-percentage-expected.txt.
        * platform/chromium-linux/fast/forms/range/slider-padding-expected.txt: Added.
        * platform/chromium-linux/fast/forms/range/slider-thumb-shared-style-expected.txt: Added.
        * platform/chromium-win/fast/forms/range/input-appearance-range-expected.png:
        * platform/chromium-win/fast/forms/range/input-appearance-range-expected.txt:
        * platform/chromium/TestExpectations:

2012-06-15  Szilard Ledan  <szledan@inf.u-szeged.hu>

        [Qt] Gardening. Skip a failing test. After r120423.
        https://bugs.webkit.org/show_bug.cgi?id=89199

        Reviewed by Csaba Osztrogonác.

        * platform/qt/Skipped:

2012-06-15  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>

        [EFL] Gardening after r120411
        https://bugs.webkit.org/show_bug.cgi?id=89194

        Unreviewed EFL gardening, updating baselines after r120411.

        * platform/efl/fast/dom/HTMLInputElement/input-slider-update-expected.txt:
        * platform/efl/fast/forms/box-shadow-override-expected.png:
        * platform/efl/fast/forms/box-shadow-override-expected.txt:
        * platform/efl/fast/forms/input-appearance-height-expected.png:
        * platform/efl/fast/forms/input-appearance-height-expected.txt:
        * platform/efl/fast/forms/range/input-appearance-range-expected.png:
        * platform/efl/fast/forms/range/input-appearance-range-expected.txt:
        * platform/efl/fast/forms/range/range-thumb-height-percentage-expected.png:
        * platform/efl/fast/forms/range/range-thumb-height-percentage-expected.txt:
        * platform/efl/fast/forms/range/slider-padding-expected.png:
        * platform/efl/fast/forms/range/slider-padding-expected.txt:
        * platform/efl/fast/forms/range/slider-thumb-shared-style-expected.png:
        * platform/efl/fast/forms/range/slider-thumb-shared-style-expected.txt:
        * platform/efl/fast/forms/range/slider-thumb-stylability-expected.txt:
        * platform/efl/fast/multicol/client-rects-expected.png:
        * platform/efl/fast/multicol/client-rects-expected.txt:
        * platform/efl/fast/repaint/slider-thumb-drag-release-expected.txt:

2012-06-15  Hajime Morrita  <morrita@chromium.org>

        Unreviewed expectation rebaselining.

        * platform/chromium-linux-x86/fast/multicol/client-rects-expected.png: Copied from LayoutTests/platform/chromium-linux/fast/multicol/client-rects-expected.png.
        * platform/chromium-linux-x86/fast/multicol/client-rects-expected.txt: Copied from LayoutTests/platform/chromium-win/fast/multicol/client-rects-expected.txt.
        * platform/chromium-linux/fast/multicol/client-rects-expected.png:
        * platform/chromium-linux/fast/multicol/client-rects-expected.txt: Copied from LayoutTests/platform/chromium-win/fast/multicol/client-rects-expected.txt.
        * platform/chromium-mac-snowleopard/fast/multicol/client-rects-expected.txt: Added.
        * platform/chromium-win-vista/fast/multicol/client-rects-expected.png: Added.
        * platform/chromium-win-vista/fast/multicol/client-rects-expected.txt: Copied from LayoutTests/platform/chromium-win/fast/multicol/client-rects-expected.txt.
        * platform/chromium-win-xp/fast/multicol/client-rects-expected.png: Added.
        * platform/chromium-win-xp/fast/multicol/client-rects-expected.txt: Copied from LayoutTests/platform/chromium-win/fast/multicol/client-rects-expected.txt.
        * platform/chromium-win/fast/multicol/client-rects-expected.png:
        * platform/chromium-win/fast/multicol/client-rects-expected.txt:

2012-06-15  Kent Tamura  <tkent@chromium.org>

        [Chromium] Rebaseline for type=range tests.
        https://bugs.webkit.org/show_bug.cgi?id=89067

        * platform/chromium-win/fast/dom/HTMLInputElement/input-slider-update-styled-expected.txt: Added.
        * platform/chromium-win/fast/forms/range/range-thumb-height-percentage-expected.txt:
        * platform/chromium-win/fast/forms/range/slider-padding-expected.txt:
        * platform/chromium-win/fast/forms/range/slider-thumb-shared-style-expected.txt:
        * platform/chromium-win/fast/repaint/slider-thumb-float-expected.txt: Added.
        * platform/chromium/TestExpectations:

2012-06-15  János Badics  <jbadics@inf.u-szeged.hu>

        [Qt] Gardening after r120411. Updated baselines of 7 tests because of a color property change.

        Reviewed by Csaba Osztrogonác.

        * platform/qt/fast/dom/HTMLInputElement/input-slider-update-expected.png:
        * platform/qt/fast/dom/HTMLInputElement/input-slider-update-expected.txt:
        * platform/qt/fast/forms/box-shadow-override-expected.png:
        * platform/qt/fast/forms/box-shadow-override-expected.txt:
        * platform/qt/fast/forms/range/input-appearance-range-expected.txt:
        * platform/qt/fast/forms/range/range-thumb-height-percentage-expected.png: Added.
        * platform/qt/fast/forms/range/range-thumb-height-percentage-expected.txt:
        * platform/qt/fast/forms/range/slider-padding-expected.png:
        * platform/qt/fast/forms/range/slider-padding-expected.txt:
        * platform/qt/fast/multicol/client-rects-expected.png: Added.
        * platform/qt/fast/multicol/client-rects-expected.txt:
        * platform/qt/fast/repaint/slider-thumb-drag-release-expected.png:
        * platform/qt/fast/repaint/slider-thumb-drag-release-expected.txt:

2012-06-15  Kent Tamura  <tkent@chromium.org>

        [Chromium] Update TestExpectations
        https://bugs.webkit.org/show_bug.cgi?id=89067

        * platform/chromium/TestExpectations:
        Mark some tests for type=range FAIL until all bots have the new results.

2012-06-15  Kent Tamura  <tkent@chromium.org>

        [Chromium] Fix a syntax error of TestExpectations.

        * platform/chromium/TestExpectations:

2012-06-15  Jian Li  <jianli@chromium.org>

        FileReader is dysfunctional in documents with "null" origin string
        https://bugs.webkit.org/show_bug.cgi?id=78648

        Reviewed by Adam Barth.

        * fast/files/file-reader-file-url-expected.txt: Added.
        * fast/files/file-reader-file-url.html: Added.
        * fast/files/resources/file-reader-file-url-iframe.html: Added.

2012-06-15  Kent Tamura  <tkent@chromium.org>

        [Chromium] Update TestExpectations
        https://bugs.webkit.org/show_bug.cgi?id=89067

        * platform/chromium-mac/fast/multicol/client-rects-expected.txt:

2012-06-15  Taiju Tsuiki  <tzik@chromium.org>

        Web Inspector: LayoutTest http/tests/inspector/filesystem/* should clean up FileSystem after test.
        https://bugs.webkit.org/show_bug.cgi?id=89066

        Reviewed by Vsevolod Vlasov.

        * http/tests/inspector/filesystem/filesystem-test.js:
        (initialize_FileSystemTest.InspectorTest.clearFileSystem):
        (dispatchCallback):
        (createDirectory.gotFileSystem):
        (createDirectory):
        (createFile.gotFileSystem):
        (clearFileSystem.gotRoot):
        (clearFileSystem.gotRoot.removeAll):
        (clearFileSystem.onError):
        * http/tests/inspector/filesystem/read-directory.html:

2012-06-15  Kent Tamura  <tkent@chromium.org>

        [Chromium] Update TestExpectations
        https://bugs.webkit.org/show_bug.cgi?id=89192

        * platform/chromium/TestExpectations:
        Failulre of platform/chromium/accessibility/add-to-menu-list-crashes.html is expected.

2012-06-15  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] EFL's LayoutTestController does not support titleTextDirection
        https://bugs.webkit.org/show_bug.cgi?id=86475

        Reviewed by Hajime Morita.

        Unskip title-directionality tests now that EFL's LayoutTestController
        supports titleTextDirection.

        * platform/efl/TestExpectations:

2012-06-15  Emil A Eklund  <eae@chromium.org>

        Unreviewed chromium windows rebaseline.

        * platform/chromium-win/tables/mozilla_expected_failures/bugs/bug89315-expected.png:

2012-06-15  Kent Tamura  <tkent@chromium.org>

        A followup for r120413.
        https://bugs.webkit.org/show_bug.cgi?id=89187

        We need to update fast/dom/htmlcollection-non-html.html for
        HTMLSelectElement::selectedOptions removal.

        * fast/dom/htmlcollection-non-html-expected.txt:
        * fast/dom/htmlcollection-non-html.html:
        * platform/gtk/TestExpectations:

2012-06-15  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening, adding a CRASH PASS expectation for
        storage/websql/quota-tracking.html which crashes intermittently
        on release builds.

        * platform/gtk/TestExpectations:

2012-06-15  Hironori Bono  <hbono@chromium.org>

        Allow platforms to choose whether to remove markers on editing
        https://bugs.webkit.org/show_bug.cgi?id=88838

        Reviewed by Hajime Morita.

        This change adds a test that verifies WebKit removes a grammar marker from a
        grammatically-incorrect word when editing the word.

        * editing/spelling/grammar-edit-word-expected.txt: Added.
        * editing/spelling/grammar-edit-word.html: Added.

2012-06-15  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening, adding test expectation for
        fast/dom/htmlcollection-non-html.html after r120413.

        * platform/gtk/TestExpectations:

2012-06-15  Emil A Eklund  <eae@chromium.org>

        Unreviewed chromium mac rebaseline.

        * platform/chromium-mac-leopard/tables/mozilla_expected_failures/bugs/bug89315-expected.png:
        * platform/chromium-mac-snowleopard/tables/mozilla_expected_failures/bugs/bug89315-expected.png:
        * platform/chromium-mac/tables/mozilla_expected_failures/bugs/bug89315-expected.png:
        * platform/chromium-mac/tables/mozilla_expected_failures/bugs/bug89315-expected.txt:

2012-06-15  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening, updating baselines after r120411.

        * platform/gtk/fast/dom/HTMLInputElement/input-slider-update-expected.txt:
        * platform/gtk/fast/forms/box-shadow-override-expected.txt:
        * platform/gtk/fast/forms/input-appearance-height-expected.txt:
        * platform/gtk/fast/forms/range/input-appearance-range-expected.txt:
        * platform/gtk/fast/forms/range/range-thumb-height-percentage-expected.txt:
        * platform/gtk/fast/forms/range/slider-padding-expected.txt:
        * platform/gtk/fast/forms/range/slider-thumb-shared-style-expected.txt:
        * platform/gtk/fast/forms/range/slider-thumb-stylability-expected.txt:
        * platform/gtk/fast/multicol/client-rects-expected.txt:
        * platform/gtk/fast/repaint/slider-thumb-drag-release-expected.txt:

2012-06-15  Ryosuke Niwa  <rniwa@webkit.org>

        Use testRunner instead of layoutTestController in networkinformation, perf, plugins, pointer-lock, printing, scrollbars, and security tests
        https://bugs.webkit.org/show_bug.cgi?id=89181

        Reviewed by Kent Tamura.

        * perf/clone-with-focus.html:
        * perf/nested-combined-selectors.html:
        * perf/table-rows-length-caching.html:
        * platform/chromium/plugins/call-as-function.html:
        * platform/chromium/plugins/get-url-with-blank-target2.html:
        * platform/chromium/plugins/get-url-with-iframe-target-no-crash.html:
        * platform/chromium/printing/custom-page-size-style-expected.txt:
        * platform/chromium/printing/custom-page-size-style.html:
        * platform/gtk/plugins/invalidate-rect-with-null-npp-argument.html:
        * platform/gtk/scrollbars/overflow-scrollbar-horizontal-wheel-scroll.html:
        * platform/mac-wk2/plugins/contents-scale-factor.html:
        * platform/mac-wk2/plugins/mouse-events-scaled.html:
        * platform/mac/plugins/bindings-array-apply-crash.html:
        * platform/mac/plugins/bindings-objc-long-method-name.html:
        * platform/mac/plugins/bindings-objc-method-name-conversion.html:
        * platform/mac/plugins/bindings-test-objc.html:
        * platform/mac/plugins/call-as-function-test.html:
        * platform/mac/plugins/convert-point.html:
        * platform/mac/plugins/disable-plugins.html:
        * platform/mac/plugins/jsobjc-dom-wrappers.html:
        * platform/mac/plugins/jsobjc-simple.html:
        * platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html-disabled:
        * platform/mac/plugins/root-object-premature-delete-crash.html:
        * platform/mac/plugins/supports-carbon-event-model.html:
        * platform/mac/plugins/testplugin-onnew-onpaint.html:
        * platform/mac/plugins/throw-on-dealloc.html:
        * platform/mac/plugins/undefined-property-crash.html:
        * platform/mac/plugins/update-widget-from-style-recalc.html:
        * platform/mac/plugins/webScriptObject-exception-deadlock.html:
        * platform/mac/scrollbars/key-window-not-first-responder.html:
        * platform/qt/plugins/application-plugin-plugins-disabled.html:
        * platform/win/plugins/call-javascript-that-destroys-plugin.html:
        * platform/win/plugins/get-value-netscape-window.html:
        * platform/win/plugins/iframe-inside-overflow.html:
        * platform/win/plugins/npn-invalidate-rect-invalidates-window.html:
        * platform/win/plugins/visibility-hidden.html:
        * platform/win/plugins/window-geometry-initialized-before-set-window.html:
        * platform/win/plugins/window-region-is-set-to-clip-rect.html:
        * platform/win/plugins/windowless-paint-rect-coordinates.html:
        * plugins/:
        * pointer-lock/lock-fail-responses-expected.txt:
        * pointer-lock/lock-fail-responses.html:
        * pointer-lock/pointer-lock-api.html:
        * pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt:
        * pointer-lock/pointerlockchange-pointerlockerror-events.html:
        * pointer-lock/pointerlocklost-event-expected.txt:
        * pointer-lock/pointerlocklost-event.html:
        * printing/compositing-layer-printing.html:
        * printing/css2.1/README.txt:
        * printing/css2.1/page-break-after-000.html:
        * printing/css2.1/page-break-after-001.html:
        * printing/css2.1/page-break-after-002.html:
        * printing/css2.1/page-break-after-003.html:
        * printing/css2.1/page-break-after-004.html:
        * printing/css2.1/page-break-before-000.html:
        * printing/css2.1/page-break-before-001.html:
        * printing/css2.1/page-break-before-002.html:
        * printing/css2.1/page-break-inside-000.html:
        * printing/iframe-print.html:
        * printing/media-queries-print.html:
        * printing/numberOfPages-expected.txt:
        * printing/page-count-layout-overflow.html:
        * printing/page-count-relayout-shrink.html:
        * printing/page-count-with-one-word.html:
        * printing/page-format-data-display-none.html:
        * printing/page-format-data-expected.txt:
        * printing/page-format-data.html:
        * printing/page-rule-css-text.html:
        * printing/page-rule-in-media-query.html:
        * printing/page-rule-selection-expected.txt:
        * printing/page-rule-selection.html:
        * printing/pageNumerForElementById-expected.txt:
        * printing/print-close-crash.html:
        * printing/pseudo-class-outside-page.html:
        * printing/resources/paged-media-test-utils.js:
        (pageNumberForElementShouldBe):
        (numberOfPagesShouldBe):
        (runPrintingTest):
        * printing/return-from-printing-mode.html:
        * printing/script-tests/numberOfPages.js:
        * printing/script-tests/pageNumerForElementById.js:
        * printing/setPrinting.html:
        * printing/simultaneous-position-float-change.html:
        * printing/single-line-must-not-be-split-into-two-pages.html:
        * printing/width-overflow.html:
        * printing/zoomed-document.html:
        * scrollbars/hidden-iframe-scrollbar-crash.html:
        * scrollbars/hidden-iframe-scrollbar-crash2.html:
        * scrollbars/hidden-scrollbar-prevents-layout.html:
        * scrollbars/overflow-custom-scrollbar-crash.html:
        * scrollbars/resources/hidden-iframe-scrollbar-crash2.html:
        * scrollbars/scroll-rtl-or-bt-layer.html:
        * scrollbars/scrollable-iframe-remove-crash.html:
        * scrollbars/scrollbar-click-does-not-blur-content.html:
        * scrollbars/scrollbar-crash-on-refresh.html:
        * scrollbars/scrollbar-drag-thumb-with-large-content.html:
        * scrollbars/scrollbar-gradient-crash.html:
        * scrollbars/scrollbar-iframe-click-does-not-blur-content.html:
        * scrollbars/scrollbar-initial-position.html:
        * scrollbars/scrollbar-middleclick-nopaste.html:
        * scrollbars/scrollbar-miss-mousemove-disabled.html:
        * scrollbars/scrollbar-miss-mousemove.html:
        * scrollbars/scrollbar-owning-renderer-crash.html:
        * scrollbars/scrollbar-part-created-with-no-parent-crash.html:
        * scrollbars/scrollbar-percent-padding-crash.html:
        * scrollbars/scrollbar-scrollbarparts-repaint-crash.html:
        * scrollbars/scrollevent-iframe-no-scrolling-wheel.html:
        * scrollbars/scrollevent-iframe-no-scrolling.html:
        * security/autocomplete-cleared-on-back.html:
        * security/block-test-no-port.html:
        * security/block-test.html:
        * security/set-form-autocomplete-attribute.html:

2012-06-15  Ryosuke Niwa  <rniwa@webkit.org>

        Use testRunner instead of layoutTestController in ietestcenter, inspector, java, jquery, loader, mathml, media, and mhtml tests
        https://bugs.webkit.org/show_bug.cgi?id=89176

        Reviewed by Kent Tamura.

        * ietestcenter/css3/bordersbackgrounds/background-attachment-local-scrolling.htm:
        * inspector/audits/resources/audits-style1.css:
        * inspector/console/console-long-eval-crash.html:
        * inspector/extensions/extensions-audits-content-script.html:
        * inspector/extensions/extensions-eval-content-script.html:
        * inspector/profiler/cpu-profiler-profiling-without-inspector.html:
        * inspector/timeline/timeline-animation-frame.html:
        * inspector/timeline/timeline-paint.html:
        * inspector/timeline/timeline-receive-response-event.html:
        * inspector/timeline/timeline-timer.html:
        * java/argument-to-object-type.html:
        * java/array-return.html:
        * java/array-sort.html:
        * java/embedding-java-with-object.html:
        * java/inaccessible-class.html:
        * java/inline-applet-crash.html:
        * java/java-and-plugins.html:
        * java/lc3/:
        * jquery/resources/helper.js:
        * loader/go-back-to-different-window-size.html:
        * loader/load-defer-resume-crash.html:
        * loader/navigation-while-deferring-loads.html:
        * loader/reload-subresource-when-type-changes.html:
        * mathml/EmptyMFracCrash.xhtml:
        * mathml/EmptyMunderOverCrash.xhtml:
        * mathml/empty-mroot-crash.xhtml:
        * mathml/empty-msubsup-crash.html:
        * mathml/fenced-whitespace-separators-crash.html:
        * mathml/msub-anonymous-child-render-crash.html:
        * mathml/msubsup-no-grandchild.xhtml:
        * mathml/msubsup-remove-children.xhtml:
        * mathml/munderover-remove-children.html:
        * mathml/operator-hijacks-fenced-node.xhtml:
        * mathml/wbr-in-mroot-crash.html:
        * media/W3C/w3cwrapper.js:
        (test):
        (async_test.t.done):
        (async_test):
        * media/adopt-node-crash.html:
        * media/audio-controls-do-not-fade-out.html:
        * media/audio-controls-rendering.html:
        * media/audio-delete-while-slider-thumb-clicked.html:
        * media/audio-delete-while-step-button-clicked.html:
        * media/audio-garbage-collect.html:
        * media/audio-no-installed-engines.html:
        * media/audio-only-video-intrinsic-size.html:
        * media/audio-repaint.html:
        * media/context-menu-actions.html:
        * media/controls-after-reload.html:
        * media/controls-drag-timebar.html:
        * media/controls-layout-direction.html:
        * media/controls-right-click-on-timebar.html:
        * media/controls-without-preload.html:
        * media/crash-closing-page-with-media-as-plugin-fallback.html:
        * media/fallback.html:
        * media/media-blocked-by-beforeload.html:
        * media/media-blocked-by-willsendrequest.html:
        * media/media-controls-clone-crash.html:
        * media/media-controls-invalid-url.html:
        * media/media-document-audio-repaint.html:
        * media/media-document-audio-size.html:
        * media/media-fullscreen.js:
        (canplaythrough):
        * media/media-volume-slider-rendered-normal.html:
        * media/no-auto-play-in-sandbox.html:
        * media/remove-from-document-before-load.html:
        * media/resources/foreignobject-media.svg:
        * media/restore-from-page-cache.html:
        * media/svg-as-image-with-media-blocked.html:
        * media/video-beforeload-remove-source.html:
        * media/video-canvas-alpha.html:
        * media/video-canvas.html-disabled:
        * media/video-click-dblckick-standalone.html:
        * media/video-controls-in-media-document.html:
        * media/video-controls-no-scripting.html:
        * media/video-controls-toggling.html:
        * media/video-controls-visible-audio-only.html:
        * media/video-controls-with-mutation-event-handler.html:
        * media/video-delay-load-event.html:
        * media/video-display-toggle.html:
        * media/video-document-types.html:
        * media/video-element-other-namespace-crash.html:
        * media/video-empty-source.html:
        * media/video-no-audio.html:
        * media/video-paint-test.js:
        (init.waitForMultipleEvents):
        (initAndPause.waitForMultipleEvents):
        (initAndPause):
        * media/video-plays-past-end-of-test.html:
        * media/video-poster-blocked-by-willsendrequest.html:
        * media/video-replaces-poster.html:
        * media/video-source-inserted.html:
        * media/video-test.js:
        (endTest):
        * media/video-volume-slider.html:
        * media/video-zoom.html:
        * mhtml/check_domain.mht:
        * mhtml/multi_frames.html_original:
        * mhtml/multi_frames_binary.mht:
        * mhtml/multi_frames_ie.mht:
        * mhtml/multi_frames_unmht.mht:
        * mhtml/page_with_css_and_js_ie.mht:
        * mhtml/page_with_css_and_js_unmht.mht:
        * mhtml/page_with_image.html_original:
        * mhtml/page_with_image_ie.mht:
        * mhtml/page_with_image_unmht.mht:
        * mhtml/simple_page.html_original:
        * mhtml/simple_page_ie.mht:
        * mhtml/simple_page_unmht.mht:
        * networkinformation/resources/event-after-navigation-new.html:
        * networkinformation/script-tests/event-after-navigation.js:
        * platform/chromium/media/video-frame-size-change.html:

2012-06-15  Emil A Eklund  <eae@chromium.org>

        Unreviewed chromium win and mac rebaseline for r120403.

        * platform/chromium-mac-leopard/svg/zoom/page/zoom-svg-through-object-with-absolute-size-2-expected.png:
        * platform/chromium-mac-leopard/svg/zoom/page/zoom-svg-through-object-with-absolute-size-expected.png:
        * platform/chromium-mac-leopard/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.png:
        * platform/chromium-mac-snowleopard/svg/zoom/page/zoom-svg-through-object-with-absolute-size-2-expected.png:
        * platform/chromium-mac-snowleopard/svg/zoom/page/zoom-svg-through-object-with-absolute-size-expected.png:
        * platform/chromium-mac-snowleopard/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.png:
        * platform/chromium-mac/svg/zoom/page/zoom-svg-through-object-with-absolute-size-2-expected.png:
        * platform/chromium-mac/svg/zoom/page/zoom-svg-through-object-with-absolute-size-2-expected.txt:
        * platform/chromium-mac/svg/zoom/page/zoom-svg-through-object-with-absolute-size-expected.png:
        * platform/chromium-mac/svg/zoom/page/zoom-svg-through-object-with-absolute-size-expected.txt:
        * platform/chromium-mac/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.png:
        * platform/chromium-mac/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.txt:
        * platform/chromium-win/svg/zoom/page/zoom-svg-through-object-with-absolute-size-2-expected.png:
        * platform/chromium-win/svg/zoom/page/zoom-svg-through-object-with-absolute-size-2-expected.txt:
        * platform/chromium-win/svg/zoom/page/zoom-svg-through-object-with-absolute-size-expected.png:
        * platform/chromium-win/svg/zoom/page/zoom-svg-through-object-with-absolute-size-expected.txt:
        * platform/chromium-win/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.png:
        * platform/chromium-win/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.txt:
        * platform/chromium/TestExpectations:

2012-06-14  Kent Tamura  <tkent@chromium.org>

        Unreviewed, rolling out r110340.
        http://trac.webkit.org/changeset/110340
        https://bugs.webkit.org/show_bug.cgi?id=88749

        * fast/dom/HTMLSelectElement/select-selectedOptions-expected.txt: Removed.
        * fast/dom/HTMLSelectElement/select-selectedOptions.html: Removed.

2012-06-15  MORITA Hajime  <morrita@google.com>

        Unreviewed typo fix for r120405.

        * platform/chromium/TestExpectations:

2012-06-14  Keishi Hattori  <keishi@webkit.org>

        Add color property to input type=range
        https://bugs.webkit.org/show_bug.cgi?id=89067

        Reviewed by Kent Tamura.

        * fast/dom/HTMLInputElement/input-slider-update-styled-expected.txt:
        * fast/repaint/slider-thumb-float-expected.txt:
        * platform/chromium-linux/fast/dom/HTMLInputElement/input-slider-update-expected.txt: Copied from LayoutTests/platform/chromium-win/fast/dom/HTMLInputElement/input-slider-update-expected.txt.
        * platform/chromium-linux/fast/dom/HTMLInputElement/input-slider-update-styled-expected.txt: Copied from LayoutTests/fast/dom/HTMLInputElement/input-slider-update-styled-expected.txt.
        * platform/chromium-linux/fast/forms/box-shadow-override-expected.txt:
        * platform/chromium-linux/fast/forms/input-appearance-height-expected.txt:
        * platform/chromium-linux/fast/forms/range/slider-thumb-stylability-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/range/slider-thumb-stylability-expected.txt.
        * platform/chromium-linux/fast/repaint/slider-thumb-drag-release-expected.txt: Copied from LayoutTests/platform/chromium-win/fast/repaint/slider-thumb-drag-release-expected.txt.
        * platform/chromium-linux/fast/repaint/slider-thumb-float-expected.txt: Copied from LayoutTests/fast/repaint/slider-thumb-float-expected.txt.
        * platform/chromium-mac/fast/forms/box-shadow-override-expected.txt:
        * platform/chromium-mac/fast/forms/input-appearance-height-expected.txt:
        * platform/chromium-mac/fast/forms/range/input-appearance-range-expected.txt:
        * platform/chromium-win/fast/dom/HTMLInputElement/input-slider-update-expected.txt:
        * platform/chromium-win/fast/forms/box-shadow-override-expected.txt:
        * platform/chromium-win/fast/forms/input-appearance-height-expected.txt:
        * platform/chromium-win/fast/forms/range/input-appearance-range-expected.txt:
        * platform/chromium-win/fast/forms/range/range-thumb-height-percentage-expected.txt:
        * platform/chromium-win/fast/forms/range/slider-padding-expected.txt:
        * platform/chromium-win/fast/forms/range/slider-thumb-shared-style-expected.txt:
        * platform/chromium-win/fast/forms/range/slider-thumb-stylability-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/range/slider-thumb-stylability-expected.txt.
        * platform/chromium-win/fast/repaint/slider-thumb-drag-release-expected.txt:
        * platform/mac/fast/dom/HTMLInputElement/input-slider-update-expected.txt:
        * platform/mac/fast/forms/range/range-thumb-height-percentage-expected.txt:
        * platform/mac/fast/forms/range/slider-padding-expected.txt:
        * platform/mac/fast/forms/range/slider-thumb-shared-style-expected.txt:
        * platform/mac/fast/forms/range/slider-thumb-stylability-expected.txt:
        * platform/mac/fast/repaint/slider-thumb-drag-release-expected.txt:

2012-06-14  Emil A Eklund  <eae@chromium.org>

        Unreviewed rebaseline for mac chromium following r120403.

        * platform/chromium-mac/tables/mozilla/bugs/bug55527-expected.txt: Removed.

2012-06-14  Ryosuke Niwa  <rniwa@webkit.org>

        Use testRunner instead of layoutTestController in battery status and canvas tests
        https://bugs.webkit.org/show_bug.cgi?id=88761

        Reviewed by Tony Chang.

        * batterystatus/resources/event-after-navigation-new.html:
        * batterystatus/script-tests/event-after-navigation.js:
        * canvas/philip/tests.js:
        (_addTest.endTest):
        (_addTest.window.onload):
        (_addTest):
        * canvas/philip/tests/2d.text-custom-font-load-crash.html:

2012-06-14  Emil A Eklund  <eae@chromium.org>

        Cast paddings to int in RenderTableCell
        https://bugs.webkit.org/show_bug.cgi?id=88918

        Reviewed by Levi Weintraub.

        Add test ensuring that table cells does not wrap when using fractional
        paddings.

        * fast/sub-pixel/table-cells-with-padding-do-not-wrap-expected.txt: Added.
        * fast/sub-pixel/table-cells-with-padding-do-not-wrap.html: Added.
        * platform/chromium-linux/svg/zoom/page/zoom-svg-through-object-with-absolute-size-2-expected.png:
        * platform/chromium-linux/svg/zoom/page/zoom-svg-through-object-with-absolute-size-2-expected.txt:
        * platform/chromium-linux/svg/zoom/page/zoom-svg-through-object-with-absolute-size-expected.png:
        * platform/chromium-linux/svg/zoom/page/zoom-svg-through-object-with-absolute-size-expected.txt:
        * platform/chromium-linux/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.png:
        * platform/chromium-linux/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.txt:
        * platform/chromium-linux/tables/mozilla_expected_failures/bugs/bug89315-expected.png:
        * platform/chromium-win/tables/mozilla_expected_failures/bugs/bug89315-expected.txt:
        * platform/chromium/TestExpectations:

2012-06-14  MORITA Hajime  <morrita@google.com>

        Unreviewed typo fix.

        * platform/chromium/TestExpectations:

2012-06-14  MORITA Hajime  <morrita@google.com>

        Unreviewed expectation update.
        - Marked cross-domain-message-event-dispatch.html and track-cue-rendering-snap-to-lines-not-set.html

        * platform/chromium/TestExpectations:

2012-06-14  Kent Tamura  <tkent@chromium.org>

        Validate form state strings in FormController::setStateForNewFormElements()
        https://bugs.webkit.org/show_bug.cgi?id=88768

        Reviewed by Hajime Morita.

        * fast/forms/resources/state-restore-broken-state-1.html: Added.
        * fast/forms/resources/state-restore-broken-state-2.html: Added.
        * fast/forms/state-restore-broken-state-expected.txt: Added.
        * fast/forms/state-restore-broken-state.html: Added.

2012-06-14  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r120393.
        http://trac.webkit.org/changeset/120393
        https://bugs.webkit.org/show_bug.cgi?id=89163

        breaks cr-mac build (Requested by morrita on #webkit).

        * platform/chromium/TestExpectations:

2012-06-14  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r120384.
        http://trac.webkit.org/changeset/120384
        https://bugs.webkit.org/show_bug.cgi?id=89157

        breaks create-blob-url-from-data-url.html (Requested by
        morrita on #webkit).

        * fast/files/file-reader-file-url-expected.txt: Removed.
        * fast/files/file-reader-file-url.html: Removed.
        * fast/files/resources/file-reader-file-url-iframe.html: Removed.

2012-06-14  Dale Curtis  <dalecurtis@chromium.org>

        Disable click/dbl-click on MediaDocument for Chromium. Fix layout test for all platforms.
        https://bugs.webkit.org/show_bug.cgi?id=89129

        Fixes layout test to actually test what it says it tests.  Previously it was
        testing the opposite behavior and passing because MediaDocument auto-plays.

        Additionally failing one half of the test would still allow you to pass the
        other half.  Both issues have been fixed.

        Updates the test expectations for Chromium to reflect a failure.

        Reviewed by Eric Carlson.

        * media/video-click-dblckick-standalone-expected.txt:
        * media/video-click-dblckick-standalone.html:
        * platform/chromium/media/video-click-dblckick-standalone-expected.txt: Copied from LayoutTests/media/video-click-dblckick-standalone-expected.txt.

2012-06-14  Jian Li  <jianli@chromium.org>

        Unreviewed. Skip the failed test due to r120384 for future investigation.

        * platform/chromium/TestExpectations:
        * platform/efl/Skipped:
        * platform/gtk/TestExpectations:
        * platform/mac/Skipped:
        * platform/qt/Skipped:

2012-06-14  Jian Li  <jianli@chromium.org>

        FileReader is dysfunctional in documents with "null" origin string
        https://bugs.webkit.org/show_bug.cgi?id=78648

        Reviewed by Adam Barth.

        * fast/files/file-reader-file-url-expected.txt: Added.
        * fast/files/file-reader-file-url.html: Added.
        * fast/files/resources/file-reader-file-url-iframe.html: Added.

2012-06-14  Mike West  <mkwst@chromium.org>

        Add test cases for header/footer elements' AXRoleDescription
        https://bugs.webkit.org/show_bug.cgi?id=88911

        Header and footer elements change their accessibility roles depending
        on the elements which contain them. Specifically, they are described
        as "banner" or "footer" in the general case, and fall back to
        generic "group" role descriptions when contained in either article or
        section elements. This patch simply tests that existing behavior on
        Mac.

        Reviewed by Chris Fleizach.

        * platform/mac/accessibility/footer-expected.txt: Added.
        * platform/mac/accessibility/footer.html: Added.
        * platform/mac/accessibility/header-expected.txt: Added.
        * platform/mac/accessibility/header.html: Added.

2012-06-14  Ryosuke Niwa  <rniwa@webkit.org>

        Fix Chromium test expectation after r120371.

        * platform/chromium/TestExpectations:

2012-06-14  Andrew Wilson  <atwilson@chromium.org>

        Unreviewed update of chromium TestExpectations to mark hybi/workers/close.html as failing.

        * platform/chromium/TestExpectations:

2012-06-14  Ryosuke Niwa  <rniwa@webkit.org>

        Get rid of FAIL test expectation
        https://bugs.webkit.org/show_bug.cgi?id=89137

        Reviewed by Dirk Pranke.

        * platform/chromium/TestExpectations:
        * platform/efl/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/qt/TestExpectations:

2012-06-14  Ryosuke Niwa  <rniwa@webkit.org>

        Radio node lists do not get updated when inserted back into a document
        https://bugs.webkit.org/show_bug.cgi?id=88825

        Reviewed by Darin Adler.

        Add a test case to an existing test.

        * fast/forms/radionodelist-whose-form-element-detached-from-domtree-expected.txt:
        * fast/forms/radionodelist-whose-form-element-detached-from-domtree.html:

2012-06-14  Jia Pu  <jpu@apple.com>

        Mark text with text alternative with blue underline.
        https://bugs.webkit.org/show_bug.cgi?id=83047

        Reviewed by Enrica Casucci.

        * platform/mac-lion/Skipped:
        * platform/mac-snowleopard/Skipped:
        * platform/mac/editing/input/edit-dictated-text-with-alternative-expected.txt: Added.
        * platform/mac/editing/input/edit-dictated-text-with-alternative.html: Added.
        * platform/mac/editing/input/insert-dictated-text-expected.txt: Added.
        * platform/mac/editing/input/insert-dictated-text.html: Added.

2012-06-14  Emil A Eklund  <eae@chromium.org>

        Change RenderTableSection::calcRowLogicalHeight to round rather than floor height
        https://bugs.webkit.org/show_bug.cgi?id=88813

        Reviewed by Julien Chaffraix.

        Add new test ensuring that rows are laid out the desired height when
        given a height that maps to a device pixel value.

        * fast/sub-pixel/table-rows-have-stable-height-expected.txt: Added.
        * fast/sub-pixel/table-rows-have-stable-height.html: Added.

2012-06-14  Zan Dobersek  <zandobersek@gmail.com>

        [Gtk] Add support in DumpRenderTree for tracking repaints
        https://bugs.webkit.org/show_bug.cgi?id=87658

        Reviewed by Martin Robinson.

        Update pixel baselines for all the tests in fast/repaint now that the
        Gtk's DumpRenderTree properly tracks the repaint rects and displays
        an appropriate overlay in the pixel results for such tests.

        * platform/gtk/fast/repaint/4774354-expected.png:
        * platform/gtk/fast/repaint/4776765-expected.png:
        * platform/gtk/fast/repaint/absolute-position-change-containing-block-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/float-new-in-block-expected.png.
        * platform/gtk/fast/repaint/absolute-position-changed-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/layer-visibility-expected.png.
        * platform/gtk/fast/repaint/absolute-position-moved-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/table-outer-border-expected.png.
        * platform/gtk/fast/repaint/background-clip-text-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/selection-clear-expected.png.
        * platform/gtk/fast/repaint/background-generated-expected.png:
        * platform/gtk/fast/repaint/background-misaligned-expected.png:
        * platform/gtk/fast/repaint/background-scaling-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/clip-with-layout-delta-expected.png.
        * platform/gtk/fast/repaint/backgroundSizeRepaint-expected.png:
        * platform/gtk/fast/repaint/block-layout-inline-children-float-positioned-expected.png: Added.
        * platform/gtk/fast/repaint/block-layout-inline-children-replaced-expected.png: Added.
        * platform/gtk/fast/repaint/block-no-inflow-children-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/slider-thumb-drag-release-expected.png.
        * platform/gtk/fast/repaint/block-selection-gap-in-composited-layer-expected.png:
        * platform/gtk/fast/repaint/block-selection-gap-in-table-cell-expected.png:
        * platform/gtk/fast/repaint/block-selection-gap-stale-cache-2-expected.png:
        * platform/gtk/fast/repaint/block-selection-gap-stale-cache-expected.png:
        * platform/gtk/fast/repaint/body-background-image-expected.png:
        * platform/gtk/fast/repaint/border-fit-lines-expected.png:
        * platform/gtk/fast/repaint/border-radius-repaint-expected.png:
        * platform/gtk/fast/repaint/border-repaint-glitch-expected.png:
        * platform/gtk/fast/repaint/box-shadow-dynamic-expected.png:
        * platform/gtk/fast/repaint/box-shadow-h-expected.png:
        * platform/gtk/fast/repaint/box-shadow-v-expected.png:
        * platform/gtk/fast/repaint/bugzilla-3509-expected.png:
        * platform/gtk/fast/repaint/bugzilla-5699-expected.png:
        * platform/gtk/fast/repaint/bugzilla-6278-expected.png:
        * platform/gtk/fast/repaint/bugzilla-6388-expected.png:
        * platform/gtk/fast/repaint/bugzilla-6473-expected.png:
        * platform/gtk/fast/repaint/bugzilla-7235-expected.png:
        * platform/gtk/fast/repaint/button-spurious-layout-hint-expected.png:
        * platform/gtk/fast/repaint/canvas-putImageData-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/selection-clear-expected.png.
        * platform/gtk/fast/repaint/caret-outside-block-expected.png:
        * platform/gtk/fast/repaint/change-transform-expected.png:
        * platform/gtk/fast/repaint/clip-with-layout-delta-expected.png:
        * platform/gtk/fast/repaint/clipped-relative-expected.png:
        * platform/gtk/fast/repaint/containing-block-position-change-expected.png:
        * platform/gtk/fast/repaint/content-into-overflow-expected.png:
        * platform/gtk/fast/repaint/continuation-after-outline-expected.png:
        * platform/gtk/fast/repaint/control-clip-expected.png:
        * platform/gtk/fast/repaint/create-layer-repaint-expected.png:
        * platform/gtk/fast/repaint/delete-into-nested-block-expected.png:
        * platform/gtk/fast/repaint/dynamic-table-vertical-alignment-change-expected.png:
        * platform/gtk/fast/repaint/erase-overflow-expected.png:
        * platform/gtk/fast/repaint/fixed-after-scroll-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/float-in-new-block-with-layout-delta-expected.png.
        * platform/gtk/fast/repaint/fixed-and-absolute-position-scrolled-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/table-outer-border-expected.png.
        * platform/gtk/fast/repaint/fixed-child-move-after-scroll-expected.png: Added.
        * platform/gtk/fast/repaint/fixed-child-of-fixed-move-after-scroll-expected.png: Added.
        * platform/gtk/fast/repaint/fixed-child-of-transformed-move-after-scroll-expected.png: Added.
        * platform/gtk/fast/repaint/fixed-expected.png:
        * platform/gtk/fast/repaint/fixed-in-page-scale-expected.png: Added.
        * platform/gtk/fast/repaint/fixed-move-after-keyboard-scroll-expected.png: Added.
        * platform/gtk/fast/repaint/fixed-move-after-scroll-expected.png: Added.
        * platform/gtk/fast/repaint/fixed-position-transparency-with-overflow-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/button-spurious-layout-hint-expected.png.
        * platform/gtk/fast/repaint/fixed-right-bottom-in-page-scale-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/slider-thumb-drag-release-expected.png.
        * platform/gtk/fast/repaint/fixed-right-in-page-scale-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/float-in-new-block-with-layout-delta-expected.png.
        * platform/gtk/fast/repaint/fixed-scale-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/table-outer-border-expected.png.
        * platform/gtk/fast/repaint/fixed-scroll-simple-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/table-section-overflow-expected.png.
        * platform/gtk/fast/repaint/fixed-table-cell-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/table-outer-border-expected.png.
        * platform/gtk/fast/repaint/fixed-table-overflow-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/table-outer-border-expected.png.
        * platform/gtk/fast/repaint/fixed-table-overflow-zindex-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/table-outer-border-expected.png.
        * platform/gtk/fast/repaint/fixed-to-relative-position-with-absolute-child-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/float-in-new-block-with-layout-delta-expected.png.
        * platform/gtk/fast/repaint/fixed-tranformed-expected.png: Added.
        * platform/gtk/fast/repaint/flexible-box-overflow-expected.png:
        * platform/gtk/fast/repaint/flexible-box-overflow-horizontal-expected.png:
        * platform/gtk/fast/repaint/float-in-new-block-with-layout-delta-expected.png:
        * platform/gtk/fast/repaint/float-move-during-layout-expected.png:
        * platform/gtk/fast/repaint/float-new-in-block-expected.png:
        * platform/gtk/fast/repaint/float-overflow-expected.png: Added.
        * platform/gtk/fast/repaint/float-overflow-right-expected.png: Added.
        * platform/gtk/fast/repaint/focus-layers-expected.png:
        * platform/gtk/fast/repaint/gradients-em-stops-repaint-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/table-outer-border-expected.png.
        * platform/gtk/fast/repaint/iframe-scroll-repaint-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/intermediate-layout-position-clip-expected.png.
        * platform/gtk/fast/repaint/inline-block-overflow-expected.png:
        * platform/gtk/fast/repaint/inline-block-resize-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/table-outer-border-expected.png.
        * platform/gtk/fast/repaint/inline-color-change-expected.png:
        * platform/gtk/fast/repaint/inline-horizontal-bt-overflow-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/layer-hide-when-needs-layout-expected.png.
        * platform/gtk/fast/repaint/inline-outline-repaint-expected.png:
        * platform/gtk/fast/repaint/inline-overflow-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/layer-hide-when-needs-layout-expected.png.
        * platform/gtk/fast/repaint/inline-relative-positioned-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/selection-clear-expected.png.
        * platform/gtk/fast/repaint/inline-vertical-lr-overflow-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/block-selection-gap-in-composited-layer-expected.png.
        * platform/gtk/fast/repaint/inline-vertical-rl-overflow-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/button-spurious-layout-hint-expected.png.
        * platform/gtk/fast/repaint/intermediate-layout-position-clip-expected.png:
        * platform/gtk/fast/repaint/intermediate-layout-position-expected.png:
        * platform/gtk/fast/repaint/invisible-objects-expected.png:
        * platform/gtk/fast/repaint/japanese-rl-selection-clear-expected.png: Added.
        * platform/gtk/fast/repaint/japanese-rl-selection-repaint-expected.png: Added.
        * platform/gtk/fast/repaint/japanese-rl-selection-repaint-in-regions-expected.png: Added.
        * platform/gtk/fast/repaint/layer-child-outline-expected.png:
        * platform/gtk/fast/repaint/layer-full-repaint-expected.png:
        * platform/gtk/fast/repaint/layer-hide-when-needs-layout-expected.png:
        * platform/gtk/fast/repaint/layer-outline-expected.png:
        * platform/gtk/fast/repaint/layer-outline-horizontal-expected.png:
        * platform/gtk/fast/repaint/layer-visibility-expected.png:
        * platform/gtk/fast/repaint/layout-state-only-positioned-expected.png:
        * platform/gtk/fast/repaint/layout-state-relative-expected.png:
        * platform/gtk/fast/repaint/layout-state-scrolloffset-expected.png: Added.
        * platform/gtk/fast/repaint/layout-state-scrolloffset2-expected.png: Added.
        * platform/gtk/fast/repaint/layout-state-scrolloffset3-expected.png: Added.
        * platform/gtk/fast/repaint/line-flow-with-floats-1-expected.png:
        * platform/gtk/fast/repaint/line-flow-with-floats-10-expected.png:
        * platform/gtk/fast/repaint/line-flow-with-floats-2-expected.png:
        * platform/gtk/fast/repaint/line-flow-with-floats-3-expected.png:
        * platform/gtk/fast/repaint/line-flow-with-floats-4-expected.png:
        * platform/gtk/fast/repaint/line-flow-with-floats-5-expected.png:
        * platform/gtk/fast/repaint/line-flow-with-floats-6-expected.png:
        * platform/gtk/fast/repaint/line-flow-with-floats-7-expected.png:
        * platform/gtk/fast/repaint/line-flow-with-floats-8-expected.png:
        * platform/gtk/fast/repaint/line-flow-with-floats-9-expected.png:
        * platform/gtk/fast/repaint/line-flow-with-floats-in-regions-expected.png: Added.
        * platform/gtk/fast/repaint/line-in-scrolled-clipped-block-expected.png:
        * platform/gtk/fast/repaint/line-overflow-expected.png:
        * platform/gtk/fast/repaint/lines-with-layout-delta-expected.png:
        * platform/gtk/fast/repaint/list-marker-2-expected.png:
        * platform/gtk/fast/repaint/list-marker-expected.png:
        * platform/gtk/fast/repaint/make-children-non-inline-expected.png:
        * platform/gtk/fast/repaint/moving-shadow-on-container-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/block-selection-gap-in-composited-layer-expected.png.
        * platform/gtk/fast/repaint/moving-shadow-on-path-expected.png: Added.
        * platform/gtk/fast/repaint/multicol-repaint-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/slider-thumb-drag-release-expected.png.
        * platform/gtk/fast/repaint/nested-iframe-scroll-inner-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/intermediate-layout-position-expected.png.
        * platform/gtk/fast/repaint/nested-iframe-scroll-outer-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/block-selection-gap-in-table-cell-expected.png.
        * platform/gtk/fast/repaint/no-caret-repaint-in-non-content-editable-element-expected.png:
        * platform/gtk/fast/repaint/opacity-change-on-overflow-float-expected.png:
        * platform/gtk/fast/repaint/outline-child-repaint-expected.png:
        * platform/gtk/fast/repaint/outline-inset-expected.png:
        * platform/gtk/fast/repaint/outline-repaint-glitch-expected.png:
        * platform/gtk/fast/repaint/outline-shrinking-expected.png:
        * platform/gtk/fast/repaint/overflow-auto-in-overflow-auto-scrolled-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/table-outer-border-expected.png.
        * platform/gtk/fast/repaint/overflow-clip-subtree-layout-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/block-selection-gap-in-composited-layer-expected.png.
        * platform/gtk/fast/repaint/overflow-delete-line-expected.png:
        * platform/gtk/fast/repaint/overflow-flipped-writing-mode-block-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/float-in-new-block-with-layout-delta-expected.png.
        * platform/gtk/fast/repaint/overflow-flipped-writing-mode-block-in-regions-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/layer-full-repaint-expected.png.
        * platform/gtk/fast/repaint/overflow-flipped-writing-mode-table-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/float-in-new-block-with-layout-delta-expected.png.
        * platform/gtk/fast/repaint/overflow-hidden-in-overflow-hidden-scrolled-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/float-in-new-block-with-layout-delta-expected.png.
        * platform/gtk/fast/repaint/overflow-hide-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/layer-hide-when-needs-layout-expected.png.
        * platform/gtk/fast/repaint/overflow-into-content-expected.png:
        * platform/gtk/fast/repaint/overflow-outline-repaint-expected.png:
        * platform/gtk/fast/repaint/overflow-scroll-body-appear-expected.png:
        * platform/gtk/fast/repaint/overflow-scroll-delete-expected.png:
        * platform/gtk/fast/repaint/overflow-scroll-in-overflow-scroll-scrolled-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/table-outer-border-expected.png.
        * platform/gtk/fast/repaint/overflow-show-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/table-row-expected.png.
        * platform/gtk/fast/repaint/reflection-redraw-expected.png:
        * platform/gtk/fast/repaint/reflection-repaint-test-expected.png:
        * platform/gtk/fast/repaint/region-painting-invalidation-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/float-new-in-block-expected.png.
        * platform/gtk/fast/repaint/region-painting-via-layout-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/selection-clear-expected.png.
        * platform/gtk/fast/repaint/rel-positioned-inline-with-overflow-expected.png:
        * platform/gtk/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.png:
        * platform/gtk/fast/repaint/repaint-across-writing-mode-boundary-expected.png: Added.
        * platform/gtk/fast/repaint/repaint-during-scroll-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/float-new-in-block-expected.png.
        * platform/gtk/fast/repaint/repaint-resized-overflow-expected.png:
        * platform/gtk/fast/repaint/repaint-svg-after-style-change-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/table-col-background-expected.png.
        * platform/gtk/fast/repaint/scale-page-shrink-expected.png:
        * platform/gtk/fast/repaint/scroll-absolute-layer-with-reflection-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/float-new-in-block-expected.png.
        * platform/gtk/fast/repaint/scroll-fixed-layer-with-no-visible-content-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/table-outer-border-expected.png.
        * platform/gtk/fast/repaint/scroll-fixed-layer-with-reflection-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/erase-overflow-expected.png.
        * platform/gtk/fast/repaint/scroll-fixed-layer-with-transformed-parent-layer-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/layer-visibility-expected.png.
        * platform/gtk/fast/repaint/scroll-fixed-reflected-layer-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/erase-overflow-expected.png.
        * platform/gtk/fast/repaint/scroll-in-clipped-layer-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/table-outer-border-expected.png.
        * platform/gtk/fast/repaint/scroll-in-fixed-layer-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/table-outer-border-expected.png.
        * platform/gtk/fast/repaint/scroll-in-transformed-layer-expected.png: Added.
        * platform/gtk/fast/repaint/scroll-inside-table-cell-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/continuation-after-outline-expected.png.
        * platform/gtk/fast/repaint/scroll-relative-table-inside-table-cell-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/block-selection-gap-in-composited-layer-expected.png.
        * platform/gtk/fast/repaint/scroll-with-transformed-parent-layer-expected.png: Added.
        * platform/gtk/fast/repaint/search-field-cancel-expected.png:
        * platform/gtk/fast/repaint/select-option-background-color-expected.png: Added.
        * platform/gtk/fast/repaint/selected-replaced-expected.png:
        * platform/gtk/fast/repaint/selection-after-delete-expected.png:
        * platform/gtk/fast/repaint/selection-after-remove-expected.png:
        * platform/gtk/fast/repaint/selection-clear-expected.png:
        * platform/gtk/fast/repaint/selection-gap-overflow-scroll-2-expected.png: Added.
        * platform/gtk/fast/repaint/selection-gap-overflow-scroll-expected.png:
        * platform/gtk/fast/repaint/selection-rl-expected.png: Added.
        * platform/gtk/fast/repaint/shadow-multiple-horizontal-expected.png:
        * platform/gtk/fast/repaint/shadow-multiple-strict-horizontal-expected.png:
        * platform/gtk/fast/repaint/shadow-multiple-strict-vertical-expected.png:
        * platform/gtk/fast/repaint/shadow-multiple-vertical-expected.png:
        * platform/gtk/fast/repaint/slider-thumb-drag-release-expected.png:
        * platform/gtk/fast/repaint/slider-thumb-float-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/clip-with-layout-delta-expected.png.
        * platform/gtk/fast/repaint/stacked-diacritics-expected.png: Added.
        * platform/gtk/fast/repaint/static-to-positioned-expected.png:
        * platform/gtk/fast/repaint/subtree-layoutstate-transform-expected.png:
        * platform/gtk/fast/repaint/subtree-root-clip-2-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/table-col-background-expected.png.
        * platform/gtk/fast/repaint/subtree-root-clip-3-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/float-in-new-block-with-layout-delta-expected.png.
        * platform/gtk/fast/repaint/subtree-root-clip-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/table-col-background-expected.png.
        * platform/gtk/fast/repaint/subtree-root-skipped-expected.png:
        * platform/gtk/fast/repaint/svg-layout-root-style-attr-update-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/button-spurious-layout-hint-expected.png.
        * platform/gtk/fast/repaint/table-cell-collapsed-border-expected.png:
        * platform/gtk/fast/repaint/table-cell-move-expected.png:
        * platform/gtk/fast/repaint/table-cell-overflow-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/clip-with-layout-delta-expected.png.
        * platform/gtk/fast/repaint/table-col-background-expected.png:
        * platform/gtk/fast/repaint/table-collapsed-border-expected.png:
        * platform/gtk/fast/repaint/table-extra-bottom-grow-expected.png:
        * platform/gtk/fast/repaint/table-hover-on-link-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/intermediate-layout-position-clip-expected.png.
        * platform/gtk/fast/repaint/table-outer-border-expected.png:
        * platform/gtk/fast/repaint/table-overflow-auto-in-overflow-auto-scrolled-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/selection-clear-expected.png.
        * platform/gtk/fast/repaint/table-overflow-hidden-in-overflow-hidden-scrolled-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/float-in-new-block-with-layout-delta-expected.png.
        * platform/gtk/fast/repaint/table-overflow-scroll-in-overflow-scroll-scrolled-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/selection-clear-expected.png.
        * platform/gtk/fast/repaint/table-row-expected.png:
        * platform/gtk/fast/repaint/table-section-overflow-expected.png:
        * platform/gtk/fast/repaint/table-section-repaint-expected.png:
        * platform/gtk/fast/repaint/table-two-pass-layout-overpaint-expected.png:
        * platform/gtk/fast/repaint/table-writing-modes-h-expected.png: Added.
        * platform/gtk/fast/repaint/table-writing-modes-v-expected.png: Added.
        * platform/gtk/fast/repaint/text-append-dirty-lines-expected.png:
        * platform/gtk/fast/repaint/text-emphasis-h-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/continuation-after-outline-expected.png.
        * platform/gtk/fast/repaint/text-emphasis-v-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/float-in-new-block-with-layout-delta-expected.png.
        * platform/gtk/fast/repaint/text-in-relative-positioned-inline-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/button-spurious-layout-hint-expected.png.
        * platform/gtk/fast/repaint/text-selection-rect-in-overflow-2-expected.png:
        * platform/gtk/fast/repaint/text-selection-rect-in-overflow-expected.png:
        * platform/gtk/fast/repaint/text-shadow-expected.png:
        * platform/gtk/fast/repaint/text-shadow-horizontal-expected.png:
        * platform/gtk/fast/repaint/textarea-set-disabled-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/float-in-new-block-with-layout-delta-expected.png.
        * platform/gtk/fast/repaint/trailing-floats-root-line-box-overflow-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/table-row-expected.png.
        * platform/gtk/fast/repaint/transform-absolute-child-expected.png:
        * platform/gtk/fast/repaint/transform-absolute-in-positioned-container-expected.png:
        * platform/gtk/fast/repaint/transform-disable-layoutstate-expected.png:
        * platform/gtk/fast/repaint/transform-layout-repaint-expected.png:
        * platform/gtk/fast/repaint/transform-relative-position-expected.png:
        * platform/gtk/fast/repaint/transform-repaint-descendants-expected.png:
        * platform/gtk/fast/repaint/transform-replaced-shadows-expected.png:
        * platform/gtk/fast/repaint/transform-rotate-and-remove-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/table-col-background-expected.png.
        * platform/gtk/fast/repaint/transform-translate-expected.png:
        * platform/gtk/fast/repaint/view-background-from-body-1-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/block-selection-gap-stale-cache-expected.png.
        * platform/gtk/fast/repaint/view-background-from-body-2-expected.png: Copied from LayoutTests/platform/gtk/fast/repaint/invisible-objects-expected.png.

2012-06-14  Simon Fraser  <simon.fraser@apple.com>

        Rebaseline some Mac results after r120246.

        * platform/mac/media/audio-controls-rendering-expected.txt:
        * platform/mac/media/controls-after-reload-expected.txt:
        * platform/mac/media/controls-strict-expected.txt:
        * platform/mac/media/video-colorspace-yuv420-expected.txt:
        * platform/mac/media/video-colorspace-yuv422-expected.txt:
        * platform/mac/media/video-controls-rendering-expected.txt:
        * platform/mac/media/video-display-toggle-expected.txt:
        * platform/mac/media/video-no-audio-expected.txt:
        * platform/mac/media/video-playing-and-pause-expected.txt:

2012-06-14  Justin Novosad  <junov@chromium.org>

        [Chromium] webkitImageSmoothingEnabled canvas property does not work on redraw
        https://bugs.webkit.org/show_bug.cgi?id=89018

        Reviewed by Stephen White.

        New layout test that verifies that disabling image smoothing on a 2d
        canvas continues to work after multiple paint cycles.

        * fast/canvas/canvas-imageSmoothingEnabled-repaint-expected.txt: Added.
        * fast/canvas/canvas-imageSmoothingEnabled-repaint.html: Added.
        * fast/canvas/script-tests/canvas-imageSmoothingEnabled-repaint.js: Added.
        (draw):
        (testResult):
        (TestControllerPaint):
        (BrowserPaint):
        (onLoadHandler):

2012-06-14  Stephen Chenney  <schenney@chromium.org>

        [svg] SVGResources applied to Text with Incorrect Transformations in non-CG Implementations
        https://bugs.webkit.org/show_bug.cgi?id=64966

        Unreviewed suppression of crashing tests:
        svg/batik/text/textDecoration.svg
        svg/batik/text/textEffect3.svg

        * platform/chromium/TestExpectations:

2012-06-14  Jon Honeycutt  <jhoneycutt@apple.com>

        Unskip some now-passing tests.
        https://bugs.webkit.org/show_bug.cgi?id=89078

        * platform/win/Skipped:

2012-06-14  Alexey Proskuryakov  <ap@apple.com>

        [CFNetwork] XMLHttpRequest incorrectly returns cached responses even when there is a Vary header field
        https://bugs.webkit.org/show_bug.cgi?id=88925

        Reviewed by David Kilzer.

        * http/tests/cache/resources/xhr-vary-header-response.php: Added.
        * http/tests/cache/resources/xhr-vary-header-subframe.html: Added.
        * http/tests/cache/xhr-vary-header-expected.txt: Added.
        * http/tests/cache/xhr-vary-header.html: Added.

2012-06-14  Simon Pena  <spena@igalia.com>

        [GTK] Update TestExpectations with tests crashing in 64bits Debug build
        https://bugs.webkit.org/show_bug.cgi?id=89105

        Unreviewed gardening.

        Mark svg/batik/text/textDecoration.svg and
        svg/batik/text/textEffect3.svg as crashing in DEBUG.

        * platform/gtk/TestExpectations:

2012-06-14  Simon Pena  <spena@igalia.com>

        [GTK] Update TestExpectations with non-passing tests
        https://bugs.webkit.org/show_bug.cgi?id=89100

        Unreviewed gardening.

        Mark plugins/plugin-initiate-popup-window.html as flaky and
        svg/transforms/transformed-text-fill-pattern.html as failing.

        * platform/gtk/TestExpectations:

2012-06-14  Tony Chang  <tony@chromium.org>

        [Qt] New css3/flexbox/flexitem.html fails
        https://bugs.webkit.org/show_bug.cgi?id=88963

        Reviewed by Hajime Morita.

        * css3/flexbox/flexitem.html: The height of the alt text was taller
        than the height of the missing image placeholder graphic on Qt. To
        get the same results, force the font size to something small.
        The test still fails on Qt so leaving it in the Skipped file for now.

2012-06-14  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Selector list start position is not extracted for style rules inside @media rules
        https://bugs.webkit.org/show_bug.cgi?id=89094

        Reviewed by Pavel Feldman.

        * inspector/audits/audits-panel-functional.html:

2012-06-14  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>

        [EFL] Tests rebaselining after r120167, r120246
        https://bugs.webkit.org/show_bug.cgi?id=89069

        Unreviewed EFL gardening after r120246 and r120167, updating baselines.

        * platform/efl/fast/layers/video-layer-expected.txt:
        * platform/efl/http/tests/misc/location-replace-crossdomain-expected.txt:
        * platform/efl/media/audio-controls-rendering-expected.txt:
        * platform/efl/media/audio-repaint-expected.txt:
        * platform/efl/media/controls-after-reload-expected.txt:
        * platform/efl/media/controls-strict-expected.txt:
        * platform/efl/media/controls-styling-expected.txt:
        * platform/efl/media/controls-without-preload-expected.txt:
        * platform/efl/media/media-controls-clone-expected.txt:
        * platform/efl/media/media-document-audio-repaint-expected.txt:
        * platform/efl/media/video-controls-rendering-expected.txt:
        * platform/efl/media/video-display-toggle-expected.txt:
        * platform/efl/media/video-empty-source-expected.txt:
        * platform/efl/media/video-zoom-controls-expected.txt:

2012-06-14  Alexander Pavlov  <apavlov@chromium.org>

        Unreviewed, test rebaseline after r120317.

        * inspector/styles/override-screen-size-expected.txt:

2012-06-14  Simon Pena  <spena@igalia.com>

        [GTK] Mark fast/forms/text-input-event.html as flaky in TestExpectations
        https://bugs.webkit.org/show_bug.cgi?id=89085

        Unreviewed gardening. Mark test as flaky.

        * platform/gtk/TestExpectations:

2012-06-14  Stephen Chenney  <schenney@chromium.org>

        [svg] SVGResources applied to Text with Incorrect Transformations in non-CG Implementations
        https://bugs.webkit.org/show_bug.cgi?id=64966

        Unreviewed Chromium test expectations update.

        Bug fixed by Dominik Röttsches.

        * platform/chromium-linux/svg/W3C-SVG-1.1/pservers-grad-08-b-expected.png:
        * platform/chromium-linux/svg/custom/js-late-gradient-and-object-creation-expected.png:
        * platform/chromium-linux/svg/custom/js-late-gradient-creation-expected.png:
        * platform/chromium-linux/svg/custom/js-late-pattern-creation-expected.png:
        * platform/chromium-linux/svg/custom/text-rotated-gradient-expected.png:
        * platform/chromium-mac-leopard/svg/custom/js-late-gradient-and-object-creation-expected.png:
        * platform/chromium-mac-leopard/svg/custom/js-late-gradient-creation-expected.png:
        * platform/chromium-mac-snowleopard/svg/custom/js-late-gradient-creation-expected.png: Removed.
        * platform/chromium-mac/svg/W3C-SVG-1.1/pservers-grad-08-b-expected.png:
        * platform/chromium-mac/svg/custom/js-late-gradient-and-object-creation-expected.png:
        * platform/chromium-mac/svg/custom/js-late-gradient-creation-expected.png:
        * platform/chromium-mac/svg/custom/js-late-pattern-creation-expected.png:
        * platform/chromium-mac/svg/custom/text-rotated-gradient-expected.png:
        * platform/chromium-win-vista/svg/custom/js-late-gradient-and-object-creation-expected.png:
        * platform/chromium-win/svg/W3C-SVG-1.1/pservers-grad-08-b-expected.png:
        * platform/chromium-win/svg/custom/js-late-gradient-and-object-creation-expected.png:
        * platform/chromium-win/svg/custom/js-late-gradient-creation-expected.png:
        * platform/chromium-win/svg/custom/js-late-pattern-creation-expected.png:
        * platform/chromium-win/svg/custom/text-rotated-gradient-expected.png:
        * platform/chromium/TestExpectations:

2012-06-14  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Device Metrics] "Fit window" results in duplicate rescaling in WebDevToolsAgentImpl::autoZoomPageToFitWidth()
        https://bugs.webkit.org/show_bug.cgi?id=89092

        Reviewed by Pavel Feldman.

        * platform/chromium/inspector/styles/device-metrics-fit-window-expected.txt:
        * platform/chromium/inspector/styles/device-metrics-fit-window.html:

2012-06-14  Kristóf Kosztyó  <kkristof@inf.u-szeged.hu>

        [Qt] Unreviewed gardening after r120314.

        * platform/qt/Skipped: skip svg/transforms/transformed-text-fill-gradient.html

2012-06-14  Dominik Röttsches  <dominik.rottsches@intel.com>

        [svg] SVGResources applied to Text with Incorrect Transformations in non-CG Implementations
        https://bugs.webkit.org/show_bug.cgi?id=64966

        Reviewed by Nikolas Zimmermann.

        For Pattern: RefTest that compare a scaled rectangle with a scaled block of Ahem characters.
        The pattern or gradient should scale in the same way for the text and the rectangle.
        This approach needs a clipping path hack to work around micro gaps between Ahem characters
        due to rounding.
        For Gradient: Scaling text at two different scale factors and adjusting font size to yield the same effective text size.
        Gradient fill should be identical in both cases.

        * platform/chromium/TestExpectations: Added 3 tests that need rebaselining for text gradient fills.
        * svg/transforms/transformed-text-fill-gradient-expected.html: Added.
        * svg/transforms/transformed-text-fill-gradient.html: Added.
        * svg/transforms/transformed-text-fill-pattern-expected.html: Added.
        * svg/transforms/transformed-text-fill-pattern.html: Added.

2012-06-14  Jan Keromnes  <janx@linux.com>

        Web Inspector: Implement ExtensionPanel.show() method
        https://bugs.webkit.org/show_bug.cgi?id=88473

        Add output for ExtensionPanel callbacks, and use ExtensionPanel.show()
        to show the panel. Fix expected.

        Reviewed by Pavel Feldman.

        * inspector/extensions/extensions-panel-expected.txt:
        * inspector/extensions/extensions-panel.html:

2012-06-14  David Barr  <davidbarr@chromium.org>

        Add dpcm to css3-images image-resolution
        https://bugs.webkit.org/show_bug.cgi?id=85442

        Reviewed by Tony Chang.

        * fast/css/image-resolution/image-resolution-expected.txt:
        * fast/css/image-resolution/image-resolution.html:

2012-06-14  Matt Falkenhagen  <falken@chromium.org>

        LocaleToScriptMappingDefault.cpp should also do what scriptCodeForFontSelection does in LocaleToScriptMappingICU.cpp
        https://bugs.webkit.org/show_bug.cgi?id=88845

        Reviewed by Kent Tamura.

        * fast/text/international/jpan-script-equivalence-expected.html: Added.
        * fast/text/international/jpan-script-equivalence.html: Added.

2012-06-14  Edaena Salinas Jasso  <edaena@apple.com>

        el.getAttribute('type') returns 'null' when setting el.type to null
        https://bugs.webkit.org/show_bug.cgi?id=89030

        Reviewed by Alexey Proskuryakov.

        * fast/dom/HTMLButtonElement/change-type-expected.txt: Updated the expected output
        so that it matches the null return type of getAttribute('type').
        * fast/dom/HTMLButtonElement/change-type.html: Change test of getAttribute('type')
        to be null instead of 'null'. Addressed and unrelated review comment from bug 14439
        about how 'undefined' is specified in the shouldBe function.

2012-06-14  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Creating a transaction from within a transaction callback should fail
        https://bugs.webkit.org/show_bug.cgi?id=80547

        Reviewed by Tony Chang.

        * storage/indexeddb/cursor-update-expected.txt:
        * storage/indexeddb/database-basics-expected.txt:
        * storage/indexeddb/mozilla/cursor-update-updates-indexes-expected.txt:
        * storage/indexeddb/mozilla/resources/cursor-update-updates-indexes.js:
        (setupObjectStoreAndCreateIndexAndAdd.transaction.oncomplete):
        (setupObjectStoreAndCreateIndexAndAdd):
        * storage/indexeddb/mozilla/resources/object-store-remove-values.js:
        (createObjectStore):
        (finalCheck):
        * storage/indexeddb/mozilla/resources/remove-objectstore.js:
        (createAndPopulateObjectStore):
        (postSetVersion2.request.onsuccess):
        (postSetVersion2):
        (deleteSecondObjectStore):
        * storage/indexeddb/resources/cursor-update.js:
        (openBasicCursor):
        (keyCursor):
        (testReadOnly):
        (attemptUpdate):
        * storage/indexeddb/resources/database-basics.js:
        (openSuccess.request.onsuccess):
        (openSuccess):
        (setVersionSuccess.request.onsuccess):
        (setVersionSuccess):
        (createObjectStore):
        * storage/indexeddb/resources/version-change-exclusive.js:
        (test):
        * storage/indexeddb/version-change-exclusive-expected.txt:

2012-06-14  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>

        [EFL] [DRT] Implement setDomainRelaxationForbiddenForURLScheme in EFL DRT
        https://bugs.webkit.org/show_bug.cgi?id=84577

        Reviewed by Ryosuke Niwa.

        Unskip http/tests/security/setDomainRelaxationForbiddenForURLScheme.html

        * platform/efl/Skipped:

2012-06-14  Ádám Kallai  <kadam@inf.u-szeged.hu>

        [Qt] Unreviewed gardening. Updating baseline after r120257.

        * fast/table/max-width-integer-overflow-expected.txt:

2012-06-14  Li Yin  <li.yin@intel.com>

        [WebSocket] WebSocket object in Worker Context should fire error event when it fails connection.
        https://bugs.webkit.org/show_bug.cgi?id=88744

        Reviewed by Kent Tamura.

        * http/tests/websocket/tests/hybi/workers/close-expected.txt:
        * http/tests/websocket/tests/hybi/workers/resources/close.js:
        (testPassed):
        (runCodeTest.else.ws.onerror):
        (runCodeTest):
        (runReasonTest.else.ws.onerror):
        (runReasonTest):

2012-06-13  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening after r120246 and r120257, updating baselines.

        * platform/gtk/fast/hidpi/video-controls-in-hidpi-expected.txt:
        * platform/gtk/fast/layers/video-layer-expected.txt:
        * platform/gtk/fast/table/max-width-integer-overflow-expected.txt: Added.
        * platform/gtk/media/audio-controls-rendering-expected.txt:
        * platform/gtk/media/audio-repaint-expected.txt:
        * platform/gtk/media/controls-strict-expected.txt:
        * platform/gtk/media/controls-styling-expected.txt:
        * platform/gtk/media/controls-without-preload-expected.txt:
        * platform/gtk/media/media-controls-clone-expected.txt:
        * platform/gtk/media/media-document-audio-repaint-expected.txt:
        * platform/gtk/media/video-controls-rendering-expected.txt:
        * platform/gtk/media/video-empty-source-expected.txt:
        * platform/gtk/media/video-no-audio-expected.txt:
        * platform/gtk/media/video-volume-slider-expected.txt:
        * platform/gtk/media/video-zoom-controls-expected.txt:

2012-06-13  Dominic Cooney  <dominicc@chromium.org>

        [Chromium] Unreviewed: Update expectations
        https://bugs.webkit.org/show_bug.cgi?id=88949

        http/tests/media/media-source/video-media-source-add-and-remove-ids.html
        is passing on canary bots but producing text diffs on the WebKit
        waterfall. As noted in the bug, I believe the text diffs are
        timing-related.

        * platform/chromium/TestExpectations:

2012-06-13  Kinuko Yasuda  <kinuko@chromium.org>

        [Chromium] Unreviewed: Add rebaseline and update expectations.
        https://bugs.webkit.org/show_bug.cgi?id=87356

        Patch by Eric Uhrhane <ericu@chromium.org>

        * platform/chromium/fast/files/read-blob-async-expected.txt: Added.
        * platform/chromium/fast/files/workers/worker-read-blob-async-expected.txt: Added.
        * platform/chromium/fast/files/workers/worker-read-blob-sync-expected.txt: Added.

2012-06-13  Dominic Cooney  <dominicc@chromium.org>

        [Chromium] Unreviewed: Rebaseline for Mac

        Rebaselining after r119893. There was a rebasline in r120221 but
        it failed on Chromium WebKit waterfall and canaries after that, so
        trying again.

        * platform/chromium-mac/fast/borders/border-antialiasing-expected.png:

2012-06-13  Dominic Cooney  <dominicc@chromium.org>

        [Chromium] Unreviewed: Update expectations
        https://bugs.webkit.org/show_bug.cgi?id=88949

        http/tests/media/media-source/video-media-source-add-and-remove-ids.html
        is flakily hitting an ASSERT on Chromium canaries.

        * platform/chromium/TestExpectations:

2012-06-13  Min Qin  <qinmin@google.com>

        Address some feedbacks in layout test
        https://bugs.webkit.org/show_bug.cgi?id=88909

        Reviewed by Eric Carlson.

        Fixed some comments in https://bugs.webkit.org/show_bug.cgi?id=88897.
        Reduced the timeout to 100 ms and fixed the function definition.
        
        * media/no-autoplay-with-user-gesture-requirement.html:

2012-06-13  Jeffrey Pfau  <jpfau@apple.com>

        Padding and borders can cause integer overflow in block layouts
        https://bugs.webkit.org/show_bug.cgi?id=88820
        <rdar://problem/11328762>

        Reviewed by Tony Chang.

        * fast/block/block-size-integer-overflow-expected.txt: Added.
        * fast/block/block-size-integer-overflow.html: Added.
        * fast/flexbox/box-size-integer-overflow-expected.txt: Added.
        * fast/flexbox/box-size-integer-overflow.html: Added.
        * fast/table/table-size-integer-overflow-expected.txt: Added.
        * fast/table/table-size-integer-overflow.html: Added.

2012-06-13  Dirk Pranke  <dpranke@chromium.org>

        Unreviewed, expectations changes.

        * platform/chromium-win/http/tests/misc/location-replace-crossdomain-expected.txt:
        * platform/chromium/fast/events/constructors/speech-recognition-error-constructor-expected.txt: Added.

2012-06-12  Vincent Scheib  <scheib@chromium.org>

        Remove duplicate webkitpointerlockchange events when unlocking.
        https://bugs.webkit.org/show_bug.cgi?id=88917

        Reviewed by Dimitri Glazkov.

        Part of a series of refactoring changes to update pointer lock API to
        the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402

        Tests simplified by removing the duplicate change events.

        * pointer-lock/lock-already-locked-expected.txt:
        * pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt:
        * pointer-lock/pointerlockchange-pointerlockerror-events.html:

2012-06-12  Filip Pizlo  <fpizlo@apple.com>

        DFG should be able to set watchpoints on global variables
        https://bugs.webkit.org/show_bug.cgi?id=88692

        Rubber stamped by Geoffrey Garen.
        
        Added a test for watchpoints. Also updated the jsc-test-list to include the latest
        tests.

        * fast/js/dfg-call-function-hit-watchpoint-expected.txt: Added.
        * fast/js/dfg-call-function-hit-watchpoint.html: Added.
        * fast/js/jsc-test-list:
        * fast/js/script-tests/dfg-call-function-hit-watchpoint.js: Added.
        (foo):
        (bar):
        (.foo):

2012-06-13  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening after r120228, fix an incorrect test expectation.

        * platform/gtk/TestExpectations:

2012-06-13  Alec Flett  <alecflett@chromium.org>

        [V8] IndexedDB: Cursor value modifications should be preserved until cursor iterates
        https://bugs.webkit.org/show_bug.cgi?id=83526

        Reviewed by Kentaro Hara.

        * storage/indexeddb/cursor-value-expected.txt: Added.
        * storage/indexeddb/cursor-value.html: Added.
        * storage/indexeddb/resources/cursor-value.js: Added.
        (openDatabase.request.onsuccess.request.onsuccess):
        (openDatabase.request.onsuccess):
        (openDatabase):
        (testCursor.request.onsuccess):
        (testCursor):
        (ensureModificationsNotPersisted.request.onsuccess):
        (ensureModificationsNotPersisted):

2012-06-13  Shrey Banga  <banga@chromium.org>

        REGRESSION(r120108): It made http/tests/loading/gmail-assert-on-load.html fail
        https://bugs.webkit.org/show_bug.cgi?id=88923

        Reviewed by Csaba Osztrogonác.

        * http/tests/loading/gmail-assert-on-load-expected.txt: Removed.
        * http/tests/misc/gmail-assert-on-load-expected.txt: Added.
        * http/tests/misc/gmail-assert-on-load.html: Renamed from LayoutTests/http/tests/loading/gmail-assert-on-load.html.
        All tests in http/tests/loading dump frame load events, which are not
        consistent or relevant for this test. So it had to be moved out of
        http/tests/loading.
        * platform/qt/Skipped: This test can be unskipped now

2012-06-13  Vineet Chaudhary  <rgf748@motorola.com>

        REGRESSION (r120204-r120206): 37 fast/profiler tests failing on GTK Linux 64-bit Release
        https://bugs.webkit.org/show_bug.cgi?id=89006

        Reviewed by Enrica Casucci.

        * fast/profiler/nested-start-and-stop-profiler-expected.txt:
        * fast/profiler/resources/profiler-test-JS-resources.js:
        (printProfileNodeWithoutTime): change childern to children()

2012-06-13  Zan Dobersek  <zandobersek@gmail.com>

        [Gtk] Enable link prefetch support in the developer builds
        https://bugs.webkit.org/show_bug.cgi?id=89011

        Reviewed by Martin Robinson.

        Remove expectations for link prefetch tests that now pass and
        recategorise a few failures that now fail due to missing
        dumpResourceResponseMIMETypes implementation in DumpRenderTree.

        * platform/gtk/TestExpectations:

2012-06-13  Julien Chaffraix  <jchaffraix@webkit.org>

        Unreviewed flakiness removal.

        * platform/chromium/TestExpectations:
        The test was improved as bug 52064 (which was fixed some time ago). The test isn't showing
        up as flaky anymore so removing it.

2012-06-13  David Grogan  <dgrogan@chromium.org>

        IndexedDB: Add tests, an assert, and some comments around open/close/setVersion call sequencing
        https://bugs.webkit.org/show_bug.cgi?id=88829

        Reviewed by Tony Chang.

        * storage/indexeddb/factory-deletedatabase-interactions-expected.txt:
        * storage/indexeddb/resources/factory-deletedatabase-interactions.js:
        (Connection.this.open.req.onsuccess.that.handle.onversionchange):
        (Connection.this.open.req.onsuccess):
        (Connection.this.open):
        (test3):
        (test4.runSteps.):
        (test4):
        (test4.):
        * storage/indexeddb/resources/three-setversion-calls.js: Added.
        (test):
        (openDBConnection):
        (successHandler.return.trans.oncomplete):
        (openSuccess1.deleteRequest.onsuccess):
        (openSuccess1):
        * storage/indexeddb/three-setversion-calls-expected.txt: Added.
        * storage/indexeddb/three-setversion-calls.html: Added.

2012-06-13  Levi Weintraub  <leviw@chromium.org>

        Unreviewed Chromium test expectation update after r119893.

        * fast/multicol/nested-columns-expected.txt: Added.
        * fast/multicol/vertical-lr/nested-columns-expected.txt: Added.
        * platform/chromium-linux-x86/fast/borders: Removed.
        * platform/chromium-linux-x86/fast/multicol/vertical-rl: Added.
        * platform/chromium-linux-x86/fast/multicol/vertical-rl/nested-columns-expected.png: Added.
        * platform/chromium-linux/fast/borders/border-antialiasing-expected.png:
        * platform/chromium-linux/fast/multicol/nested-columns-expected.png:
        * platform/chromium-linux/fast/multicol/vertical-lr/nested-columns-expected.png:
        * platform/chromium-linux/fast/multicol/vertical-rl/nested-columns-expected.png:
        * platform/chromium-linux/fast/sub-pixel/file-upload-control-at-fractional-offset-expected.png: Added.
        * platform/chromium-linux/fast/sub-pixel/file-upload-control-at-fractional-offset-expected.txt: Added.
        * platform/chromium-mac-leopard/fast/borders/border-antialiasing-expected.png:
        * platform/chromium-mac-leopard/fast/multicol/nested-columns-expected.png:
        * platform/chromium-mac-leopard/fast/sub-pixel/file-upload-control-at-fractional-offset-expected.png: Added.
        * platform/chromium-mac-snowleopard/fast/sub-pixel/file-upload-control-at-fractional-offset-expected.txt: Removed.
        * platform/chromium-mac/fast/borders/border-antialiasing-expected.png:
        * platform/chromium-mac/fast/multicol/nested-columns-expected.png:
        * platform/chromium-mac/fast/multicol/vertical-lr/nested-columns-expected.png:
        * platform/chromium-mac/fast/multicol/vertical-rl/nested-columns-expected.png:
        * platform/chromium-mac/fast/sub-pixel/file-upload-control-at-fractional-offset-expected.png: Added.
        * platform/chromium-mac/fast/sub-pixel/file-upload-control-at-fractional-offset-expected.txt: Added.
        * platform/chromium-win-vista/fast/borders: Removed.
        * platform/chromium-win-vista/fast/multicol: Added.
        * platform/chromium-win-vista/fast/multicol/vertical-rl: Added.
        * platform/chromium-win-vista/fast/multicol/vertical-rl/nested-columns-expected.png: Added.
        * platform/chromium-win-xp/fast/borders: Removed.
        * platform/chromium-win/fast/borders/border-antialiasing-expected.png:
        * platform/chromium-win/fast/multicol/nested-columns-expected.png:
        * platform/chromium-win/fast/multicol/vertical-lr/nested-columns-expected.png:
        * platform/chromium-win/fast/multicol/vertical-rl/nested-columns-expected.png:
        * platform/chromium-win/fast/sub-pixel/file-upload-control-at-fractional-offset-expected.png: Added.
        * platform/chromium-win/fast/sub-pixel/file-upload-control-at-fractional-offset-expected.txt: Added.
        * platform/chromium/TestExpectations:
        * platform/efl/fast/multicol/nested-columns-expected.txt: Removed.
        * platform/efl/fast/multicol/vertical-lr/nested-columns-expected.txt: Removed.
        * platform/gtk/fast/multicol/nested-columns-expected.txt: Removed.
        * platform/gtk/fast/multicol/vertical-lr/nested-columns-expected.txt: Removed.

2012-06-13  Zan Dobersek  <zandobersek@gmail.com>

        Skip the isolated world tests for Gtk - the infrastructure is missing
        and they take too long to fail by timing out, lengthening the bot cycles.

        Rubber-stamped by Philippe Normand.

        * platform/gtk/TestExpectations:

2012-06-13  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening after r120100, r120167, r120173 and r120181.

        * fast/events/constructors/speech-recognition-error-constructor-expected.txt:
        * platform/gtk/editing/pasteboard/4641033-expected.txt:
        * platform/gtk/editing/selection/mixed-editability-1-expected.txt:
        * platform/gtk/editing/selection/paragraph-granularity-expected.txt:
        * platform/gtk/editing/selection/triple-click-in-pre-expected.txt:
        * platform/gtk/editing/selection/word-granularity-expected.txt:
        * platform/gtk/fast/multicol/span/clone-flexbox-expected.txt:
        * platform/gtk/http/tests/misc/location-replace-crossdomain-expected.txt:

2012-06-13  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Support user attributes in DOMNode
        https://bugs.webkit.org/show_bug.cgi?id=88706

        Reviewed by Pavel Feldman.

        * http/tests/inspector/elements-test.js:
        (initialize_ElementTest.InspectorTest.dumpElementsTree.dumpMap):
        (initialize_ElementTest.InspectorTest.dumpElementsTree.userPropertyDataDump):
        (initialize_ElementTest.InspectorTest.dumpElementsTree.print):
        (initialize_ElementTest.InspectorTest.dumpElementsTree):
        * inspector/elements/resources/user-properties.js: Added.
        (test.step0):
        (test.step1):
        (test.step2):
        (test):
        * inspector/elements/user-properties-expected.txt: Added.
        * inspector/elements/user-properties.html: Added.

2012-06-13  Vineet Chaudhary  <vineet.chaudhary@motorola.com>

        REGRESSION:Bindings sequence<T> in Console.idl, Internals.idl and ScriptProfileNode.idl should be T[]
        https://bugs.webkit.org/show_bug.cgi?id=84863

        Reviewed by Kentaro Hara.

        With reference to http://www.w3.org/TR/WebIDL/#idl-sequence
        "Sequences must not be used as the type of an attribute, constant or exception field."
        So we should use T[] instead of sequence<T>.

        * fast/harness/user-preferred-language.html: Using getter and setter
        for userPreferredLanguages.
        * inspector/profiler/cpu-profiler-profiling-without-inspector.html:
        Use ScriptProfileNode.children as function.
        * media/track/track-language-preference-expected.txt:
        * media/track/track-language-preference.html: Using setter for
        userPreferredLanguages.

2012-06-13  Zoltan Arvai  <zarvai@inf.u-szeged.hu>

        [Qt] Unreviewed gardening.

        Rebaseline updated tests to green Qt bots.

        * platform/qt/editing/pasteboard/4641033-expected.txt:
        * platform/qt/editing/selection/mixed-editability-1-expected.txt:
        * platform/qt/editing/selection/paragraph-granularity-expected.txt:
        * platform/qt/editing/selection/triple-click-in-pre-expected.txt:
        * platform/qt/editing/selection/word-granularity-expected.txt:
        * platform/qt/http/tests/misc/location-replace-crossdomain-expected.txt:

2012-06-13  Dominik Röttsches  <dominik.rottsches@intel.com>

        [EFL][DRT] Gardening for a greener bot
        https://bugs.webkit.org/show_bug.cgi?id=88971

        Unreviewed, EFL gardening.

        * platform/efl/TestExpectations:
        * platform/efl/fast/multicol/span/clone-flexbox-expected.txt: rebaselined after r120100.
        * platform/efl/http/tests/loading/gmail-assert-on-load-expected.txt: Added, we print more verbosely.

2012-06-13  Christophe Dumez  <christophe.dumez@intel.com>

        [GTK][EFL] Skip http/tests/misc/redirect-to-about-blank.html
        https://bugs.webkit.org/show_bug.cgi?id=88962

        Unreviewed gardening. Skip http/tests/misc/redirect-to-about-blank.html
        for both EFL and GTK ports. The test is failing after r120145.

        * platform/efl/TestExpectations:
        * platform/gtk/TestExpectations:

2012-06-13  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening, clean up the crashing tests, either removing
        their expectations completely or expanding them to avoid false 'newly-passing'
        reports. Also split some expectations as some tests are failing differently in
        debug and release builds.

        * platform/gtk/TestExpectations:

2012-06-13  David Barr  <davidbarr@chromium.org>

        Add dpi to css3-images image-resolution
        https://bugs.webkit.org/show_bug.cgi?id=85439

        Reviewed by Tony Chang.

        * fast/css/image-resolution/image-resolution-expected.txt:
        * fast/css/image-resolution/image-resolution.html:

2012-06-13  Qi Zhang  <qi.2.zhang@nokia.com>

        [Qt] Add configure test for zlib and set WTF_USE_ZLIB if found
        https://bugs.webkit.org/show_bug.cgi?id=88763

        Move failed websocket extension test case to qt-4.8 after enable it in qt5

        Reviewed by Simon Hausmann.

        * platform/qt-4.8/Skipped:
        * platform/qt/Skipped:

2012-06-13  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] http/tests/xmlhttprequest/origin-exact-matching.html can be unskipped
        https://bugs.webkit.org/show_bug.cgi?id=88960

        Unreviewed EFL gardening.
        http/tests/xmlhttprequest/origin-exact-matching.html can be
        unskipped after r120107.

        * platform/efl/TestExpectations:

2012-06-13  Li Yin  <li.yin@intel.com>

        FileAPI: type should be converted to be lower case in Blob constructor.
        https://bugs.webkit.org/show_bug.cgi?id=88696

        Reviewed by Kentaro Hara.

        Spec: http://dev.w3.org/2006/webapi/FileAPI/#dfn-BlobPropertyBag
        Add sub-test to track changing upper case into lower case of type in Blob constructor.

        * fast/files/blob-constructor-expected.txt:
        * fast/files/script-tests/blob-constructor.js:

2012-06-13  Ryosuke Niwa  <rniwa@webkit.org>

        Fonts, fullscreen, gamepad, and html5lib tests should use testRunner instead of layoutTestController
        https://bugs.webkit.org/show_bug.cgi?id=88959

        Reviewed by Darin Adler.

        * fonts/valid-standard-font.html:
        * fullscreen/anonymous-block-merge-crash.html:
        * fullscreen/full-screen-element-stack.html:
        * fullscreen/full-screen-frameset.html:
        * fullscreen/full-screen-iframe-zIndex.html:
        * fullscreen/full-screen-keyboard-disabled.html:
        * fullscreen/full-screen-keyboard-enabled.html:
        * fullscreen/full-screen-remove-ancestor-during-transition.html:
        * fullscreen/full-screen-remove-sibling.html:
        * fullscreen/full-screen-render-inline.html:
        * fullscreen/full-screen-request-rejected.html:
        * fullscreen/full-screen-request-removed.html:
        * fullscreen/full-screen-restrictions.html:
        * fullscreen/full-screen-stacking-context.html:
        * fullscreen/full-screen-test.js:
        (runWithKeyDown):
        (endTest):
        * fullscreen/full-screen-zIndex-after.html:
        * fullscreen/full-screen-zIndex.html:
        * fullscreen/non-ancestor-iframe.html:
        * fullscreen/parent-flow-inline-with-block-child.html:
        * fullscreen/video-controls-override.html:
        * html5lib/resources/runner.js:
        (run):
        * html5lib/webkit-resumer.html:
        * platform/gtk/fonts/custom-font-missing-glyphs.html:
        * platform/gtk/fonts/font-face-with-complex-text.html:
        * platform/gtk/fonts/font-family-fallback.html:
        * platform/gtk/fonts/synthetic-oblique-positioning.html:

2012-06-13  Kristóf Kosztyó  <kkristof@inf.u-szeged.hu>

        [Qt] Unreviewed gardening. Skip new failing tests.

        * platform/qt/Skipped:

2012-06-13  Sergio Villar Senin  <svillar@igalia.com>

        Unreviewed gardening. Removed some tests passing in all the GTK
        bots from the test expectations file.

        * platform/gtk/TestExpectations:

2012-06-12  Hans Wennborg  <hans@chromium.org>

        Speech JavaScript API: Add test for constructing SpeechRecognitionError events
        https://bugs.webkit.org/show_bug.cgi?id=88868

        Reviewed by Adam Barth.

        Add a layout test for constructing SpeechRecognitionError events.

        * fast/events/constructors/speech-recognition-error-constructor-expected.txt: Added.
        * fast/events/constructors/speech-recognition-error-constructor.html: Added.

2012-06-13  Ryosuke Niwa  <rniwa@webkit.org>

        Chromium rebaseline after r120173.

        * platform/chromium-linux/editing/pasteboard/4641033-expected.txt:
        * platform/chromium-linux/editing/selection/paragraph-granularity-expected.png:
        * platform/chromium-linux/editing/selection/triple-click-in-pre-expected.png:
        * platform/chromium-linux/editing/selection/word-granularity-expected.png:
        * platform/chromium-mac-leopard/editing/selection/paragraph-granularity-expected.png:
        * platform/chromium-mac-leopard/editing/selection/triple-click-in-pre-expected.png:
        * platform/chromium-mac-leopard/editing/selection/word-granularity-expected.png:
        * platform/chromium-mac-snowleopard/editing/selection/paragraph-granularity-expected.png:
        * platform/chromium-mac-snowleopard/editing/selection/triple-click-in-pre-expected.png:
        * platform/chromium-mac-snowleopard/editing/selection/word-granularity-expected.png:
        * platform/chromium-mac/editing/selection/paragraph-granularity-expected.png:
        * platform/chromium-mac/editing/selection/triple-click-in-pre-expected.png:
        * platform/chromium-mac/editing/selection/word-granularity-expected.png:
        * platform/chromium-win/editing/inserting/editable-html-element-expected.txt:
        * platform/chromium-win/editing/pasteboard/4641033-expected.png:
        * platform/chromium-win/editing/pasteboard/4641033-expected.txt:
        * platform/chromium-win/editing/selection/mixed-editability-1-expected.txt:
        * platform/chromium-win/editing/selection/paragraph-granularity-expected.png:
        * platform/chromium-win/editing/selection/paragraph-granularity-expected.txt:
        * platform/chromium-win/editing/selection/triple-click-in-pre-expected.png:
        * platform/chromium-win/editing/selection/triple-click-in-pre-expected.txt:
        * platform/chromium-win/editing/selection/word-granularity-expected.png:
        * platform/chromium-win/editing/selection/word-granularity-expected.txt:

2012-06-13  Ryosuke Niwa  <rniwa@webkit.org>

        Fix a wrong rebaseline in r120178.

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

2012-06-13  Ryosuke Niwa  <rniwa@webkit.org>

        Mac rebaseline after r120167 and r120173.

        Also revert an inadvertent change to file.invalidext.

        * editing/pasteboard/file-input-files-access-expected.txt:
        * editing/pasteboard/paste-sanitize-crash-2-expected.txt:
        * editing/pasteboard/resources/file.invalidext:
        * editing/selection/blockquote-crash-expected.txt:
        * editing/style/4230923-expected.txt:
        * platform/mac/editing/pasteboard/4641033-expected.txt:
        * platform/mac/editing/selection/mixed-editability-1-expected.txt:
        * platform/mac/editing/selection/paragraph-granularity-expected.txt:
        * platform/mac/editing/selection/triple-click-in-pre-expected.txt:
        * platform/mac/editing/selection/word-granularity-expected.txt:
        * platform/mac/http/tests/misc/location-replace-crossdomain-expected.txt:

2012-06-13  Taiju Tsuiki  <tzik@chromium.org>

        Implement InspectorFileSystemAgent::readDirectory for FileSystem support.
        https://bugs.webkit.org/show_bug.cgi?id=87724

        Reviewed by Vsevolod Vlasov.

        * http/tests/inspector/filesystem/filesystem-test.js: Added.
        * http/tests/inspector/filesystem/read-directory-expected.txt: Added.
        * http/tests/inspector/filesystem/read-directory.html: Added.
        * platform/mac/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:
        * platform/wincairo/Skipped:

2012-06-13  Ryosuke Niwa  <rniwa@webkit.org>

        Revert the removal of 2 editing tests in r120173.

        * editing/pasteboard/copy-paste-float.html: Copied from LayoutTests/editing/pasteboard/copy-paste-float.html.
        * platform/mac/editing/selection/word-thai.html: Copied from LayoutTests/platform/mac/editing/selection/word-thai.html.

2012-06-13  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r120172.
        http://trac.webkit.org/changeset/120172
        https://bugs.webkit.org/show_bug.cgi?id=88976

        The patch causes compilation failures on Gtk, Qt and Apple Win
        bots (Requested by zdobersek on #webkit).

        * fast/js/dfg-call-function-hit-watchpoint-expected.txt: Removed.
        * fast/js/dfg-call-function-hit-watchpoint.html: Removed.
        * fast/js/jsc-test-list:
        * fast/js/script-tests/dfg-call-function-hit-watchpoint.js: Removed.

2012-06-13  Ryosuke Niwa  <rniwa@webkit.org>

        Commit the rest of changes for r120167.

        * http/tests/history/resources/back-during-onload-hung-page.php:
        * http/tests/misc/embed-image-load-outlives-gc-without-crashing.html:
        * http/tests/misc/image-input-type-outlives-gc-without-crashing.html:
        * http/tests/misc/image-load-outlives-gc-without-crashing.html:
        * http/tests/misc/object-image-load-outlives-gc-without-crashing.html:
        * http/tests/security/:

2012-06-13  Ryosuke Niwa  <rniwa@webkit.org>

        Editing tests should use testRunner instead of layoutTestController
        https://bugs.webkit.org/show_bug.cgi?id=88955

        Reviewed by Darin Adler.

        * editing/:
        * platform/blackberry/editing/text-iterator/findString-markers.html:
        * platform/chromium-linux/editing/selection/linux_selection_color.html:
        * platform/chromium-win/editing/selection/paragraph-granularity-expected.txt:
        * platform/chromium-win/editing/selection/triple-click-in-pre-expected.txt:
        * platform/chromium-win/editing/selection/word-granularity-expected.txt:
        * platform/chromium/editing/spelling/delete-misspelled-word.html:
        * platform/chromium/editing/spelling/move-cursor-to-misspelled-word.html:
        * platform/gtk/editing/pasteboard/middle-button-paste.html:
        * platform/gtk/editing/pasteboard/script-tests/middle-click-onpaste.js:
        * platform/gtk/editing/selection/caret-mode-document-begin-end.html:
        * platform/gtk/editing/selection/paragraph-granularity-expected.txt:
        * platform/gtk/editing/selection/triple-click-in-pre-expected.txt:
        * platform/gtk/editing/selection/word-granularity-expected.txt:
        * platform/mac/editing/:
        * platform/qt/editing/selection/paragraph-granularity-expected.txt:
        * platform/qt/editing/selection/triple-click-in-pre-expected.txt:
        * platform/qt/editing/selection/word-granularity-expected.txt:
        * platform/win/editing/deleting/delete-start-block-expected.txt:
        * platform/win/editing/pasteboard/pasting-crlf-isnt-translated-to-crcrlf-win.html:
        * platform/win/editing/selection/shift-page-up-down.html:

2012-06-12  Filip Pizlo  <fpizlo@apple.com>

        DFG should be able to set watchpoints on global variables
        https://bugs.webkit.org/show_bug.cgi?id=88692

        Rubber stamped by Geoffrey Garen.
        
        Added a test for watchpoints. Also updated the jsc-test-list to include the latest
        tests.

        * fast/js/dfg-call-function-hit-watchpoint-expected.txt: Added.
        * fast/js/dfg-call-function-hit-watchpoint.html: Added.
        * fast/js/jsc-test-list:
        * fast/js/script-tests/dfg-call-function-hit-watchpoint.js: Added.
        (foo):
        (bar):
        (.foo):

2012-06-13  Kristóf Kosztyó  <kkristof@inf.u-szeged.hu>

        [Qt] Unreviewed gardening.

        Skip svg/as-image/svg-nested.html which is timeout only on Qt-4.8.

        * platform/qt-4.8/Skipped: skip svg/as-image/svg-nested.html
        * platform/qt/TestExpectations: removed the slow marker from this test

2012-06-13  Hajime Morrita  <morrita@chromium.org>

        REGRESSION(r118098): <content> element does not render distributed children when cloned from another document
        https://bugs.webkit.org/show_bug.cgi?id=88148

        Reviewed by Dimitri Glazkov.

        * fast/dom/shadow/elements-in-frameless-document-expected.txt: Added.
        * fast/dom/shadow/elements-in-frameless-document.html: Added.

2012-06-12  Ryosuke Niwa  <rniwa@webkit.org>

        HTTP tests should use testRunner instead of layoutTestController
        https://bugs.webkit.org/show_bug.cgi?id=88969

        Reviewed by Darin Adler.

        * http/tests/appcache/:
        * http/tests/cache/cancel-during-failure-crash.html:
        * http/tests/cache/cancel-during-revalidation-succeeded.html:
        * http/tests/cache/history-only-cached-subresource-loads-max-age-https.html:
        * http/tests/cache/history-only-cached-subresource-loads.html:
        * http/tests/cache/loaded-from-cache-after-reload-within-iframe.html:
        * http/tests/cache/loaded-from-cache-after-reload.html:
        * http/tests/cache/post-redirect-get.php:
        * http/tests/cache/post-with-cached-subresources.php:
        * http/tests/cache/resources/stopped-revalidation-result.html:
        * http/tests/cache/resources/subresource-test.js:
        (nextTest):
        * http/tests/cache/stopped-revalidation.html:
        * http/tests/cache/subresource-failover-to-network.html:
        * http/tests/cache/subresource-fragment-identifier.html:
        * http/tests/cache/subresource-multiple-instances.html:
        * http/tests/cache/xhr-body.html:
        * http/tests/cache/zero-length-xhr.html:
        * http/tests/canvas/philip/tests.js:
        (_addTest.endTest):
        (_addTest.window.onload):
        (_addTest):
        * http/tests/canvas/webgl/origin-clean-conformance.html:
        * http/tests/cookies/resources/cookies-test-pre.js:
        * http/tests/cookies/resources/resetCookies.js:
        (resetCookies):
        * http/tests/cookies/resources/setArraycookies-result.php:
        * http/tests/cookies/resources/setUtf8Cookies-result.php:
        * http/tests/cookies/resources/third-party-cookie-relaxing-iframe.html:
        * http/tests/cookies/third-party-cookie-relaxing.html:
        * http/tests/css/cross-fade-reload.html:
        * http/tests/css/css-imports-redirect-cycle.html:
        * http/tests/css/font-face-src-loading.html:
        * http/tests/css/resources/link-css-disabled-value-with-slow-loading-sheet-in-error.js:
        * http/tests/css/resources/link-css-disabled-value-with-slow-loading-sheet.js:
        * http/tests/css/resources/request-logging.js:
        (startTest):
        (endTest):
        * http/tests/download/basic-ascii.html:
        * http/tests/download/default-encoding.html:
        * http/tests/download/inherited-encoding-form-submission-result.html:
        * http/tests/download/inherited-encoding.html:
        * http/tests/download/literal-utf-8.html:
        * http/tests/eventsource/eventsource-bad-mime-type.html:
        * http/tests/eventsource/eventsource-content-type-charset.html:
        * http/tests/eventsource/eventsource-eof.html:
        * http/tests/eventsource/eventsource-parse-event-stream.html:
        * http/tests/eventsource/eventsource-reconnect-during-navigate-crash.html:
        * http/tests/eventsource/eventsource-reconnect.html:
        * http/tests/eventsource/eventsource-status-code-states.html:
        * http/tests/eventsource/existent-eventsource-status-error-iframe-crash.html:
        * http/tests/eventsource/non-existent-eventsource-status-error-iframe-crash.html:
        * http/tests/eventsource/resources/wait-then-notify-done.php:
        * http/tests/eventsource/workers/eventsource-simple.html:
        * http/tests/fileapi/create-blob-url-from-data-url.html:
        * http/tests/filesystem/no-cache-filesystem-url.html:
        * http/tests/globalhistory/history-delegate-basic-302-redirect.html:
        * http/tests/globalhistory/history-delegate-basic-refresh-redirect.html:
        * http/tests/globalhistory/history-delegate-basic-title.html:
        * http/tests/globalhistory/history-delegate-basic-visited-links.html:
        * http/tests/history/:
        * http/tests/incremental/frame-focus-before-load.html:
        * http/tests/incremental/partial-jpeg.html:
        * http/tests/incremental/pause-in-script-element.pl:
        * http/tests/incremental/slow-utf8-css.html:
        * http/tests/incremental/slow-utf8-html.pl:
        * http/tests/incremental/split-hex-entities.pl:
        * http/tests/inspector-enabled/console-clear-arguments-on-frame-navigation.html:
        * http/tests/inspector-enabled/console-clear-arguments-on-frame-remove.html:
        * http/tests/inspector-enabled/console-log-before-frame-navigation.html:
        * http/tests/inspector-enabled/contentSecurityPolicy-blocks-setInterval.html:
        * http/tests/inspector-enabled/contentSecurityPolicy-blocks-setTimeout.html:
        * http/tests/inspector-enabled/database-open.html:
        * http/tests/inspector-enabled/dedicated-workers-list.html:
        * http/tests/inspector-enabled/document-write.html:
        * http/tests/inspector-enabled/dom-storage-open.html:
        * http/tests/inspector-enabled/injected-script-discard.html:
        * http/tests/inspector-enabled/resources/console-clear-arguments-iframe.html:
        * http/tests/inspector/console-resource-errors.html:
        * http/tests/inspector/console-websocket-error.html:
        * http/tests/inspector/indexeddb/resources/without-indexed-db.html:
        * http/tests/inspector/inspector-test.js:
        * http/tests/inspector/network/ping.html:
        * http/tests/inspector/resource-tree/resources/script-initial.js:
        (foo):
        * http/tests/inspector/resource-tree/resources/script-navigated.js:
        (foo):
        * http/tests/inspector/web-socket-frame-error.html:
        * http/tests/inspector/web-socket-frame.html:
        * http/tests/loading/:
        * http/tests/local/absolute-url-strip-whitespace.html:
        * http/tests/local/blob/script-tests/send-hybrid-blob.js:
        (runTests):
        * http/tests/local/drag-over-remote-content.html:
        * http/tests/local/fail.css:
        (#pass):
        * http/tests/local/formdata/send-form-data-constructed-from-form.html:
        * http/tests/local/link-stylesheet-load-order-preload.html:
        * http/tests/local/link-stylesheet-load-order.html:
        * http/tests/local/link-stylesheet-preferred.html:
        * http/tests/local/style-access-before-stylesheet-loaded.html:
        * http/tests/local/stylesheet-and-script-load-order-http.html:
        * http/tests/local/stylesheet-and-script-load-order-media-print.html:
        * http/tests/local/stylesheet-and-script-load-order.html:
        * http/tests/media/reload-after-dialog.html:
        * http/tests/media/resources/test.txt:
        * http/tests/media/video-buffered-range-contains-currentTime.html:
        * http/tests/media/video-cancel-load.html:
        * http/tests/media/video-cookie.html:
        * http/tests/media/video-error-abort.html:
        * http/tests/messaging/cross-domain-message-event-dispatch.html:
        * http/tests/messaging/cross-domain-message-send.html:
        * http/tests/mime/quoted-charset.php:
        * http/tests/mime/resources/uppercase-mime-type.php:
        * http/tests/mime/standard-mode-does-not-load-stylesheet-with-text-plain-and-css-extension.html:
        * http/tests/mime/standard-mode-does-not-load-stylesheet-with-text-plain.html:
        * http/tests/mime/standard-mode-loads-stylesheet-with-charset-and-css-extension.html:
        * http/tests/mime/standard-mode-loads-stylesheet-with-charset.html:
        * http/tests/mime/standard-mode-loads-stylesheet-with-empty-content-type.html:
        * http/tests/mime/standard-mode-loads-stylesheet-with-text-css-and-invalid-type.html:
        * http/tests/mime/uppercase-mime-type.html:
        * http/tests/misc/:
        * http/tests/websocket/tests/:
        * http/tests/workers/resources/worker-redirect.js:
        (runNextTest):
        * http/tests/workers/resources/worker-util.js:
        (waitUntilThreadCountMatches.return):
        (waitUntilThreadCountMatches):
        (done):
        * http/tests/workers/shared-worker-importScripts.html:
        * http/tests/workers/shared-worker-invalid-url.html:
        * http/tests/workers/terminate-during-sync-operation.html:
        * http/tests/workers/text-encoding.html:
        * http/tests/workers/worker-document-domain-security.html:
        * http/tests/workers/worker-importScripts.html:
        * http/tests/workers/worker-importScriptsOnError.html:
        * http/tests/workers/worker-invalid-url.html:
        * http/tests/workers/worker-workerScriptNotThere.html:
        * http/tests/xmlhttprequest/:
        * http/tests/xmlviewer/dumpAsText/frames.html:
        * http/tests/xmlviewer/dumpAsText/xhtml-tag.xml:
        * http/tests/xmlviewer/extensions-api.html:
        * platform/chromium-win/http/tests/websocket/tests/hixie76/bad-sub-protocol-control-chars-expected.txt:
        * platform/chromium/http/tests/misc/execute-and-return-value.html:
        * platform/chromium/http/tests/misc/selectionAsMarkup.html:
        * platform/chromium/http/tests/permissionclient/image-permissions.html:
        * platform/chromium/http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write-expected.txt:
        * platform/chromium/http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url-expected.txt:
        * platform/chromium/http/tests/security/aboutBlank/xss-DENIED-set-opener-expected.txt:
        * platform/chromium/http/tests/security/dataURL/xss-DENIED-from-data-url-in-foreign-domain-subframe-expected.txt:
        * platform/chromium/http/tests/security/dataURL/xss-DENIED-from-data-url-in-foreign-domain-window-open-expected.txt:
        * platform/chromium/http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-2-level-expected.txt:
        * platform/chromium/http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-expected.txt:
        * platform/chromium/http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-to-data-url-sub-frame-expected.txt:
        * platform/chromium/http/tests/security/dataURL/xss-DENIED-from-data-url-to-data-url-expected.txt:
        * platform/chromium/http/tests/security/dataURL/xss-DENIED-from-javascript-url-window-open-expected.txt:
        * platform/chromium/http/tests/security/dataURL/xss-DENIED-to-data-url-from-data-url-expected.txt:
        * platform/chromium/http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-subframe-expected.txt:
        * platform/chromium/http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-subframe-location-change-expected.txt:
        * platform/chromium/http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-window-open-expected.txt:
        * platform/chromium/http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-2-level-expected.txt:
        * platform/chromium/http/tests/security/dataURL/xss-DENIED-to-data-url-window-open-expected.txt:
        * platform/chromium/http/tests/security/mixedContent/insecure-iframe-in-main-frame-allowed.html:
        * platform/chromium/http/tests/security/mixedContent/insecure-iframe-in-main-frame-blocked.html:
        * platform/chromium/http/tests/security/mixedContent/insecure-image-in-main-frame-allowed.html:
        * platform/chromium/http/tests/security/mixedContent/insecure-image-in-main-frame-blocked.html:
        * platform/chromium/http/tests/security/mixedContent/insecure-script-in-main-frame-allowed.html:
        * platform/chromium/http/tests/security/mixedContent/insecure-script-in-main-frame-blocked.html:
        * platform/chromium/http/tests/security/window-named-proto-expected.txt:
        * platform/qt/http/tests/cookies/strict-third-party-cookie-blocking.html:
        * platform/qt/http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write-expected.txt:
        * platform/qt/http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url-expected.txt:
        * platform/qt/http/tests/security/aboutBlank/xss-DENIED-set-opener-expected.txt:

2012-06-11  Kinuko Yasuda  <kinuko@chromium.org>

        Unprefix Blob.webkitSlice
        https://bugs.webkit.org/show_bug.cgi?id=78111

        Reviewed by Adam Barth.

        Converted existing tests that are calling Blob.webkitSlice() to call slice().

        * fast/files/blob-slice-overflow.html:
        * fast/files/blob-slice-test.html:
        * fast/files/resources/read-blob-test-cases.js:
        (testReadingSlicedFileBlob):
        (testReadingSlicedTextBlob):
        (testReadingSlicedArrayBufferBlob):
        (testReadingSlicedHybridBlob):
        (testReadingTripleSlicedHybridBlob):
        * fast/filesystem/resources/file-writer-utils.js:
        (verifyByteRangeIsZeroesHelper):
        * http/tests/local/blob/script-tests/send-hybrid-blob.js:
        (runHybridBlobTest):
        * http/tests/local/blob/script-tests/send-sliced-data-blob.js:
        (runSliceTest):
        * http/tests/local/fileapi/script-tests/send-sliced-dragged-file.js:
        (onStableFileDrop):
        (onUnstableFileDrop):
        * http/tests/local/formdata/resources/send-form-data-common.js:
        (testSendingFormData):
        * inspector/profiler/heap-snapshot-loader.html:

2012-06-12  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed morning gardening, skip new failing tests.

        * platform/qt/Skipped:

2012-06-12  Edaena Salinas Jasso  <edaena@apple.com>

        Can't set el.type on a <button> element
        https://bugs.webkit.org/show_bug.cgi?id=14439

        Reviewed by Darin Adler.

        * fast/dom/HTMLButtonElement/change-type-expected.txt: Added.
        * fast/dom/HTMLButtonElement/change-type.html: Added.

2012-06-12  Dominic Cooney  <dominicc@chromium.org>

        [Chromium] Unreviewed: Update expectations for http/tests/media/media-source/webm/video-media-source-seek.html

        This test has racy events (seeked and webkitsourceended) so is
        flaky on Linux Dbg. Updated bug 85952 that is tracking flakiness
        in these tests.

        * platform/chromium/TestExpectations:

2012-06-12  Kenichi Ishibashi  <bashi@chromium.org>

        [Chromium] Implement font shaping with font-feature-settings on Mac
        https://bugs.webkit.org/show_bug.cgi?id=69826

        Reviewed by Tony Chang.

        * platform/chromium/TestExpectations: Updated expectation of css3/font-feature-settings-rendering.html. The result need to be rebaselined.

2012-06-12  Dominic Cooney  <dominicc@chromium.org>

        [Chromium] Unreviewed: Update expectations

        fast/forms/datetimelocal/input-valueasdate-datetimelocal.html is
        passing, so I expanded fast/forms/datetimelocal to TEXT failures
        for all other tests. See bug 29359.

        Likewise for
        fast/forms/color/input-value-sanitization-color.html. See bug
        88951.

        fast/js/integer-division-neg2tothe32-by-neg1.html is passing on
        Chromium WebKit waterfall, so updating CRASH to PASS CRASH. See
        bug 81732.

        * platform/chromium/TestExpectations:

2012-06-12  Dominic Cooney  <dominicc@chromium.org>

        [Chromium] Unreviewed: Update expectations for video-media-source-add-and-remove-ids.html
        https://bugs.webkit.org/show_bug.cgi?id=88949

        * platform/chromium/TestExpectations:

2012-06-12  MORITA Hajime  <morrita@google.com>

        Shadow Pseudo ID should be able to nest to point nested shadow DOM.
        https://bugs.webkit.org/show_bug.cgi?id=62218

        Reviewed by Dimitri Glazkov.

        * fast/dom/shadow/shadow-nested-pseudo-id-expected.txt: Added.
        * fast/dom/shadow/shadow-nested-pseudo-id.html: Added.

2012-06-12  Ojan Vafai  <ojan@chromium.org>

        Chromium rebaselines after r120135. The new results are clearly more correct.
        * platform/chromium-win/transforms/3d/point-mapping/3d-point-mapping-expected.png:
        * platform/chromium-win/transforms/3d/point-mapping/3d-point-mapping-origins-expected.png:
        * platform/chromium-win/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.png:

2012-06-12  Christophe Dumez  <christophe.dumez@intel.com>

        [soup] Prevent setting or editing httpOnly cookies from JavaScript
        https://bugs.webkit.org/show_bug.cgi?id=88760

        Reviewed by Gustavo Noronha Silva.

        Unskip http/tests/cookies/js-get-and-set-http-only-cookie.html for
        both GTK and EFL ports now that that we don't allow overwriting
        httpOnly cookies from JavaScript anymore.

        * platform/efl/TestExpectations:
        * platform/gtk/TestExpectations:

2012-06-12  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Enable SHADOW_DOM flag
        https://bugs.webkit.org/show_bug.cgi?id=87732

        Reviewed by Kentaro Hara.

        Unskip most of the test cases associated to Shadow DOM now that the
        feature is enabled by default for EFL's DRT.

        * platform/efl/Skipped:
        * platform/efl/TestExpectations:
        * platform/efl/fast/dom/shadow/form-in-shadow-expected.txt: Added.
        * platform/efl/fast/dom/shadow/tab-order-iframe-and-shadow-expected.txt: Added.

2012-06-12  Ojan Vafai  <ojan@chromium.org>

        Add some expecations to green the chromium tree while the bugs are resolved.
        * platform/chromium/TestExpectations:

2012-06-12  Brady Eidson  <beidson@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=88928
        [WK2] New http/tests/loading/* tests fail

        There's some latent timing issue with WK2 tests that prevents us from getting the last load delegate callback
        before finishing the test.

        Fortunately for the sake of these tests the load delegate dumps are entirely irrelevant.
        Moving them from http/tests/loading to http/tests/misc and getting new, cleaner results fixes this.

        Rubberstamped by Darin Adler.

        * http/tests/misc/embed-image-load-outlives-gc-without-crashing-expected.txt: Renamed from LayoutTests/http/tests/loading/embed-image-load-outlives-gc-without-crashing-expected.txt.
        * http/tests/misc/embed-image-load-outlives-gc-without-crashing.html: Renamed from LayoutTests/http/tests/loading/embed-image-load-outlives-gc-without-crashing.html.
        * http/tests/misc/image-input-type-outlives-gc-without-crashing-expected.txt: Renamed from LayoutTests/http/tests/loading/image-input-type-outlives-gc-without-crashing-expected.txt.
        * http/tests/misc/image-input-type-outlives-gc-without-crashing.html: Renamed from LayoutTests/http/tests/loading/image-input-type-outlives-gc-without-crashing.html.
        * http/tests/misc/image-load-outlives-gc-without-crashing-expected.txt: Renamed from LayoutTests/http/tests/loading/image-load-outlives-gc-without-crashing-expected.txt.
        * http/tests/misc/image-load-outlives-gc-without-crashing.html: Renamed from LayoutTests/http/tests/loading/image-load-outlives-gc-without-crashing.html.
        * http/tests/misc/object-image-load-outlives-gc-without-crashing-expected.txt: Renamed from LayoutTests/http/tests/loading/object-image-load-outlives-gc-without-crashing-expected.txt.
        * http/tests/misc/object-image-load-outlives-gc-without-crashing.html: Renamed from LayoutTests/http/tests/loading/object-image-load-outlives-gc-without-crashing.html.
        * http/tests/misc/resources/slowimage.php: Renamed from LayoutTests/http/tests/loading/resources/slowimage.php.
        * http/tests/misc/svg-image-load-outlives-gc-without-crashing-expected.txt: Renamed from LayoutTests/http/tests/loading/svg-image-load-outlives-gc-without-crashing-expected.txt.
        * http/tests/misc/svg-image-load-outlives-gc-without-crashing.html: Renamed from LayoutTests/http/tests/loading/svg-image-load-outlives-gc-without-crashing.html.
        * http/tests/misc/video-poster-image-load-outlives-gc-without-crashing-expected.txt: Renamed from LayoutTests/http/tests/loading/video-poster-image-load-outlives-gc-without-crashing-expected.txt.
        * http/tests/misc/video-poster-image-load-outlives-gc-without-crashing.html: Renamed from LayoutTests/http/tests/loading/video-poster-image-load-outlives-gc-without-crashing.html.

2012-06-12  Filip Pizlo  <fpizlo@apple.com>

        DFG should not ASSERT if you have a double use of a variable that is not revealed to be a double
        until after CFG simplification
        https://bugs.webkit.org/show_bug.cgi?id=88927
        <rdar://problem/11513971>

        Reviewed by Geoffrey Garen.

        * fast/js/dfg-double-use-of-post-simplification-double-prediction-expected.txt: Added.
        * fast/js/dfg-double-use-of-post-simplification-double-prediction.html: Added.
        * fast/js/script-tests/dfg-double-use-of-post-simplification-double-prediction.js: Added.
        (foo):

2012-06-12  Tony Chang  <tony@chromium.org>

        Replaced items in a flexbox should be coerced to display:block
        https://bugs.webkit.org/show_bug.cgi?id=87068

        Reviewed by Ojan Vafai.

        * css3/flexbox/flexitem-expected.txt: Added.
        * css3/flexbox/flexitem.html: Added.
        * css3/flexbox/resources/flexbox.js:
        (checkExpectedValues):

2012-06-12  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: ObjectStore/Index shouldn't hold reference to backing store
        https://bugs.webkit.org/show_bug.cgi?id=83074

        Reviewed by Tony Chang.

        The storage/indexeddb/persistence.html test verifies http://webkit.org/b/88788 which
        was revealed by this patch set. The storage/indexeddb/database-close.html test verifies
        the precise database connection closing semantics defined in the IDB spec.

        * storage/indexeddb/database-close-expected.txt: Added.
        * storage/indexeddb/database-close.html: Added.
        * storage/indexeddb/persistence-expected.txt: Added.
        * storage/indexeddb/persistence.html: Added.
        * storage/indexeddb/resources/database-close.js: Added.
        (test):
        (openConnection.request.onsuccess.request.onsuccess):
        (openConnection.request.onsuccess):
        (openConnection):
        (openVersionChangeConnection.request2.onsuccess):
        (openVersionChangeConnection):
        (testClose.transactionCompleted):
        (testClose.request.onsuccess):
        (testClose):
        * storage/indexeddb/resources/persistence.js: Added.
        (test):
        (openAndChangeVersion.request.onsuccess.request.onsuccess.trans.oncomplete):
        (openAndChangeVersion.request.onsuccess.request.onsuccess):
        (openAndChangeVersion.request.onsuccess):

2012-06-12  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviwed nightly gardening.

        * platform/qt/Skipped:

2012-06-12  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviwed nightly gardening.

        * platform/qt/Skipped: Remove rolled out tests.
        * platform/qt/fast/multicol/span/clone-flexbox-expected.txt: Updated after r120100.

2012-06-12  Filip Pizlo  <fpizlo@apple.com>

        REGRESSION (r119779): Javascript TypeError: 'undefined' is not an object
        https://bugs.webkit.org/show_bug.cgi?id=88783
        <rdar://problem/11640299>

        Reviewed by Geoffrey Garen.

        * fast/js/dfg-proto-access-inline-osr-exit-expected.txt: Added.
        * fast/js/dfg-proto-access-inline-osr-exit.html: Added.
        * fast/js/script-tests/dfg-proto-access-inline-osr-exit.js: Added.
        (foo):
        (Thingy):

2012-06-12  Igor Oliveira  <igor.o@sisa.samsung.com>

        Apply animations and transitions for first-letter element
        https://bugs.webkit.org/show_bug.cgi?id=85253

        Reviewed by Simon Fraser.

        * animations/first-letter-animation-expected.txt: Added.
        * animations/first-letter-animation.html: Added.
        * animations/first-letter-play-state-expected.txt: Added.
        * animations/first-letter-play-state.html: Added.
        * transitions/first-letter-color-transition-expected.txt: Added.
        * transitions/first-letter-color-transition.html: Added.
        * transitions/first-letter-transition-expected.txt: Added.
        * transitions/first-letter-transition.html: Added.

2012-06-12  Kent Tamura  <tkent@chromium.org>

        Checking a radio button doesn't uncheck other buttons in the same group in some cases.
        https://bugs.webkit.org/show_bug.cgi?id=88835

        Reviewed by Ryosuke Niwa.

        * fast/forms/radio/radio-group-expected.txt:
        * fast/forms/radio/radio-group.html: Add test cases.

2012-06-12  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Error codes, phase two
        https://bugs.webkit.org/show_bug.cgi?id=88690

        Reviewed by Tony Chang.

        * storage/indexeddb/cursor-advance-expected.txt:
        * storage/indexeddb/index-unique-expected.txt:
        * storage/indexeddb/mozilla/index-prev-no-duplicate-expected.txt:
        * storage/indexeddb/mozilla/index-prev-no-duplicate.html:
        * storage/indexeddb/objectstore-basics-expected.txt:
        * storage/indexeddb/objectstore-basics-workers-expected.txt:
        * storage/indexeddb/resources/cursor-advance.js:
        (openSuccess):
        (createObjectStore.trans.oncomplete):
        (createObjectStore):
        (populateObjectStore):
        * storage/indexeddb/resources/index-unique.js:
        (addMoreDataFailed):
        * storage/indexeddb/resources/objectstore-basics.js:
        (addAgainFailure):

2012-06-12  Ryosuke Niwa  <rniwa@webkit.org>

        Use testRunner in accessibility tests instead of layoutTestController
        https://bugs.webkit.org/show_bug.cgi?id=88755

        Reviewed by Tony Chang.

        Replaced all instances of layoutTestController in accessibility tests by testRunner.

        * accessibility/:
        * platform/chromium/accessibility/:
        * platform/gtk/accessibility/:
        * platform/mac/accessibility/:
        * platform/win/accessibility/:

2012-06-12  Shrey Banga  <banga@chromium.org>

        HTML parser should yield more to improve perceived page load time
        https://bugs.webkit.org/show_bug.cgi?id=86165

        Added test for parser yield times after seeing a script

        Reviewed by Tony Gentilcore.

        * fast/parser/parser-yield-timing-expected.txt: Added.
        * fast/parser/parser-yield-timing.html: Added.
        * http/tests/loading/gmail-assert-on-load-expected.txt: The test was added
        for an assert that failed on debug builds when an iframe removed itself 
        from its parent window after blocking for 1 second. In previous builds,
        the destroyIt() function was called without yielding to the event loop,
        which lead to didFailLoadWithError being called. The fix for bug 86165
        ensures that we yield after executing the script, which leads to 
        didHandleOnloadEventsForFrame being called instead. This is the cause
        of the change in output of the test. The test still successfully removes
        the iframe and since no asserts fail in the debug build, we should consider
        it as passing.


2012-06-12  Pablo Flouret  <pablof@motorola.com>

        LayoutTests/http/tests/xmlhttprequest/origin-exact-matching.html is giving trouble due to too many redirects
        https://bugs.webkit.org/show_bug.cgi?id=88896

        Reviewed by Darin Adler.

        The test was giving out "too many redirect" errors on GTK and EFL due to
        using redirect-cors.php without an actual url to redirect.

        Redirects are not actually tested in that test, a script that set the
        Access-Control-Allow-Origin header to an arbitrary origin was needed and
        redirect-cors.php was the only existing one that had the capability. The
        infinite redirect thing was an unintended consequence.
        Use resources/access-control-allow-lists.php to set the header instead.

        * http/tests/xmlhttprequest/origin-exact-matching-expected.txt:
        * http/tests/xmlhttprequest/resources/origin-exact-matching-iframe.html:

2012-06-12  Ojan Vafai  <ojan@chromium.org>

        Update more expectations to match the state of the bots.
        * platform/chromium/TestExpectations:

2012-06-12  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening after r120099, fix two incorrect text expectations.

        * platform/gtk/TestExpectations:

2012-06-06  Ojan Vafai  <ojan@chromium.org>

        Change default for flex-grow back to 0
        https://bugs.webkit.org/show_bug.cgi?id=88443

        Reviewed by Tony Chang.

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

2012-06-12  Zan Dobersek  <zandobersek@gmail.com>

        [Gtk] TestExpectations should remove use of FAIL expectations
        https://bugs.webkit.org/show_bug.cgi?id=88894

        Reviewed by Martin Robinson.

        Remove FAIL expectation from Gtk's TestExpectations file, replacing it
        with TEXT or IMAGE in case of reftests. That should suffice for now as the
        buildbots don't run pixel tests at the moment.

        * platform/gtk/TestExpectations:

2012-06-12  Anna Cavender  <annacc@chromium.org>

        Separate RemoveID test cases.
        https://bugs.webkit.org/show_bug.cgi?id=88798

        Reviewed by Eric Carlson.

        * http/tests/media/media-source/video-media-source-add-and-remove-ids-expected.txt:
        * http/tests/media/media-source/video-media-source-add-and-remove-ids.html:

2012-06-12  Brady Eidson  <beidson@apple.com>

        <rdar://problem/11593686> and https://bugs.webkit.org/show_bug.cgi?id=88683
        Garbage collection of an <img> element can cause reentrant event dispatch.

        Reviewed by Darin Adler.

        New tests for all users of ImageLoader:
        * http/tests/loading/embed-image-load-outlives-gc-without-crashing-expected.txt: Added.
        * http/tests/loading/embed-image-load-outlives-gc-without-crashing.html: Added.
        * http/tests/loading/image-input-type-outlives-gc-without-crashing-expected.txt: Added.
        * http/tests/loading/image-input-type-outlives-gc-without-crashing.html: Added.
        * http/tests/loading/image-load-outlives-gc-without-crashing-expected.txt: Added.
        * http/tests/loading/image-load-outlives-gc-without-crashing.html: Added.
        * http/tests/loading/object-image-load-outlives-gc-without-crashing-expected.txt: Added.
        * http/tests/loading/object-image-load-outlives-gc-without-crashing.html: Added.
        * http/tests/loading/resources/slowimage.php: Added.
        * http/tests/loading/svg-image-load-outlives-gc-without-crashing-expected.txt: Added.
        * http/tests/loading/svg-image-load-outlives-gc-without-crashing.html: Added.
        * http/tests/loading/video-poster-image-load-outlives-gc-without-crashing-expected.txt: Added.
        * http/tests/loading/video-poster-image-load-outlives-gc-without-crashing.html: Added.

        Shared sub resource for all of those tests:
        * http/tests/loading/resources/slowimage.php: Added.

2012-06-12  Ojan Vafai  <ojan@chromium.org>

        Update some tests to better match actual results on the bots.

        * platform/chromium/TestExpectations:

2012-06-12  Mike West  <mkwst@chromium.org>

        Make document.documentURI readonly from JavaScript
        https://bugs.webkit.org/show_bug.cgi?id=65187

        Reviewed by Alexey Proskuryakov.

        * dom/xhtml/level3/core/documentsetdocumenturi01-expected.txt: Removed.
        * dom/xhtml/level3/core/documentsetdocumenturi01.xhtml-disabled: Renamed from LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi01.xhtml.
        * dom/xhtml/level3/core/documentsetdocumenturi02-expected.txt: Removed.
        * dom/xhtml/level3/core/documentsetdocumenturi02.xhtml-disabled: Renamed from LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi02.xhtml.
            Disabling these two tests, because they write out documentURI which is a `file:` URL dependent on a local path.
        * dom/xhtml/level3/core/documentsetdocumenturi03-expected.txt:
        * dom/xhtml/level3/core/nodegetbaseuri02-expected.txt:
            Updating these two tests to match the new, read-only behavior.
        * fast/dom/documenturi-affects-relative-paths-expected.txt: Removed.
        * fast/dom/documenturi-affects-relative-paths.html: Removed.
        * fast/dom/documenturi-assigned-junk-implies-baseuri-null-expected.txt: Removed.
        * fast/dom/documenturi-assigned-junk-implies-baseuri-null.html: Removed.
        * fast/dom/documenturi-assigned-junk-implies-relative-urls-do-not-resolve-expected.txt: Removed.
        * fast/dom/documenturi-assigned-junk-implies-relative-urls-do-not-resolve.html: Removed.
        * fast/dom/documenturi-can-hold-arbitrary-string-expected.txt: Removed.
        * fast/dom/documenturi-can-hold-arbitrary-string.html: Removed.
            Removing now-irrelevant tests.
        * fast/dom/documenturi-readonly-expected.txt: Added.
        * fast/dom/documenturi-readonly.html: Added.
            Adding a test to verify that document.documentURI is read-only.
        * http/tests/security/xss-DENIED-document-baseURI-javascript-expected.txt: Removed.
        * http/tests/security/xss-DENIED-document-baseURI-javascript-with-spaces-expected.txt: Removed.
        * http/tests/security/xss-DENIED-document-baseURI-javascript-with-spaces.html: Removed.
        * http/tests/security/xss-DENIED-document-baseURI-javascript.html: Removed.
        * platform/chromium/dom/xhtml/level3/core/nodegetbaseuri02-expected.txt: Added
            Platform-specific result for Chromium, which doesn't set the `line` property on exceptions.
        * storage/domstorage/events/documentURI-expected.txt: Removed.
        * storage/domstorage/events/documentURI.html: Removed.
        * storage/domstorage/events/script-tests/documentURI.js: Removed.
            Removing now-irrelevant tests.

2012-06-12  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] enable LEGACY_WEBKIT_BLOB_BUILDER flag
        https://bugs.webkit.org/show_bug.cgi?id=88715

        Reviewed by Noam Rosenthal.

        Unskip fast/files/blob-builder-crash.html now that
        LEGACY_WEBKIT_BLOB_BUILDER flag is enabled by default
        on EFL port.

        * platform/efl/Skipped:

2012-06-12  Christophe Dumez  <christophe.dumez@intel.com>

        [GStreamer] http/tests/media/video-buffered-range-contains-currentTime.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=87575

        Reviewed by Philippe Normand.

        Unskip http/tests/media/video-buffered-range-contains-currentTime.html for both
        GTK and EFL ports now that MediaPlayerPrivateGStreamer correctly reports EOS and
        now that the "ended" event is properly fired.

        * platform/efl/TestExpectations:
        * platform/efl/http/tests/media/video-buffered-range-contains-currentTime-expected.png: Added.
        * platform/gtk/TestExpectations:
        * platform/gtk/http/tests/media/video-buffered-range-contains-currentTime-expected.png: Added.

2012-06-12  Mario Sanchez Prada  <msanchez@igalia.com>

        [Gtk] Many tests revealed as passing after moving from Skipped to test_expectations.txt
        https://bugs.webkit.org/show_bug.cgi?id=85591

        Reviewed by Martin Robinson.

        Remove FAIL text expectations for sputnik tests that have been
        consistently passing on all the Gtk builders.

        * platform/gtk/TestExpectations:

2012-06-12  Silvia Pfeiffer  <silviapf@chromium.org>

        Change the volume slider to horizontal rendering for Chrome video controls.
        https://bugs.webkit.org/show_bug.cgi?id=87835

        Reviewed by Eric Carlson.

        The Chrome video controls are receiving a visual update. The volume slider is included into
        the controls with horizontal rendering, the volume slider container is removed. The visual
        update itself is in a separate patch.

        * platform/chromium/TestExpectations:
        Temporarily skip tests related to volume controls rendering for Chromium.

2012-06-12  Andrei Bucur  <abucur@adobe.com>

        [CSSRegions]NamedFlow::overset should return true when there's no region chain attached
        https://bugs.webkit.org/show_bug.cgi?id=88515

        The CSS Regions specifies that the "overset" attribute needs to return true if the content overflows, there's no region attached to the flow
        or if the NamedFlow is in the NULL state:
        http://www.w3.org/TR/css3-regions/#dom-named-flow-overset

        The overset test was updated to cover the attribute value in case of a flow in the NULL state.

        Reviewed by Andreas Kling.

        * fast/regions/webkit-named-flow-overset-expected.txt:
        * fast/regions/webkit-named-flow-overset.html:

2012-06-12  Mario Sanchez Prada  <msanchez@igalia.com>

        Unreviewed gardening. Skip test failing randomly in GTK bots after r120040.

        * platform/gtk/TestExpectations:

2012-06-12  Takashi Sakamoto  <tasak@google.com>

        [Shadow DOM] <style> inside Shadow subtree should be scoped inside the subtree.
        https://bugs.webkit.org/show_bug.cgi?id=87805

        Reviewed by Dimitri Glazkov.

        * fast/css/style-scoped/registering-shadowroot-expected.txt:
        * fast/css/style-scoped/registering-shadowroot.html:
        * fast/css/style-scoped/style-scoped-change-scoped-in-shadow-expected.txt: Added.
        * fast/css/style-scoped/style-scoped-change-scoped-in-shadow.html: Added.

2012-06-12  Mario Sanchez Prada  <msanchez@igalia.com>

        Unreviewed. Add reference to bug 88859 for test skipped in r120055.

        * platform/efl/Skipped:
        * platform/gtk/TestExpectations:
        * platform/mac/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:
        * platform/wincairo/Skipped:

2012-06-12  Dominic Cooney  <dominicc@chromium.org>

        [Chromium] Unreviewed: Add expectations for speech-recognition-event-constructor

        This looks like it was failing as it was added in r120053. Filed
        bug 88856.

        * platform/chromium/TestExpectations:

2012-06-12  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r120051.
        http://trac.webkit.org/changeset/120051
        https://bugs.webkit.org/show_bug.cgi?id=88852

        some tests are crashing (Requested by morrita on #webkit).

        * fast/dom/shadow/elements-in-frameless-document-expected.txt: Removed.
        * fast/dom/shadow/elements-in-frameless-document.html: Removed.

2012-06-12  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Diverging test results on 32/64 bit architectures
        https://bugs.webkit.org/show_bug.cgi?id=82601

        Unreviewed gardening, update expected files.

        * platform/qt/Skipped: Unskip svg/transforms/transform-origin-css-property.xhtml, because it passes now.
        * platform/qt/fast/repaint/moving-shadow-on-container-expected.png:
        * platform/qt/fast/repaint/moving-shadow-on-path-expected.png:
        * platform/qt/svg/W3C-SVG-1.1/paths-data-03-f-expected.png:
        * platform/qt/svg/custom/use-on-symbol-inside-pattern-expected.png:
        * platform/qt/svg/custom/use-on-symbol-inside-pattern-expected.txt:
        * platform/qt/svg/transforms/transform-origin-css-property-expected.png: Removed, because it is a reftest.
        * platform/qt/svg/transforms/transform-origin-css-property-expected.txt: Removed, because it is a reftest.

2012-06-12  Kinuko Yasuda  <kinuko@chromium.org>

        Unreviewed; skipping the new XHR blob test on the platforms where XHR_RESPONSE_BLOB is not enabled.
        http/tests/xmlhttprequest/response-blob-size.html

        * platform/efl/Skipped:
        * platform/gtk/TestExpectations:
        * platform/mac/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:
        * platform/wincairo/Skipped:

2012-06-11  Kaustubh Atrawalkar  <kaustubh@motorola.com>

        [DRT] LTC:: counterValueForElementById() could be moved to Internals.
        https://bugs.webkit.org/show_bug.cgi?id=84406

        Reviewed by Hajime Morita.

        Move the counterValueForElementById from LayoutTestCotroller to Internals and
        remove the old platform specific implementations as it exclusively tests WebCore functionality.

        * fast/css/counters/2displays-expected.txt:
        * fast/css/counters/2displays.html:
        * fast/css/counters/adding-nodes.html:
        * fast/css/counters/after-continuation-expected.txt:
        * fast/css/counters/after-continuation.html:
        * fast/css/counters/content-021-expected.txt:
        * fast/css/counters/content-021.html:
        * fast/css/counters/counter-before-content-not-incremented.html:
        * fast/css/counters/counter-increment-000-expected.txt:
        * fast/css/counters/counter-increment-000.html:
        * fast/css/counters/counter-increment-001-expected.txt:
        * fast/css/counters/counter-increment-001.html:
        * fast/css/counters/counter-increment-002.html:
        * fast/css/counters/counter-increment-inherit-expected.txt:
        * fast/css/counters/counter-increment-inherit.htm:
        * fast/css/counters/counter-increment-overflow.html:
        * fast/css/counters/counter-increment-tests-expected.txt:
        * fast/css/counters/counter-increment-tests.htm:
        * fast/css/counters/counter-reset-000.html:
        * fast/css/counters/counter-reset-001.html:
        * fast/css/counters/counter-reset-002.html:
        * fast/css/counters/counterValueForElementById-expected.txt:
        * fast/css/counters/counterValueForElementById.html:
        * fast/css/counters/deep-before-expected.txt:
        * fast/css/counters/deep-before.html:
        * fast/css/counters/invalidate-cached-counter-node.html:
        * fast/css/counters/nesting.html:

2012-06-11  Hans Wennborg  <hans@chromium.org>

        Speech JavaScript API: Make SpeechRecognitionError an Event
        https://bugs.webkit.org/show_bug.cgi?id=88784

        Reviewed by Adam Barth.

        Add a layout test that fires a SpeechRecognitionError.

        * fast/speech/scripted/speechrecognition-errors-expected.txt: Added.
        * fast/speech/scripted/speechrecognition-errors.html: Added.

2012-06-12  Mario Sanchez Prada  <msanchez@igalia.com>

        Unreviewed gardening. Skip test failing on GTK bots after r119947.

        * platform/gtk/TestExpectations: Skip test.

2012-06-12  Hajime Morrita  <morrita@chromium.org>

        REGRESSION(r118098): <content> element does not render distributed children when cloned from another document
        https://bugs.webkit.org/show_bug.cgi?id=88148

        Reviewed by Dimitri Glazkov.

        * fast/dom/shadow/elements-in-frameless-document-expected.txt: Added.
        * fast/dom/shadow/elements-in-frameless-document.html: Added.

2012-06-12  Dominic Cooney  <dominicc@chromium.org>

        [Chromium] Unreviewed: Rebaseline gradient-after-transparent-border

        Font antialiasing differences are causing this to fail after
        rebaseline in r120043.

        * platform/chromium-linux/fast/gradients/gradient-after-transparent-border-expected.png:

2012-06-12  Kent Tamura  <tkent@chromium.org>

        Remove unnecessary functions: setName() and formControlName()
        https://bugs.webkit.org/show_bug.cgi?id=88392

        Reviewed by Kentaro Hara.

        * fast/forms/name-attribute-expected.txt: Added.
        * fast/forms/name-attribute.html: Added.

2012-06-12  Mario Sanchez Prada  <msanchez@igalia.com>

        Unreviewed gardening. Skip test crashing on GTK debug bots.

        * platform/gtk/TestExpectations: Skip test.

2012-06-12  Anna Cavender  <annacc@chromium.org>

        [Chromium] video-media-source-add-and-remove-ids.html needs to be skipped
        until a chromium patch lands that will cause different expectations.

        Unreviewed.

        * platform/chromium/TestExpectations:

2012-06-12  Dominic Cooney  <dominicc@chromium.org>

        [Chromium] Unreviewed: Rebaseline gradients tests

        Rebaseline two gradients tests after r120033 that I missed in
        rebaselines in r120043.

        * platform/chromium-linux-x86/fast/gradients/css3-radial-gradients2-expected.png: Removed.
        * platform/chromium-linux/fast/gradients/css3-radial-gradients2-expected.png:
        * platform/chromium-linux/fast/gradients/gradient-after-transparent-border-expected.png:

2012-06-12  Hojong Han  <hojong.han@samsung.com>

        Property names of the built-in object cannot be retrieved 
        after trying to delete one of its properties
        https://bugs.webkit.org/show_bug.cgi?id=86461

        Reviewed by Gavin Barraclough.

        * fast/js/delete-syntax-expected.txt:
        * fast/js/script-tests/delete-syntax.js:

2012-06-11  Dominic Cooney  <dominicc@chromium.org>

        [Chromium] Unreviewed: Rebaseline gradients tests

        r120033 added IMAGE failures for bunch of gradient tests that will
        need rebaselining as a result of that change. This is that
        rebaseline.

        (File list elided because it is too long.)

2012-06-11  Kinuko Yasuda  <kinuko@chromium.org>

        XHR returns size==0 Blob
        https://bugs.webkit.org/show_bug.cgi?id=88750

        Reviewed by Alexey Proskuryakov.

        * http/tests/xmlhttprequest/response-blob-size-expected.txt: Added.
        * http/tests/xmlhttprequest/response-blob-size.html: Added.

2012-06-11  Silvia Pfeiffer  <silviapf@chromium.org>

        Introduce an Enclosure Element for Chromium video controls.
        https://bugs.webkit.org/show_bug.cgi?id=87683

        Reviewed by Eric Carlson.

        Change fullscreen/video-controls-override.html, media/media-controls-invalid-url.html and
        media/track/track-cue-rendering-snap-to-lines-not-set.html to deal with the new enclosure
        div in Chromium controls and use the mediaControlsElement() helper function to find elements
        inside the controls.
        Fail video controls tests in test expectations.

        * fullscreen/video-controls-override-expected.txt: Updated.
        * fullscreen/video-controls-override.html: Use mediaControlsElement helper function.
        * media/media-controls-invalid-url.html: Use mediaControlsElement helper function.
        * media/track/track-cue-rendering-snap-to-lines-not-set.html: Height is provided by enclosure element.
        * platform/chromium/TestExpectations: Fail video controls tests.

2012-06-11  Dominic Cooney  <dominicc@chromium.org>

        [Chromium] Unreviewed: Expectations for track-cues-cuechange.html
        https://bugs.webkit.org/show_bug.cgi?id=88833

        media/track/track-cues-cuechange.html is timing out flakily like
        some other media tests noted in bug 88833.

        * platform/chromium/TestExpectations:

2012-06-11  Elliott Sprehn  <esprehn@gmail.com>

        WebKit doesn't allow replacing the document element with a DocumentFragment containing one element
        https://bugs.webkit.org/show_bug.cgi?id=88681

        Reviewed by Ojan Vafai.

        Re-enables a bunch of disabled tests that are long since fixed and rewrites
        the tests to use a more modern js-test-pre.js style.
        https://bugs.webkit.org/show_bug.cgi?id=12751

        * fast/dom/Document/replace-child-expected.txt:
        * fast/dom/Document/replace-child.html:

2012-06-11  Dominic Cooney  <dominicc@chromium.org>

        [Chromium] Unreviewed: Update test expectations with bugs for media test timeouts

        * platform/chromium/TestExpectations:

2012-06-11  Jin Yang  <jin.a.yang@intel.com>

        GeneratorGeneratedImage should cache images for the non-tiled case
        https://bugs.webkit.org/show_bug.cgi?id=87094

        Reviewed by Simon Fraser.

        Update expectations: added failures for baselines to come.

        * platform/chromium/TestExpectations:

2012-06-11  Vincent Scheib  <scheib@chromium.org>

        Add new Pointer Lock spec attribute webkitPointerLockElement.
        https://bugs.webkit.org/show_bug.cgi?id=88799

        Part of a series of refactoring changes to update pointer lock API to
        the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402

        New attribute webkitPointerLockElement added. Follow up patches
        will remove the previous isLocked attribute. Tests updated to use
        the new attribute.

        Reviewed by Dimitri Glazkov.

        * pointer-lock/lock-already-locked-expected.txt:
        * pointer-lock/lock-already-locked.html:
        * pointer-lock/pointer-lock-api-expected.txt:
        * pointer-lock/pointer-lock-api.html:
        * pointer-lock/pointerlocklost-event-expected.txt:
        * pointer-lock/pointerlocklost-event.html:

2012-06-11  Dominic Cooney  <dominicc@chromium.org>

        [Chromium] Unreviewed: http/tests/xmlhttprequest/origin-exact-matching.html is timing out on XP about half the time

        * platform/chromium/TestExpectations:

2012-06-11  Julien Chaffraix  <jchaffraix@webkit.org>

        Unreviewed expected result update after r120017.

        * platform/gtk/fast/block/basic/fieldset-stretch-to-legend-expected.txt:
        Rebaselined gtk.

        * platform/efl/Skipped:
        * platform/qt/Skipped:
        Skipped the test with some explanation on those platforms as I couldn't get
        the new baseline.

2012-06-11  Dan Bernstein  <mitz@apple.com>

        Updated expected results for this test after r120017.

        * platform/mac/fast/block/basic/fieldset-stretch-to-legend-expected.png:
        * platform/mac/fast/block/basic/fieldset-stretch-to-legend-expected.txt:

2012-06-11  Dan Bernstein  <mitz@apple.com>

        Added http/tests/security/mixedContent/blob-url-in-iframe.html back to the Mac skip list, as
        it is still failing intermittently. <http://webkit.org/b/88736> will track this.

        * platform/mac/Skipped:

2012-06-11  Max Feil  <mfeil@rim.com>

        [BlackBerry] Unexpected repeats of short media
        https://bugs.webkit.org/show_bug.cgi?id=88733

        Reviewed by Antonio Gomes.

        Test for problem where short media repeats unintentionally.

        * media/content/short.wav: Added.
        * platform/blackberry/media/short-media-repeats-correctly-expected.txt: Added.
        * platform/blackberry/media/short-media-repeats-correctly.html: Added.

2012-06-11  Julien Chaffraix  <jchaffraix@webkit.org>

        Account for margin after when laying out <legend> element
        https://bugs.webkit.org/show_bug.cgi?id=35981

        Reviewed by Abhishek Arya.

        * fast/forms/legend-after-margin-horizontal-writing-mode-expected.html: Added.
        * fast/forms/legend-after-margin-horizontal-writing-mode.html: Added.
        * fast/forms/legend-after-margin-vertical-writing-mode-expected.html: Added.
        * fast/forms/legend-after-margin-vertical-writing-mode.html: Added.
        * fast/forms/legend-after-margin-with-before-border-horizontal-mode-expected.html: Added.
        * fast/forms/legend-after-margin-with-before-border-horizontal-mode.html: Added.
        * fast/forms/legend-small-after-margin-before-border-horizontal-mode-expected.html: Added.
        * fast/forms/legend-small-after-margin-before-border-horizontal-mode.html: Added.

2012-06-05  Eric Uhrhane <ericu@chromium.org>

        Crash in fast/files/read tests during Garbage Collection
        https://bugs.webkit.org/show_bug.cgi?id=87165

        Reviewed by Michael Saboff

        Simplify file-writer-abort-continue.js a bit, and add a new test case
        for a write that gets aborted in the final progress event, which
        previously would have hung the FileWriter.

        * fast/filesystem/file-writer-abort-continue-expected.txt:
        * fast/filesystem/resources/file-writer-abort-continue.js:

2012-06-11  Dongwoo Im  <dw.im@samsung.com>

        WebAudio tests need to set WebKitWebAudioEnabled.
        https://bugs.webkit.org/show_bug.cgi?id=88624

        Reviewed by Chris Rogers.

        * webaudio/audiochannelmerger-basic.html: Set WebKitWebAudioEnabled by including 'audio-testing.js'.
        * webaudio/audionode-connect-order.html: ditto.
        * webaudio/biquadfilternode-basic.html: ditto.
        * webaudio/delaynode-maxdelay.html: ditto.
        * webaudio/delaynode-scheduling.html: ditto.
        * webaudio/delaynode.html: ditto.
        * webaudio/javascriptaudionode-downmix8-2channel-input.html: ditto.
        * webaudio/javascriptaudionode-upmix2-8channel-input.html: ditto.
        * webaudio/mediaelementaudiosourcenode-gc.html: ditto.
        * webaudio/mediaelementaudiosourcenode.html: ditto.
        * webaudio/realtimeanalyser-fft-sizing.html: ditto.
        * webaudio/stereo2mono-down-mixing.html: ditto.

2012-06-11  Ojan Vafai  <ojan@chromium.org>

        Last large slew of Chromium windows png rebaselines. See  http://crbug.com/131829 for more information.
        List of rebaselined files excluded because it's too long.

2012-06-11  Xianzhu Wang  <wangxianzhu@chromium.org>

        SVGImageCache leaks image data
        https://bugs.webkit.org/show_bug.cgi?id=87792

        Reviewed by Nikolas Zimmermann.

        New test case.

        * svg/as-image/svg-image-leak-cached-data-expected.txt: Added.
        * svg/as-image/svg-image-leak-cached-data.html: Added.

2012-06-11  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>

        [EFL] REGRESSION (r119788): tests rely on pathToLocalResource are failing after r119788
        https://bugs.webkit.org/show_bug.cgi?id=88661

        Reviewed by Dirk Pranke.

        Unskip test cases which rely on pathToLocalResource().

        * platform/efl/TestExpectations:

2012-06-11  Pravin D  <pravind.2k4@gmail.com>

        Relative pos. input fields in columns vanish when you start typing in them
        https://bugs.webkit.org/show_bug.cgi?id=76834

        Reviewed by Julien Chaffraix.

        * fast/multicol/multicol-with-child-renderLayer-for-input-expected.html: Added.
        * fast/multicol/multicol-with-child-renderLayer-for-input.html: Added.

2012-06-11  Ryosuke Niwa  <rniwa@webkit.org>

        Use testRunner instead of layoutTestController in compositing tests
        https://bugs.webkit.org/show_bug.cgi?id=88766

        Reviewed by Tony Chang.

        * compositing/:
        * compositing/animation/:
        * compositing/backface-visibility/:
        * compositing/backing/:
        * compositing/culling/:
        * compositing/geometry/:
        * compositing/iframes/:
        * compositing/iframes/resources/:
        * compositing/images/:
        * compositing/layer-creation/:
        * compositing/masks/:
        * compositing/overflow/:
        * compositing/plugins/:
        * compositing/reflections/:
        * compositing/repaint/:
        * compositing/resources/:
        * compositing/rtl/:
        * compositing/scaling/:
        * compositing/tiling/:
        * compositing/transitions/:
        * compositing/video/:
        * compositing/visibility/:
        * compositing/webgl/:
        * platform/chromium/compositing/:
        * platform/chromium/compositing/force-compositing-mode/:
        * platform/chromium/compositing/rubberbanding/:
        * platform/mac/compositing/canvas/:

2012-06-11  Ojan Vafai  <ojan@chromium.org>

        Large slew of Chromium windows png rebaselines. See http://crbug.com/131829 for more information.

        List of rebaselined files excluded because it's too long.

2012-06-11  Ryosuke Niwa  <rniwa@webkit.org>

        Use testRunner instead of layoutTestController in css 1, css 2.1, and css3 tests
        https://bugs.webkit.org/show_bug.cgi?id=88769

        Reviewed by Tony Chang.

        * css1/units/zero-duration-without-units.html:
        * css3/calc/:
        * css3/filters/:
        * css3/filters/custom/:
        * css3/filters/resources/:
        * css3/filters/script-tests/:
        * css3/flexbox/:
        * css3/font-feature-settings-rendering.html:
        * css3/images/cross-fade-invalidation.html:
        * css3/images/optimize-contrast-canvas.html:
        * css3/images/optimize-contrast-image.html:
        * css3/khtml-background-size-0x0-bmp.html:
        * css3/parsing-css3-nthchild.html:
        * css3/style-zoomed-image.html:
        * css3/viewport-percentage-lengths/css3-viewport-percentage-lengths-getStyle.html:
        * css3/zoom-coords.xhtml:
        * platform/win/css2.1/resources/run-webkit-tests-epilogue.html:
        * platform/win/css2.1/resources/run-webkit-tests-prologue.html:

2012-06-11  Ryosuke Niwa  <rniwa@webkit.org>

        Use testRunner instead of layoutTestController in animations tests
        https://bugs.webkit.org/show_bug.cgi?id=88757

        Reviewed by Tony Chang.

        * animations/3d/change-transform-in-end-event.html:
        * animations/3d/replace-filling-transform.html:
        * animations/3d/state-at-end-event-transform.html:
        * animations/3d/transform-origin-vs-functions.html:
        * animations/animation-add-events-in-handler.html:
        * animations/animation-border-overflow.html:
        * animations/animation-controller-drt-api.html:
        * animations/animation-direction-reverse-fill-mode-hardware.html:
        * animations/animation-direction-reverse-fill-mode.html:
        * animations/animation-drt-api-multiple-keyframes.html:
        * animations/animation-drt-api.html:
        * animations/animation-end-event-destroy-renderer.html:
        * animations/animation-end-event-short-iterations.html:
        * animations/animation-hit-test-transform.html:
        * animations/animation-hit-test.html:
        * animations/animation-iteration-event-destroy-renderer.html:
        * animations/animation-matrix-negative-scale-unmatrix.html:
        * animations/animation-on-inline-crash.html:
        * animations/animation-shorthand-overriding.html:
        * animations/animation-shorthand-removed.html:
        * animations/animation-shorthand.html:
        * animations/animation-start-event-destroy-renderer.html:
        * animations/animation-welcome-safari.html:
        * animations/body-removal-crash.html:
        * animations/change-keyframes-name.html:
        * animations/change-transform-style-during-animation.html:
        * animations/combo-transform-translate+scale.html:
        * animations/empty-keyframes.html:
        * animations/fill-mode-forwards.html:
        * animations/fill-mode-iteration-count-non-integer.html:
        * animations/fill-mode-missing-from-to-keyframes.html:
        * animations/fill-mode-multiple-keyframes.html:
        * animations/fill-mode-removed.html:
        * animations/fill-mode-reverse.html:
        * animations/fill-mode-transform.html:
        * animations/fill-mode.html:
        * animations/fill-unset-properties.html:
        * animations/font-size-using-ems.html-disabled:
        * animations/import-crash.html:
        * animations/keyframe-timing-functions-transform.html:
        * animations/keyframe-timing-functions2.html:
        * animations/keyframes-iteration-count-non-integer.html:
        * animations/longhand-timing-function.html:
        * animations/missing-from-to-transforms.html:
        * animations/missing-from-to.html:
        * animations/pause-crash.html:
        * animations/resources/animation-test-helpers.js:
        (checkExpectedValue):
        (endTest):
        * animations/state-at-end-event.html:
        * animations/suspend-resume-animation-events.html:
        * animations/suspend-transform-animation.html:
        * animations/transition-and-animation-3.html:
        * animations/unanimated-style.html:

2012-06-11  David Barr  <davidbarr@chromium.org>

        Add css3-images image-resolution (dppx only)
        https://bugs.webkit.org/show_bug.cgi?id=85332

        Reviewed by Tony Chang.

        The css3-images module is at candidate recommendation.
        http://www.w3.org/TR/2012/CR-css3-images-20120417/#image-resolution

        * fast/css/image-resolution/image-resolution-expected.txt: Added.
        * fast/css/image-resolution/image-resolution.html: Added.
        * platform/chromium/TestExpectations: Skip tests until image-resolution implementation lands.
        * platform/efl/TestExpectations: Skip tests until image-resolution implementation lands.
        * platform/gtk/TestExpectations: Skip tests until image-resolution implementation lands.
        * platform/mac/TestExpectations: Skip tests until image-resolution implementation lands.
        * platform/qt/TestExpectations: Skip tests until image-resolution implementation lands.

2012-06-11  Dominic Cooney  <dominicc@chromium.org>

        [Chromium] Unreviewed: Rebaseline more SVG tests on Windows.

        * platform/chromium-linux-x86/svg/batik/filters/filterRegions-expected.png: Removed.
        * platform/chromium-win-vista/svg/batik/paints/gradientLimit-expected.png: Added.
        * platform/chromium-win-xp/svg/batik/paints/patternPreserveAspectRatioA-expected.png: Added.
        * platform/chromium-win-xp/svg/batik/text/smallFonts-expected.png: Added.
        * platform/chromium-win/svg/W3C-SVG-1.1/fonts-elem-04-b-expected.png:
        * platform/chromium-win/svg/W3C-SVG-1.1/fonts-elem-05-t-expected.png:
        * platform/chromium-win/svg/W3C-SVG-1.1/fonts-elem-06-t-expected.png:
        * platform/chromium-win/svg/W3C-SVG-1.1/fonts-elem-07-b-expected.png:
        * platform/chromium-win/svg/W3C-SVG-1.1/fonts-glyph-02-t-expected.png:
        * platform/chromium-win/svg/W3C-SVG-1.1/fonts-glyph-03-t-expected.png:
        * platform/chromium-win/svg/W3C-SVG-1.1/fonts-glyph-04-t-expected.png:
        * platform/chromium-win/svg/W3C-SVG-1.1/fonts-kern-01-t-expected.png:
        * platform/chromium-win/svg/W3C-SVG-1.1/interact-cursor-01-f-expected.png:
        * platform/chromium-win/svg/W3C-SVG-1.1/interact-order-01-b-expected.png:
        * platform/chromium-win/svg/W3C-SVG-1.1/interact-order-02-b-expected.png:
        * platform/chromium-win/svg/W3C-SVG-1.1/interact-zoom-01-t-expected.png:
        * platform/chromium-win/svg/W3C-SVG-1.1/linking-a-01-b-expected.png:
        * platform/chromium-win/svg/W3C-SVG-1.1/linking-a-02-b-expected.png:
        * platform/chromium-win/svg/as-image/img-preserveAspectRatio-support-2-expected.png:
        * platform/chromium-win/svg/as-image/same-image-two-instances-expected.png:
        * platform/chromium-win/svg/as-image/svg-as-relative-image-expected.png:
        * platform/chromium-win/svg/as-image/svg-image-change-content-size-expected.png:
        * platform/chromium-win/svg/batik/filters/feTile-expected.png:
        * platform/chromium-win/svg/batik/filters/filterRegions-expected.png:

2012-06-11  Dominic Cooney  <dominicc@chromium.org>

        [Chromium] Unreviewed: Rebaselines for svg/as-background-image tests on Windows.

        * platform/chromium-linux/svg/as-background-image/svg-as-background-2-expected.png: Removed.
        * platform/chromium-win/svg/as-background-image/svg-as-background-2-expected.png:
        * platform/chromium-win/svg/as-background-image/svg-as-background-4-expected.png:
        * platform/chromium-win/svg/as-background-image/svg-as-background-5-expected.png:
        * platform/chromium-win/svg/as-background-image/svg-as-background-with-relative-size-expected.png:
        * platform/chromium-win/svg/as-background-image/svg-background-partial-redraw-expected.png:
        * platform/chromium-win/svg/as-image/animated-svg-as-image-no-fixed-intrinsic-size-expected.png:

2012-06-11  Dan Bernstein  <mitz@apple.com>

        Reverted r119940 because it caused multiple media tests to fail on Lion.

        * http/tests/media/video-src-invalid-error-expected.txt: Removed.
        * http/tests/media/video-src-invalid-error.html: Removed.

2012-06-11  János Badics  <jbadics@inf.u-szeged.hu>

        [Qt] Gardening after r119962. Four inspector/debugger tests still fail after they have been re-enabled.
        https://bugs.webkit.org/show_bug.cgi?id=43332

        Reviewed by Csaba Osztrogonác.

        * platform/qt/Skipped:

2012-06-11  Dominic Cooney  <dominicc@chromium.org>

        [Chromium] Unreviewed: Rebaselines and updated expectations for media tests

        Pixel differences are due to antialiasing and different rounded
        corners on the media progress bar. The difference is not
        noticeable.

        * platform/chromium-win/media/audio-controls-rendering-expected.png:
        * platform/chromium-win/media/audio-repaint-expected.png:
        * platform/chromium-win/media/controls-after-reload-expected.png:
        * platform/chromium-win/media/controls-layout-direction-expected.png:
        * platform/chromium-win/media/controls-strict-expected.png:
        * platform/chromium-win/media/controls-styling-expected.png:
        * platform/chromium-win/media/controls-without-preload-expected.png:
        * platform/chromium-win/media/media-controls-clone-expected.png:
        * platform/chromium-win/media/media-document-audio-repaint-expected.png:
        * platform/chromium-win/media/video-controls-rendering-expected.png:
        * platform/chromium-win/media/video-display-toggle-expected.png:
        * platform/chromium-win/media/video-layer-crash-expected.png:
        * platform/chromium-win/media/video-no-audio-expected.png:
        * platform/chromium-win/media/video-playing-and-pause-expected.png:
        * platform/chromium-win/media/video-transformed-expected.png:
        * platform/chromium-win/media/video-volume-slider-expected.png:
        * platform/chromium-win/media/video-zoom-controls-expected.png:
        * platform/chromium/TestExpectations:

2012-06-11  Dominic Cooney  <dominicc@chromium.org>

        [Chromium] Unreviewed: Mark track-cue-rendering-inner-timestamps.html failing on Vista

        * platform/chromium/TestExpectations:

2012-06-11  Mike West  <mkwst@chromium.org>

        [Qt] Skipping http/tests/security/mixedContent/filesystem-url-in-iframe.html
        https://bugs.webkit.org/show_bug.cgi?id=88770

        ENABLE(FILE_SYSTEM) is disabled; this test should be skipped until
        that feature is enabled. Moving it up into the proper section of the
        Skipped file to make sure it's enabled if and when the feature makes
        it into the port.

        Reviewed by Csaba Osztrogonác.

        * platform/qt/Skipped:

2012-06-11  Allan Sandfeld Jensen  <allan.jensen@nokia.com>

        Rect-based hittesting doesn't work in tables.
        https://bugs.webkit.org/show_bug.cgi?id=86605

        Reviewed by Julien Chaffraix.

        Test nodesFromRect on tables.

        * fast/dom/nodesFromRect-table-expected.txt: Added.
        * fast/dom/nodesFromRect-table.html: Added.

2012-06-11  Szilard Ledan  <szledan@inf.u-szeged.hu>

        [Qt] Gardening, skip new failing tests.

        Reviewed by Csaba Osztrogonác.

        * platform/qt/Skipped:

2012-06-11  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] skip http/tests/cookies/js-get-and-set-http-only-cookie.html test case
        https://bugs.webkit.org/show_bug.cgi?id=88751

        Unreviewed EFL gardening. Skip newly introduced test case that is failing
        on most ports.

        * platform/efl/TestExpectations:

2012-06-11  Dominic Cooney  <dominicc@chromium.org>

        [Chromium] Unreviewed: Remove expectations for passing tests

        The flakiness dashboard indicates that
        platform/chromium/virtual/gpu/canvas/philip/tests/2d.gradient.radial.cone.cylinder.html
        and
        platform/chromium/virtual/gpu/fast/canvas/canvas-currentColor.html
        are passing on all platforms now.

        * platform/chromium/TestExpectations:

2012-06-11  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Unskip http/tests/security/mixedContent/blob-url-in-iframe.html
        https://bugs.webkit.org/show_bug.cgi?id=88752

        Unreviewed EFL gardening. Unskip http/tests/security/mixedContent/blob-url-in-iframe.html
        now that it no longer depends on the legacy blob builder (r119944).

        * platform/efl/TestExpectations:

2012-06-08  Kinuko Yasuda  <kinuko@chromium.org>

        Using BlobBuilder should show a deprecation warning message (if it is enabled)
        https://bugs.webkit.org/show_bug.cgi?id=88644

        Reviewed by Jian Li.

        * fast/files/blob-builder-crash-expected.txt:

2012-06-10  Dominic Cooney  <dominicc@chromium.org>

        [Chromium] Unreviewed: Add expectations for svg-as-background-6.html

        Like other SVG tests noted in bug 83303, this test fails on
        Windows because it uses a sans-serif font where a serif font is
        expected.

        * platform/chromium/TestExpectations:

2012-06-10  Dominic Cooney  <dominicc@chromium.org>

        [Chromium] Unreviewed: Rebaseline fixed-position-transform-composited-page-scale on Linux, Win

        These differ in antialiasing only, where there are already
        platform differences antialiasing.

        * platform/chromium-linux/compositing/geometry/fixed-position-transform-composited-page-scale-expected.png:
        * platform/chromium-win/compositing/geometry/fixed-position-transform-composited-page-scale-expected.png:

2012-06-10  Dominic Cooney  <dominicc@chromium.org>

        [Chromium] Unreviewed: Update
        css3/font-feature-settings-rendering.html again -- actually it may
        pass if a particular DLL is installed. So expect PASS or
        IMAGE+TEXT failure from this test.

        * platform/chromium/TestExpectations:

2012-06-10  Dominic Cooney  <dominicc@chromium.org>

        [Chromium] Unreviewed: Update
        css3/font-feature-settings-rendering.html expectations to fail on
        XP.

        * platform/chromium/TestExpectations:

2012-06-10  Hayato Ito  <hayato@chromium.org>

        An inheritance of '-webkit-user-modify' does not stop at shadow boundary.
        https://bugs.webkit.org/show_bug.cgi?id=88514

        Reviewed by Ryosuke Niwa.

        * fast/dom/shadow/user-modify-inheritance-expected.txt: Added.
        * fast/dom/shadow/user-modify-inheritance.html: Added.

2012-06-10  Yoshifumi Inoue  <yosin@chromium.org>

        [Forms] Introduce Decimal behind the InputNumber type
        https://bugs.webkit.org/show_bug.cgi?id=88383

        Reviewed by Kent Tamura.

        * fast/forms/range/range-value-rounding-expected.txt: Added.
        * fast/forms/range/range-value-rounding.html: Added.

2012-06-10  Jason Liu  <jason.liu@torchmobile.com.cn>

        [BlackBerry] Possible to clobber httponly cookie.
        https://bugs.webkit.org/show_bug.cgi?id=86067

        Reviewed by Rob Buis.

        * http/tests/cookies/js-get-and-set-http-only-cookie-expected.txt: Added.
        * http/tests/cookies/js-get-and-set-http-only-cookie.html: Added.
        * platform/chromium/http/tests/cookies/js-get-and-set-http-only-cookie-expected.txt: Added.

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

        Expose layoutTestController as testRunner
        https://bugs.webkit.org/show_bug.cgi?id=88210

        Reviewed by Darin Adler.

        Add a test for testRunner object.

        * fast/harness/testrunner-object-expected.txt: Added.
        * fast/harness/testrunner-object.html: Added.

2012-06-10  Pablo Flouret  <pablof@motorola.com>

        Access control allow lists starting with a comma are parsed incorrectly (CORS)
        https://bugs.webkit.org/show_bug.cgi?id=88461

        Reviewed by Adam Barth.

        * http/tests/xmlhttprequest/access-control-allow-lists-starting-with-comma-expected.txt: Added.
        * http/tests/xmlhttprequest/access-control-allow-lists-starting-with-comma.html: Added.
        * http/tests/xmlhttprequest/resources/access-control-allow-lists.php: Added.

2012-06-10  Mike West  <mkwst@chromium.org>

        Removing mixed content tests' dependency on WebKitBlobBuilder:
        https://bugs.webkit.org/show_bug.cgi?id=88736

        http/tests/security/mixedContent/blob-url-in-iframe.html and
        http/tests/security/mixedContent/filesystem-url-in-iframe.html both
        relied on WebKitBlobBuilder, which is disabled on some builds. `new
        Blob()` is the new hotness that these tests should be using instead. This
        patch migrates both tests to the new API.
        
        It also reenables blob-url-in-iframe.html on mac (filesystem-url-in-iframe.html
        remains disabled, as the filesystem APIs are disabled entirely).

        Reviewed by Adam Barth.

        * http/tests/security/mixedContent/blob-url-in-iframe.html:
        * http/tests/security/mixedContent/filesystem-url-in-iframe.html:
        * platform/mac/Skipped:

2012-06-10  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL][GTK] media/track/track-cue-rendering-inner-timestamps.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=88725

        Reviewed by Eric Carlson.

        * media/track/track-cue-rendering-inner-timestamps.html: Round the timestamp values
        so that the test passes for EFL and GTK ports.
        * platform/efl/TestExpectations: Unskip test.
        * platform/gtk/TestExpectations: Unskip test.

2012-06-10  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Skip fast/dom/frame-loading-via-document-write.html
        https://bugs.webkit.org/show_bug.cgi?id=88737

        Unreviewed EFL gardening. Skipping test that is flaky after r119788.

        * platform/efl/TestExpectations:

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

        REGRESSION: Setting invalid media "src" does not cause "error" event
        https://bugs.webkit.org/show_bug.cgi?id=88423

        Reviewed by Eric Carlson.

        * http/tests/media/video-src-invalid-error-expected.txt: Added.
        * http/tests/media/video-src-invalid-error.html: Added.

2012-06-10  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening. Updating a few animations tests baselines,
        adding test expectations for one FileSystem test.

        * platform/gtk/TestExpectations:
        * platform/gtk/animations/3d/change-transform-in-end-event-expected.txt:
        * platform/gtk/animations/3d/matrix-transform-type-animation-expected.txt: Added.
        * platform/gtk/animations/3d/state-at-end-event-transform-expected.txt:

2012-06-10  Dan Bernstein  <mitz@apple.com>

        Temporarily added http/tests/security/mixedContent/blob-url-in-iframe.html to the Mac skip
        list. <http://webkit.org/b/88736> tracks moving this test off of the legacy
        WebKitBlobBuilder API.

        * platform/mac/Skipped:

2012-06-10  Dan Bernstein  <mitz@apple.com>

        Added http/tests/security/mixedContent/filesystem-url-in-iframe.html to the Mac skip list,
        because FILE_SYSTEM is not enabled.

        Part of: http/tests/security/mixedContent/blob-url-in-iframe.html and http/tests/security/mixedContent/filesystem-url-in-iframe.html are failing
        <http://webkit.org/b/88736>

        * platform/mac/Skipped:

2012-06-10  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] 2 fast/multicol/span tests are flaky
        https://bugs.webkit.org/show_bug.cgi?id=88734

        Unreviewed EFL gardening. Move to TestExpectations 2 tests that
        are flaky on the bot.

        * platform/efl/TestExpectations:

2012-06-10  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL][GTK] Skip http/tests/xmlhttprequest/origin-exact-matching.html added in r119911
        https://bugs.webkit.org/show_bug.cgi?id=88728

        Unreviewed gardening. Skip new test added in r119911 which fails for both
        GTK and EFL ports.

        * platform/efl/TestExpectations:
        * platform/gtk/TestExpectations:

2012-06-10  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Several test cases can be unskipped
        https://bugs.webkit.org/show_bug.cgi?id=88731

        Unreviewed EFL gardening. Unskip a few tests that are passing after
        r118618 was rolled out.

        * platform/efl/TestExpectations:

2012-06-10  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] skip userscripts/window-onerror-for-isolated-world-*.html tests
        https://bugs.webkit.org/show_bug.cgi?id=88730

        Unreviewed EFL gardening. Skip a few tests causing flakiness.

        * platform/efl/Skipped:
        * platform/efl/TestExpectations:

2012-06-10  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL][GTK] Skip media/track/track-cue-rendering-inner-timestamps.html added in r119907
        https://bugs.webkit.org/show_bug.cgi?id=88726

        Unreviewed gardening. Skip test added in r119907 for GTK and EFL ports.

        * platform/efl/TestExpectations:
        * platform/gtk/TestExpectations:

2012-06-09  Ryosuke Niwa  <rniwa@webkit.org>

        Remove a Chromium test expectation for the test that has been rolled out in r119918.

        * platform/chromium/TestExpectations:

2012-06-09  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r118618 and r119353.
        http://trac.webkit.org/changeset/118618
        http://trac.webkit.org/changeset/119353
        https://bugs.webkit.org/show_bug.cgi?id=88720

        Caused at least 30 different crashes on ClusterFuzz (Requested
        by inferno-sec on #webkit).

        * http/tests/cache/cancel-in-progress-load-expected.txt: Removed.
        * http/tests/cache/cancel-in-progress-load.html: Removed.
        * http/tests/misc/write-while-waiting.html:
        * svg/as-image/svg-image-leak-cached-data-expected.txt: Removed.
        * svg/as-image/svg-image-leak-cached-data.html: Removed.

2012-06-09  Ryosuke Niwa  <rniwa@webkit.org>

        Fix Chromium test expectations after my previous commit (r119916).

        * platform/chromium/TestExpectations:

2012-06-09  Ryosuke Niwa  <rniwa@webkit.org>

        Spring CRASH cleanup of Chromium test expectations.
        Removed a whole bunch of bogus CRASH test expectations.

        * platform/chromium/TestExpectations:

2012-06-09  Ryosuke Niwa  <rniwa@webkit.org>

        Remove bogus CRASH expectations from skipped tests.
        There's no point in specifying test expectation when tests are skipped.

        * platform/chromium/TestExpectations:

2012-06-09  Florin Malita  <fmalita@chromium.org>

        Fixed-position foreignObject descendants should be relative to the foreignObject viewport
        https://bugs.webkit.org/show_bug.cgi?id=88547

        Reviewed by Abhishek Arya.

        * svg/foreignObject/fO-fixed-position-crash-expected.txt: Added.
        * svg/foreignObject/fO-fixed-position-crash.html: Added.
        * svg/foreignObject/fixed-position-expected.svg: Added.
        * svg/foreignObject/fixed-position.svg: Added.

2012-06-09  Adam Barth  <abarth@webkit.org>

        Can't use eval in iframes sanbdoxed via CSP header
        https://bugs.webkit.org/show_bug.cgi?id=88450

        Reviewed by Mihai Parparita.

        * http/tests/security/contentSecurityPolicy/iframe-inside-csp-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/iframe-inside-csp.html: Added.
        * http/tests/security/contentSecurityPolicy/resources/sandboxed-eval.php: Added.

2012-06-09  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] skip new tests added in r119883
        https://bugs.webkit.org/show_bug.cgi?id=88716

        Unreviewed EFL gardening. Skip new tests added in r119883.

        * platform/efl/Skipped:
        * platform/efl/TestExpectations:

2012-06-09  Pablo Flouret  <pablof@motorola.com>

        The value in Access-Control-Allow-Origin is not being matched correctly for CORS-enabled requests
        https://bugs.webkit.org/show_bug.cgi?id=88139

        Reviewed by Adam Barth.

        * http/tests/xmlhttprequest/origin-exact-matching-expected.txt: Added.
        * http/tests/xmlhttprequest/origin-exact-matching.html: Added.
        * http/tests/xmlhttprequest/resources/basic-auth/access-control-auth-basic.php: Get rid of a trailing slash in the origin.
        * http/tests/xmlhttprequest/resources/origin-exact-matching-iframe.html: Added.

2012-06-09  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Skip tests that rely on pathToLocalResource() due to regression in r119788
        https://bugs.webkit.org/show_bug.cgi?id=88714

        Unreviewed EFL gardening. Skip tests that rely on pathToLocalResource()
        due to regression in r119788.

        * platform/efl/TestExpectations:

2012-06-09  Victor Carbune  <victor@rosedu.org>

        Basic support for timestamps within a TextTrackCue
        https://bugs.webkit.org/show_bug.cgi?id=88187

        Implemented support for timestamps within a TextTrackCue.
        This enables rendering functionality for Karaoke and Paint-on captions.

        Reviewed by Eric Carlson.

        * media/track/captions-webvtt/captions-inner-timestamps.vtt: Added.
        * media/track/track-cue-rendering-inner-timestamps-expected.txt: Added.
        * media/track/track-cue-rendering-inner-timestamps.html: Added.

2012-06-08  Vsevolod Vlasov  <vsevik@chromium.org>

        IndexedDB: Inspector should handle null, string, and array keyPaths
        https://bugs.webkit.org/show_bug.cgi?id=84303

        Reviewed by Pavel Feldman.

        * http/tests/inspector/indexeddb/database-structure-expected.txt:
        * http/tests/inspector/indexeddb/database-structure.html:

2012-06-09  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>

        [EFL] Gardening failure case on EFL build bot
        https://bugs.webkit.org/show_bug.cgi?id=88656

        Unreviewed EFL gardening after r119795. jquery/core.html test
        is crashing on debug bot and failing with a text diff on
        release bot.

        * platform/efl/TestExpectations:

2012-05-25  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Limit DebuggerAgent.Location use to DebuggerModel only, introduce WebInspector.RawLocation to be used elsewhere.
        https://bugs.webkit.org/show_bug.cgi?id=87270

        Reviewed by Pavel Feldman.

        * inspector/debugger/breakpoint-manager.html:
        * inspector/debugger/pause-in-inline-script.html:

2012-06-08  Levi Weintraub  <leviw@chromium.org>

        RenderLayer::paintChildLayerIntoColumns doesn't properly pixel snap
        https://bugs.webkit.org/show_bug.cgi?id=88554

        Reviewed by Darin Adler.

        * fast/sub-pixel/column-clipping-expected.html: Added.
        * fast/sub-pixel/column-clipping.html: Added.
        * platform/chromium-mac-snowleopard/fast/multicol/nested-columns-expected.png:
        * platform/chromium-mac-snowleopard/fast/multicol/vertical-lr/nested-columns-expected.png:
        * platform/chromium-mac-snowleopard/fast/multicol/vertical-rl/nested-columns-expected.png:
        * platform/chromium-mac/fast/borders/border-antialiasing-expected.png:
        * platform/chromium/TestExpectations:

2012-06-08  Ryosuke Niwa  <rniwa@webkit.org>

        Remove FAIL test expectations from EFL, Mac, and Qt ports' test expectations.

        * platform/efl/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/qt/TestExpectations:

2012-06-08  Rakesh KN  <rakesh.kn@motorola.com>

        REGRESSION(r116487?): HTMLFormElement::elements['name'] is empty if the form is detached from the document tree
        https://bugs.webkit.org/show_bug.cgi?id=88632

        Reviewed by Ryosuke Niwa.

        * fast/forms/radionodelist-whose-form-element-detached-from-domtree-expected.txt: Added.
        * fast/forms/radionodelist-whose-form-element-detached-from-domtree.html: Added.

2012-06-08  Ryosuke Niwa  <rniwa@webkit.org>

        Remove all uses of FAIL test expectation from Chromium test expectations.

        * platform/chromium/TestExpectations:
        * platform/gtk/TestExpectations:

2012-06-08  Ojan Vafai  <ojan@chromium.org>

        Last set of chromium rebaselines missed in r119875.

        * platform/chromium-linux/svg/custom/js-repaint-rect-on-path-with-stroke-expected.png: Added.
        * platform/chromium-linux/svg/custom/js-update-container-expected.png: Added.
        * platform/chromium-linux/svg/custom/js-update-polygon-changes-expected.png: Added.
        * platform/chromium-linux/svg/custom/js-update-polygon-removal-expected.png: Added.
        * platform/chromium-linux/svg/custom/js-update-transform-addition-expected.png: Added.
        * platform/chromium-linux/svg/custom/js-update-transform-changes-expected.png: Added.
        * platform/chromium-linux/svg/custom/marker-referencePoint-expected.png: Added.
        * platform/chromium-linux/svg/custom/non-scaling-stroke-markers-expected.png: Added.

2012-06-08  Shezan Baig  <shezbaig.wk@gmail.com>

        Caret is not rendered in empty inline contenteditable elements
        https://bugs.webkit.org/show_bug.cgi?id=85793

        Reviewed by Ryosuke Niwa.

        Add test cases for caret in empty inline.

        * editing/selection/caret-in-empty-inline-1-expected.txt: Added.
        * editing/selection/caret-in-empty-inline-1.html: Added.
        * editing/selection/caret-in-empty-inline-2-expected.txt: Added.
        * editing/selection/caret-in-empty-inline-2.html: Added.

2012-06-08  Mike West  <mkwst@chromium.org>

        Excluding blob: and filesystem: schemes from the mixed content check.
        https://bugs.webkit.org/show_bug.cgi?id=84054

        Reviewed by Adam Barth.

        * http/tests/security/mixedContent/blob-url-in-iframe-expected.txt: Added.
        * http/tests/security/mixedContent/blob-url-in-iframe.html: Added.
        * http/tests/security/mixedContent/filesystem-url-in-iframe-expected.txt: Added.
        * http/tests/security/mixedContent/filesystem-url-in-iframe.html: Added.

2012-06-08  Eli Fidler  <efidler@rim.com>

        [BlackBerry] Default font settings are getting deleted
        https://bugs.webkit.org/show_bug.cgi?id=88670

        Reviewed by Rob Buis.

        This test crashes if -webkit-body (i.e.  WebCore::Settings::standardFontFamily())
        is not a valid font family.

        * fonts/valid-standard-font.html: Added.

2012-06-08  Ojan Vafai  <ojan@chromium.org>

        Final set of chromium rebaselines for skia change. See crbug.com/131829.

        * platform/chromium-linux/svg/clip-path/clipper-placement-issue-expected.png: Copied from LayoutTests/platform/chromium-win/svg/custom/js-update-container-expected.png.
        * platform/chromium-linux/svg/css/arrow-with-shadow-expected.png: Added.
        * platform/chromium-linux/svg/css/background-image-svg-expected.png: Added.
        * platform/chromium-linux/svg/custom/broken-internal-references-expected.png: Copied from LayoutTests/platform/chromium-win/svg/custom/marker-strokeWidth-changes-expected.png.
        * platform/chromium-linux/svg/custom/dynamic-empty-path-expected.png: Added.
        * platform/chromium-linux/svg/custom/gradient-stop-corner-cases-expected.png: Added.
        * platform/chromium-linux/svg/custom/svgpolyparser-extra-space-expected.png: Copied from LayoutTests/platform/chromium-win/svg/custom/js-update-container-expected.png.
        * platform/chromium-linux/svg/custom/use-forward-refs-expected.png: Added.
        * platform/chromium-linux/svg/custom/use-on-clip-path-with-transformation-expected.png: Copied from LayoutTests/platform/chromium-win/svg/custom/js-repaint-rect-on-path-with-stroke-expected.png.
        * platform/chromium-linux/svg/text/text-hkern-expected.png: Copied from LayoutTests/platform/chromium-win/svg/custom/js-update-container-expected.png.
        * platform/chromium-linux/svg/text/text-hkern-on-vertical-text-expected.png: Copied from LayoutTests/platform/chromium-win/svg/custom/js-update-container-expected.png.
        * platform/chromium-linux/svg/text/text-vkern-expected.png: Added.
        * platform/chromium-linux/svg/text/text-vkern-on-horizontal-text-expected.png: Copied from LayoutTests/platform/chromium-win/svg/custom/marker-strokeWidth-changes-expected.png.
        * platform/chromium-linux/svg/zoom/page/absolute-sized-document-no-scrollbars-expected.png: Added.
        * platform/chromium-linux/svg/zoom/page/relative-sized-document-scrollbars-expected.png: Copied from LayoutTests/platform/chromium-win/svg/custom/js-repaint-rect-on-path-with-stroke-expected.png.
        * platform/chromium-linux/svg/zoom/page/zoom-background-image-tiled-expected.png: Added.
        * platform/chromium-linux/svg/zoom/page/zoom-svg-as-relative-image-expected.png: Copied from LayoutTests/platform/chromium-win/svg/custom/js-update-container-expected.png.
        * platform/chromium-win-xp/platform/chromium/compositing/accelerated-drawing/svg-filters-expected.png: Removed.
        * platform/chromium-win/svg/custom/js-late-marker-creation-expected.png:
        * platform/chromium-win/svg/custom/js-repaint-rect-on-path-with-stroke-expected.png:
        * platform/chromium-win/svg/custom/js-update-bounce-expected.png:
        * platform/chromium-win/svg/custom/js-update-container-expected.png:
        * platform/chromium-win/svg/custom/js-update-path-changes-expected.png:
        * platform/chromium-win/svg/custom/js-update-path-removal-expected.png:
        * platform/chromium-win/svg/custom/js-update-polygon-changes-expected.png:
        * platform/chromium-win/svg/custom/js-update-polygon-removal-expected.png:
        * platform/chromium-win/svg/custom/js-update-transform-addition-expected.png:
        * platform/chromium-win/svg/custom/js-update-transform-changes-expected.png:
        * platform/chromium-win/svg/custom/linking-a-03-b-preserveAspectRatio-expected.png:
        * platform/chromium-win/svg/custom/linking-a-03-b-transform-expected.png:
        * platform/chromium-win/svg/custom/linking-a-03-b-viewBox-expected.png:
        * platform/chromium-win/svg/custom/linking-a-03-b-viewBox-transform-expected.png:
        * platform/chromium-win/svg/custom/linking-a-03-b-viewTarget-expected.png:
        * platform/chromium-win/svg/custom/linking-a-03-b-zoomAndPan-expected.png:
        * platform/chromium-win/svg/custom/linking-uri-01-b-expected.png:
        * platform/chromium-win/svg/custom/marker-changes-expected.png:
        * platform/chromium-win/svg/custom/marker-child-changes-css-expected.png:
        * platform/chromium-win/svg/custom/marker-child-changes-expected.png:
        * platform/chromium-win/svg/custom/marker-opacity-expected.png:
        * platform/chromium-win/svg/custom/marker-referencePoint-expected.png:
        * platform/chromium-win/svg/custom/marker-strokeWidth-changes-expected.png:
        * platform/chromium-win/svg/custom/marker-viewBox-changes-expected.png:
        * platform/chromium-win/svg/custom/mask-colorspace-expected.png:
        * platform/chromium-win/svg/custom/mask-on-multiple-objects-expected.png:
        * platform/chromium-win/svg/custom/no-inherited-dashed-stroke-expected.png:
        * platform/chromium-win/svg/custom/non-circular-marker-reference-expected.png:
        * platform/chromium-win/svg/custom/non-scaling-stroke-markers-expected.png:
        * platform/chromium-win/svg/custom/object-sizing-explicit-height-expected.png:
        * platform/chromium-win/svg/custom/object-sizing-explicit-width-height-expected.png:
        * platform/chromium-win/svg/filters/invalidate-on-child-layout-expected.png:
        * platform/chromium-win/svg/foreignObject/text-tref-02-b-expected.png:
        * platform/chromium/TestExpectations:

2012-06-08  Ojan Vafai  <ojan@chromium.org>

        viewspec-parser tests still timeout in Chromium debug even when marked slow.
        * platform/chromium/TestExpectations:

2012-06-08  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r119514.
        http://trac.webkit.org/changeset/119514
        https://bugs.webkit.org/show_bug.cgi?id=88664

        Broke JSFiddle.net (Requested by arv on #webkit).

        * fast/dom/Window/window-property-shadowing-name-expected.txt:
        * fast/dom/Window/window-property-shadowing-name.html:
        * fast/dom/Window/window-property-shadowing-onclick-expected.txt: Removed.
        * fast/dom/Window/window-property-shadowing-onclick.html: Removed.
        * platform/chromium/fast/dom/Window/window-property-shadowing-name-expected.txt: Removed.
        * platform/chromium/fast/dom/Window/window-property-shadowing-onclick-expected.txt: Removed.

2012-06-08  Ojan Vafai  <ojan@chromium.org>

        Second wave of Chromium rebaselines after skia change. See crbug.com/131829.

        List of changed expectations deleted because it's too long.

2012-06-08  Dan Bernstein  <mitz@apple.com>

        Added Mac pixel results for canvas-imageSmoothingEnabled-patterns.html, and made the text
        results shared between platforms.

        * fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.txt: Added.
        * platform/chromium/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.txt: Removed.
        * platform/gtk/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.txt: Removed.
        * platform/mac/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.png: Added.

2012-06-08  Tony Chang  <tony@chromium.org>

        [chromium] Unreviewed, rebaseline a chromium-win result that changed
        due to the various mock scrollbar changes.
        https://bugs.webkit.org/show_bug.cgi?id=88490

        * platform/chromium-win/fast/repaint/fixed-tranformed-expected.png:
        * platform/chromium/TestExpectations:

2012-06-08  Stephen Chenney  <schenney@chromium.org>

        WebCore::ImageBuffer.cpp has broken color table code
        https://bugs.webkit.org/show_bug.cgi?id=80321

        Unreviewed Chromium test expectations update after changes to SVG filter color conversion.

        Full list of changed files excluded to to very large number.

        * platform/chromium/TestExpectations:

2012-06-08  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Add regression test to verify that legacy constants have been removed
        https://bugs.webkit.org/show_bug.cgi?id=88669

        Reviewed by Tony Chang.

        * storage/indexeddb/legacy-constants-expected.txt:
        * storage/indexeddb/mozilla/create-index-unique-expected.txt:
        * storage/indexeddb/mozilla/resources/create-index-unique.js:
        (createAndVerifyIndex):
        * storage/indexeddb/resources/constants.js:
        (test):
        * storage/indexeddb/resources/legacy-constants.js:
        (testObsoleteConstants):

2012-06-08  Ojan Vafai  <ojan@chromium.org>

        First wave of Chromium rebaselines after skia rollback. See crbug.com/131829.

        List of changed expected files excluded because it's too long.

2012-06-08  Erik Arvidsson  <arv@chromium.org>

        [V8] Keep TextTrackList alive as long as its owner is alive
        https://bugs.webkit.org/show_bug.cgi?id=88541

        Reviewed by Adam Barth.

        Add a hidden reference from the owner to the text track list.

        * platform/chromium/TestExpectations:

2012-06-08  Tony Chang  <tony@chromium.org>

        [chromium] Unreviewed, rebaseline platform/chromium-linux/fast/text/chromium-linux-fontconfig-renderstyle.html after skia gamma correction
        https://bugs.webkit.org/show_bug.cgi?id=88589

        * platform/chromium-linux/platform/chromium-linux/fast/text/chromium-linux-fontconfig-renderstyle-expected.png: Added.
        * platform/chromium/TestExpectations:

2012-06-08  Dan Bernstein  <mitz@apple.com>

        Added svg/filters/color-space-conversion.svg to the Mac skip list. It has been failing since
        its addition in r119841. <http://webkit.org/b/88672> is tracking the failure.

        * platform/mac/Skipped:

2012-06-08  Stephen Chenney  <schenney@chromium.org>

        WebCore::ImageBuffer.cpp has broken color table code
        https://bugs.webkit.org/show_bug.cgi?id=80321

        Unreviewed Chromium expectations update.

        Adding tests that are failing pending a rebaseline.

        * platform/chromium/TestExpectations:

2012-06-08  Tony Chang  <tony@chromium.org>

        [chromium] Unreviewed, remove css3/flexbox/child-overflow.html from TestExpectations.
        Since bug 77368 is now fixed, this test passes.

        * platform/chromium/TestExpectations:

2012-06-08  Stephen Chenney  <schenney@chromium.org>

        Unreviewed fix for Chromium TestExpectations.

        A file crept into the expectations that has not yet been submitted.

        * platform/chromium/TestExpectations:

2012-06-08  Renata Hodovan  <reni@webkit.org>

        Adding few already supported features to the FeatureSet in DOMImplementation
        https://bugs.webkit.org/show_bug.cgi?id=86482

        Reviewed by Nikolas Zimmermann.

        * platform/qt-5.0/svg/custom/svg-features-expected.txt:
        * platform/qt/svg/custom/svg-features-expected.txt:
        * svg/custom/svg-features-expected.txt:

2012-06-07  Vincent Scheib  <scheib@chromium.org>

        Layout Test pointer-lock/pointerlockchange-pointerlockerror-events.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=88604

        Reviewed by Kent Tamura.

        Removed CRASH expectation.
        Test is no longer crashing with this fix to DumpRenderTree.

        * platform/chromium/TestExpectations:

2012-06-08  Stephen Chenney  <schenney@chromium.org>

        WebCore::ImageBuffer.cpp has broken color table code
        https://bugs.webkit.org/show_bug.cgi?id=80321

        Reviewed by Dirk Schulze.

        Temporarily marking Chromium tests expected to fail as a result of this patch. And a new test.

        * platform/chromium/TestExpectations:
        * svg/filters/color-space-conversion.svg:
        * svg/filters/color-space-conversion-expected.svg:

2012-06-08  Qi Zhang  <qi.2.zhang@nokia.com>

        [Qt] fast/viewport/viewport-133.html fails
        https://bugs.webkit.org/show_bug.cgi?id=80689

        Since https://bugs.webkit.org/show_bug.cgi?id=88047 remove this
        test case, remove it from skip list.

        Reviewed by Laszlo Gombos.

        * platform/qt/Skipped:

2012-06-08  Bryan McQuade  <bmcquade@google.com>
        Web Inspector: Annotate timeline records with a frame identifier
        https://bugs.webkit.org/show_bug.cgi?id=86406

        Reviewed by Vsevolod Vlasov.

        * inspector/timeline/timeline-animation-frame-expected.txt:
        * inspector/timeline/timeline-dom-content-loaded-event-expected.txt:
        * inspector/timeline/timeline-event-dispatch-expected.txt:
        * inspector/timeline/timeline-injected-script-eval-expected.txt:
        * inspector/timeline/timeline-layout-expected.txt:
        * inspector/timeline/timeline-load-event-expected.txt:
        * inspector/timeline/timeline-network-resource-expected.txt:
        * inspector/timeline/timeline-paint-expected.txt:
        * inspector/timeline/timeline-parse-html-expected.txt:
        * inspector/timeline/timeline-recalculate-styles-expected.txt:
        * inspector/timeline/timeline-script-tag-1-expected.txt:
        * inspector/timeline/timeline-script-tag-2-expected.txt:
        * inspector/timeline/timeline-test.js:
        * inspector/timeline/timeline-timer-expected.txt:
        * platform/chromium/inspector/timeline/timeline-animation-frame-expected.txt:
        * platform/chromium/inspector/timeline/timeline-event-dispatch-expected.txt:
        * platform/chromium/inspector/timeline/timeline-layout-expected.txt:
        * platform/chromium/inspector/timeline/timeline-network-resource-expected.txt:
        * platform/chromium/inspector/timeline/timeline-paint-expected.txt:
        * platform/chromium/inspector/timeline/timeline-parse-html-expected.txt:
        * platform/chromium/inspector/timeline/timeline-timer-expected.txt:

2012-06-08  Ilya Tikhonovsky  <loislo@chromium.org>

        Unreviewed update for chromium test expectations.
        viewspec-parser-*.html were marked as SLOW.

        * platform/chromium/TestExpectations:
        BUGWK87772 SLOW : svg/dom/viewspec-parser-1.html = PASS
        BUGWK87772 SLOW : svg/dom/viewspec-parser-2.html = PASS
        BUGWK87772 SLOW : svg/dom/viewspec-parser-3.html = PASS
        BUGWK87772 SLOW : svg/dom/viewspec-parser-4.html = PASS
        BUGWK87772 SLOW : svg/dom/viewspec-parser-5.html = PASS

2012-06-08  Arko Saha  <arko@motorola.com>

        Microdata: An element with an empty itemprop='' should not get listed in the .properties list.
        https://bugs.webkit.org/show_bug.cgi?id=88235

        Reviewed by Ryosuke Niwa.

        * fast/dom/MicroData/element-with-empty-itemprop-expected.txt: Added.
        * fast/dom/MicroData/element-with-empty-itemprop.html: Added.

2012-06-08  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>

        [EFL] Unskip passing sputnik tests
        https://bugs.webkit.org/show_bug.cgi?id=88641

        Unreviewed, unskip sputnik tests which are passing now.

        * platform/efl/TestExpectations:

2012-06-08  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening, removing crash expectations for two plugins
        tests that were fixed after LLInt was enabled for the Gtk port in r119593.

        * platform/gtk/TestExpectations:

2012-06-08  Hans Wennborg  <hans@chromium.org>

        Speech JavaScript API: mock WebSpeechRecognizer for DumpRenderTree
        https://bugs.webkit.org/show_bug.cgi?id=87976

        Reviewed by Kent Tamura.

        Add a layout test using the new mock, pushing a mock result through
        and checking that events fire correctly.

        * fast/speech/scripted/speechrecognition-basics-expected.txt: Added.
        * fast/speech/scripted/speechrecognition-basics.html: Added.

2012-06-08  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening after r119795, adding separate test expectations
        for jquery/core.html - the test is crashing on debug builds and failing
        with a text diff on release builds.

        * platform/gtk/TestExpectations:

2012-06-08  Noel Gordon  <noel.gordon@gmail.com>

        [chromium] Run optimize-baselines over canvas-toDataURL-webp.html results

        Unreviewed test expectations update.

        * platform/chromium-mac/fast/canvas/canvas-toDataURL-webp-expected.png: Copied from LayoutTests/platform/chromium-mac-snowleopard/fast/canvas/canvas-toDataURL-webp-expected.png.
        * platform/chromium-mac/platform/chromium/virtual/gpu/fast/canvas/canvas-toDataURL-webp-expected.png: Renamed from LayoutTests/platform/chromium-mac-snowleopard/fast/canvas/canvas-toDataURL-webp-expected.png.

2012-06-08  Zoltan Arvai  <zarvai@inf.u-szeged.hu>

        [Qt] Unreviewed gardening. Skip tests using disabled SHADOW_DOM feature on Qt.

        * platform/qt/Skipped:

2012-06-08  Dan Bernstein  <mitz@apple.com>

        Fixed fast/files/read-blob-async.html failing after r119791.

        * fast/files/resources/read-blob-test-cases.js:
        (testReadingSingleArrayBufferBlob):
        (testReadingSlicedArrayBufferBlob):
        (testReadingMultipleArrayBufferBlob):
        (testReadingHybridBlob):
        (testReadingSlicedHybridBlob):
        (testReadingTripleSlicedHybridBlob):

2012-06-08  Noel Gordon  <noel.gordon@gmail.com>

        [chromium] New virtual GPU canvas-toDataURL-webp.html results after r119787

        Unreviewed test expectations update.

        * platform/chromium-win/platform/chromium/virtual/gpu/fast/canvas/canvas-toDataURL-webp-expected.png: Added.

2012-06-07  Noel Gordon  <noel.gordon@gmail.com>

        [chromium] Update canvas-toDataURL-webp.html results after r119787

        Unreviewed test expectations update.

        * platform/chromium/TestExpectations:
        * platform/chromium-win/fast/canvas/canvas-toDataURL-webp-expected.png: Added.

2012-06-07  Takashi Sakamoto  <tasak@google.com>

        ShadowRoot needs resetStyleInheritance
        https://bugs.webkit.org/show_bug.cgi?id=84048

        Added layout tests for checking whether resetStyleInheritance works correctly or not.

        Reviewed by Hajime Morita.

        * fast/dom/shadow/shadow-root-resetStyleInheritance.html: Added.
        * fast/dom/shadow/shadow-root-resetStyleInheritance-expected.html: Added.

2012-06-07  Kinuko Yasuda  <kinuko@chromium.org>

        Fix unmatched parenthesis in fast/dom/HTMLAnchorElement/anchor-download-unset.html
        https://bugs.webkit.org/show_bug.cgi?id=88526

        Reviewed by Alexey Proskuryakov.

        This test is skipped on other platforms than chromium.

        * fast/dom/HTMLAnchorElement/anchor-download-unset.html:
        * platform/chromium/TestExpectations:

2012-06-07  Victor Carbune  <victor@rosedu.org>

        addTextTrack should set track mode to HIDDEN
        https://bugs.webkit.org/show_bug.cgi?id=88317

        Reviewed by Eric Carlson.

        * media/track/track-texttracks-expected.txt: Updated.
        * media/track/track-texttracks.html: Updated.

2012-06-07  Li Yin  <li.yin@intel.com>

        FileAPI: Blob should support ArrayBufferView instead of ArrayBuffer for Constructor Parameters
        https://bugs.webkit.org/show_bug.cgi?id=88294

        Reviewed by Jian Li.

        Support ArrayBufferView in Blob constructing function.

        * fast/files/blob-constructor-expected.txt:
        * fast/files/file-reader-fffd-expected.txt:
        * fast/files/file-reader-fffd.html:
        * fast/files/script-tests/blob-constructor.js:
        * http/tests/websocket/tests/hybi/bufferedAmount-after-close-in-busy.html:
        * http/tests/websocket/tests/hybi/bufferedAmount-after-close.html:
        * http/tests/websocket/tests/hybi/send-blob.html:
        * http/tests/websocket/tests/hybi/workers/resources/send-blob.js:
        (createBlobContainingAllDistinctBytes):

2012-06-07  MORITA Hajime  <morrita@google.com>

        A style in an older shadow subtree causes assert when composing with <shadow>
        https://bugs.webkit.org/show_bug.cgi?id=88299

        Reviewed by Dimitri Glazkov.

        * fast/dom/shadow/insertion-point-shadow-crash-expected.txt: Added.
        * fast/dom/shadow/insertion-point-shadow-crash.html: Added.

2012-06-07  Joshua Lock  <joshua.lock@intel.com>

        [EFL][DRT] Normalize file:///tmp/LayoutTests in LayoutTestController::pathToLocalResource()
        https://bugs.webkit.org/show_bug.cgi?id=67255

        Reviewed by Dirk Pranke.

        * platform/efl/TestExpectations: unskip
        fast/dom/frame-loading-via-document-write.html now that
        LayoutTestController::pathToLocalResource() is implemented for EFL.

2012-06-07  Noel Gordon  <noel.gordon@gmail.com>

        [chromium] Use WEBPImportPictureRGBX|BGRX to import picture data
        https://bugs.webkit.org/show_bug.cgi?id=88218

        Reviewed by Kent Tamura.

        The test image (html5.png) has an alpha 255 background. The background should
        be rendered black when a <canvas>.toDataURL('image/webp') is used as an <img>
        element src attribute for example, since WEBP does not support alpha.

        * fast/canvas/canvas-toDataURL-webp-expected.txt:
        * fast/canvas/canvas-toDataURL-webp.html: Change the test to encode the added
        html5.png test image as an image/webp data url.
        * fast/canvas/resources/html5.png: Added.
        * platform/chromium-mac-snowleopard/fast/canvas/canvas-toDataURL-webp-expected.png: Added.
        * platform/chromium/TestExpectations: Requires WIN, LINUX rebaselines.

2012-06-07  Ojan Vafai  <ojan@chromium.org>

        Last set of chromium rebaselines after r119748.
        Also mark pointer-lock/pointerlockchange-pointerlockerror-events.html
        as crashing in Chromium debug after r119763.

        Excluding list of changed pngs because it's too long.
        * platform/chromium/TestExpectations:

2012-06-07  Ojan Vafai  <ojan@chromium.org>

        Mark fast/table/multiple-captions-display.xhtml as flaky on Chromium.
        * platform/chromium/TestExpectations:

2012-06-07  Ojan Vafai  <ojan@chromium.org>

        Chromium rebaselines after http://trac.webkit.org/changeset/119760.

        * platform/chromium-linux/fast/borders/border-radius-valid-border-clipping-expected.png: Added.
        * platform/chromium-mac/fast/borders/border-radius-valid-border-clipping-expected.png:
        * platform/chromium-win/fast/borders/border-radius-valid-border-clipping-expected.png: Added.

2012-06-07  Tony Chang  <tony@chromium.org>

        [chromium] Unreviewed, new baselines for chromium-win after fixing
        scrollbar rendering in r119748.

        List of files omitted since it's long.

2012-06-06  Vincent Scheib  <scheib@chromium.org>

        Add new Pointer Lock spec events webkitpointerlockchange and webkitpointerlockerror
        https://bugs.webkit.org/show_bug.cgi?id=88377

        Reviewed by Dimitri Glazkov.

        Part of a series of refactoring changes to update pointer lock API to
        the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402

        New change and error events added. Follow up patches will remove
        the previous callbacks and pointerlocklost event. Tests updated
        to include the new events, and a new test added specifically for
        the new events, pointerlockchange-pointerlockerror-events.html.

        * pointer-lock/lock-already-locked-expected.txt:
        * pointer-lock/lock-already-locked.html:
        * pointer-lock/pointer-lock-api-expected.txt:
        * pointer-lock/pointer-lock-api.html:
        * pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt: Added.
        * pointer-lock/pointerlockchange-pointerlockerror-events.html: Added.
        * pointer-lock/pointerlocklost-event-expected.txt:
        * pointer-lock/pointerlocklost-event.html:

2012-06-07  Takashi Sakamoto  <tasak@google.com>

        Incorrect border rendering when border radius is above 2px.
        https://bugs.webkit.org/show_bug.cgi?id=88046

        Reviewed by Simon Fraser.

        * fast/borders/border-radius-valid-border-clipping-expected.txt: Added.
        * fast/borders/border-radius-valid-border-clipping.html: Added.
        * platform/chromium-mac/fast/borders/border-radius-valid-border-clipping-expected.png: Added.

2012-06-07  Edaena Salinas Jasso  <edaena@apple.com>

        Should fire error event for empty 404 script
        https://bugs.webkit.org/show_bug.cgi?id=50589

        Reviewed by Brady Eidson.

        Based on a test by Ojan Vafai.

        * http/tests/loading/fire-error-event-empty-404-script-expected.txt: Added.
        * http/tests/loading/fire-error-event-empty-404-script.html: Added.
        * http/tests/loading/fire-error-event-script-no-content-type-expected.txt: Added.
        * http/tests/loading/fire-error-event-script-no-content-type.html: Added.
        * http/tests/loading/resources/404-with-empty-body-no-content-type.cgi: Added.
        * http/tests/loading/resources/404-with-empty-body.cgi: Added.
        * http/tests/resources/network-simulator.php: Fixed to no longer return 404 error
        when logging a request.

2012-06-07  Ojan Vafai  <ojan@chromium.org>

        fast/js/dfg-double-vote-fuzz.html fails on Chromium release.

        * platform/chromium/TestExpectations:

2012-06-07  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Error codes, phase one
        https://bugs.webkit.org/show_bug.cgi?id=88459

        Reviewed by Tony Chang.

        * storage/indexeddb/basics-expected.txt:
        * storage/indexeddb/basics-shared-workers-expected.txt:
        * storage/indexeddb/basics-workers-expected.txt:
        * storage/indexeddb/create-and-remove-object-store-expected.txt:
        * storage/indexeddb/cursor-advance-expected.txt:
        * storage/indexeddb/cursor-update-expected.txt:
        * storage/indexeddb/database-basics-expected.txt:
        * storage/indexeddb/deleteIndex-expected.txt:
        * storage/indexeddb/resources/basics.js:
        (test):
        * storage/indexeddb/resources/create-and-remove-object-store.js:
        (testCreateAndRemove):
        (tryOnceMore):
        * storage/indexeddb/resources/cursor-advance.js:
        (testBadAdvance.advanceBadly):
        (testBadAdvance):
        * storage/indexeddb/resources/cursor-update.js:
        (keyCursor):
        * storage/indexeddb/resources/database-basics.js:
        (testClose):
        * storage/indexeddb/resources/deleteIndex.js:
        (postTwiddling):
        * storage/indexeddb/resources/transaction-after-close.js:
        (firstTransactionComplete):
        * storage/indexeddb/resources/transaction-and-objectstore-calls.js:
        (afterComplete):
        * storage/indexeddb/resources/transaction-basics.js:
        (testInvalidMode):
        * storage/indexeddb/transaction-after-close-expected.txt:
        * storage/indexeddb/transaction-and-objectstore-calls-expected.txt:
        * storage/indexeddb/transaction-basics-expected.txt:

2012-06-07  Elliot Poger  <epoger@chromium.org>

        Unreviewed, rolling out r119737.
        http://trac.webkit.org/changeset/119737

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

        * css1/basic/class_as_selector-expected.txt: Removed.
        * css1/basic/containment-expected.txt: Removed.
        ...
        * platform/gtk/css3/selectors3/xml/css3-modsel-74-expected.txt: Copied from LayoutTests/platform/gtk/css3/selectors3/xml/css3-modsel-74-expected.txt.
        * platform/gtk/css3/selectors3/xml/css3-modsel-74b-expected.txt: Copied from LayoutTests/platform/gtk/css3/selectors3/xml/css3-modsel-74b-expected.txt.

2012-06-07  Ojan Vafai  <ojan@chromium.org>

        Hopefully final chromium rebaseline for r119617.

        * platform/chromium-mac/compositing/geometry/fixed-position-composited-page-scale-down-expected.png:

2012-06-07  Ami Fischman  <fischman@chromium.org>

        Plumb CORS attribute information from HTMLMediaElement to media players so it can be used
        https://bugs.webkit.org/show_bug.cgi?id=88349

        Reviewed by Adam Barth.

        * http/tests/security/resources/video-cross-origin-allow.php: Added.
        * http/tests/security/video-cross-origin-readback-expected.txt: Added.
        * http/tests/security/video-cross-origin-readback.html: Added.
        * platform/efl/Skipped:
        * platform/gtk/TestExpectations:
        * platform/mac/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:
        * platform/wk2/Skipped:

2012-06-07  Stephen White  <senorblanco@chromium.org>

        Unreviewed; chromium test_expectations update.

        Removing expected-to-fail results for now-passing tests.

        * platform/chromium-mac/canvas/philip/tests/2d.line.width.basic-expected.txt: Removed.
        * platform/chromium-mac/canvas/philip/tests/2d.line.width.transformed-expected.txt: Removed.
        * platform/chromium-mac/canvas/philip/tests/2d.transformation.setTransform.skewed-expected.txt: Removed.
        * platform/chromium-mac/canvas/philip/tests/2d.transformation.transform.skewed-expected.txt: Removed.

2012-06-07  Jer Noble  <jer.noble@apple.com>

        sometimes all slaved videos don't start playing
        https://bugs.webkit.org/show_bug.cgi?id=88553

        Reviewed by Darin Adler.

        * media/media-controller-time-clamp-expected.txt: Added.
        * media/media-controller-time-clamp.html: Added.

2012-06-07  Ojan Vafai  <ojan@chromium.org>

        Mark another test as slow on Chromium Windows.
        * platform/chromium/TestExpectations:

2012-06-07  Elliot Poger  <epoger@chromium.org>

        Part 1 of rebaselines for http://crbug.com/131189

        Unreviewed rebaselining.

        * css1/basic/class_as_selector-expected.txt: Added.
        * css1/basic/containment-expected.txt: Added.
        ...
        * platform/gtk/css3/selectors3/xml/css3-modsel-74-expected.txt: Removed.
        * platform/gtk/css3/selectors3/xml/css3-modsel-74b-expected.txt: Removed.

2012-06-07  Mike Reed  <reed@google.com>

        clean up suppressions around two-point-radial-gradient in skia (fix will come later)
        https://bugs.webkit.org/show_bug.cgi?id=88549

        Expectations change only.

        * platform/chromium/TestExpectations:

2012-06-07  Ojan Vafai  <ojan@chromium.org>

        Update some flaky/slow expectations to better match the bots.
        * platform/chromium/TestExpectations:

2012-06-07  Raymes Khoury  <raymes@chromium.org>

        Incorrect rect-based hit-test result for culled-inline elements
        https://bugs.webkit.org/show_bug.cgi?id=85849

        Reviewed by Levi Weintraub.

        Added tests for rect-based hit-testing for the case when the child of a
        culled inline element is in the hit-test result. One of these tests is
        expected to fail due to https://bugs.webkit.org/show_bug.cgi?id=88376.

        * fast/dom/nodesFromRect-culled-inline-expected.txt: Added.
        * fast/dom/nodesFromRect-culled-inline.html: Added.

2012-06-07  Daniel Erat  <derat@chromium.org>

        [chromium] Add test for subpixel positioning.
        https://bugs.webkit.org/show_bug.cgi?id=88263

        Reviewed by Tony Chang.

        * platform/chromium-linux/fast/text/chromium-linux-text-subpixel-positioning-expected.png: Added.
        * platform/chromium-linux/fast/text/chromium-linux-text-subpixel-positioning-expected.txt: Added.
        * platform/chromium-linux/fast/text/chromium-linux-text-subpixel-positioning.html: Added.

2012-06-07  Simon Pena  <spena@igalia.com>

        [GTK] Add baselines for new tests
        https://bugs.webkit.org/show_bug.cgi?id=88540

        Unreviewed gardening. Added baselines for new tests.

        * platform/gtk/TestExpectations:
        * platform/gtk/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.png: Added.
        * platform/gtk/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.txt: Added.
        * platform/gtk/fast/reflections/reflection-with-zoom-expected.png: Added.
        * platform/gtk/fast/reflections/reflection-with-zoom-expected.txt: Added.
        * platform/gtk/fast/sub-pixel/file-upload-control-at-fractional-offset-expected.png: Added.
        * platform/gtk/fast/sub-pixel/file-upload-control-at-fractional-offset-expected.txt: Added.
        * platform/gtk/svg/repaint/text-mask-update-expected.png: Added.
        * platform/gtk/svg/repaint/text-mask-update-expected.txt: Added.

2012-06-07  Brady Eidson  <beidson@apple.com>

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

        Move new test added by r119644 that was only meant for platform/mac into the platform/mac directory:
        * platform/mac/fast/loader/resources/utf8-encoded.webarchive: Renamed from LayoutTests/fast/loader/resources/utf8-encoded.webarchive.
        * platform/mac/fast/loader/webarchive-encoding-respected-expected.txt: Renamed from LayoutTests/fast/loader/webarchive-encoding-respected-expected.txt.
        * platform/mac/fast/loader/webarchive-encoding-respected.html: Renamed from LayoutTests/fast/loader/webarchive-encoding-respected.html.

        Also remove it from the TestExpectations files for platforms where it was Skipped:
        * platform/chromium/TestExpectations:
        * platform/efl/TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/qt/TestExpectations:

2012-06-07  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r119707.
        http://trac.webkit.org/changeset/119707
        https://bugs.webkit.org/show_bug.cgi?id=88539

        Because the original patch with the failing test was rolled
        out by 119712 (Requested by Ossy on #webkit).

        * platform/qt/Skipped:

2012-06-07  Stephen White  <senorblanco@chromium.org>

        [Chromium] Rebaseline tests after r119591 that enabled imageSmoothingEnabled for patterns
        https://bugs.webkit.org/show_bug.cgi?id=88253

        Unreviewed; test expectations update.

        * platform/chromium-linux/svg/W3C-SVG-1.1/pservers-grad-06-b-expected.png:
        * platform/chromium-linux/svg/custom/pattern-skew-transformed-expected.png: Removed.
        * platform/chromium-linux/svg/custom/pattern-with-transformation-expected.png:
        * platform/chromium-mac-leopard/svg/custom/pattern-with-transformation-expected.png:
        * platform/chromium-mac-snowleopard/svg/custom/pattern-with-transformation-expected.png:
        * platform/chromium-mac/svg/W3C-SVG-1.1/pservers-grad-06-b-expected.png:
        * platform/chromium-mac/svg/custom/nested-pattern-boundingBoxModeContent-expected.png:
        * platform/chromium-mac/svg/custom/oversized-pattern-scale-expected.png:
        * platform/chromium-mac/svg/custom/pattern-in-defs-expected.png:
        * platform/chromium-mac/svg/custom/pattern-skew-transformed-expected.png:
        * platform/chromium-mac/svg/custom/pattern-with-transformation-expected.png:
        * platform/chromium-win/svg/W3C-SVG-1.1/pservers-grad-06-b-expected.png:
        * platform/chromium-win/svg/custom/nested-pattern-boundingBoxModeContent-expected.png:
        * platform/chromium-win/svg/custom/oversized-pattern-scale-expected.png:
        * platform/chromium-win/svg/custom/pattern-in-defs-expected.png:
        * platform/chromium-win/svg/custom/pattern-skew-transformed-expected.png:
        * platform/chromium-win/svg/custom/pattern-with-transformation-expected.png:
        * platform/chromium/TestExpectations:

2012-06-07  Mario Sanchez Prada  <msanchez@igalia.com>

        Unreviewed. Unskip passing tests for GTK.

        * platform/gtk/TestExpectations:

2012-06-07  Alexei Filippov  <alexeif@chromium.org>

        Web Inspector: sorting of object fields is broken in heap profiler
        https://bugs.webkit.org/show_bug.cgi?id=88532

        A recent change to heap profiler has replaced getters with functions.
        Function calls were missing in couple places after that change.

        The following changes were made to the tests:
        - generateSnapshot now uses pseudo random numbers for object sizes.
          It allows to test sorting.
        - Added a test that checks sorting of object instances of a particular class.
        - Added a test that checks sorting of fields in an object instance.

        Reviewed by Vsevolod Vlasov.

        Tests: inspector/profiler/heap-snapshot-summary-sorting-fields.html
               inspector/profiler/heap-snapshot-summary-sorting-instances.html

        * inspector/profiler/heap-snapshot-summary-sorting-fields-expected.txt: Added.
        * inspector/profiler/heap-snapshot-summary-sorting-fields.html: Added.
        * inspector/profiler/heap-snapshot-summary-sorting-instances-expected.txt: Added.
        * inspector/profiler/heap-snapshot-summary-sorting-instances.html: Added.
        * inspector/profiler/heap-snapshot-test.js:
        (initialize_HeapSnapshotTest.):
        (initialize_HeapSnapshotTest):
        * platform/mac/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:
        * platform/wincairo/Skipped:

2012-06-07  Ilya Tikhonovsky  <loislo@chromium.org>

        Unreviewed. Clean chromium test expectations.

        * platform/chromium/TestExpectations:

2012-06-07  Alexei Filippov  <alexeif@chromium.org>

        Web Inspector: reuse edge_count field of heap snapshot to store retained size
        https://bugs.webkit.org/show_bug.cgi?id=88416

        The edge_count field is unused after node first edge indexes have been built.
        Store node retained size in there instead of allocating an extra array for it.

        Reviewed by Vsevolod Vlasov.

        * inspector/profiler/heap-snapshot.html:

2012-06-07  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r119694.
        http://trac.webkit.org/changeset/119694
        https://bugs.webkit.org/show_bug.cgi?id=88529

        it broke PrerenderBrowserTest.PrerenderHTML5VideoNetwork
        (Requested by loislo on #webkit).

        * http/tests/security/resources/video-cross-origin-allow.php: Removed.
        * http/tests/security/video-cross-origin-readback-expected.txt: Removed.
        * http/tests/security/video-cross-origin-readback.html: Removed.

2012-06-07  Shinya Kawanaka  <shinyak@chromium.org>

        Delete a contenteditable element having a Shadow DOM causes a crash.
        https://bugs.webkit.org/show_bug.cgi?id=86345

        Reviewed by Ryosuke Niwa.

        * editing/shadow/select-contenteditable-shadowhost-expected.txt: Added.
        * editing/shadow/select-contenteditable-shadowhost.html: Added.

2012-06-07  Kinuko Yasuda  <kinuko@chromium.org>

        Unreviewed rebaseline for r115582.

        * http/tests/security/filesystem-iframe-from-remote-expected.txt:
        * platform/chromium/TestExpectations:

2012-06-07  Zoltan Arvai  <zarvai@inf.u-szeged.hu>

        [Qt] Gardening. Skip failing new test.
        https://bugs.webkit.org/show_bug.cgi?id=88523

        Reviewed by Csaba Osztrogonác.

        * platform/qt/Skipped: Skip http/tests/security/video-cross-origin-readback.html.

2012-06-07  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed Skipped list cleanup. Remove disabled/passing tests, add bug reports.

        * platform/qt-arm/Skipped:
        * platform/qt/Skipped:

2012-06-07  Li Yin  <li.yin@intel.com>

        FileAPI: If type consists of non-ASCII characters in Blob constructor, it should throw a SyntaxError.
        https://bugs.webkit.org/show_bug.cgi?id=88411

        Reviewed by Kentaro Hara.

        From Spec: http://dev.w3.org/2006/webapi/FileAPI/#constructorBlob
        If type consists of any non-ASCII characters, throw a SyntaxError and
        return from this algorithm.

        * fast/files/blob-constructor-expected.txt:
        * fast/files/script-tests/blob-constructor.js:

2012-06-07  Arpita Bahuguna  <arpitabahuguna@gmail.com>

        InsertUnorderedList and InsertOrderedList (execCommand) do not remove bullets
        https://bugs.webkit.org/show_bug.cgi?id=84597

        Reviewed by Ryosuke Niwa.

        This test verifies removing of an (un)ordered list on a selection consisting of multiple
        list items (paragraphs) when the end point of the selection points to the end of the last
        list item; followed by another paragraph not part of the selection/list.
 
        * editing/execCommand/remove-list-from-multi-list-items-expected.txt: Added.
        * editing/execCommand/remove-list-from-multi-list-items.html: Added.

2012-06-07  Yoshifumi Inoue  <yosin@chromium.org>

        [Forms] Improve test coverage of input-number-size.html
        https://bugs.webkit.org/show_bug.cgi?id=88489

        Reviewed by Kent Tamura.

        This patch improves test coverage for NumberInputType::sizeShouldIncludeDecoration()
        for preparation of introducing decimal arithmetic.

        * fast/forms/number/input-number-size-expected.txt: Updated for a new test case.
        * fast/forms/number/input-number-size.html: Added a test case.

2012-06-07  Li Yin  <li.yin@intel.com>

        [FileAPI] FileReader should throw an InvalidStateError exception when readyState is LOADING
        https://bugs.webkit.org/show_bug.cgi?id=88212

        Reviewed by Jian Li.

        From spec: http://www.w3.org/TR/FileAPI/#readAsBinaryString
        FileReader should throw an InvalidStateError exception instead of NOT_ALLOWED_ERR.

        * fast/files/read-file-async-expected.txt:
        * fast/files/workers/worker-read-file-async-expected.txt:

2012-06-07  Hironori Bono  <hbono@chromium.org>

        Use light gray for grammar markers on Windows and Linux
        https://bugs.webkit.org/show_bug.cgi?id=88398

        Reviewed by Ryosuke Niwa.

        This change changes the color of grammar markers from dark gray to light gray
        and rebaselines a couple of pixel tests affected by this change.

        * platform/chromium-linux/editing/spelling/grammar-markers-expected.png:
        * platform/chromium-win/editing/spelling/grammar-markers-expected.png:

2012-06-06  Xianzhu Wang  <wangxianzhu@chromium.org>

        Element.getBoundingClientRect() and Element.getClientRects() return incorrect values in frames in a scaled page
        https://bugs.webkit.org/show_bug.cgi?id=88430

        Reviewed by James Robinson.

        * fast/dom/Element/resources/client-rect-frame.html: Added.
        * fast/dom/Element/scale-page-bounding-client-rect-in-frame-expected.txt: Added.
        * fast/dom/Element/scale-page-bounding-client-rect-in-frame.html: Added.
        * fast/dom/Element/scale-page-client-rects-in-frame-expected.txt: Added.
        * fast/dom/Element/scale-page-client-rects-in-frame.html: Added.

2012-06-06  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r119668.
        http://trac.webkit.org/changeset/119668
        https://bugs.webkit.org/show_bug.cgi?id=88493

        Hitting assertions in debug builds (Requested by rniwa on
        #webkit).

        * editing/selection/caret-in-empty-inline-1-expected.txt: Removed.
        * editing/selection/caret-in-empty-inline-1.html: Removed.
        * editing/selection/caret-in-empty-inline-2-expected.txt: Removed.
        * editing/selection/caret-in-empty-inline-2.html: Removed.

2012-06-06  Ryosuke Niwa  <rniwa@webkit.org>

        One more Chromium rebaseline for r119617.

        Also update the test expectation per r119659.
        fast/sub-pixel/file-upload-control-at-fractional-offset.html should have MISSING expectation.

        * platform/chromium-linux/compositing/geometry/fixed-position-expected.png:
        * platform/chromium-mac-snowleopard/compositing/geometry/fixed-position-expected.png:
        * platform/chromium-mac/compositing/geometry/fixed-position-expected.png:
        * platform/chromium-win/compositing/geometry/fixed-position-expected.png:
        * platform/chromium/TestExpectations:

2012-06-06  Ryosuke Niwa  <rniwa@webkit.org>

        More Chromium rebaselines for r119591 and r119617.

        * platform/chromium-linux/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.png: Removed.
        * platform/chromium-mac-snowleopard/compositing/geometry/fixed-position-composited-page-scale-down-expected.png:
        * platform/chromium-mac-snowleopard/compositing/geometry/fixed-position-transform-composited-page-scale-down-expected.png: Added.
        * platform/chromium-win-xp/fast/text/backslash-to-yen-sign-euc-expected.png:
        * platform/chromium-win/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.png:

2012-06-06  Ryosuke Niwa  <rniwa@webkit.org>

        Add an image failure expectation to fast/repaint/fixed-tranformed.html
        on Chromium Windows and Chromium Mac. The failure is tracked by the bug 88490.

        * platform/chromium/TestExpectations:

2012-06-06  Ryosuke Niwa  <rniwa@webkit.org>

        Add a timeout expectation to http/tests/media/video-cookie.html.
        The failure is tracked by the Chromium issue 131533.

        * platform/chromium/TestExpectations:

2012-06-06  Shezan Baig  <shezbaig.wk@gmail.com>

        Caret is not rendered in empty inline contenteditable elements
        https://bugs.webkit.org/show_bug.cgi?id=85793

        Reviewed by Ryosuke Niwa.

        Add test cases for caret in empty inline.

        * editing/selection/caret-in-empty-inline-1-expected.txt: Added.
        * editing/selection/caret-in-empty-inline-1.html: Added.
        * editing/selection/caret-in-empty-inline-2-expected.txt: Added.
        * editing/selection/caret-in-empty-inline-2.html: Added.

2012-06-06  Ryosuke Niwa  <rniwa@webkit.org>

        Add failing test expectation for the test added by r119644.
        The failure is tracked by the bug 88481.

        * platform/chromium/TestExpectations:
        * platform/efl/TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/qt/TestExpectations:

2012-06-06  Noel Gordon  <noel.gordon@gmail.com>

        Add a test for PNG COLOR_TYPE_PALETTE image with a color profile
        https://bugs.webkit.org/show_bug.cgi?id=86722

        Reviewed by Adam Barth

        Add paletted PNG image with a color profile and write a test. Add platform exceptions
        since color correction is not implemented on all platforms. Note: that wincairo skips
        fast/images/*.

        * fast/images/paletted-png-with-color-profile-expected.txt: Added.
        * fast/images/paletted-png-with-color-profile.html: Added.
        * fast/images/resources/palatted-color-png-gamma-one-color-profile.png: Added.
        * platform/chromium/TestExpectations: No color correction for paletted PNG images.
        * platform/efl/TestExpectations: SKIP, no color correction.
        * platform/gtk/TestExpectations: SKIP, no color correction.
        * platform/mac-snowleopard/fast/images/paletted-png-with-color-profile-expected.png: Added.
        The image is a 64-color, paletted PNG image containing a gamma 1.0 sRGB color profile.
        See the bug for more detailed properties of the test image and its color profile.
        * platform/qt/TestExpectations: SKIP, no color correction.

2012-06-06  Alexis Menard  <alexis.menard@openbossa.org>

        Fix border-image-slice failures on http://css3test.com.
        https://bugs.webkit.org/show_bug.cgi?id=88328

        Reviewed by Tony Chang.

        Make sure we cover more border-image-slice parsing.

        * fast/css/getComputedStyle/getComputedStyle-border-image-slice-expected.txt: Added.
        * fast/css/getComputedStyle/getComputedStyle-border-image-slice.html: Added.

2012-06-06  Levi Weintraub  <leviw@chromium.org>

        Use enclosingIntRect instead of pixelSnappedIntRect in RenderFileUploadControl
        https://bugs.webkit.org/show_bug.cgi?id=88454

        Reviewed by Kent Tamura.

        Skipping new test on non-chromium platforms, and correcting a typo in several skipped files.
        Also updating the bug number in the gtk skipped file to 85532 from 60318 to better reflect
        the outstanding work of enabling each port to support sub-pixel layout, instead of sub-pixel
        layout itself.

        * fast/sub-pixel/file-upload-control-at-fractional-offset.html: Added.
        * platform/chromium-mac-snowleopard/fast/sub-pixel: Added.
        * platform/chromium-mac-snowleopard/fast/sub-pixel/file-upload-control-at-fractional-offset-expected.png: Added.
        * platform/chromium-mac-snowleopard/fast/sub-pixel/file-upload-control-at-fractional-offset-expected.txt: Added.
        * platform/chromium/TestExpectations:
        * platform/efl/Skipped:
        * platform/gtk-wk2/Skipped:
        * platform/gtk/TestExpectations:
        * platform/mac-lion/Skipped:
        * platform/mac-snowleopard/Skipped:
        * platform/mac-wk2/Skipped:
        * platform/mac/Skipped:
        * platform/qt-4.8/Skipped:
        * platform/qt/Skipped:
        * platform/win-wk2/Skipped:
        * platform/win-xp/Skipped:
        * platform/win/Skipped:
        * platform/wincairo/Skipped:
        * platform/wk2/Skipped:

2012-06-06  Ryosuke Niwa  <rniwa@webkit.org>

        Revert erroneous change in r119637.

        * platform/chromium/TestExpectations:

2012-06-06  Jessie Berlin  <jberlin@apple.com>

        [Win] ASSERT(m_manualStream) failed in PluginView::didFinishLoading running
        fast/loader/reload-zero-byte-plugin.html

        Skip another affected test on Windows to get the bots greener.

        * platform/win/Skipped:

2012-06-06  Ryosuke Niwa  <rniwa@webkit.org>

        Chromium rebaseline after r119617 part 5.

        * platform/chromium-linux-x86/tables/mozilla_expected_failures/bugs/bug10140-expected.png: Added.
        * platform/chromium-linux-x86/tables/mozilla_expected_failures/bugs/bug101759-expected.png: Added.
        * platform/chromium-linux-x86/tables/mozilla_expected_failures/bugs/bug10216-expected.png: Added.
        * platform/chromium-linux-x86/tables/mozilla_expected_failures/bugs/bug1055-2-expected.png: Added.
        * platform/chromium-linux-x86/tables/mozilla_expected_failures/bugs/bug22122-expected.png: Added.
        * platform/chromium-linux-x86/tables/mozilla_expected_failures/core: Added.
        * platform/chromium-linux-x86/tables/mozilla_expected_failures/core/captions3-expected.png: Added.
        * platform/chromium-linux-x86/tables/mozilla_expected_failures/core/columns-expected.png: Added.
        * platform/chromium-linux-x86/tables/mozilla_expected_failures/marvin: Added.
        * platform/chromium-linux-x86/tables/mozilla_expected_failures/marvin/backgr_border-table-row-group-expected.png: Added.
        * platform/chromium-linux-x86/tables/mozilla_expected_failures/marvin/backgr_layers-hide-expected.png: Added.
        * platform/chromium-linux-x86/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_row-expected.png: Added.
        * platform/chromium-linux-x86/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_tbody-expected.png: Added.
        * platform/chromium-linux-x86/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_row_sibling-expected.png: Added.
        * platform/chromium-linux/tables/mozilla/bugs/bug1055-1-expected.png:
        * platform/chromium-linux/tables/mozilla/bugs/bug113235-3-expected.png:
        * platform/chromium-linux/tables/mozilla/bugs/bug11944-expected.png:
        * platform/chromium-linux/tables/mozilla/bugs/bug131020-expected.png:
        * platform/chromium-linux/tables/mozilla/bugs/bug137388-2-expected.png:
        * platform/chromium-linux/tables/mozilla/bugs/bug149275-1-expected.png:
        * platform/chromium-linux/tables/mozilla/bugs/bug16252-expected.png:
        * platform/chromium-linux/tables/mozilla/bugs/bug22019-expected.png:
        * platform/chromium-linux/tables/mozilla/bugs/bug2947-expected.png:
        * platform/chromium-linux/tables/mozilla/bugs/bug2997-expected.png:
        * platform/chromium-linux/tables/mozilla/bugs/bug32205-2-expected.png:
        * platform/chromium-linux/tables/mozilla/bugs/bug3977-expected.png:
        * platform/chromium-linux/tables/mozilla/bugs/bug43039-expected.png:
        * platform/chromium-linux/tables/mozilla/bugs/bug43854-1-expected.png:
        * platform/chromium-linux/tables/mozilla/bugs/bug46480-2-expected.png:
        * platform/chromium-linux/tables/mozilla/bugs/bug5797-expected.png:
        * platform/chromium-linux/tables/mozilla/bugs/bug650-expected.png:
        * platform/chromium-linux/tables/mozilla/bugs/bug96343-expected.png:
        * platform/chromium-linux/tables/mozilla/collapsing_borders/bug41262-3-expected.png:
        * platform/chromium-linux/tables/mozilla/core/borders-expected.png:
        * platform/chromium-linux/tables/mozilla/core/captions-expected.png:
        * platform/chromium-linux/tables/mozilla/core/col_widths_auto_fix-expected.png:
        * platform/chromium-linux/tables/mozilla/core/col_widths_fix_fixPer-expected.png:
        * platform/chromium-linux/tables/mozilla/core/row_span-expected.png:
        * platform/chromium-linux/tables/mozilla/marvin/backgr_simple-table-column-expected.png:
        * platform/chromium-linux/tables/mozilla/marvin/backgr_simple-table-column-group-expected.png:
        * platform/chromium-linux/tables/mozilla/marvin/backgr_simple-table-row-expected.png:
        * platform/chromium-linux/tables/mozilla/marvin/backgr_simple-table-row-group-expected.png:
        * platform/chromium-linux/tables/mozilla/marvin/x_table_bgcolor_name-expected.png:
        * platform/chromium-linux/tables/mozilla/marvin/x_table_bgcolor_rgb-expected.png:
        * platform/chromium-linux/tables/mozilla/marvin/x_td_height-expected.png:
        * platform/chromium-linux/tables/mozilla/marvin/x_td_nowrap-expected.png:
        * platform/chromium-linux/tables/mozilla/marvin/x_th_height-expected.png:
        * platform/chromium-linux/tables/mozilla/marvin/x_th_nowrap-expected.png:
        * platform/chromium-linux/tables/mozilla/other/nestedTables-expected.png:
        * platform/chromium-linux/tables/mozilla/other/test6-expected.png:
        * platform/chromium-linux/tables/mozilla/other/wa_table_tr_align-expected.png:
        * platform/chromium-linux/tables/mozilla_expected_failures/bugs/bug10140-expected.png:
        * platform/chromium-linux/tables/mozilla_expected_failures/bugs/bug101759-expected.png:
        * platform/chromium-linux/tables/mozilla_expected_failures/bugs/bug10216-expected.png:
        * platform/chromium-linux/tables/mozilla_expected_failures/bugs/bug1055-2-expected.png:
        * platform/chromium-linux/tables/mozilla_expected_failures/bugs/bug14007-2-expected.png:
        * platform/chromium-linux/tables/mozilla_expected_failures/bugs/bug22122-expected.png:
        * platform/chromium-linux/tables/mozilla_expected_failures/bugs/bug2479-5-expected.png:
        * platform/chromium-linux/tables/mozilla_expected_failures/bugs/bug32205-1-expected.png:
        * platform/chromium-linux/tables/mozilla_expected_failures/bugs/bug80762-2-expected.png:
        * platform/chromium-linux/tables/mozilla_expected_failures/core/captions1-expected.png:
        * platform/chromium-linux/tables/mozilla_expected_failures/core/captions3-expected.png:
        * platform/chromium-linux/tables/mozilla_expected_failures/core/columns-expected.png:
        * platform/chromium-linux/tables/mozilla_expected_failures/core/standards1-expected.png:
        * platform/chromium-linux/tables/mozilla_expected_failures/marvin/backgr_border-table-expected.png:
        * platform/chromium-linux/tables/mozilla_expected_failures/marvin/backgr_border-table-row-expected.png:
        * platform/chromium-linux/tables/mozilla_expected_failures/marvin/backgr_border-table-row-group-expected.png:
        * platform/chromium-linux/tables/mozilla_expected_failures/marvin/backgr_layers-hide-expected.png:
        * platform/chromium-linux/tables/mozilla_expected_failures/marvin/backgr_position-table-cell-expected.png:
        * platform/chromium-linux/tables/mozilla_expected_failures/marvin/backgr_position-table-column-expected.png:
        * platform/chromium-linux/tables/mozilla_expected_failures/marvin/backgr_position-table-row-expected.png:
        * platform/chromium-linux/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_row-expected.png:
        * platform/chromium-linux/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_tbody-expected.png:
        * platform/chromium-linux/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_row_sibling-expected.png:
        * platform/chromium-linux/tables/mozilla_expected_failures/other/test4-expected.png:
        * platform/chromium-linux/transforms/3d/point-mapping/3d-point-mapping-expected.png:
        * platform/chromium-linux/transforms/3d/point-mapping/3d-point-mapping-origins-expected.png:
        * platform/chromium-linux/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.png:
        * platform/chromium-win-vista/tables/mozilla_expected_failures/bugs/bug10140-expected.png: Added.
        * platform/chromium-win-vista/tables/mozilla_expected_failures/bugs/bug101759-expected.png: Added.
        * platform/chromium-win-vista/tables/mozilla_expected_failures/bugs/bug10216-expected.png: Added.
        * platform/chromium-win-vista/tables/mozilla_expected_failures/bugs/bug1055-2-expected.png: Added.
        * platform/chromium-win-vista/tables/mozilla_expected_failures/bugs/bug106966-expected.png: Added.
        * platform/chromium-win-vista/tables/mozilla_expected_failures/bugs/bug131020-3-expected.png: Added.
        * platform/chromium-win-vista/tables/mozilla_expected_failures/bugs/bug19526-expected.png: Added.
        * platform/chromium-win-vista/tables/mozilla_expected_failures/bugs/bug22122-expected.png: Added.
        * platform/chromium-win-vista/tables/mozilla_expected_failures/bugs/bug85016-expected.png: Added.
        * platform/chromium-win-vista/tables/mozilla_expected_failures/core: Added.
        * platform/chromium-win-vista/tables/mozilla_expected_failures/core/captions2-expected.png: Added.
        * platform/chromium-win-vista/tables/mozilla_expected_failures/core/captions3-expected.png: Added.
        * platform/chromium-win-vista/tables/mozilla_expected_failures/core/col_span2-expected.png: Added.
        * platform/chromium-win-vista/tables/mozilla_expected_failures/core/columns-expected.png: Added.
        * platform/chromium-win-vista/tables/mozilla_expected_failures/marvin: Added.
        * platform/chromium-win-vista/tables/mozilla_expected_failures/marvin/backgr_border-table-column-expected.png: Added.
        * platform/chromium-win-vista/tables/mozilla_expected_failures/marvin/backgr_border-table-column-group-expected.png: Added.
        * platform/chromium-win-vista/tables/mozilla_expected_failures/marvin/backgr_border-table-row-group-expected.png: Added.
        * platform/chromium-win-vista/tables/mozilla_expected_failures/marvin/backgr_layers-hide-expected.png: Added.
        * platform/chromium-win-vista/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_row-expected.png: Added.
        * platform/chromium-win-vista/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_tbody-expected.png: Added.
        * platform/chromium-win-vista/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_row_sibling-expected.png: Added.
        * platform/chromium-win-vista/tables/mozilla_expected_failures/other: Added.
        * platform/chromium-win-vista/tables/mozilla_expected_failures/other/empty_cells-expected.png: Added.
        * platform/chromium-win-xp/tables/mozilla/bugs/bug131020-expected.png: Removed.
        * platform/chromium-win/tables/mozilla/bugs/bug101674-expected.png:
        * platform/chromium-win/tables/mozilla/bugs/bug10269-2-expected.png:
        * platform/chromium-win/tables/mozilla/bugs/bug1055-1-expected.png:
        * platform/chromium-win/tables/mozilla/bugs/bug113235-1-expected.png:
        * platform/chromium-win/tables/mozilla/bugs/bug137388-2-expected.png:
        * platform/chromium-win/tables/mozilla/bugs/bug149275-1-expected.png:
        * platform/chromium-win/tables/mozilla/bugs/bug22019-expected.png:
        * platform/chromium-win/tables/mozilla/bugs/bug2997-expected.png:
        * platform/chromium-win/tables/mozilla/bugs/bug38916-expected.png:
        * platform/chromium-win/tables/mozilla/bugs/bug3977-expected.png:
        * platform/chromium-win/tables/mozilla/bugs/bug43854-1-expected.png:
        * platform/chromium-win/tables/mozilla/bugs/bug46480-1-expected.png:
        * platform/chromium-win/tables/mozilla/bugs/bug50695-1-expected.png:
        * platform/chromium-win/tables/mozilla/bugs/bug56405-expected.png:
        * platform/chromium-win/tables/mozilla/bugs/bug625-expected.png:
        * platform/chromium-win/tables/mozilla/bugs/bug7112-1-expected.png:
        * platform/chromium-win/tables/mozilla/bugs/bug7112-2-expected.png:
        * platform/chromium-win/tables/mozilla/core/borders-expected.png:
        * platform/chromium-win/tables/mozilla/core/captions-expected.png:
        * platform/chromium-win/tables/mozilla/core/col_span-expected.png:
        * platform/chromium-win/tables/mozilla/core/row_span-expected.png:
        * platform/chromium-win/tables/mozilla/marvin/backgr_simple-table-row-group-expected.png:
        * platform/chromium-win/tables/mozilla/marvin/x_table_bgcolor_name-expected.png:
        * platform/chromium-win/tables/mozilla/marvin/x_table_bgcolor_rgb-expected.png:
        * platform/chromium-win/tables/mozilla/marvin/x_td_nowrap-expected.png:
        * platform/chromium-win/tables/mozilla/marvin/x_th_nowrap-expected.png:
        * platform/chromium-win/tables/mozilla/other/cell_widths-expected.png:
        * platform/chromium-win/tables/mozilla/other/nestedTables-expected.png:
        * platform/chromium-win/tables/mozilla/other/wa_table_thtd_rowspan-expected.png:
        * platform/chromium-win/tables/mozilla_expected_failures/bugs/bug10140-expected.png:
        * platform/chromium-win/tables/mozilla_expected_failures/bugs/bug101759-expected.png:
        * platform/chromium-win/tables/mozilla_expected_failures/bugs/bug10216-expected.png:
        * platform/chromium-win/tables/mozilla_expected_failures/bugs/bug1055-2-expected.png:
        * platform/chromium-win/tables/mozilla_expected_failures/bugs/bug106966-expected.png:
        * platform/chromium-win/tables/mozilla_expected_failures/bugs/bug131020-3-expected.png:
        * platform/chromium-win/tables/mozilla_expected_failures/bugs/bug19526-expected.png:
        * platform/chromium-win/tables/mozilla_expected_failures/bugs/bug22122-expected.png:
        * platform/chromium-win/tables/mozilla_expected_failures/bugs/bug85016-expected.png:
        * platform/chromium-win/tables/mozilla_expected_failures/core/captions2-expected.png:
        * platform/chromium-win/tables/mozilla_expected_failures/core/captions3-expected.png:
        * platform/chromium-win/tables/mozilla_expected_failures/core/col_span2-expected.png:
        * platform/chromium-win/tables/mozilla_expected_failures/core/columns-expected.png:
        * platform/chromium-win/tables/mozilla_expected_failures/marvin/backgr_border-table-column-expected.png:
        * platform/chromium-win/tables/mozilla_expected_failures/marvin/backgr_border-table-column-group-expected.png:
        * platform/chromium-win/tables/mozilla_expected_failures/marvin/backgr_border-table-row-group-expected.png:
        * platform/chromium-win/tables/mozilla_expected_failures/marvin/backgr_layers-hide-expected.png:
        * platform/chromium-win/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_row-expected.png:
        * platform/chromium-win/tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_tbody-expected.png:
        * platform/chromium-win/tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_row_sibling-expected.png:
        * platform/chromium-win/tables/mozilla_expected_failures/other/empty_cells-expected.png:

2012-06-06  Filip Pizlo  <fpizlo@apple.com>

        DFG arguments access slow path should not crash if the arguments haven't been created
        https://bugs.webkit.org/show_bug.cgi?id=88471

        Reviewed by Gavin Barraclough.

        * fast/js/dfg-arguments-out-of-bounds-expected.txt: Added.
        * fast/js/dfg-arguments-out-of-bounds.html: Added.
        * fast/js/dfg-inline-arguments-out-of-bounds-expected.txt: Added.
        * fast/js/dfg-inline-arguments-out-of-bounds.html: Added.
        * fast/js/script-tests/dfg-arguments-out-of-bounds.js: Added.
        (foo.bar):
        (foo):
        * fast/js/script-tests/dfg-inline-arguments-out-of-bounds.js: Added.
        (foo):
        (bar):

2012-06-06  Ryosuke Niwa  <rniwa@webkit.org>

        Chromium rebaseline after r119617 part 4.

        * platform/chromium-linux-x86/fast/text/international: Added.
        * platform/chromium-linux-x86/fast/text/international/bidi-neutral-run-expected.png: Added.
        * platform/chromium-linux-x86/ietestcenter: Added.
        * platform/chromium-linux-x86/ietestcenter/css3: Added.
        * platform/chromium-linux-x86/ietestcenter/css3/bordersbackgrounds: Added.
        * platform/chromium-linux-x86/ietestcenter/css3/bordersbackgrounds/background_position_three_four_values-expected.png: Added.
        * platform/chromium-linux-x86/platform/chromium/compositing: Removed.
        * platform/chromium-linux/fast/text/international/bidi-LDB-2-formatting-characters-expected.png:
        * platform/chromium-linux/fast/text/international/bidi-european-terminators-expected.png:
        * platform/chromium-linux/fast/text/international/bidi-neutral-run-expected.png:
        * platform/chromium-linux/fast/text/softHyphen-expected.png:
        * platform/chromium-linux/fast/text/wbr-expected.png:
        * platform/chromium-linux/fast/text/whitespace/024-expected.png:
        * platform/chromium-linux/fast/text/whitespace/pre-wrap-spaces-after-newline-expected.png:
        * platform/chromium-linux/fast/writing-mode/fieldsets-expected.png:
        * platform/chromium-linux/fonts/cursive-expected.png:
        * platform/chromium-linux/fonts/default-expected.png:
        * platform/chromium-linux/fonts/fantasy-expected.png:
        * platform/chromium-linux/fonts/serif-expected.png:
        * platform/chromium-linux/ietestcenter/css3/bordersbackgrounds/background_position_three_four_values-expected.png:
        * platform/chromium-linux/media/video-zoom-expected.png:
        * platform/chromium-linux/platform/chromium/compositing/layout-width-change-expected.png:
        * platform/chromium-linux/platform/chromium/media/video-frame-size-change-expected.png:
        * platform/chromium-linux/platform/chromium/virtual/gpu/fast/canvas/canvas-bg-expected.png:
        * platform/chromium-linux/printing/return-from-printing-mode-expected.png:
        * platform/chromium-linux/scrollbars/basic-scrollbar-expected.png:
        * platform/chromium-linux/scrollbars/overflow-scrollbar-combinations-expected.png:
        * platform/chromium-linux/scrollbars/scrollbar-orientation-expected.png:
        * platform/chromium-linux/svg/custom/altglyph-expected.png:
        * platform/chromium-linux/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.png:
        * platform/chromium-linux/svg/custom/text-xy-updates-SVGList-expected.png:
        * platform/chromium-linux/svg/dom/SVGLengthList-basics-expected.png:
        * platform/chromium-linux/svg/dom/SVGLengthList-insertItemBefore-expected.png:
        * platform/chromium-linux/svg/dom/SVGLengthList-replaceItem-expected.png:
        * platform/chromium-linux/svg/dom/SVGLengthList-xml-dom-modifications-expected.png:
        * platform/chromium-linux/svg/dom/SVGPathSegList-appendItem-expected.png:
        * platform/chromium-linux/svg/dom/SVGPathSegList-clear-and-initialize-expected.png:
        * platform/chromium-linux/svg/dom/SVGPathSegList-insertItemBefore-expected.png:
        * platform/chromium-linux/svg/dom/SVGPathSegList-removeItem-expected.png:
        * platform/chromium-linux/svg/dom/SVGPathSegList-replaceItem-expected.png:
        * platform/chromium-linux/svg/dom/SVGPointList-basics-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGFEBlendElement-dom-in-attr-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGFEBlendElement-dom-in2-attr-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGFEBlendElement-dom-mode-attr-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGFEBlendElement-svgdom-in-prop-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGFEBlendElement-svgdom-in2-prop-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGFEBlendElement-svgdom-mode-prop-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGFEColorMatrixElement-dom-in-attr-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGFEColorMatrixElement-dom-type-attr-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGFEColorMatrixElement-dom-values-attr-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGFEColorMatrixElement-svgdom-in-prop-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGFEColorMatrixElement-svgdom-type-prop-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGFEColorMatrixElement-svgdom-values-prop-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGImageElement-svgdom-preserveAspectRatio-prop-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGLineElement-svgdom-requiredFeatures-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGTextElement-dom-lengthAdjust-attr-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGTextElement-dom-textLength-attr-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGTextElement-svgdom-lengthAdjust-prop-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGTextElement-svgdom-textLength-prop-expected.png:
        * platform/chromium-linux/svg/dynamic-updates/SVGUseElement-dom-requiredFeatures-expected.png:
        * platform/chromium-linux/svg/overflow/overflow-on-outermost-svg-element-defaults-expected.png:
        * platform/chromium-linux/svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-1-expected.png:
        * platform/chromium-linux/svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-2-expected.png:
        * platform/chromium-linux/svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-3-expected.png:
        * platform/chromium-linux/svg/overflow/overflow-on-outermost-svg-element-in-xhtml-defaults-expected.png:
        * platform/chromium-linux/svg/text/multichar-glyph-expected.png:
        * platform/chromium-linux/svg/zoom/page/zoom-svg-float-border-padding-expected.png:
        * platform/chromium-linux/svg/zoom/text/zoom-svg-float-border-padding-expected.png:
        * platform/chromium-mac-leopard/media/video-zoom-expected.png:
        * platform/chromium-mac-leopard/scrollbars/basic-scrollbar-expected.png:
        * platform/chromium-mac-leopard/scrollbars/disabled-scrollbar-expected.png:
        * platform/chromium-mac-leopard/scrollbars/listbox-scrollbar-combinations-expected.png:
        * platform/chromium-mac-leopard/scrollbars/overflow-scrollbar-combinations-expected.png:
        * platform/chromium-mac-leopard/scrollbars/scrollbar-orientation-expected.png:
        * platform/chromium-mac-snowleopard/media/video-zoom-expected.png:
        * platform/chromium-mac-snowleopard/platform/chromium/compositing/layout-width-change-expected.png:
        * platform/chromium-mac-snowleopard/scrollbars/basic-scrollbar-expected.png:
        * platform/chromium-mac-snowleopard/scrollbars/disabled-scrollbar-expected.png:
        * platform/chromium-mac-snowleopard/scrollbars/listbox-scrollbar-combinations-expected.png:
        * platform/chromium-mac-snowleopard/scrollbars/overflow-scrollbar-combinations-expected.png:
        * platform/chromium-mac-snowleopard/scrollbars/scrollbar-orientation-expected.png:
        * platform/chromium-mac/media/video-zoom-expected.png:
        * platform/chromium-mac/platform/chromium/compositing/img-layer-grow-expected.png:
        * platform/chromium-mac/platform/chromium/compositing/layout-width-change-expected.png:
        * platform/chromium-mac/scrollbars/basic-scrollbar-expected.png:
        * platform/chromium-mac/scrollbars/disabled-scrollbar-expected.png:
        * platform/chromium-mac/scrollbars/listbox-scrollbar-combinations-expected.png:
        * platform/chromium-mac/scrollbars/overflow-scrollbar-combinations-expected.png:
        * platform/chromium-mac/scrollbars/scrollbar-orientation-expected.png:
        * platform/chromium-win-vista/platform/chromium/compositing: Added.
        * platform/chromium-win-vista/platform/chromium/compositing/layout-width-change-expected.png: Added.
        * platform/chromium-win-xp/platform/chromium/compositing: Added.
        * platform/chromium-win-xp/platform/chromium/compositing/layout-width-change-expected.png: Added.
        * platform/chromium-win/fast/text/international/bidi-european-terminators-expected.png:
        * platform/chromium-win/fast/text/word-break-expected.png:
        * platform/chromium-win/fast/writing-mode/fieldsets-expected.png:
        * platform/chromium-win/ietestcenter/css3/bordersbackgrounds/background_position_three_four_values-expected.png:
        * platform/chromium-win/media/video-zoom-expected.png:
        * platform/chromium-win/platform/chromium/compositing/img-layer-grow-expected.png: Added.
        * platform/chromium-win/platform/chromium/compositing/layout-width-change-expected.png:
        * platform/chromium-win/platform/chromium/media/video-frame-size-change-expected.png:
        * platform/chromium-win/platform/chromium/virtual/gpu/fast/canvas/canvas-bg-expected.png:
        * platform/chromium-win/scrollbars/basic-scrollbar-expected.png:
        * platform/chromium-win/scrollbars/overflow-scrollbar-combinations-expected.png:
        * platform/chromium-win/scrollbars/scrollbar-orientation-expected.png:
        * platform/chromium-win/scrollbars/scrollbars-on-positioned-content-expected.png:
        * platform/chromium-win/svg/custom/altglyph-expected.png:
        * platform/chromium-win/svg/custom/invisible-text-after-scrolling-expected.png:
        * platform/chromium-win/svg/custom/junk-data-expected.png:
        * platform/chromium-win/svg/custom/missing-xlink-expected.png:
        * platform/chromium-win/svg/custom/path-bad-data-expected.png:
        * platform/chromium-win/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.png:
        * platform/chromium-win/svg/custom/text-xy-updates-SVGList-expected.png:
        * platform/chromium-win/svg/custom/use-font-face-crash-expected.png:
        * platform/chromium-win/svg/dom/SVGLengthList-initialize-expected.png:
        * platform/chromium-win/svg/dom/SVGLengthList-xml-dom-modifications-expected.png:
        * platform/chromium-win/svg/dom/SVGNumberList-basics-expected.png:
        * platform/chromium-win/svg/dom/SVGPathSegList-clear-and-initialize-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGFEBlendElement-dom-in-attr-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGFEBlendElement-dom-in2-attr-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGFEBlendElement-dom-mode-attr-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGFEBlendElement-svgdom-in-prop-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGFEBlendElement-svgdom-in2-prop-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGFEBlendElement-svgdom-mode-prop-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGFEColorMatrixElement-dom-in-attr-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGFEColorMatrixElement-dom-type-attr-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGFEColorMatrixElement-dom-values-attr-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGFEColorMatrixElement-svgdom-in-prop-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGFEColorMatrixElement-svgdom-type-prop-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGFEColorMatrixElement-svgdom-values-prop-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGFEComponentTransferElement-svgdom-type-prop-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGLineElement-svgdom-requiredFeatures-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGTextElement-dom-textLength-attr-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGTextElement-svgdom-textLength-prop-expected.png:
        * platform/chromium-win/svg/dynamic-updates/SVGUseElement-dom-requiredFeatures-expected.png:
        * platform/chromium-win/svg/hixie/error/012-expected.png:
        * platform/chromium-win/svg/overflow/overflow-on-outermost-svg-element-defaults-expected.png:
        * platform/chromium-win/svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-1-expected.png:
        * platform/chromium-win/svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-2-expected.png:
        * platform/chromium-win/svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-3-expected.png:
        * platform/chromium-win/svg/overflow/overflow-on-outermost-svg-element-in-xhtml-defaults-expected.png:
        * platform/chromium-win/svg/repaint/image-with-clip-path-expected.png:
        * platform/chromium-win/svg/text/multichar-glyph-expected.png:

2012-06-06  Brady Eidson  <beidson@apple.com>

        <rdar://problem/11575112> and https://bugs.webkit.org/show_bug.cgi?id=88428
        REGRESSION (r115654): Opening many non-English WebArchives shows obvious encoding issues

        Reviewed by Nate Chapin.

        * fast/loader/resources/utf8-encoded.webarchive: Added.
        * fast/loader/webarchive-encoding-respected-expected.txt: Added.
        * fast/loader/webarchive-encoding-respected.html: Added.

2012-06-06  Ryosuke Niwa  <rniwa@webkit.org>

        Chromium rebaseline after r119617 part 3.

        * platform/chromium-linux-x86/fast/images: Removed.
        * platform/chromium-linux-x86/fast/media: Removed.
        * platform/chromium-linux-x86/fast/multicol/span/anonymous-style-inheritance-expected.png: Added.
        * platform/chromium-linux-x86/fast/multicol/span/span-as-immediate-child-generated-content-expected.png: Added.
        * platform/chromium-linux-x86/fast/multicol/span/span-as-immediate-columns-child-expected.png: Added.
        * platform/chromium-linux-x86/fast/multicol/vertical-lr: Added.
        * platform/chromium-linux-x86/fast/multicol/vertical-lr/column-rules-expected.png: Added.
        * platform/chromium-linux-x86/fast/multicol/vertical-lr/float-paginate-complex-expected.png: Added.
        * platform/chromium-linux-x86/fast/multicol/vertical-lr/nested-columns-expected.png: Added.
        * platform/chromium-linux-x86/fast/multicol/vertical-rl: Added.
        * platform/chromium-linux-x86/fast/multicol/vertical-rl/column-rules-expected.png: Added.
        * platform/chromium-linux-x86/fast/multicol/vertical-rl/float-paginate-complex-expected.png: Added.
        * platform/chromium-linux-x86/fast/multicol/vertical-rl/nested-columns-expected.png: Added.
        * platform/chromium-linux/fast/forms/file/file-input-direction-expected.png:
        * platform/chromium-linux/fast/forms/form-hides-table-expected.png:
        * platform/chromium-linux/fast/forms/textAreaLineHeight-expected.png:
        * platform/chromium-linux/fast/frames/frame-scrolling-attribute-expected.png:
        * platform/chromium-linux/fast/frames/iframe-scrolling-attribute-expected.png:
        * platform/chromium-linux/fast/images/gif-large-checkerboard-expected.png:
        * platform/chromium-linux/fast/inline/inline-borders-with-bidi-override-expected.png:
        * platform/chromium-linux/fast/invalid/residual-style-expected.png:
        * platform/chromium-linux/fast/layers/scroll-rect-to-visible-expected.png:
        * platform/chromium-linux/fast/line-grid/line-grid-inside-columns-expected.png:
        * platform/chromium-linux/fast/lists/001-vertical-expected.png:
        * platform/chromium-linux/fast/lists/li-br-expected.png:
        * platform/chromium-linux/fast/lists/ol-start-parsing-expected.png:
        * platform/chromium-linux/fast/media/mq-relative-constraints-08-expected.png:
        * platform/chromium-linux/fast/multicol/column-break-with-balancing-expected.png:
        * platform/chromium-linux/fast/multicol/column-rules-stacking-expected.png:
        * platform/chromium-linux/fast/multicol/float-multicol-expected.png:
        * platform/chromium-linux/fast/multicol/float-paginate-complex-expected.png:
        * platform/chromium-linux/fast/multicol/float-paginate-expected.png:
        * platform/chromium-linux/fast/multicol/layers-split-across-columns-expected.png:
        * platform/chromium-linux/fast/multicol/overflow-unsplittable-expected.png:
        * platform/chromium-linux/fast/multicol/scrolling-overflow-expected.png:
        * platform/chromium-linux/fast/multicol/span/anonymous-style-inheritance-expected.png:
        * platform/chromium-linux/fast/multicol/span/span-as-immediate-child-generated-content-expected.png:
        * platform/chromium-linux/fast/multicol/span/span-as-immediate-columns-child-dynamic-expected.png:
        * platform/chromium-linux/fast/multicol/span/span-as-immediate-columns-child-expected.png:
        * platform/chromium-linux/fast/multicol/span/span-as-nested-columns-child-expected.png:
        * platform/chromium-linux/fast/multicol/span/span-margin-collapsing-expected.png:
        * platform/chromium-linux/fast/multicol/table-vertical-align-expected.png:
        * platform/chromium-linux/fast/multicol/vertical-lr/column-rules-expected.png:
        * platform/chromium-linux/fast/multicol/vertical-lr/float-avoidance-expected.png:
        * platform/chromium-linux/fast/multicol/vertical-lr/float-multicol-expected.png:
        * platform/chromium-linux/fast/multicol/vertical-lr/float-paginate-complex-expected.png:
        * platform/chromium-linux/fast/multicol/vertical-lr/nested-columns-expected.png:
        * platform/chromium-linux/fast/multicol/vertical-rl/column-rules-expected.png:
        * platform/chromium-linux/fast/multicol/vertical-rl/float-avoidance-expected.png:
        * platform/chromium-linux/fast/multicol/vertical-rl/float-multicol-expected.png:
        * platform/chromium-linux/fast/multicol/vertical-rl/float-paginate-complex-expected.png:
        * platform/chromium-linux/fast/multicol/vertical-rl/nested-columns-expected.png:
        * platform/chromium-linux/fast/overflow/005-expected.png:
        * platform/chromium-linux/fast/overflow/008-expected.png:
        * platform/chromium-linux/fast/overflow/childFocusRingClip-expected.png:
        * platform/chromium-linux/fast/overflow/clip-rects-fixed-ancestor-expected.png:
        * platform/chromium-linux/fast/overflow/float-in-relpositioned-expected.png:
        * platform/chromium-linux/fast/overflow/image-selection-highlight-expected.png:
        * platform/chromium-linux/fast/overflow/overflow-auto-position-absolute-expected.png:
        * platform/chromium-linux/fast/overflow/overflow-stacking-expected.png:
        * platform/chromium-linux/fast/overflow/overflow-text-hit-testing-expected.png:
        * platform/chromium-linux/fast/overflow/overflow-x-y-expected.png:
        * platform/chromium-linux/fast/overflow/position-fixed-transform-clipping-expected.png:
        * platform/chromium-linux/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.png:
        * platform/chromium-linux/fast/overflow/scrollRevealButton-expected.png:
        * platform/chromium-linux/fast/reflections/reflection-direction-expected.png:
        * platform/chromium-linux/fast/repaint/fixed-child-move-after-scroll-expected.png:
        * platform/chromium-linux/fast/repaint/fixed-child-of-fixed-move-after-scroll-expected.png:
        * platform/chromium-linux/fast/repaint/fixed-child-of-transformed-move-after-scroll-expected.png:
        * platform/chromium-linux/fast/repaint/fixed-move-after-scroll-expected.png:
        * platform/chromium-linux/fast/repaint/line-flow-with-floats-1-expected.png:
        * platform/chromium-linux/fast/repaint/line-flow-with-floats-10-expected.png:
        * platform/chromium-linux/fast/repaint/line-flow-with-floats-2-expected.png:
        * platform/chromium-linux/fast/repaint/line-flow-with-floats-3-expected.png:
        * platform/chromium-linux/fast/repaint/line-flow-with-floats-4-expected.png:
        * platform/chromium-linux/fast/repaint/line-flow-with-floats-5-expected.png:
        * platform/chromium-linux/fast/repaint/line-flow-with-floats-6-expected.png:
        * platform/chromium-linux/fast/repaint/line-flow-with-floats-7-expected.png:
        * platform/chromium-linux/fast/repaint/line-flow-with-floats-9-expected.png:
        * platform/chromium-linux/fast/repaint/overflow-auto-in-overflow-auto-scrolled-expected.png:
        * platform/chromium-linux/fast/repaint/overflow-scroll-body-appear-expected.png:
        * platform/chromium-linux/fast/repaint/overflow-scroll-in-overflow-scroll-scrolled-expected.png:
        * platform/chromium-linux/fast/repaint/table-overflow-auto-in-overflow-auto-scrolled-expected.png:
        * platform/chromium-linux/fast/repaint/table-overflow-scroll-in-overflow-scroll-scrolled-expected.png:
        * platform/chromium-linux/fast/replaced/width100percent-image-expected.png:
        * platform/chromium-linux/fast/table/023-expected.png:
        * platform/chromium-linux/fast/table/027-vertical-expected.png:
        * platform/chromium-linux/fast/table/034-expected.png:
        * platform/chromium-linux/fast/table/040-expected.png:
        * platform/chromium-linux/fast/table/040-vertical-expected.png:
        * platform/chromium-linux/fast/table/border-collapsing/002-vertical-expected.png:
        * platform/chromium-linux/fast/table/border-collapsing/004-vertical-expected.png:
        * platform/chromium-linux/fast/table/height-percent-test-expected.png:
        * platform/chromium-linux/fast/table/height-percent-test-vertical-expected.png:
        * platform/chromium-linux/fast/table/table-display-types-vertical-expected.png:
        * platform/chromium-linux/fast/table/wide-colspan-expected.png:
        * platform/chromium-linux/fast/table/wide-column-expected.png:
        * platform/chromium-mac/fast/frames/transparent-scrollbar-expected.png:
        * platform/chromium-win-vista/fast/multicol: Added.
        * platform/chromium-win-vista/fast/multicol/span: Added.
        * platform/chromium-win-vista/fast/multicol/span/anonymous-style-inheritance-expected.png: Added.
        * platform/chromium-win-vista/fast/multicol/span/span-as-immediate-child-generated-content-expected.png: Added.
        * platform/chromium-win-vista/fast/multicol/span/span-as-immediate-columns-child-expected.png: Added.
        * platform/chromium-win-vista/fast/multicol/span/span-as-nested-columns-child-dynamic-expected.png: Added.
        * platform/chromium-win-vista/fast/multicol/vertical-lr: Added.
        * platform/chromium-win-vista/fast/multicol/vertical-lr/column-break-with-balancing-expected.png: Added.
        * platform/chromium-win-vista/fast/multicol/vertical-lr/column-rules-expected.png: Added.
        * platform/chromium-win-vista/fast/multicol/vertical-lr/float-paginate-complex-expected.png: Added.
        * platform/chromium-win-vista/fast/multicol/vertical-lr/nested-columns-expected.png: Added.
        * platform/chromium-win-vista/fast/multicol/vertical-lr/unsplittable-inline-block-expected.png: Added.
        * platform/chromium-win-vista/fast/multicol/vertical-rl: Added.
        * platform/chromium-win-vista/fast/multicol/vertical-rl/column-break-with-balancing-expected.png: Added.
        * platform/chromium-win-vista/fast/multicol/vertical-rl/column-rules-expected.png: Added.
        * platform/chromium-win-vista/fast/multicol/vertical-rl/float-paginate-complex-expected.png: Added.
        * platform/chromium-win-vista/fast/multicol/vertical-rl/nested-columns-expected.png: Added.
        * platform/chromium-win-vista/fast/multicol/vertical-rl/unsplittable-inline-block-expected.png: Added.
        * platform/chromium-win/fast/forms/basic-textareas-expected.png:
        * platform/chromium-win/fast/forms/basic-textareas-quirks-expected.png:
        * platform/chromium-win/fast/forms/button-default-title-expected.png:
        * platform/chromium-win/fast/forms/form-hides-table-expected.png:
        * platform/chromium-win/fast/forms/textAreaLineHeight-expected.png:
        * platform/chromium-win/fast/frames/iframe-scrolling-attribute-expected.png:
        * platform/chromium-win/fast/frames/inline-object-inside-frameset-expected.png:
        * platform/chromium-win/fast/frames/transparent-scrollbar-expected.png:
        * platform/chromium-win/fast/gradients/css3-color-stop-units-expected.png:
        * platform/chromium-win/fast/images/gif-large-checkerboard-expected.png:
        * platform/chromium-win/fast/images/gray-scale-jpeg-with-color-profile-expected.png:
        * platform/chromium-win/fast/inline-block/tricky-baseline-expected.png:
        * platform/chromium-win/fast/inline/inline-borders-with-bidi-override-expected.png:
        * platform/chromium-win/fast/inline/long-wrapped-line-expected.png:
        * platform/chromium-win/fast/invalid/residual-style-expected.png:
        * platform/chromium-win/fast/layers/overflow-scroll-auto-switch-expected.png:
        * platform/chromium-win/fast/line-grid/line-grid-inside-columns-expected.png:
        * platform/chromium-win/fast/lists/001-expected.png:
        * platform/chromium-win/fast/lists/001-vertical-expected.png:
        * platform/chromium-win/fast/lists/li-br-expected.png:
        * platform/chromium-win/fast/lists/ol-start-parsing-expected.png:
        * platform/chromium-win/fast/multicol/column-break-with-balancing-expected.png:
        * platform/chromium-win/fast/multicol/columns-shorthand-parsing-expected.png:
        * platform/chromium-win/fast/multicol/float-multicol-expected.png:
        * platform/chromium-win/fast/multicol/float-paginate-complex-expected.png:
        * platform/chromium-win/fast/multicol/float-paginate-expected.png:
        * platform/chromium-win/fast/multicol/layers-in-multicol-expected.png:
        * platform/chromium-win/fast/multicol/layers-split-across-columns-expected.png:
        * platform/chromium-win/fast/multicol/overflow-unsplittable-expected.png:
        * platform/chromium-win/fast/multicol/positioned-with-constrained-height-expected.png:
        * platform/chromium-win/fast/multicol/scrolling-overflow-expected.png:
        * platform/chromium-win/fast/multicol/span/anonymous-style-inheritance-expected.png:
        * platform/chromium-win/fast/multicol/span/span-as-immediate-child-generated-content-expected.png:
        * platform/chromium-win/fast/multicol/span/span-as-immediate-columns-child-expected.png:
        * platform/chromium-win/fast/multicol/span/span-as-nested-columns-child-dynamic-expected.png:
        * platform/chromium-win/fast/multicol/table-vertical-align-expected.png:
        * platform/chromium-win/fast/multicol/vertical-lr/column-break-with-balancing-expected.png:
        * platform/chromium-win/fast/multicol/vertical-lr/column-rules-expected.png:
        * platform/chromium-win/fast/multicol/vertical-lr/float-paginate-complex-expected.png:
        * platform/chromium-win/fast/multicol/vertical-lr/nested-columns-expected.png:
        * platform/chromium-win/fast/multicol/vertical-lr/unsplittable-inline-block-expected.png:
        * platform/chromium-win/fast/multicol/vertical-rl/column-break-with-balancing-expected.png:
        * platform/chromium-win/fast/multicol/vertical-rl/column-rules-expected.png:
        * platform/chromium-win/fast/multicol/vertical-rl/float-paginate-complex-expected.png:
        * platform/chromium-win/fast/multicol/vertical-rl/nested-columns-expected.png:
        * platform/chromium-win/fast/multicol/vertical-rl/unsplittable-inline-block-expected.png:
        * platform/chromium-win/fast/overflow/003-expected.png:
        * platform/chromium-win/fast/overflow/005-expected.png:
        * platform/chromium-win/fast/overflow/007-expected.png:
        * platform/chromium-win/fast/overflow/008-expected.png:
        * platform/chromium-win/fast/overflow/float-in-relpositioned-expected.png:
        * platform/chromium-win/fast/overflow/image-selection-highlight-expected.png:
        * platform/chromium-win/fast/overflow/overflow-stacking-expected.png:
        * platform/chromium-win/fast/overflow/position-fixed-transform-clipping-expected.png:
        * platform/chromium-win/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.png:
        * platform/chromium-win/fast/overflow/unreachable-overflow-rtl-bug-expected.png:
        * platform/chromium-win/fast/reflections/reflection-direction-expected.png:
        * platform/chromium-win/fast/repaint/block-selection-gap-stale-cache-2-expected.png:
        * platform/chromium-win/fast/repaint/fixed-child-move-after-scroll-expected.png:
        * platform/chromium-win/fast/repaint/fixed-child-of-fixed-move-after-scroll-expected.png:
        * platform/chromium-win/fast/repaint/fixed-child-of-transformed-move-after-scroll-expected.png:
        * platform/chromium-win/fast/repaint/fixed-move-after-keyboard-scroll-expected.png:
        * platform/chromium-win/fast/repaint/fixed-move-after-scroll-expected.png:
        * platform/chromium-win/fast/repaint/line-flow-with-floats-1-expected.png:
        * platform/chromium-win/fast/repaint/line-flow-with-floats-10-expected.png:
        * platform/chromium-win/fast/repaint/line-flow-with-floats-3-expected.png:
        * platform/chromium-win/fast/repaint/line-flow-with-floats-4-expected.png:
        * platform/chromium-win/fast/repaint/line-flow-with-floats-5-expected.png:
        * platform/chromium-win/fast/repaint/line-flow-with-floats-6-expected.png:
        * platform/chromium-win/fast/repaint/line-flow-with-floats-7-expected.png:
        * platform/chromium-win/fast/repaint/line-flow-with-floats-9-expected.png:
        * platform/chromium-win/fast/repaint/overflow-scroll-body-appear-expected.png:
        * platform/chromium-win/fast/repaint/scroll-inside-table-cell-expected.png:
        * platform/chromium-win/fast/repaint/scroll-relative-table-inside-table-cell-expected.png:
        * platform/chromium-win/fast/repaint/selection-gap-overflow-scroll-2-expected.png:
        * platform/chromium-win/fast/repaint/selection-gap-overflow-scroll-expected.png:
        * platform/chromium-win/fast/repaint/table-overflow-auto-in-overflow-auto-scrolled-expected.png:
        * platform/chromium-win/fast/repaint/table-overflow-scroll-in-overflow-scroll-scrolled-expected.png:
        * platform/chromium-win/fast/table/027-vertical-expected.png:
        * platform/chromium-win/fast/table/034-expected.png:
        * platform/chromium-win/fast/table/038-vertical-expected.png:
        * platform/chromium-win/fast/table/border-collapsing/002-vertical-expected.png:
        * platform/chromium-win/fast/table/border-collapsing/004-expected.png:
        * platform/chromium-win/fast/table/border-collapsing/004-vertical-expected.png:
        * platform/chromium-win/fast/table/border-collapsing/equal-precedence-resolution-vertical-expected.png:
        * platform/chromium-win/fast/table/edge-offsets-expected.png:
        * platform/chromium-win/fast/table/empty-cells-expected.png:
        * platform/chromium-win/fast/table/frame-and-rules-expected.png:
        * platform/chromium-win/fast/table/overflowHidden-expected.png:
        * platform/chromium-win/fast/table/table-display-types-expected.png:
        * platform/chromium-win/fast/table/table-display-types-vertical-expected.png:
        * platform/chromium-win/fast/table/wide-colspan-expected.png:
        * platform/chromium-win/fast/table/wide-column-expected.png:
        * platform/chromium/TestExpectations:

2012-06-06  Ryosuke Niwa  <rniwa@webkit.org>

        Chromium rebaseline after r119617 part 2.

        * fast/block/float/021-expected.txt: Added.
        * platform/chromium-linux-x86/fast/block/positioning/auto: Added.
        * platform/chromium-linux-x86/fast/block/positioning/auto/vertical-lr: Added.
        * platform/chromium-linux-x86/fast/block/positioning/auto/vertical-lr/007-expected.png: Added.
        * platform/chromium-linux-x86/fast/block/positioning/auto/vertical-rl: Added.
        * platform/chromium-linux-x86/fast/block/positioning/auto/vertical-rl/007-expected.png: Added.
        * platform/chromium-linux/fast/backgrounds/size/backgroundSize15-expected.png:
        * platform/chromium-linux/fast/block/float/019-expected.png:
        * platform/chromium-linux/fast/block/float/021-expected.png:
        * platform/chromium-linux/fast/block/float/025-expected.png:
        * platform/chromium-linux/fast/block/float/026-expected.png:
        * platform/chromium-linux/fast/block/float/027-expected.png:
        * platform/chromium-linux/fast/block/float/028-expected.png:
        * platform/chromium-linux/fast/block/float/033-expected.png:
        * platform/chromium-linux/fast/block/float/avoidance-percent-width-strict-expected.png:
        * platform/chromium-linux/fast/block/float/centered-float-avoidance-complexity-expected.png:
        * platform/chromium-linux/fast/block/float/nested-clearance-expected.png:
        * platform/chromium-linux/fast/block/float/shrink-to-avoid-float-complexity-expected.png:
        * platform/chromium-linux/fast/block/lineboxcontain/parsing-invalid-expected.png:
        * platform/chromium-linux/fast/block/margin-collapse/empty-clear-blocks-expected.png:
        * platform/chromium-linux/fast/block/positioning/047-expected.png:
        * platform/chromium-linux/fast/block/positioning/055-expected.png:
        * platform/chromium-linux/fast/block/positioning/auto/vertical-lr/007-expected.png:
        * platform/chromium-linux/fast/block/positioning/auto/vertical-rl/007-expected.png:
        * platform/chromium-linux/fast/block/positioning/negative-rel-position-expected.png:
        * platform/chromium-linux/fast/block/positioning/relative-overflow-block-expected.png:
        * platform/chromium-linux/fast/body-propagation/overflow/002-expected.png:
        * platform/chromium-linux/fast/body-propagation/overflow/002-xhtml-expected.png:
        * platform/chromium-linux/fast/body-propagation/overflow/003-declarative-expected.png:
        * platform/chromium-linux/fast/body-propagation/overflow/003-expected.png:
        * platform/chromium-linux/fast/body-propagation/overflow/003-xhtml-expected.png:
        * platform/chromium-linux/fast/body-propagation/overflow/004-declarative-expected.png:
        * platform/chromium-linux/fast/body-propagation/overflow/004-expected.png:
        * platform/chromium-linux/fast/body-propagation/overflow/004-xhtml-expected.png:
        * platform/chromium-linux/fast/body-propagation/overflow/007-declarative-expected.png:
        * platform/chromium-linux/fast/body-propagation/overflow/007-expected.png:
        * platform/chromium-linux/fast/body-propagation/overflow/007-xhtml-expected.png:
        * platform/chromium-linux/fast/borders/border-image-massive-scale-expected.png:
        * platform/chromium-linux/fast/borders/inline-mask-overlay-image-expected.png:
        * platform/chromium-linux/fast/borders/rtl-border-01-expected.png:
        * platform/chromium-linux/fast/borders/rtl-border-02-expected.png:
        * platform/chromium-linux/fast/borders/rtl-border-03-expected.png:
        * platform/chromium-linux/fast/canvas/canvas-bg-expected.png:
        * platform/chromium-linux/fast/css/005-expected.png:
        * platform/chromium-linux/fast/css/bidi-override-in-anonymous-block-expected.png:
        * platform/chromium-linux/fast/css/clip-text-in-scaled-div-expected.png:
        * platform/chromium-linux/fast/css/first-child-pseudo-class-expected.png:
        * platform/chromium-linux/fast/css/first-of-type-pseudo-class-expected.png:
        * platform/chromium-linux/fast/css/font_property_normal-expected.png:
        * platform/chromium-linux/fast/css/last-child-pseudo-class-expected.png:
        * platform/chromium-linux/fast/css/last-of-type-pseudo-class-expected.png:
        * platform/chromium-linux/fast/css/nested-floating-relative-position-percentages-expected.png:
        * platform/chromium-linux/fast/css/only-child-pseudo-class-expected.png:
        * platform/chromium-linux/fast/css/only-of-type-pseudo-class-expected.png:
        * platform/chromium-linux/fast/css/percentage-non-integer-expected.png:
        * platform/chromium-linux/fast/css/relative-positioned-block-with-inline-ancestor-and-parent-dynamic-expected.png:
        * platform/chromium-linux/fast/css/relative-positioned-block-with-inline-ancestor-dynamic-expected.png:
        * platform/chromium-linux/fast/css/relative-positioned-block-with-inline-ancestor-dynamic-removed-expected.png:
        * platform/chromium-linux/fast/css/relative-positioned-block-with-inline-ancestor-expected.png:
        * platform/chromium-linux/fast/css/relative-positioned-block-with-inline-parent-dynamic-expected.png:
        * platform/chromium-linux/fast/css/text-overflow-ellipsis-expected.png:
        * platform/chromium-linux/fast/css/text-overflow-ellipsis-strict-expected.png:
        * platform/chromium-linux/fast/dom/clone-node-dynamic-style-expected.png:
        * platform/chromium-linux/fast/dom/rtl-scroll-to-leftmost-and-resize-expected.png:
        * platform/chromium-linux/fast/dom/scroll-reveal-top-overflow-expected.png:
        * platform/chromium-linux/fast/dynamic/008-expected.png:
        * platform/chromium-linux/fast/dynamic/insert-before-table-part-in-continuation-expected.png:
        * platform/chromium-linux/fast/encoding/utf-16-big-endian-expected.png:
        * platform/chromium-linux/fast/encoding/utf-16-little-endian-expected.png:
        * platform/chromium-linux/fast/events/resize-events-expected.png:
        * platform/chromium-linux/fast/events/standalone-image-drag-to-editable-expected.png:
        * platform/chromium-linux/fast/flexbox/016-expected.png:
        * platform/chromium-win-vista/fast/block/positioning/auto/vertical-lr/007-expected.png: Added.
        * platform/chromium-win-vista/fast/block/positioning/auto/vertical-rl/007-expected.png: Added.
        * platform/chromium-win-xp/fast/dom/34176-expected.png:
        * platform/chromium-win/fast/backgrounds/size/backgroundSize15-expected.png:
        * platform/chromium-win/fast/block/basic/truncation-rtl-expected.png:
        * platform/chromium-win/fast/block/float/008-expected.png:
        * platform/chromium-win/fast/block/float/021-expected.png:
        * platform/chromium-win/fast/block/float/021-expected.txt:
        * platform/chromium-win/fast/block/float/032-expected.png:
        * platform/chromium-win/fast/block/float/avoidance-percent-width-strict-expected.png:
        * platform/chromium-win/fast/block/float/br-with-clear-2-expected.png:
        * platform/chromium-win/fast/block/float/nested-clearance-expected.png:
        * platform/chromium-win/fast/block/margin-collapse/104-expected.png:
        * platform/chromium-win/fast/block/margin-collapse/empty-clear-blocks-expected.png:
        * platform/chromium-win/fast/block/positioning/047-expected.png:
        * platform/chromium-win/fast/block/positioning/auto/vertical-lr/007-expected.png:
        * platform/chromium-win/fast/block/positioning/auto/vertical-rl/007-expected.png:
        * platform/chromium-win/fast/block/positioning/negative-rel-position-expected.png:
        * platform/chromium-win/fast/block/positioning/relative-overflow-replaced-expected.png:
        * platform/chromium-win/fast/block/positioning/relative-overflow-replaced-float-expected.png:
        * platform/chromium-win/fast/block/positioning/vertical-lr/002-expected.png:
        * platform/chromium-win/fast/block/positioning/vertical-rl/002-expected.png:
        * platform/chromium-win/fast/borders/border-image-massive-scale-expected.png:
        * platform/chromium-win/fast/borders/inline-mask-overlay-image-expected.png:
        * platform/chromium-win/fast/borders/rtl-border-01-expected.png:
        * platform/chromium-win/fast/borders/rtl-border-02-expected.png:
        * platform/chromium-win/fast/borders/rtl-border-03-expected.png:
        * platform/chromium-win/fast/canvas/canvas-bg-expected.png:
        * platform/chromium-win/fast/clip/014-expected.png:
        * platform/chromium-win/fast/css/clip-text-in-scaled-div-expected.png:
        * platform/chromium-win/fast/css/first-of-type-pseudo-class-expected.png:
        * platform/chromium-win/fast/css/font_property_normal-expected.png:
        * platform/chromium-win/fast/css/hsl-color-expected.png:
        * platform/chromium-win/fast/css/last-of-type-pseudo-class-expected.png:
        * platform/chromium-win/fast/css/nested-floating-relative-position-percentages-expected.png:
        * platform/chromium-win/fast/css/only-of-type-pseudo-class-expected.png:
        * platform/chromium-win/fast/css/percentage-non-integer-expected.png:
        * platform/chromium-win/fast/css/relative-positioned-block-with-inline-ancestor-and-parent-dynamic-expected.png:
        * platform/chromium-win/fast/css/relative-positioned-block-with-inline-ancestor-dynamic-expected.png:
        * platform/chromium-win/fast/css/relative-positioned-block-with-inline-ancestor-dynamic-removed-expected.png:
        * platform/chromium-win/fast/css/relative-positioned-block-with-inline-ancestor-expected.png:
        * platform/chromium-win/fast/css/relative-positioned-block-with-inline-parent-dynamic-expected.png:
        * platform/chromium-win/fast/css/word-space-extra-expected.png:
        * platform/chromium-win/fast/dom/34176-expected.png:
        * platform/chromium-win/fast/dom/clone-node-dynamic-style-expected.png:
        * platform/chromium-win/fast/dom/rtl-scroll-to-leftmost-and-resize-expected.png:
        * platform/chromium-win/fast/dom/scroll-reveal-left-overflow-expected.png:
        * platform/chromium-win/fast/dynamic/window-resize-scrollbars-test-expected.png:
        * platform/chromium-win/fast/encoding/utf-16-big-endian-expected.png:
        * platform/chromium-win/fast/encoding/utf-16-little-endian-expected.png:
        * platform/chromium-win/fast/events/pointer-events-2-expected.png:
        * platform/chromium-win/fast/events/resize-events-expected.png:
        * platform/chromium-win/fast/events/standalone-image-drag-to-editable-expected.png:
        * platform/chromium-win/fast/flexbox/016-expected.png:
        * platform/chromium/TestExpectations:
        * platform/efl/fast/block/float/021-expected.txt: Removed.
        * platform/gtk/fast/block/float/021-expected.txt: Removed.

2012-06-06  Ryosuke Niwa  <rniwa@webkit.org>

        Chromium rebaseline after r119617 part 1.

        * platform/chromium-linux-x86/compositing/geometry/horizontal-scroll-composited-expected.png:
        * platform/chromium-linux-x86/css2.1/20110323: Removed.
        * platform/chromium-linux/compositing/culling/filter-occlusion-blur-large-expected.png:
        * platform/chromium-linux/compositing/geometry/fixed-position-composited-page-scale-down-expected.png:
        * platform/chromium-linux/compositing/geometry/fixed-position-composited-page-scale-expected.png:
        * platform/chromium-linux/compositing/geometry/fixed-position-transform-composited-page-scale-down-expected.png:
        * platform/chromium-linux/compositing/geometry/fixed-position-transform-composited-page-scale-expected.png:
        * platform/chromium-linux/compositing/geometry/horizontal-scroll-composited-expected.png:
        * platform/chromium-linux/compositing/geometry/vertical-scroll-composited-expected.png:
        * platform/chromium-linux/compositing/masks/masked-ancestor-expected.png:
        * platform/chromium-linux/compositing/masks/multiple-masks-expected.png:
        * platform/chromium-linux/compositing/masks/simple-composited-mask-expected.png:
        * platform/chromium-linux/compositing/overflow/fixed-position-ancestor-clip-expected.png:
        * platform/chromium-linux/compositing/overflow/overflow-scroll-expected.png:
        * platform/chromium-linux/compositing/overflow/scroll-ancestor-update-expected.png:
        * platform/chromium-linux/compositing/scaling: Removed.
        * platform/chromium-linux/css1/basic/comments-expected.png:
        * platform/chromium-linux/css1/box_properties/border_left_width-expected.png:
        * platform/chromium-linux/css1/box_properties/border_right_width-expected.png:
        * platform/chromium-linux/css1/box_properties/border_style-expected.png:
        * platform/chromium-linux/css1/box_properties/border_top_width-expected.png:
        * platform/chromium-linux/css1/box_properties/border_width-expected.png:
        * platform/chromium-linux/css1/box_properties/float_elements_in_series-expected.png:
        * platform/chromium-linux/css1/box_properties/float_on_text_elements-expected.png:
        * platform/chromium-linux/css1/box_properties/margin-expected.png:
        * platform/chromium-linux/css1/box_properties/margin_inline-expected.png:
        * platform/chromium-linux/css1/box_properties/margin_top-expected.png:
        * platform/chromium-linux/css1/box_properties/padding_bottom-expected.png:
        * platform/chromium-linux/css1/box_properties/width-expected.png:
        * platform/chromium-linux/css1/color_and_background/background-expected.png:
        * platform/chromium-linux/css1/color_and_background/background_position-expected.png:
        * platform/chromium-linux/css1/font_properties/font-expected.png:
        * platform/chromium-linux/css1/font_properties/font_size-expected.png:
        * platform/chromium-linux/css1/font_properties/font_weight-expected.png:
        * platform/chromium-linux/css1/formatting_model/inline_elements-expected.png:
        * platform/chromium-linux/css1/pseudo/firstletter-expected.png:
        * platform/chromium-linux/css1/pseudo/firstline-expected.png:
        * platform/chromium-linux/css1/text_properties/letter_spacing-expected.png:
        * platform/chromium-linux/css1/text_properties/line_height-expected.png:
        * platform/chromium-linux/css1/text_properties/text_decoration-expected.png:
        * platform/chromium-linux/css1/text_properties/text_transform-expected.png:
        * platform/chromium-linux/css1/text_properties/word_spacing-expected.png:
        * platform/chromium-linux/css1/units/color_units-expected.png:
        * platform/chromium-linux/css2.1/20110323/abspos-containing-block-initial-001-expected.png:
        * platform/chromium-linux/css2.1/20110323/abspos-non-replaced-width-margin-000-expected.png:
        * platform/chromium-linux/css2.1/20110323/abspos-replaced-width-margin-000-expected.png:
        * platform/chromium-linux/css2.1/20110323/block-non-replaced-height-016-expected.png:
        * platform/chromium-linux/css2.1/t0905-c5525-fltclr-00-c-ag-expected.png:
        * platform/chromium-linux/css2.1/t0905-c5525-fltmrgn-00-c-ag-expected.png:
        * platform/chromium-linux/css2.1/t0905-c5526-fltclr-00-c-ag-expected.png:
        * platform/chromium-linux/css2.1/t1202-counters-08-b-expected.png:
        * platform/chromium-linux/css2.1/t140201-c535-bg-fixd-00-b-g-expected.png:
        * platform/chromium-linux/css2.1/t1508-c527-font-07-b-expected.png:
        * platform/chromium-linux/editing/inserting/typing-at-end-of-line-expected.png:
        * platform/chromium-linux/editing/selection/focus_editable_html-expected.png:
        * platform/chromium-linux/editing/selection/select-all-003-expected.png:
        * platform/chromium-linux/editing/selection/select-all-004-expected.png:
        * platform/chromium-mac-leopard/compositing/masks/multiple-masks-expected.png: Removed.
        * platform/chromium-mac-snowleopard/compositing/geometry/fixed-position-composited-page-scale-down-expected.png:
        * platform/chromium-mac-snowleopard/compositing/geometry/fixed-position-transform-composited-page-scale-down-expected.png: Removed.
        * platform/chromium-mac-snowleopard/compositing/geometry/horizontal-scroll-composited-expected.png:
        * platform/chromium-mac-snowleopard/compositing/overflow/fixed-position-ancestor-clip-expected.png:
        * platform/chromium-mac-snowleopard/compositing/overflow/overflow-scroll-expected.png:
        * platform/chromium-mac-snowleopard/compositing/overflow/scroll-ancestor-update-expected.png:
        * platform/chromium-mac/compositing/culling/filter-occlusion-alpha-large-expected.png: Added.
        * platform/chromium-mac/compositing/culling/filter-occlusion-blur-large-expected.png:
        * platform/chromium-mac/compositing/geometry/fixed-position-composited-page-scale-down-expected.png:
        * platform/chromium-mac/compositing/geometry/fixed-position-composited-page-scale-expected.png:
        * platform/chromium-mac/compositing/geometry/fixed-position-transform-composited-page-scale-down-expected.png:
        * platform/chromium-mac/compositing/geometry/fixed-position-transform-composited-page-scale-expected.png:
        * platform/chromium-mac/compositing/geometry/horizontal-scroll-composited-expected.png:
        * platform/chromium-mac/compositing/geometry/vertical-scroll-composited-expected.png:
        * platform/chromium-mac/compositing/iframes/scroll-fixed-transformed-element-expected.png:
        * platform/chromium-mac/compositing/iframes/scroll-grandchild-iframe-expected.png: Added.
        * platform/chromium-mac/compositing/layer-creation/fixed-position-and-transform-expected.png: Added.
        * platform/chromium-mac/compositing/layer-creation/fixed-position-scroll-expected.png:
        * platform/chromium-mac/compositing/layer-creation/fixed-position-under-transform-expected.png: Added.
        * platform/chromium-mac/compositing/overflow/fixed-position-ancestor-clip-expected.png:
        * platform/chromium-mac/compositing/overflow/overflow-scroll-expected.png:
        * platform/chromium-mac/compositing/overflow/scroll-ancestor-update-expected.png:
        * platform/chromium-mac/compositing/scaling/tiled-layer-recursion-expected.png: Added.
        * platform/chromium-win-vista/compositing/geometry/horizontal-scroll-composited-expected.png:
        * platform/chromium-win-vista/css1/formatting_model/inline_elements-expected.png: Removed.
        * platform/chromium-win-vista/css1/formatting_model/replaced_elements-expected.png: Added.
        * platform/chromium-win-xp/compositing/geometry/horizontal-scroll-composited-expected.png:
        * platform/chromium-win-xp/css1/formatting_model: Removed.
        * platform/chromium-win-xp/css1/formatting_model/inline_elements-expected.png: Removed.
        * platform/chromium-win/compositing/culling/filter-occlusion-alpha-large-expected.png: Added.
        * platform/chromium-win/compositing/culling/filter-occlusion-blur-large-expected.png:
        * platform/chromium-win/compositing/geometry/fixed-position-composited-page-scale-down-expected.png:
        * platform/chromium-win/compositing/geometry/fixed-position-composited-page-scale-expected.png:
        * platform/chromium-win/compositing/geometry/fixed-position-transform-composited-page-scale-down-expected.png:
        * platform/chromium-win/compositing/geometry/fixed-position-transform-composited-page-scale-expected.png:
        * platform/chromium-win/compositing/geometry/horizontal-scroll-composited-expected.png:
        * platform/chromium-win/compositing/geometry/vertical-scroll-composited-expected.png:
        * platform/chromium-win/compositing/iframes/scroll-fixed-transformed-element-expected.png:
        * platform/chromium-win/compositing/iframes/scroll-grandchild-iframe-expected.png: Added.
        * platform/chromium-win/compositing/layer-creation/fixed-position-and-transform-expected.png: Added.
        * platform/chromium-win/compositing/layer-creation/fixed-position-scroll-expected.png:
        * platform/chromium-win/compositing/layer-creation/fixed-position-under-transform-expected.png: Added.
        * platform/chromium-win/compositing/masks/masked-ancestor-expected.png:
        * platform/chromium-win/compositing/masks/multiple-masks-expected.png:
        * platform/chromium-win/compositing/masks/simple-composited-mask-expected.png:
        * platform/chromium-win/compositing/overflow/fixed-position-ancestor-clip-expected.png:
        * platform/chromium-win/compositing/overflow/overflow-scroll-expected.png:
        * platform/chromium-win/compositing/overflow/scroll-ancestor-update-expected.png:
        * platform/chromium-win/compositing/scaling/tiled-layer-recursion-expected.png: Added.
        * platform/chromium-win/css1/basic/comments-expected.png:
        * platform/chromium-win/css1/basic/inheritance-expected.png:
        * platform/chromium-win/css1/box_properties/border_bottom_width-expected.png:
        * platform/chromium-win/css1/box_properties/border_width-expected.png:
        * platform/chromium-win/css1/box_properties/clear-expected.png:
        * platform/chromium-win/css1/box_properties/float_elements_in_series-expected.png:
        * platform/chromium-win/css1/box_properties/height-expected.png:
        * platform/chromium-win/css1/box_properties/margin_inline-expected.png:
        * platform/chromium-win/css1/box_properties/margin_top-expected.png:
        * platform/chromium-win/css1/box_properties/padding-expected.png:
        * platform/chromium-win/css1/box_properties/padding_bottom-expected.png:
        * platform/chromium-win/css1/box_properties/padding_inline-expected.png:
        * platform/chromium-win/css1/box_properties/padding_top-expected.png:
        * platform/chromium-win/css1/classification/white_space-expected.png:
        * platform/chromium-win/css1/color_and_background/background_attachment-expected.png:
        * platform/chromium-win/css1/color_and_background/background_position-expected.png:
        * platform/chromium-win/css1/color_and_background/background_repeat-expected.png:
        * platform/chromium-win/css1/conformance/forward_compatible_parsing-expected.png:
        * platform/chromium-win/css1/font_properties/font_weight-expected.png:
        * platform/chromium-win/css1/formatting_model/floating_elements-expected.png:
        * platform/chromium-win/css1/formatting_model/height_of_lines-expected.png:
        * platform/chromium-win/css1/formatting_model/replaced_elements-expected.png:
        * platform/chromium-win/css1/formatting_model/vertical_formatting-expected.png:
        * platform/chromium-win/css1/pseudo/firstline-expected.png:
        * platform/chromium-win/css1/pseudo/multiple_pseudo_elements-expected.png:
        * platform/chromium-win/css1/text_properties/text_decoration-expected.png:
        * platform/chromium-win/css1/text_properties/text_indent-expected.png:
        * platform/chromium-win/css1/text_properties/text_transform-expected.png:
        * platform/chromium-win/css1/units/color_units-expected.png:
        * platform/chromium-win/css1/units/length_units-expected.png:
        * platform/chromium-win/css2.1/20110323/abspos-containing-block-initial-001-expected.png:
        * platform/chromium-win/css2.1/20110323/abspos-containing-block-initial-007-expected.png:
        * platform/chromium-win/css2.1/t0905-c5525-fltclr-00-c-ag-expected.png:
        * platform/chromium-win/css2.1/t0905-c5525-fltmrgn-00-c-ag-expected.png:
        * platform/chromium-win/css2.1/t0905-c5525-fltwidth-00-c-g-expected.png:
        * platform/chromium-win/css2.1/t0905-c5526-fltclr-00-c-ag-expected.png:
        * platform/chromium-win/css2.1/t1002-c5523-width-02-b-g-expected.png:
        * platform/chromium-win/css2.1/t140201-c535-bg-fixd-00-b-g-expected.png:
        * platform/chromium-win/css2.1/t1508-c527-font-07-b-expected.png:
        * platform/chromium-win/editing/inserting/insert-div-023-expected.png:
        * platform/chromium-win/editing/selection/focus_editable_html-expected.png:
        * platform/chromium-win/editing/selection/select-all-003-expected.png:
        * platform/chromium-win/editing/selection/select-all-004-expected.png:
        * platform/chromium/compositing/scaling: Removed.
        * platform/chromium/compositing/scaling/tiled-layer-recursion-expected.png: Removed.

2012-06-06  Gavin Barraclough  <barraclough@apple.com>

        Assigning to a static property should not change iteration order
        https://bugs.webkit.org/show_bug.cgi?id=88401

        Reviewed by Geoff Garen.

        A specific iteration order is not defined by the spec, but test-262 somewhat tenuously
        requires that it is at least stable, e.g. ch10/10.4/10.4.2/S10.4.2_A1.1_T1.js

        Whilst it is not clear that this behavior really arises from the specification, it
        would seem like common sense to conform to this.

        The problem here is that we allow properties in the structure to shadow those in the
        static table, and we iterate the properties in the structure first - which means that
        as values of existing properties are modified, their iteration order changes too.

        The easy fix is to iterate the properties from the static table first. This has a
        further benefit, since it will mean that user added properties will come after those
        present in the static table (respected the expected insertion-order).

        * fast/js/property-iteration-expected.txt: Added.
        * fast/js/property-iteration.html: Added.
        * fast/js/script-tests/property-iteration.js: Added.
        (arrayEqual):
            - Added test case.

2012-06-06  Tony Chang  <tony@chromium.org>

        webkit crashes on debug builds when running IETC flexbox-ordinal-group-001.htm
        https://bugs.webkit.org/show_bug.cgi?id=85832

        Reviewed by Ojan Vafai.

        * platform/chromium/TestExpectations: Remove test that passes.
        * platform/efl/TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/mac/TestExpectations:
        * platform/qt/TestExpectations:
        * platform/win/Skipped:

2012-06-06  Ojan Vafai  <ojan@chromium.org>

        Remove some magic from the -webkit-flex shorthand parsing to match the changes in the spec
        https://bugs.webkit.org/show_bug.cgi?id=88444

        Reviewed by Tony Chang.

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

2012-06-06  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Infinite recursion in IDBObjectStore.openCursor(key, legacy_constant)
        https://bugs.webkit.org/show_bug.cgi?id=88431

        Reviewed by Tony Chang.

        * storage/indexeddb/legacy-constants-expected.txt:
        * storage/indexeddb/resources/legacy-constants.js: Refactored and added test cases.
        (populateStore):
        (doChecks.doNext.request.onsuccess):
        (doChecks.doNext.testWithKey.request.onsuccess):
        (doChecks.doNext.testWithKey):
        (doChecks.doNext):
        (doChecks):

2012-06-06  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Rename IDBFactory.getDatabaseNames() to webkitGetDatabaseNames()
        https://bugs.webkit.org/show_bug.cgi?id=86874

        Reviewed by Ojan Vafai.

        * storage/indexeddb/factory-basics-expected.txt:
        * storage/indexeddb/resources/factory-basics.js:
        (test):
        (openSuccess):
        (deleteDatabaseSuccess):

2012-06-06  Ryosuke Niwa  <rniwa@webkit.org>

        Chromium rebaseline after r119591 because it was failing with missing results.

        * platform/chromium-linux/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.png:
        * platform/chromium-linux/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.txt: Removed.
        * platform/chromium-mac-leopard/platform/chromium/virtual/gpu/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.txt: Added.
        * platform/chromium-mac-snowleopard/platform/chromium/virtual/gpu/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.txt: Added.
        * platform/chromium-mac/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.png: Added.
        * platform/chromium-mac/platform/chromium/virtual/gpu/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.png: Added.
        * platform/chromium-mac/platform/chromium/virtual/gpu/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.txt: Added.
        * platform/chromium-win-vista/platform/chromium/virtual/gpu/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.txt: Added.
        * platform/chromium-win-xp/platform/chromium/virtual/gpu/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.txt: Added.
        * platform/chromium-win/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.png: Added.
        * platform/chromium-win/platform/chromium/virtual/gpu/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.png: Added.
        * platform/chromium-win/platform/chromium/virtual/gpu/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.txt: Added.
        * platform/chromium/TestExpectations:
        * platform/chromium/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.txt: Added.

2012-06-06  Sadrul Habib Chowdhury  <sadrul@chromium.org>

        [WK2] fast/hidpi/device-scale-factor-paint.html crashes
        https://bugs.webkit.org/show_bug.cgi?id=88350

        Reviewed by Alexey Proskuryakov.

        * fast/hidpi/device-scale-factor-paint-expected.html: Renamed from LayoutTests/platform/chromium/fast/hidpi/device-scale-factor-paint-expected.html.
        * platform/wk2/Skipped:

2012-06-06  Ilya Tikhonovsky  <loislo@chromium.org>

        Unreviewed rebaseline for r119591.

        * platform/chromium-mac/svg/custom/js-late-pattern-creation-expected.png:
        * platform/chromium-win/svg/custom/js-late-pattern-creation-expected.png:

2012-06-06  Julien Chaffraix  <jchaffraix@webkit.org>

        Add support for direction on table row group with collapsing borders
        https://bugs.webkit.org/show_bug.cgi?id=87900

        Reviewed by Ojan Vafai.

        * fast/table/border-collapsing/first-cell-left-border-hidden-table-ltr-section-rtl-expected.html: Added.
        * fast/table/border-collapsing/first-cell-left-border-hidden-table-ltr-section-rtl.html: Added.
        * fast/table/border-collapsing/last-cell-left-border-hidden-table-ltr-section-rtl-expected.html: Added.
        * fast/table/border-collapsing/last-cell-left-border-hidden-table-ltr-section-rtl.html: Added.
        * fast/table/border-collapsing/left-border-table-ltr-section-rtl-expected.html: Added.
        * fast/table/border-collapsing/left-border-table-ltr-section-rtl.html: Added.
        * fast/table/border-collapsing/left-border-table-rtl-section-ltr-expected.html: Added.
        * fast/table/border-collapsing/left-border-table-rtl-section-ltr.html: Added.
        * fast/table/border-collapsing/left-border-table-rtl-section-rtl-expected.html: Added.
        * fast/table/border-collapsing/left-border-table-rtl-section-rtl.html: Added.
        * fast/table/border-collapsing/left-border-vertical-lr-table-ltr-section-rtl-expected.html: Added.
        * fast/table/border-collapsing/left-border-vertical-lr-table-ltr-section-rtl.html: Added.
        * fast/table/border-collapsing/left-border-vertical-lr-table-rtl-section-ltr-expected.html: Added.
        * fast/table/border-collapsing/left-border-vertical-lr-table-rtl-section-ltr.html: Added.
        * fast/table/border-collapsing/left-border-vertical-lr-table-rtl-section-rtl-expected.html: Added.
        * fast/table/border-collapsing/left-border-vertical-lr-table-rtl-section-rtl.html: Added.
        * fast/table/border-collapsing/rtl-table-left-border-hidden-expected.html: Added.
        * fast/table/border-collapsing/rtl-table-left-border-hidden.html: Added.
        * fast/table/border-collapsing/top-border-vertical-rl-table-ltr-section-rtl-expected.html: Added.
        * fast/table/border-collapsing/top-border-vertical-rl-table-ltr-section-rtl.html: Added.
        * fast/table/border-collapsing/top-border-vertical-rl-table-rtl-section-ltr-expected.html: Added.
        * fast/table/border-collapsing/top-border-vertical-rl-table-rtl-section-ltr.html: Added.
        * fast/table/border-collapsing/top-border-vertical-rl-table-rtl-section-rtl-expected.html: Added.
        * fast/table/border-collapsing/top-border-vertical-rl-table-rtl-section-rtl.html: Added.
        Most of those are test are a variation of direction on table and row group along with disabling some
        borders (either using 'hidden' or just disabling it by setting it to 0px).

        * fast/table/table-ltr-section-rtl-expected.html: Added.
        * fast/table/table-ltr-section-rtl.html: Added.
        * fast/table/table-rtl-section-ltr-expected.html: Added.
        * fast/table/table-rtl-section-ltr.html: Added.
        * fast/table/table-rtl-section-rtl-expected.html: Added.
        * fast/table/table-rtl-section-rtl.html: Added.
        Bonus as there was little testing for mixed direction + separate borders.

2012-06-06  Keyar Hood  <keyar@chromium.org>

        [Chromium] imageSmoothingEnabled should apply to patterns
        https://bugs.webkit.org/show_bug.cgi?id=88103

        Reviewed by Stephen White.

        Added tests for imageSmoothingEnabled flag applying to patterns.

        Modified the TestExpectations file as tests are failing due to the new
        change. It makes the pictures prettier (and it agrees with other
        browsers) so we have decided that the new results are to be considered
        correct.
        * fast/canvas/canvas-imageSmoothingEnabled-patterns.html: Added.
        * platform/chromium-linux/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.png: Added.
        * platform/chromium-linux/fast/canvas/canvas-imageSmoothingEnabled-patterns-expected.txt: Added.
        * platform/chromium/TestExpectations:

2012-06-06  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>

        [EFL][DRT] http/tests/globalhistory testcases do not pass
        https://bugs.webkit.org/show_bug.cgi?id=82579

        Reviewed by Csaba Osztrogonác.

        * platform/efl/Skipped: Unskip http/tests/globalhistory.

2012-06-06  Ilya Tikhonovsky  <loislo@chromium.org>

        Unreviewed update chromium test expectations.

        * platform/chromium/TestExpectations:
        css3/filters/huge-region-composited.html = CRASH : was removed

2012-06-06  Sergio Villar Senin  <svillar@igalia.com>

        Unreviewed, updated TestExpectations after several tests have been
        regularly passing in the 3 GTK bots for some time.

        * platform/gtk/TestExpectations:

2012-06-06  Dominik Röttsches  <dominik.rottsches@intel.com>

        [EFL] Turning the bot into a springtime green
        https://bugs.webkit.org/show_bug.cgi?id=88400

        Unreviewed, EFL gardening.

        * platform/efl/Skipped:
        * platform/efl/TestExpectations:

2012-06-06  Andy Wingo  <wingo@igalia.com>

        REGRESSION (r106478): None of the Paper.js JavaScript examples work
        https://bugs.webkit.org/show_bug.cgi?id=87158

        Added regression tests for functions inside eval inside a with.

        Reviewed by Michael Saboff.

        * fast/js/eval-and-with-expected.txt: Added.
        * fast/js/eval-and-with.html: Added.
        * fast/js/script-tests/eval-and-with.js: Added.

2012-06-06  Zoltan Arvai  <zarvai@inf.u-szeged.hu>

        [Qt][WK2] Unreviewed gardening. Skip modified falining test. Rebase a test.
        [Qt] Fix wrong skipping.

        * platform/qt-5.0-wk2/Skipped:
        * platform/qt-5.0-wk2/compositing/backing/no-backing-for-perspective-expected.txt:
        * platform/qt/Skipped:

2012-06-05  Joe Thomas  <joethomas@motorola.com>

        ASSERTION FAILED: ASSERT(!isPercentageIntrinsicSize) in RenderReplaced::computeIntrinsicRatioInformationForRenderBox
        https://bugs.webkit.org/show_bug.cgi?id=88197

        Reviewed by Daniel Bates.

        RenderSVGRoot extends RenderReplaced and it overrides the computeIntrinsicRatioInformation() 
        method of RenderReplaced. RenderSVGRoot::computeIntrinsicRatioInformation
        sets isPercentageIntrinsicSize to true while it handles width and height of percentage types.
        So this assertion should be fired only if intrinsicRatio is non-zero.

        * svg/in-html/svg-assert-failure-percentage-expected.txt: Added.
        * svg/in-html/svg-assert-failure-percentage.html: Added.

2012-06-05  Tony Chang  <tony@chromium.org>

        Changing flexbox justify/alignment doesn't update their positioning
        https://bugs.webkit.org/show_bug.cgi?id=88366

        Reviewed by Ojan Vafai.

        * css3/flexbox/style-change-expected.txt: Added.
        * css3/flexbox/style-change.html: Added.

2012-06-05  Ojan Vafai  <ojan@chromium.org>

        Nested CSS flexbox renders incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=87679

        Reviewed by Julien Chaffraix.

        * css3/flexbox/perpendicular-writing-modes-inside-flex-item-expected.txt: Added.
        * css3/flexbox/perpendicular-writing-modes-inside-flex-item.html: Added.

2012-06-05  Ryosuke Niwa  <rniwa@webkit.org>

        Remove erroneous expected image added in r119544.

        * platform/chromium-mac/fast/forms/select/optgroup-rendering-expected.txt: Removed.

2012-06-05  Ryosuke Niwa  <rniwa@webkit.org>

        Chromium rebaselines after r115091.

        * platform/chromium-mac-leopard/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.png:
        * platform/chromium-mac-leopard/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.txt: Added.
        * platform/chromium-mac-snowleopard/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.png:
        * platform/chromium-mac-snowleopard/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.txt: Added.
        * platform/chromium-mac/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.png:
        * platform/chromium-mac/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.txt: Added.
        * platform/chromium-win/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.png:
        * platform/chromium-win/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.txt:
        * platform/chromium/TestExpectations:

2012-06-05  Ryosuke Niwa  <rniwa@webkit.org>

        More Chromium rebaselines after r119528 and r119512.

        * platform/chromium-linux/editing/selection/3690703-2-expected.png:
        * platform/chromium-linux/editing/selection/3690703-expected.png:
        * platform/chromium-linux/editing/selection/3690719-expected.png:
        * platform/chromium-linux/fast/sub-pixel/float-containing-block-with-margin-expected.png: Added.

2012-06-05  Max Feil  <mfeil@rim.com>

        [BlackBerry] Conditionally enlarge HTML5 video controls in fullscreen mode
        https://bugs.webkit.org/show_bug.cgi?id=87551

        Reviewed by Antonio Gomes.

        * media/media-controls.js:
        (mediaControlsButtonDimensions):
        * platform/blackberry/media/video-controls-enlarged-fullscreen-meta-expected.txt: Added.
        * platform/blackberry/media/video-controls-enlarged-fullscreen-meta.html: Added.
        * platform/blackberry/media/video-controls-enlarged-fullscreen-nometa-expected.txt: Added.
        * platform/blackberry/media/video-controls-enlarged-fullscreen-nometa.html: Added.

2012-06-05  Ryosuke Niwa  <rniwa@webkit.org>

        Stop generating image results in the tests added by r114172.

        Rubber-stamped by Simon Fraser.

        * css3/filters/huge-region-composited.html:
        * css3/filters/huge-region.html:
        * platform/chromium/TestExpectations:

2012-06-05  Ryosuke Niwa  <rniwa@webkit.org>

        Chromium rebaselines after r118772.

        * platform/chromium-mac-leopard/fast/forms/select/optgroup-rendering-expected.png: Added.
        * platform/chromium-mac-snowleopard/fast/forms/select/optgroup-rendering-expected.png: Added.
        * platform/chromium-mac/fast/forms/select/optgroup-rendering-expected.png: Added.
        * platform/chromium-mac/fast/forms/select/optgroup-rendering-expected.txt: Added.
        * platform/chromium-win/fast/forms/select/optgroup-rendering-expected.png: Added.
        * platform/chromium-win/fast/forms/select/optgroup-rendering-expected.txt: Added.
        * platform/chromium/TestExpectations:

2012-06-05  Levi Weintraub  <leviw@chromium.org>

        Unreviewed. Fixing an incorrect path in lion Skipped file.

        * platform/mac-lion/Skipped:

2012-06-05  Emil A Eklund  <eae@chromium.org>

        Unreviewed gardening. Chromium windows test expectation updates.

        * platform/chromium-win/fast/sub-pixel: Added.
        * platform/chromium-win/fast/sub-pixel/float-containing-block-with-margin-expected.png: Added.
        * platform/chromium/TestExpectations:

2012-06-05  Levi Weintraub  <leviw@chromium.org>

        Unreviewed gardening. More updated Chromium test expectations following 119528.

        * platform/chromium-linux-x86/editing/selection: Added.
        * platform/chromium-linux-x86/editing/selection/3690703-2-expected.png: Added.
        * platform/chromium-linux-x86/editing/selection/3690703-expected.png: Added.
        * platform/chromium-linux-x86/editing/selection/3690719-expected.png: Added.
        * platform/chromium-linux-x86/fast/sub-pixel: Added.
        * platform/chromium-linux-x86/fast/sub-pixel/selection: Added.
        * platform/chromium-linux-x86/fast/sub-pixel/selection/selection-gaps-at-fractional-offsets-expected.png: Added.
        * platform/chromium-linux/fast/sub-pixel: Added.
        * platform/chromium-linux/fast/sub-pixel/selection: Added.
        * platform/chromium-linux/fast/sub-pixel/selection/selection-gaps-at-fractional-offsets-expected.png: Added.
        * platform/chromium-mac-leopard/editing/selection/3690703-2-expected.png:
        * platform/chromium-mac-leopard/editing/selection/3690703-expected.png:
        * platform/chromium-mac-leopard/editing/selection/3690719-expected.png:
        * platform/chromium-mac-leopard/editing/selection/selection-button-text-expected.png:
        * platform/chromium-mac-leopard/editing/selection/vertical-lr-ltr-extend-line-backward-br-expected.png:
        * platform/chromium-mac-leopard/editing/selection/vertical-lr-ltr-extend-line-forward-br-expected.png:
        * platform/chromium-mac-leopard/editing/selection/vertical-rl-ltr-extend-line-backward-br-expected.png:
        * platform/chromium-mac-leopard/editing/selection/vertical-rl-ltr-extend-line-backward-p-expected.png:
        * platform/chromium-mac-leopard/editing/selection/vertical-rl-ltr-extend-line-backward-wrap-expected.png:
        * platform/chromium-mac-leopard/editing/selection/vertical-rl-ltr-extend-line-forward-br-expected.png:
        * platform/chromium-mac-leopard/editing/selection/vertical-rl-ltr-extend-line-forward-p-expected.png:
        * platform/chromium-mac-leopard/editing/selection/vertical-rl-ltr-extend-line-forward-wrap-expected.png:
        * platform/chromium-mac-leopard/editing/selection/vertical-rl-rtl-extend-line-backward-br-expected.png:
        * platform/chromium-mac-leopard/editing/selection/vertical-rl-rtl-extend-line-backward-p-expected.png:
        * platform/chromium-mac-leopard/editing/selection/vertical-rl-rtl-extend-line-forward-br-expected.png:
        * platform/chromium-mac-leopard/editing/selection/vertical-rl-rtl-extend-line-forward-p-expected.png:
        * platform/chromium-mac/editing/selection/3690703-2-expected.png:
        * platform/chromium-mac/editing/selection/3690703-expected.png:
        * platform/chromium-mac/editing/selection/3690719-expected.png:
        * platform/chromium-mac/editing/selection/selection-button-text-expected.png:
        * platform/chromium-mac/editing/selection/vertical-lr-ltr-extend-line-backward-br-expected.png:
        * platform/chromium-mac/editing/selection/vertical-lr-ltr-extend-line-forward-br-expected.png:
        * platform/chromium-mac/editing/selection/vertical-rl-ltr-extend-line-backward-br-expected.png:
        * platform/chromium-mac/editing/selection/vertical-rl-ltr-extend-line-backward-p-expected.png:
        * platform/chromium-mac/editing/selection/vertical-rl-ltr-extend-line-backward-wrap-expected.png:
        * platform/chromium-mac/editing/selection/vertical-rl-ltr-extend-line-forward-br-expected.png:
        * platform/chromium-mac/editing/selection/vertical-rl-ltr-extend-line-forward-p-expected.png:
        * platform/chromium-mac/editing/selection/vertical-rl-ltr-extend-line-forward-wrap-expected.png:
        * platform/chromium-mac/editing/selection/vertical-rl-rtl-extend-line-backward-br-expected.png:
        * platform/chromium-mac/editing/selection/vertical-rl-rtl-extend-line-backward-p-expected.png:
        * platform/chromium-mac/editing/selection/vertical-rl-rtl-extend-line-forward-br-expected.png:
        * platform/chromium-mac/editing/selection/vertical-rl-rtl-extend-line-forward-p-expected.png:
        * platform/chromium-mac/fast/sub-pixel/selection: Added.
        * platform/chromium-mac/fast/sub-pixel/selection/selection-gaps-at-fractional-offsets-expected.png: Added.
        * platform/chromium-win-vista/fast/sub-pixel: Added.
        * platform/chromium-win-vista/fast/sub-pixel/selection: Added.
        * platform/chromium-win-vista/fast/sub-pixel/selection/selection-gaps-at-fractional-offsets-expected.png: Added.
        * platform/chromium-win/editing/selection/3690703-2-expected.png:
        * platform/chromium-win/editing/selection/3690703-expected.png:
        * platform/chromium-win/editing/selection/3690719-expected.png:
        * platform/chromium-win/fast/sub-pixel: Added.
        * platform/chromium-win/fast/sub-pixel/selection: Added.
        * platform/chromium-win/fast/sub-pixel/selection/selection-gaps-at-fractional-offsets-expected.png: Added.
        * platform/chromium/TestExpectations:

2012-06-05  Ryosuke Niwa  <rniwa@webkit.org>

        Chromium rebaselines for r119523 and r119529.

        * platform/chromium-linux/compositing/layer-creation: Removed.
        * platform/chromium-mac-snowleopard/fast/sub-pixel/float-containing-block-with-margin-expected.png: Added.
        * platform/chromium-mac-snowleopard/fullscreen/full-screen-stacking-context-expected.png:
        * platform/chromium-mac/compositing/iframes/scroll-fixed-transformed-element-expected.png: Added.
        * platform/chromium-mac/fullscreen/full-screen-stacking-context-expected.png:
        * platform/chromium-win/compositing/backing/no-backing-for-perspective-expected.txt:
        * platform/chromium-win/compositing/iframes/scroll-fixed-transformed-element-expected.png: Added.
        * platform/chromium-win/compositing/layer-creation/no-compositing-for-preserve-3d-expected.txt: Added.

2012-06-05  Levi Weintraub  <leviw@chromium.org>

        Fixing two leopard-specific baselines following r119528.

        * platform/chromium-mac-leopard/fast/repaint/japanese-rl-selection-repaint-expected.png:
        * platform/chromium-mac-leopard/fast/repaint/japanese-rl-selection-repaint-in-regions-expected.png:

2012-06-05  Ryosuke Niwa  <rniwa@webkit.org>

        Fix Chromium test expectations.

        * platform/chromium/TestExpectations:

2012-06-05  Simon Fraser  <simon.fraser@apple.com>

        Avoid creating compositing layers for preserve-3d without transformed descendants
        https://bugs.webkit.org/show_bug.cgi?id=88115

        Reviewed by Antti Koivisto.
        
        * compositing/backing/no-backing-for-perspective-expected.txt:
        * compositing/backing/no-backing-for-perspective.html: Change the transform to be non-affine so that
        we keep making layers for perspective.
        * compositing/layer-creation/no-compositing-for-preserve-3d-expected.txt: Added.
        * compositing/layer-creation/no-compositing-for-preserve-3d.html: Copied from LayoutTests/compositing/backing/no-backing-for-perspective.html.

2012-06-05  Levi Weintraub  <leviw@chromium.org>

        Block selection gaps painted not properly pixel snapped
        https://bugs.webkit.org/show_bug.cgi?id=88000

        Reviewed by Ryosuke Niwa.

        One new selection test and updated snowleopard expectations for a handful that improved.

        Note: a couple of the RTL results appear worse, but sadly are only returning to our old pre-sub-pixel results.

        * fast/sub-pixel/selection: Added.
        * fast/sub-pixel/selection/selection-gaps-at-fractional-offsets-expected.txt: Added.
        * fast/sub-pixel/selection/selection-gaps-at-fractional-offsets.html: Added.
        * platform/chromium-mac-snowleopard/editing/selection/3690703-2-expected.png:
        * platform/chromium-mac-snowleopard/editing/selection/3690703-expected.png:
        * platform/chromium-mac-snowleopard/editing/selection/3690719-expected.png:
        * platform/chromium-mac-snowleopard/editing/selection/selection-button-text-expected.png:
        * platform/chromium-mac-snowleopard/editing/selection/vertical-lr-ltr-extend-line-backward-br-expected.png:
        * platform/chromium-mac-snowleopard/editing/selection/vertical-lr-ltr-extend-line-forward-br-expected.png:
        * platform/chromium-mac-snowleopard/editing/selection/vertical-rl-ltr-extend-line-backward-br-expected.png:
        * platform/chromium-mac-snowleopard/editing/selection/vertical-rl-ltr-extend-line-backward-p-expected.png:
        * platform/chromium-mac-snowleopard/editing/selection/vertical-rl-ltr-extend-line-backward-wrap-expected.png:
        * platform/chromium-mac-snowleopard/editing/selection/vertical-rl-ltr-extend-line-forward-br-expected.png:
        * platform/chromium-mac-snowleopard/editing/selection/vertical-rl-ltr-extend-line-forward-p-expected.png:
        * platform/chromium-mac-snowleopard/editing/selection/vertical-rl-ltr-extend-line-forward-wrap-expected.png:
        * platform/chromium-mac-snowleopard/editing/selection/vertical-rl-rtl-extend-line-backward-br-expected.png:
        * platform/chromium-mac-snowleopard/editing/selection/vertical-rl-rtl-extend-line-backward-p-expected.png:
        * platform/chromium-mac-snowleopard/editing/selection/vertical-rl-rtl-extend-line-forward-br-expected.png:
        * platform/chromium-mac-snowleopard/editing/selection/vertical-rl-rtl-extend-line-forward-p-expected.png:
        * platform/chromium-mac-snowleopard/fast/sub-pixel: Added.
        * platform/chromium-mac-snowleopard/fast/sub-pixel/selection: Added.
        * platform/chromium-mac-snowleopard/fast/sub-pixel/selection/selection-gaps-at-fractional-offsets-expected.png: Added.
        * platform/chromium-mac/fast/repaint/japanese-rl-selection-repaint-expected.png:
        * platform/chromium-mac/fast/repaint/japanese-rl-selection-repaint-in-regions-expected.png:
        * platform/chromium/TestExpectations:
        * platform/efl/Skipped:
        * platform/gtk-wk2/Skipped:
        * platform/mac-lion/Skipped:
        * platform/mac-snowleopard/Skipped:
        * platform/mac-wk2/Skipped:
        * platform/mac/Skipped:
        * platform/qt-4.8/Skipped:
        * platform/qt/Skipped:
        * platform/win-wk2/Skipped:
        * platform/win-xp/Skipped:
        * platform/win/Skipped:
        * platform/wincairo/Skipped:
        * platform/wk2/Skipped:

2012-06-05  Adam Barth  <abarth@webkit.org>

        Remove support for target-densitydpi in the viewport meta tag
        https://bugs.webkit.org/show_bug.cgi?id=88047

        Reviewed by Kenneth Rohde Christiansen.

        These tests are no longer needed because they're testing a feature we
        no longer support.

        * fast/viewport/viewport-133-expected.txt: Removed.
        * fast/viewport/viewport-133.html: Removed.
        * fast/viewport/viewport-92-expected.txt: Removed.
        * fast/viewport/viewport-92.html: Removed.
        * fast/viewport/viewport-93-expected.txt: Removed.
        * fast/viewport/viewport-93.html: Removed.
        * fast/viewport/viewport-94-expected.txt: Removed.
        * fast/viewport/viewport-94.html: Removed.
        * fast/viewport/viewport-95-expected.txt: Removed.
        * fast/viewport/viewport-95.html: Removed.
        * fast/viewport/viewport-96-expected.txt: Removed.
        * fast/viewport/viewport-96.html: Removed.

2012-06-05  Ryosuke Niwa  <rniwa@webkit.org>

        Fix Chromium test expectations.

        * platform/chromium/TestExpectations:

2012-06-05  Emil A Eklund  <eae@chromium.org>

        Unreviewed chromium mac rebaseline for float-containing-block-with-margin.

        * platform/chromium-mac-leopard/fast/sub-pixel: Added.
        * platform/chromium-mac-leopard/fast/sub-pixel/float-containing-block-with-margin-expected.png: Added.
        * platform/chromium-mac/fast/sub-pixel/float-containing-block-with-margin-expected.png:

2012-06-05  Ryosuke Niwa  <rniwa@webkit.org>

        Add Chromium test failure expectations per Skia roll:
        http://src.chromium.org/viewvc/chrome?view=rev&revision=140580

        * platform/chromium/TestExpectations:

2012-06-05  Tim Horton  <timothy_horton@apple.com>

        Assertion failure on mac-lion-wk2 in fast/hidpi/device-scale-factor-paint.html
        https://bugs.webkit.org/show_bug.cgi?id=88356

        Unreviewed, remove incorrect baselines and skip test on Mac.

        * platform/mac/Skipped:
        * platform/mac/fast/hidpi/device-scale-factor-paint-expected.png: Removed.
        * platform/mac/fast/hidpi/device-scale-factor-paint-expected.txt: Removed.

2012-06-05  Erik Arvidsson  <arv@chromium.org>

        [V8] Improve variable resolution order on window
        https://bugs.webkit.org/show_bug.cgi?id=84247

        Reviewed by Ojan Vafai.

        This changes the V8 flag to turn on es52_globals and updates the layout tests to reflect the fixed behavior.

        * fast/dom/Window/window-property-shadowing-name-expected.txt: The expectation is now reversed.
        * fast/dom/Window/window-property-shadowing-name.html: JSC fails so this test says fail. Bug 75575 tracks JSC.
        * fast/dom/Window/window-property-shadowing-onclick-expected.txt: Added.
        * fast/dom/Window/window-property-shadowing-onclick.html: Added.
        * platform/chromium/fast/dom/Window/window-property-shadowing-name-expected.txt: Copied from LayoutTests/fast/dom/Window/window-property-shadowing-name-expected.txt.
        * platform/chromium/fast/dom/Window/window-property-shadowing-onclick-expected.txt: Added.

2012-06-05  Emil A Eklund  <eae@chromium.org>

        Change fast/sub-pixel/float-containing-block-with-margin.html to pixel test
        https://bugs.webkit.org/show_bug.cgi?id=88351

        Reviewed by Levi Weintraub.

        Change fast/sub-pixel/float-containing-block-with-margin.html to pixel
        test to allow for platform differences as the default styling makes it
        very hard to use a reftests for this.

        * fast/sub-pixel/float-containing-block-with-margin-expected.html: Removed.
        * fast/sub-pixel/float-containing-block-with-margin-expected.png: Added.
        * fast/sub-pixel/float-containing-block-with-margin-expected.txt: Added.
        * fast/sub-pixel/float-containing-block-with-margin.html:
        * platform/chromium-mac/fast/sub-pixel/float-containing-block-with-margin-expected.png: Added.
        * platform/chromium/TestExpectations:

2012-06-05  Levi Weintraub  <leviw@chromium.org>

        Unreviewed gardening. Fixing improper text expectation following r119503.

        * platform/chromium-mac/fast/line-grid/line-align-left-edges-expected.txt: Removed.
        * platform/chromium-win/fast/line-grid/line-align-left-edges-expected.txt: Removed.
        * platform/chromium/fast/line-grid: Added.
        * platform/chromium/fast/line-grid/line-align-left-edges-expected.txt: Added.

2012-06-05  Ryosuke Niwa  <rniwa@webkit.org>

        Chromium rebaseline per Chromium r140536.

        * platform/chromium-linux-x86/http/tests/media: Added.
        * platform/chromium-linux-x86/http/tests/media/video-buffered-range-contains-currentTime-expected.png: Added.
        * platform/chromium-linux/http/tests/media/video-buffered-range-contains-currentTime-expected.png:
        * platform/chromium-mac-snowleopard/http/tests/media/video-buffered-range-contains-currentTime-expected.png:
        * platform/chromium-mac/http/tests/media/video-buffered-range-contains-currentTime-expected.png:
        * platform/chromium-win-vista/http/tests/media: Added.
        * platform/chromium-win-vista/http/tests/media/video-buffered-range-contains-currentTime-expected.png: Added.
        * platform/chromium-win/http/tests/media/video-buffered-range-contains-currentTime-expected.png:

2012-06-01  Ojan Vafai  <ojan@chromium.org>

        Change overrideSizes to be content-box instead of border-box
        https://bugs.webkit.org/show_bug.cgi?id=88116

        Reviewed by Tony Chang.

        * fast/table/padding-height-and-override-height-expected.txt:
        * fast/table/padding-height-and-override-height.html:
        Tests the change in RenderBox::availableLogicalHeightUsing to correctly subtract the
        borderAndPaddingLogicalHeight instead of the borderAndPaddingLogicalWidth.
        * platform/chromium-linux/tables/mozilla/bugs/bug131020-expected.png:
        * platform/chromium-win/tables/mozilla/bugs/bug131020-expected.txt:
        The new results are more correct. The table cell had 2px too much padding-top and padding-bottom before.

2012-06-05  Tim Horton  <timothy_horton@apple.com>

        http/tests/media/remove-while-loading.html times out on mac-lion-wk2
        https://bugs.webkit.org/show_bug.cgi?id=88348

        Unreviewed skip of this test for greenness.

        * platform/mac-wk2/Skipped:

2012-06-05  Levi Weintraub  <leviw@chromium.org>

        Unreviewed gardening. Updating test expectations after r119456.

        * fast/line-grid/line-grid-contains-value-expected.txt: Added.
        * platform/chromium-mac-leopard/css2.1/t100801-c544-valgn-03-d-agi-expected.png:
        * platform/chromium-mac-leopard/fast/forms/001-expected.png:
        * platform/chromium-mac-leopard/fast/inline/inline-box-background-expected.png:
        * platform/chromium-mac-leopard/fast/inline/inline-box-background-long-image-expected.png:
        * platform/chromium-mac-leopard/fast/inline/inline-box-background-repeat-x-expected.png:
        * platform/chromium-mac-leopard/fast/inline/inline-box-background-repeat-y-expected.png:
        * platform/chromium-mac-leopard/fast/replaced/width100percent-checkbox-expected.png:
        * platform/chromium-mac-leopard/fast/replaced/width100percent-radio-expected.png:
        * platform/chromium-mac-leopard/tables/mozilla/bugs/bug1318-expected.png:
        * platform/chromium-mac-leopard/tables/mozilla/bugs/bug4527-expected.png:
        * platform/chromium-mac-snowleopard/css2.1/t100801-c544-valgn-03-d-agi-expected.png:
        * platform/chromium-mac-snowleopard/fast/forms/001-expected.png:
        * platform/chromium-mac-snowleopard/fast/inline/inline-box-background-expected.png:
        * platform/chromium-mac-snowleopard/fast/inline/inline-box-background-long-image-expected.png:
        * platform/chromium-mac-snowleopard/fast/inline/inline-box-background-repeat-x-expected.png:
        * platform/chromium-mac-snowleopard/fast/inline/inline-box-background-repeat-y-expected.png:
        * platform/chromium-mac-snowleopard/fast/replaced/width100percent-checkbox-expected.png:
        * platform/chromium-mac-snowleopard/fast/replaced/width100percent-radio-expected.png:
        * platform/chromium-mac-snowleopard/tables/mozilla/bugs/bug1318-expected.png:
        * platform/chromium-mac-snowleopard/tables/mozilla/bugs/bug4527-expected.png:
        * platform/chromium-mac/css2.1/t100801-c544-valgn-03-d-agi-expected.png:
        * platform/chromium-mac/css2.1/t100801-c544-valgn-03-d-agi-expected.txt:
        * platform/chromium-mac/fast/forms/001-expected.png:
        * platform/chromium-mac/fast/forms/001-expected.txt:
        * platform/chromium-mac/fast/inline/inline-box-background-expected.png:
        * platform/chromium-mac/fast/inline/inline-box-background-long-image-expected.png:
        * platform/chromium-mac/fast/inline/inline-box-background-repeat-x-expected.png:
        * platform/chromium-mac/fast/inline/inline-box-background-repeat-y-expected.png:
        * platform/chromium-mac/fast/line-grid/line-align-left-edges-expected.png:
        * platform/chromium-mac/fast/line-grid/line-align-left-edges-expected.txt: Added.
        * platform/chromium-mac/fast/line-grid/line-grid-contains-value-expected.txt: Added.
        * platform/chromium-mac/fast/replaced/width100percent-checkbox-expected.png:
        * platform/chromium-mac/fast/replaced/width100percent-checkbox-expected.txt:
        * platform/chromium-mac/fast/replaced/width100percent-radio-expected.png:
        * platform/chromium-mac/fast/replaced/width100percent-radio-expected.txt:
        * platform/chromium-mac/tables/mozilla/bugs/bug1318-expected.png:
        * platform/chromium-mac/tables/mozilla/bugs/bug1318-expected.txt:
        * platform/chromium-mac/tables/mozilla/bugs/bug4527-expected.png:
        * platform/chromium-mac/tables/mozilla/bugs/bug4527-expected.txt:
        * platform/chromium-win/css2.1/t100801-c544-valgn-03-d-agi-expected.png:
        * platform/chromium-win/css2.1/t100801-c544-valgn-03-d-agi-expected.txt:
        * platform/chromium-win/fast/line-grid/line-align-left-edges-expected.png:
        * platform/chromium-win/fast/line-grid/line-align-left-edges-expected.txt: Added.
        * platform/chromium-win/fast/line-grid/line-grid-contains-value-expected.png:
        * platform/chromium/TestExpectations:
        * platform/chromium/fast/line-grid: Removed.
        * platform/chromium/fast/line-grid/line-align-left-edges-expected.txt: Removed.
        * platform/efl/fast/line-grid/line-grid-contains-value-expected.txt: Removed.
        * platform/gtk/fast/line-grid/line-grid-contains-value-expected.txt: Removed.

2012-06-05  Douglas Stockwell  <dstockwell@chromium.org>

        Crash when modifying fixed-position elements in a detached frame
        https://bugs.webkit.org/show_bug.cgi?id=88288

        Reviewed by James Robinson.

        * fast/block/positioning/fixed-position-detached-frame-expected.txt: Added.
        * fast/block/positioning/fixed-position-detached-frame.html: Added.

2012-06-05  Alexei Filippov  <alexeif@chromium.org>

        Web Inspector: serialize edge counts instead of indexes in heap snapshot
        https://bugs.webkit.org/show_bug.cgi?id=88324

        The serialized node structure currently holds an index
        of its first containment edge in the edges array.
        The index can be quite big (up to 7 digits for large snapshots).
        The patch changes the serialization format to pass
        node containment edge count instead. For most nodes the count
        is just a single digit number.
        This reduces serialized snapshot size and therefore its transfer time.

        Reviewed by Yury Semikhatsky.

        * inspector/profiler/heap-snapshot-expected.txt:
        * inspector/profiler/heap-snapshot-test.js:
        (initialize_HeapSnapshotTest.InspectorTest.createHeapSnapshotMockObject):
        (initialize_HeapSnapshotTest.InspectorTest.createHeapSnapshotMockRaw):
        (initialize_HeapSnapshotTest.InspectorTest.createHeapSnapshotMockWithDOM):
        (initialize_HeapSnapshotTest.):
        * inspector/profiler/heap-snapshot.html:

2012-06-05  Arpita Bahuguna  <arpitabahuguna@gmail.com>

        CSS 2.1 failure: border-conflict-element-021a
        https://bugs.webkit.org/show_bug.cgi?id=86885

        Reviewed by Julien Chaffraix.

        * css2.1/20110323/border-conflict-element-021a-expected.html: Added.
        * css2.1/20110323/border-conflict-element-021a.htm: Added.
        Added ref test under the css2.1 test-suite for border-conflict-element-021a.

        * fast/table/border-collapsing/adjacent-row-groups-expected.html: Added.
        * fast/table/border-collapsing/adjacent-row-groups.html: Added.
        Added ref test for verifying 'border-collapse: collapse' table rendering when two
        adjacent table row-groups have the same border-width and the same border-style. In
        such a case the color of the border from the top-most table row-group wins.

        * fast/table/border-collapsing/adjacent-row-groups-multi.html: Added.
        * fast/table/border-collapsing/adjacent-row-groups-multi-expected.html: Added.
        Additional ref test added for verifying 'border-collapse: collapse' table rendering
        for adjacent table row-groups when more than one table headers and/or footers are specified.

2012-06-05  Ilya Tikhonovsky  <loislo@chromium.org>

        Chromium unreviewed sheriffing: enable blob tests that are passing since r119454.

        * platform/chromium/TestExpectations:
        fast/filesystem/file-writer-gc-blob.html
        fast/filesystem/workers/file-writer-sync-truncate-extend.html
        fast/filesystem/workers/file-writer-gc-blob.html

2012-06-05  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r119467, r119471, and r119476.
        http://trac.webkit.org/changeset/119467
        http://trac.webkit.org/changeset/119471
        http://trac.webkit.org/changeset/119476
        https://bugs.webkit.org/show_bug.cgi?id=88332

        it broke chromium-mac static initializers test.\ (Requested by
        loislo on #webkit).

        * platform/chromium-mac/css3/font-feature-settings-rendering-expected.png: Removed.
        * platform/chromium-mac/css3/font-feature-settings-rendering-expected.txt: Removed.
        * platform/chromium/TestExpectations:

2012-06-05  Rob Buis  <rwlbuis@webkit.org>

        Hit ASSERT when editing attribute value in Element in SVG Document
        https://bugs.webkit.org/show_bug.cgi?id=88179

        Reviewed by Pavel Feldman.

        Test setting attribute on non HTML element.

        * inspector/elements/set-attribute-non-html-expected.txt: Added.
        * inspector/elements/set-attribute-non-html.svg: Added.

2012-06-05  Dongwoo Im  <dw.im@samsung.com>

        Add 'isProtocolHandlerRegistered' and 'unregisterProtocolHandler'.
        https://bugs.webkit.org/show_bug.cgi?id=73176

        Reviewed by Adam Barth.

        Two more APIs are added in Custom Scheme Handler specification.
        http://dev.w3.org/html5/spec/Overview.html#custom-handlers
        One is 'isProtocolHandlerRegistered' to query whether the specific URL
        is registered or not.
        The other is 'unregisterProtocolHandler' to remove the registered URL.

        * fast/dom/unregister-protocol-handler-expected.txt: Added.
        * fast/dom/unregister-protocol-handler.html: Added.

2012-06-05  MORITA Hajime  <morrita@google.com>

        https://bugs.webkit.org/show_bug.cgi?id=88029
        content-element-api.html and shadow-element.html depend on V8.

        Reviewed by Kentaro Hara.

        Replaced typeof checking with comparison.

        * fast/dom/shadow/content-element-api.html:
        * fast/dom/shadow/shadow-element.html:

2012-06-04  Kinuko Yasuda  <kinuko@chromium.org>

        Chromium tests: "Add support for the Blob constructor" [r115582] regressed blob layout tests
        https://bugs.webkit.org/show_bug.cgi?id=85174

        Reviewed by Kentaro Hara.

        Changing blob-constructor.html label from CRASH to TEXT.

        * platform/chromium/TestExpectations:

2012-06-05  Kenichi Ishibashi  <bashi@chromium.org>

        [Chromium] Unreviewed test expectations update

        * platform/chromium/TestExpectations:

2012-06-05  Alexander Pavlov  <apavlov@chromium.org>

        Unreviewed, build fix after r119469.

        * inspector/styles/lazy-computed-style-expected.txt:
        * inspector/styles/styles-computed-trace-expected.txt:

2012-06-05  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: "-webkit"-prefixed properties are considered inherited in the Computed Style pane
        https://bugs.webkit.org/show_bug.cgi?id=88257

        Reviewed by Pavel Feldman.

        * inspector/elements/elements-panel-styles-expected.txt:
        * inspector/elements/elements-panel-styles.html:

2012-06-05  Kenichi Ishibashi  <bashi@chromium.org>

        [Chromium] Implement font shaping with font-feature-settings on Mac
        https://bugs.webkit.org/show_bug.cgi?id=69826

        Reviewed by Tony Chang.

        Added the expectation for sss3/font-feature-settings-rendering.html.

        * platform/chromium-mac/css3/font-feature-settings-rendering-expected.png: Added.
        * platform/chromium-mac/css3/font-feature-settings-rendering-expected.txt: Added.
        * platform/chromium/TestExpectations: Removed css3/font-feature-settings-rendering.html.

2012-06-05  Li Yin  <li.yin@intel.com>

        IETC: FileList.item(-1) should return null instead of raising
        https://bugs.webkit.org/show_bug.cgi?id=77899

        Reviewed by Kentaro Hara.

        IETC: http://samples.msdn.microsoft.com/ietestcenter/fileapi/filelist.htm
        Ref: http://es5.github.com/#x9.6
        Some index values have been covered in this test, including negative index,
        undefined, null, normal index(0~length-1), more than length index.

        * fast/files/file-list-test-expected.txt:
        * fast/files/file-list-test.html:

2012-06-05  Adam Barth  <abarth@webkit.org>

        EventHandler shouldn't dispatch fake mousemove events when scrolling on devices that don't have a mouse
        https://bugs.webkit.org/show_bug.cgi?id=88270

        Reviewed by James Robinson.

        * fast/events/touch/scroll-without-mouse-lacks-mousemove-events-expected.txt: Added.
        * fast/events/touch/scroll-without-mouse-lacks-mousemove-events.html: Added.

2012-06-04  Filip Pizlo  <fpizlo@apple.com>

        DFG CFG simplification should correct the variables at the head of the predecessor block
        https://bugs.webkit.org/show_bug.cgi?id=88284

        Reviewed by Geoffrey Garen.

        * fast/js/dfg-constant-fold-first-local-read-after-block-merge-expected.txt: Added.
        * fast/js/dfg-constant-fold-first-local-read-after-block-merge.html: Added.
        * fast/js/script-tests/dfg-constant-fold-first-local-read-after-block-merge.js: Added.
        (foo):
        (bar):

2012-06-04  Emil A Eklund  <eae@chromium.org>

        Unreviewed chromium windows rebaseline for r119456.

        * platform/chromium-win-vista/fast/multicol: Removed.
        * platform/chromium-win/fast/multicol/float-multicol-expected.png:

2012-06-04  Emil A Eklund  <eae@chromium.org>

        Unreviewed chromium test expectation updates for new tests.

        * fast/sub-pixel/inline-block-with-padding-expected.txt:
        * platform/chromium-mac/fast/sub-pixel: Added.
        * platform/chromium-mac/fast/sub-pixel/inline-block-with-padding-expected.txt: Added.

2012-06-04  Kent Tamura  <tkent@chromium.org>

        [Chromium] Fix a TestExpectations format error.

        * platform/chromium/TestExpectations:

2012-06-04  Emil A Eklund  <eae@chromium.org>

        Unreviewed chromium test and expectation updates for r119456.

        * fast/sub-pixel/inline-block-with-padding.html:
        * platform/chromium-mac-snowleopard/fast/events/offsetX-offsetY-expected.txt:
        * platform/chromium/TestExpectations:

2012-06-04  Emil A Eklund  <eae@chromium.org> and Levi Weintraub  <leviw@chromium.org>

        Add missing FractionalLayoutUnit += operator and move LineWidth to use all floats
        https://bugs.webkit.org/show_bug.cgi?id=88259

        Reviewed by Ryosuke Niwa.

        * fast/dom/elementFromPoint-relative-to-viewport.html:
        * fast/events/offsetX-offsetY.html:
        Remove special casing for subpixel layout as it is no longer needed.
        
        * fast/sub-pixel/float-containing-block-with-margin-expected.html: Added.
        * fast/sub-pixel/float-containing-block-with-margin.html: Added.
        * fast/sub-pixel/float-with-right-margin-zoom-expected.txt: Added.
        * fast/sub-pixel/float-with-right-margin-zoom.html: Added.
        * fast/sub-pixel/inline-block-with-padding-expected.txt: Added.
        * fast/sub-pixel/inline-block-with-padding.html: Added.
        New tests for wrapping logic.
        
        * platform/chromium-linux/css2.1/t100801-c544-valgn-03-d-agi-expected.png:
        * platform/chromium-linux/css2.1/t100801-c544-valgn-03-d-agi-expected.txt:
        * platform/chromium-linux/fast/line-grid/line-align-left-edges-expected.png:
        * platform/chromium-linux/fast/line-grid/line-grid-contains-value-expected.png:
        * platform/chromium-linux/fast/multicol/float-multicol-expected.png:
        * platform/chromium-win/fast/events/offsetX-offsetY-expected.txt:
        * platform/chromium-win/fast/line-grid/line-grid-contains-value-expected.txt:
        * platform/chromium-win/fast/multicol/float-multicol-expected.txt:
        Update expectations to match pre-subpixel rendering.
        
        * platform/chromium/TestExpectations:
        Mark updated tests as failing on mac and windows temporarily.
        
        * platform/chromium/fast/dom/elementFromPoint-relative-to-viewport-expected.txt:
        Remove special casing for subpixel layout as it is no longer needed.
        
        * platform/chromium/fast/line-grid/line-align-left-edges-expected.txt:
        Update expectations to match pre-subpixel rendering.

        * platform/efl/Skipped:
        * platform/gtk-wk2/Skipped:
        * platform/mac-lion/Skipped:
        * platform/mac-snowleopard/Skipped:
        * platform/mac-wk2/Skipped:
        * platform/mac/Skipped:
        * platform/qt-4.8/Skipped:
        * platform/qt/Skipped:
        * platform/win-wk2/Skipped:
        * platform/win-xp/Skipped:
        * platform/win/Skipped:
        * platform/wincairo/Skipped:
        * platform/wk2/Skipped:
        Skip new sub-pixel tests on platforms that does not enable sub-pixel layout.

2012-06-04  Tony Chang  <tony@chromium.org>

        CSS property 'order' should be a number rather than an int
        https://bugs.webkit.org/show_bug.cgi?id=88111

        Reviewed by Ojan Vafai.

        * css3/flexbox/css-properties-expected.txt:
        * css3/flexbox/css-properties.html: Allow decimal values.
        * css3/flexbox/flex-order.html: Fix tests based on float limits.

2012-06-04  Leo Yang  <leo.yang@torchmobile.com.cn>

        Syntax error in fast/filesystem/resources/file-writer-gc-blob.js
        https://bugs.webkit.org/show_bug.cgi?id=87939

        Reviewed by Alexey Proskuryakov.

        * fast/filesystem/resources/file-writer-gc-blob.js: Add parentheses around the blob data.
        (startWrite):

2012-06-04  Jessie Berlin  <jberlin@apple.com>

        Skip more tests on Windows to get the bots greener.

        See r119449 for more context.

        * platform/win/Skipped:

2012-06-04  Jessie Berlin  <jberlin@apple.com>

        Start skipping all the failing tests on Windows to get the bots greener.

        At this point it doesn't make sense to try to split the hundreds of failures out into
        separate bugs and rebaseline. It makes more sense to use the Skipped list as a todo list
        of things that need to be checked / updated for Windows.

        * platform/win/Skipped:

2012-06-04  Tim Horton  <timothy_horton@apple.com>

        Unreviewed new baseline for test added in r119423.

        * platform/mac/fast/hidpi/device-scale-factor-paint-expected.png: Added.
        * platform/mac/fast/hidpi/device-scale-factor-paint-expected.txt: Added.

2012-06-04  Filip Pizlo  <fpizlo@apple.com>

        DFG arguments simplification takes unkindly to direct accesses to the arguments register
        https://bugs.webkit.org/show_bug.cgi?id=88261

        Reviewed by Geoffrey Garen.

        * fast/js/dfg-arguments-alias-one-block-expected.txt: Added.
        * fast/js/dfg-arguments-alias-one-block-osr-exit-expected.txt: Added.
        * fast/js/dfg-arguments-alias-one-block-osr-exit.html: Added.
        * fast/js/dfg-arguments-alias-one-block-overwrite-arguments-expected.txt: Added.
        * fast/js/dfg-arguments-alias-one-block-overwrite-arguments.html: Added.
        * fast/js/dfg-arguments-alias-one-block-overwrite-expected.txt: Added.
        * fast/js/dfg-arguments-alias-one-block-overwrite.html: Added.
        * fast/js/dfg-arguments-alias-one-block.html: Added.
        * fast/js/script-tests/dfg-arguments-alias-one-block-osr-exit.js: Added.
        (foo):
        * fast/js/script-tests/dfg-arguments-alias-one-block-overwrite-arguments.js: Added.
        (foo):
        * fast/js/script-tests/dfg-arguments-alias-one-block-overwrite.js: Added.
        (foo):
        * fast/js/script-tests/dfg-arguments-alias-one-block.js: Added.
        (foo):

2012-06-04  Ami Fischman  <fischman@chromium.org>

        Don't crash when re-parenting a removed HTMLMediaElement
        https://bugs.webkit.org/show_bug.cgi?id=88058

        Reviewed by Eric Carlson.

        * media/media-reparent-expected.txt: Added.
        * media/media-reparent.html: Added.

2012-06-04  Sadrul Habib Chowdhury  <sadrul@chromium.org>

        [chromium] Fix software rendering for device-scale-factor > 1
        https://bugs.webkit.org/show_bug.cgi?id=88136

        Reviewed by Darin Fisher.

        * fast/hidpi/device-scale-factor-paint.html: Added.
        * platform/chromium/fast/hidpi/device-scale-factor-paint-expected.html: Added.

2012-06-04  Ami Fischman  <fischman@chromium.org>

        [Gtk] http/tests/media/video-buffered.html is failing after r119268
        https://bugs.webkit.org/show_bug.cgi?id=88138

        Reviewed by Eric Carlson.

        * http/tests/media/video-buffered.html:

2012-06-04  Aaron Colwell  <acolwell@chromium.org>

        Speed up video-media-source-play & video-media-source-seek LayoutTests.
        https://bugs.webkit.org/show_bug.cgi?id=87986

        Reviewed by Eric Carlson.

        * http/tests/media/media-source/video-media-source-play.html: Updated test to only play 1 second of media data instead of ~3 seconds.
        * http/tests/media/media-source/video-media-source-seek-expected.txt:
        * http/tests/media/media-source/video-media-source-seek.html:
            - Triggers seek after playing 0.5 seconds instead of 2 seconds.
            - Seeks to the last segment instead of a segment that is ~2 seconds from the end.
            - Added an webkitSourceAbort() call before appending the segments for the seek. This is to prevent this test from failing
              when the old v0.3 "flush on seek" behavior is removed from the Chromium code.

2012-06-04  Abhishek Arya  <inferno@chromium.org>

        Crash in multi-column layout.
        https://bugs.webkit.org/show_bug.cgi?id=88022

        Reviewed by Ojan Vafai.

        * fast/multicol/span/empty-anonymous-block-split-crash-expected.txt: Added.
        * fast/multicol/span/empty-anonymous-block-split-crash.html: Added.
        * fast/multicol/span/positioned-objects-not-removed-crash-expected.txt: Added.
        * fast/multicol/span/positioned-objects-not-removed-crash.html: Added.

2012-06-04  Tony Chang  <tony@chromium.org>

        Rename CSS flexbox test files to match new property names
        https://bugs.webkit.org/show_bug.cgi?id=88174

        Reviewed by Ojan Vafai.

        flex-pack became justify-content and flex-line-pack became
        align-content. Rename the tests to match the new names.

        * css3/flexbox/flex-justify-content-expected.txt: Renamed from LayoutTests/css3/flexbox/flex-pack-expected.txt.
        * css3/flexbox/flex-justify-content.html: Renamed from LayoutTests/css3/flexbox/flex-pack.html.
        * css3/flexbox/multiline-align-content-expected.txt: Renamed from LayoutTests/css3/flexbox/multiline-line-pack-expected.txt.
        * css3/flexbox/multiline-align-content-horizontal-column-expected.txt: Renamed from LayoutTests/css3/flexbox/multiline-line-pack-horizontal-column-expected.txt.
        * css3/flexbox/multiline-align-content-horizontal-column.html: Renamed from LayoutTests/css3/flexbox/multiline-line-pack-horizontal-column.html.
        * css3/flexbox/multiline-align-content.html: Renamed from LayoutTests/css3/flexbox/multiline-line-pack.html.
        * css3/flexbox/multiline-align-self-expected.txt: Renamed from LayoutTests/css3/flexbox/multiline-align-expected.txt.
        * css3/flexbox/multiline-align-self.html: Renamed from LayoutTests/css3/flexbox/multiline-align.html.
        * css3/flexbox/multiline-justify-content-expected.txt: Renamed from LayoutTests/css3/flexbox/multiline-pack-expected.txt.
        * css3/flexbox/multiline-justify-content.html: Renamed from LayoutTests/css3/flexbox/multiline-pack.html.
        * platform/chromium/TestExpectations:

2012-06-04  Tony Chang  <tony@chromium.org>

        Fix a couple flexbox tests to use flex-start and flex-end
        https://bugs.webkit.org/show_bug.cgi?id=88170

        Reviewed by Ojan Vafai.

        This test was still using start/end for align-self, which fallback
        to stretch. The test still passed because it is testing that all
        values of align-self behave the same and stretch produced the same
        behavior as flex-start/flex-end.

        * css3/flexbox/cross-axis-scrollbar.html:

2012-06-04  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r119393.
        http://trac.webkit.org/changeset/119393
        https://bugs.webkit.org/show_bug.cgi?id=88236

        Test is incorrect (duplicate content) and is causing Chromium
        failures (Requested by schenney on #webkit).

        * fast/canvas/drawImage-clipped-source-expected.txt: Removed.
        * fast/canvas/drawImage-clipped-source.html: Removed.
        * fast/canvas/drawImage-clipped-source.js: Removed.

2012-06-04  Philip Rogers  <pdr@google.com>

        Update test expectations after 119392
        https://bugs.webkit.org/show_bug.cgi?id=88230

        Unreviewed update of test expectations.

        * platform/efl/TestExpectations:
        * platform/gtk/TestExpectations:
        * platform/qt/TestExpectations:

2012-06-04  Justin Novosad  <junov@chromium.org>

        Canvas 2D - Source rectangles that overlap the source image boundary, not supported by drawImage
        https://bugs.webkit.org/show_bug.cgi?id=66574

        Reviewed by Stephen White.

        Adding a new layout test that verifies that the source and destination
        rectangle arguments to drawImage are properly clipped when the source
        rectangle is not entirely contained whithin the domian of the source
        image. Tests image to canvas draws and canvas to canvas draws.

        * fast/canvas/drawImage-clipped-source-expected.txt: Added.
        * fast/canvas/drawImage-clipped-source.html: Added.
        * fast/canvas/drawImage-clipped-source.js: Added.
        (patternTest.this.testPixel):
        (patternTest.this.testRedSquare):
        (patternTest.this.testAggregatePattern):
        (patternTest):
        (drawTestPattern):
        (executeTest):

2012-06-04  Dominik Röttsches  <dominik.rottsches@intel.com>

        [Cairo] Implementation of GraphicsContext does not save/restore ImageInterpolation correctly
        https://bugs.webkit.org/show_bug.cgi?id=87985

        Reviewed by Gustavo Noronha Silva.

        Unskipping fast/canvas/canvas-imageSmoothingEnabled.html now that it passes.

        * platform/efl/TestExpectations:
        * platform/gtk/TestExpectations:

2012-06-04  Philip Rogers  <pdr@google.com>

        Fix assert in non-scaling strokes in patterns
        https://bugs.webkit.org/show_bug.cgi?id=88198

        Reviewed by Dirk Schulze.

        * platform/chromium/TestExpectations:
        * platform/mac/TestExpectations:
        * svg/stroke/non-scaling-stroke-pattern-expected.svg: Added.
        * svg/stroke/non-scaling-stroke-pattern.svg: Added.

2012-06-04  Ilya Tikhonovsky  <loislo@chromium.org>

        Unreviewed. Disable heap profiler test on mac platform.

        * platform/mac/Skipped:
        * platform/qt/Skipped:
        * platform/win/Skipped:
        * platform/wincairo/Skipped:

2012-06-04  Mike West  <mkwst@chromium.org>

        Adding explicit console error for duplicated CSP directives.
        https://bugs.webkit.org/show_bug.cgi?id=88193

        Reviewed by Adam Barth.

        * http/tests/security/contentSecurityPolicy/duplicate-directive-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/duplicate-directive.html: Added.

2012-06-04  Yoshifumi Inoue  <yosin@chromium.org>

        REGRESSION(r117929) [Forms] input type=number thinks 0 is not a number
        https://bugs.webkit.org/show_bug.cgi?id=88208

        Reviewed by Kent Tamura.

        This patch introduced function checkIt() for code sharing and added
        more test cases to input-number-commit-valid-only.htm

        * fast/forms/number/input-number-commit-valid-only-expected.txt: Changed for additional tests.
        * fast/forms/number/input-number-commit-valid-only.html: Changed.

2012-06-04  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>

        [EFL] Reset "WebKitTabToLinksPreferenceKey" in DumpRenderTreeChrome::resetDefaultsToConsistentValues
        https://bugs.webkit.org/show_bug.cgi?id=87668

        Reviewed by Ryosuke Niwa.

        * platform/efl/Skipped: Unskipped fast/html/tab-order.html.

2012-05-31  Kinuko Yasuda  <kinuko@chromium.org>

        [chromium] DataTransferItem.webkitGetAsEntry() should synchronously return entry
        https://bugs.webkit.org/show_bug.cgi?id=87969

        Reviewed by Tony Chang.

        * editing/pasteboard/data-transfer-items-drag-drop-entry-expected.txt:
        * editing/pasteboard/data-transfer-items-drag-drop-entry.html:
        * fast/filesystem/cross-filesystem-op.html:
        * platform/chromium/test_expectations.txt:

2012-06-03  Shawn Singh  <shawnsingh@chromium.org>

        Unreviewed fix of chromium TestExpectations

        Some extra junk got added by accident when I tried to change
        TestExpectations. This patch removes it.

        * platform/chromium/TestExpectations:

2012-06-03  Shawn Singh  <shawnsingh@chromium.org>

        Unreviewed rebasline for transforms/3d test cases.

        9 tests re-baselined.
        The remainin 6 tests are explicitly enumerated in the TestExpectations file now.

        * platform/chromium-linux/transforms/3d/general/perspective-units-expected.png: Added.
        * platform/chromium-linux/transforms/3d/hit-testing/backface-hit-test-expected.png: Added.
        * platform/chromium-linux/transforms/3d/hit-testing/backface-no-transform-hit-test-expected.png: Added.
        * platform/chromium-linux/transforms/3d/point-mapping/3d-point-mapping-3-expected.png: Added.
        * platform/chromium-linux/transforms/3d/point-mapping/3d-point-mapping-expected.png: Added.
        * platform/chromium-linux/transforms/3d/point-mapping/3d-point-mapping-origins-expected.png: Added.
        * platform/chromium-linux/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.png: Added.
        * platform/chromium-linux/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.png: Added.
        * platform/chromium-mac-leopard/transforms/3d/general/perspective-units-expected.png:
        * platform/chromium-mac-leopard/transforms/3d/hit-testing/backface-hit-test-expected.png: Added.
        * platform/chromium-mac-leopard/transforms/3d/hit-testing/backface-no-transform-hit-test-expected.png: Added.
        * platform/chromium-mac-leopard/transforms/3d/point-mapping/3d-point-mapping-3-expected.png: Added.
        * platform/chromium-mac-leopard/transforms/3d/point-mapping/3d-point-mapping-expected.png:
        * platform/chromium-mac-leopard/transforms/3d/point-mapping/3d-point-mapping-origins-expected.png:
        * platform/chromium-mac-leopard/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.png:
        * platform/chromium-mac-leopard/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.png:
        * platform/chromium-mac-snowleopard/transforms/3d/general/perspective-units-expected.png:
        * platform/chromium-mac-snowleopard/transforms/3d/hit-testing/backface-hit-test-expected.png: Added.
        * platform/chromium-mac-snowleopard/transforms/3d/hit-testing/backface-no-transform-hit-test-expected.png: Added.
        * platform/chromium-mac-snowleopard/transforms/3d/point-mapping/3d-point-mapping-3-expected.png: Added.
        * platform/chromium-mac-snowleopard/transforms/3d/point-mapping/3d-point-mapping-expected.png:
        * platform/chromium-mac-snowleopard/transforms/3d/point-mapping/3d-point-mapping-origins-expected.png:
        * platform/chromium-mac-snowleopard/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.png: Added.
        * platform/chromium-mac-snowleopard/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.png:
        * platform/chromium-mac/transforms/3d/general/matrix-with-zoom-3d-expected.png: Added.
        * platform/chromium-mac/transforms/3d/general/perspective-units-expected.png: Added.
        * platform/chromium-mac/transforms/3d/hit-testing/backface-hit-test-expected.png: Added.
        * platform/chromium-mac/transforms/3d/hit-testing/backface-no-transform-hit-test-expected.png: Added.
        * platform/chromium-mac/transforms/3d/point-mapping/3d-point-mapping-3-expected.png: Added.
        * platform/chromium-mac/transforms/3d/point-mapping/3d-point-mapping-expected.png: Added.
        * platform/chromium-mac/transforms/3d/point-mapping/3d-point-mapping-origins-expected.png: Added.
        * platform/chromium-mac/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.png: Added.
        * platform/chromium-mac/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.png: Added.
        * platform/chromium-win/transforms/3d/general/matrix-with-zoom-3d-expected.png: Added.
        * platform/chromium-win/transforms/3d/general/perspective-units-expected.png: Added.
        * platform/chromium-win/transforms/3d/general/perspective-units-expected.txt: Added.
        * platform/chromium-win/transforms/3d/hit-testing/backface-hit-test-expected.png: Added.
        * platform/chromium-win/transforms/3d/hit-testing/backface-hit-test-expected.txt: Added.
        * platform/chromium-win/transforms/3d/hit-testing/backface-no-transform-hit-test-expected.png: Added.
        * platform/chromium-win/transforms/3d/hit-testing/backface-no-transform-hit-test-expected.txt: Added.
        * platform/chromium-win/transforms/3d/point-mapping/3d-point-mapping-3-expected.png: Added.
        * platform/chromium-win/transforms/3d/point-mapping/3d-point-mapping-3-expected.txt: Added.
        * platform/chromium-win/transforms/3d/point-mapping/3d-point-mapping-expected.png:
        * platform/chromium-win/transforms/3d/point-mapping/3d-point-mapping-expected.txt:
        * platform/chromium-win/transforms/3d/point-mapping/3d-point-mapping-origins-expected.png:
        * platform/chromium-win/transforms/3d/point-mapping/3d-point-mapping-origins-expected.txt:
        * platform/chromium-win/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.png: Added.
        * platform/chromium-win/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.txt: Added.
        * platform/chromium-win/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.png:
        * platform/chromium-win/transforms/3d/point-mapping/3d-point-mapping-preserve-3d-expected.txt:
        * platform/chromium/TestExpectations:

2012-06-03  Hayato Ito  <hayato@chromium.org>

        Supports traversing nodes in an orphaned shadow subtree in ComposedShadowTreeParentWalker.
        https://bugs.webkit.org/show_bug.cgi?id=87924

        Reviewed by Dimitri Glazkov.

        * fast/dom/shadow/shadow-dom-event-dispatching-expected.txt:
        * fast/dom/shadow/shadow-dom-event-dispatching.html:

2012-06-03  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] http/tests/media/video-buffered.html is failing after r119268 and need to be skipped
        https://bugs.webkit.org/show_bug.cgi?id=88194

        Unreviewed EFL gardening. Skipping http/tests/media/video-buffered.html
        which is failing after r119268.

        * platform/efl/TestExpectations:

2012-06-03  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] legacy-viewport tests added in r119256 need to be skipped
        https://bugs.webkit.org/show_bug.cgi?id=88192

        Unreviewed EFL gardening. Skip new tests added in r119256 since the
        LEGACY_VIEWPORT_ADAPTION flag is disabled on EFL port.

        * platform/efl/Skipped:
        * platform/efl/TestExpectations:

2012-06-03  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] New tests need a baseline
        https://bugs.webkit.org/show_bug.cgi?id=88190

        Unreviewed EFL gardening. Add EFL baseline for new test cases.

        * platform/efl/fast/reflections/reflection-with-zoom-expected.png: Added.
        * platform/efl/fast/reflections/reflection-with-zoom-expected.txt: Added.
        * platform/efl/svg/repaint/text-mask-update-expected.png: Added.
        * platform/efl/svg/repaint/text-mask-update-expected.txt: Added.

2012-06-03  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r119359.
        http://trac.webkit.org/changeset/119359
        https://bugs.webkit.org/show_bug.cgi?id=88189

        This broke platform/mac/fast/dom/wrapper-classes-objc.html.
        (Requested by dominicc on #webkit).

        * fast/events/event-creation-expected.txt:
        * fast/events/event-creation.html:

2012-06-03  Dominic Cooney  <dominicc@chromium.org>

        WheelEvent should inherit from MouseEvent
        https://bugs.webkit.org/show_bug.cgi?id=76104

        Reviewed by Kentaro Hara.

        * fast/events/event-creation-expected.txt:
        * fast/events/event-creation.html: Also check WheelEvent instanceof MouseEvent as well as UIEvent, Event

2012-06-03  Varun Jain  <varunjain@google.com>

        [chromium] Add new gesture type (two finger tap) that triggers context menu.
        https://bugs.webkit.org/show_bug.cgi?id=88173

        Reviewed by Adam Barth.

        * fast/events/touch/gesture/context-menu-on-two-finger-tap.html: Added.
        * platform/chromium/fast/events/touch/gesture/context-menu-on-two-finger-tap-expected.txt: Added.

2012-06-02  Xianzhu Wang  <wangxianzhu@chromium.org>

        SVGImageCache leaks image data
        https://bugs.webkit.org/show_bug.cgi?id=87792

        Reviewed by Nikolas Zimmermann.

        New test case.

        * svg/as-image/svg-image-leak-cached-data-expected.txt: Added.
        * svg/as-image/svg-image-leak-cached-data.html: Added.

2012-06-02  Ryosuke Niwa  <rniwa@webkit.org>

        Remove the failing expectation on fast/forms/textarea-scrollbar-height.html since it has been passing.

        * platform/chromium/TestExpectations:

2012-06-02  Ryosuke Niwa  <rniwa@webkit.org>

        Add back files inadvertently removed in r119323.

2012-06-02  Ami Fischman  <fischman@chromium.org>

        [chromium] SKIP http/tests/media/video-buffered.html because it requires overly large data
        https://bugs.webkit.org/show_bug.cgi?id=88172

        Unreviewed gardening.

        * platform/chromium/TestExpectations:

2012-06-02  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Replace QtXmlPatterns usage with libxslt dependency
        https://bugs.webkit.org/show_bug.cgi?id=76820

        Unreviewed gardening.

        * fast/xsl/xslt-mismatched-tags-in-xslt-expected.txt: Renamed from LayoutTests/platform/efl/fast/xsl/xslt-mismatched-tags-in-xslt-expected.txt.
        * platform/efl/fast/xsl/xslt-mismatched-tags-in-xslt-expected.png: Removed.
        * platform/gtk/fast/xsl/xslt-mismatched-tags-in-xslt-expected.png: Removed.
        * platform/gtk/fast/xsl/xslt-mismatched-tags-in-xslt-expected.txt: Removed.
        * platform/mac/fast/xsl/xslt-mismatched-tags-in-xslt-expected.png: Removed.
        * platform/mac/fast/xsl/xslt-mismatched-tags-in-xslt-expected.txt: Removed.
        * platform/qt-4.8/Skipped:
        * platform/qt-4.8/fast/css/dumpAsText/xml-stylesheet-pi-not-in-prolog-expected.txt: Renamed from LayoutTests/platform/qt/fast/css/dumpAsText/xml-stylesheet-pi-not-in-prolog-expected.txt.
        * platform/qt-4.8/fast/dom/Range/surround-contents-font-face-crash-expected.txt: Renamed from LayoutTests/platform/qt/fast/dom/Range/surround-contents-font-face-crash-expected.txt.
        * platform/qt-4.8/fast/dom/xml-parser-error-message-crash-expected.txt: Renamed from LayoutTests/platform/qt/fast/dom/xml-parser-error-message-crash-expected.txt.
        * platform/qt-4.8/fast/encoding/dumpAsText/utf-16-no-bom-expected.txt: Renamed from LayoutTests/platform/qt/fast/encoding/dumpAsText/utf-16-no-bom-expected.txt.
        * platform/qt-4.8/fast/events/xsl-onload-expected.txt: Renamed from LayoutTests/platform/qt/fast/events/xsl-onload-expected.txt.
        * platform/qt-4.8/fast/parser/xml-colon-entity-expected.txt: Renamed from LayoutTests/platform/qt/fast/parser/xml-colon-entity-expected.txt.
        * platform/qt-4.8/fast/parser/xml-declaration-missing-ending-mark-expected.txt: Renamed from LayoutTests/platform/qt/fast/parser/xml-declaration-missing-ending-mark-expected.txt.
        * platform/qt-4.8/fast/parser/xslt-with-html-expected.txt: Renamed from LayoutTests/platform/qt/fast/parser/xslt-with-html-expected.txt.
        * platform/qt-4.8/fast/xsl/subframe-location-expected.txt: Renamed from LayoutTests/platform/qt/fast/xsl/subframe-location-expected.txt.
        * platform/qt-4.8/fast/xsl/transform-to-html-expected.txt: Renamed from LayoutTests/platform/qt/fast/xsl/transform-to-html-expected.txt.
        * platform/qt-4.8/fast/xsl/utf8-chunks-expected.txt: Renamed from LayoutTests/platform/qt/fast/xsl/utf8-chunks-expected.txt.
        * platform/qt-4.8/fast/xsl/xslt-bad-import-uri-expected.txt: Renamed from LayoutTests/platform/qt/fast/xsl/xslt-bad-import-uri-expected.txt.
        * platform/qt-4.8/fast/xsl/xslt-doc-noenc-expected.txt: Renamed from LayoutTests/platform/qt/fast/xsl/xslt-doc-noenc-expected.txt.
        * platform/qt-4.8/fast/xsl/xslt-entity-enc-expected.txt: Renamed from LayoutTests/platform/qt/fast/xsl/xslt-entity-enc-expected.txt.
        * platform/qt-4.8/fast/xsl/xslt-entity-expected.png: Renamed from LayoutTests/platform/qt/fast/xsl/xslt-entity-expected.png.
        * platform/qt-4.8/fast/xsl/xslt-mismatched-tags-in-xslt-expected.txt: Renamed from LayoutTests/platform/qt/fast/xsl/xslt-mismatched-tags-in-xslt-expected.txt.
        * platform/qt-4.8/fast/xsl/xslt-recursion-expected.txt: Renamed from LayoutTests/platform/qt/fast/xsl/xslt-recursion-expected.txt.
        * platform/qt-4.8/http/tests/misc/location-test-xsl-style-sheet-expected.txt: Renamed from LayoutTests/platform/qt/http/tests/misc/location-test-xsl-style-sheet-expected.txt.
        * platform/qt-4.8/http/tests/security/contentSecurityPolicy/xsl-allowed-expected.txt: Renamed from LayoutTests/platform/qt/http/tests/security/contentSecurityPolicy/xsl-allowed-expected.txt.
        * platform/qt-4.8/http/tests/security/contentSecurityPolicy/xsl-img-blocked-expected.txt: Renamed from LayoutTests/platform/qt/http/tests/security/contentSecurityPolicy/xsl-img-blocked-expected.txt.
        * platform/qt-4.8/http/tests/security/contentSecurityPolicy/xsl-unaffected-by-style-src-2-expected.txt: Renamed from LayoutTests/platform/qt/http/tests/security/contentSecurityPolicy/xsl-unaffected-by-style-src-2-expected.txt.
        * platform/qt-4.8/http/tests/security/cookies/first-party-cookie-allow-xslt-expected.png: Renamed from LayoutTests/platform/qt/http/tests/security/cookies/first-party-cookie-allow-xslt-expected.png.
        * platform/qt-4.8/http/tests/security/cookies/first-party-cookie-allow-xslt-expected.txt: Renamed from LayoutTests/platform/qt/http/tests/security/cookies/first-party-cookie-allow-xslt-expected.txt.
        * platform/qt-4.8/http/tests/security/cookies/third-party-cookie-blocking-xslt-expected.png: Renamed from LayoutTests/platform/qt/http/tests/security/cookies/third-party-cookie-blocking-xslt-expected.png.
        * platform/qt-4.8/http/tests/security/cookies/third-party-cookie-blocking-xslt-expected.txt: Renamed from LayoutTests/platform/qt/http/tests/security/cookies/third-party-cookie-blocking-xslt-expected.txt.
        * platform/qt-4.8/http/tests/security/xss-DENIED-xml-external-entity-expected.txt: Renamed from LayoutTests/platform/qt/http/tests/security/xss-DENIED-xml-external-entity-expected.txt.
        * platform/qt-4.8/http/tests/security/xss-DENIED-xsl-document-redirect-expected.txt: Renamed from LayoutTests/platform/qt/http/tests/security/xss-DENIED-xsl-document-redirect-expected.txt.
        * platform/qt-4.8/http/tests/security/xss-DENIED-xsl-external-entity-expected.txt: Renamed from LayoutTests/platform/qt/http/tests/security/xss-DENIED-xsl-external-entity-expected.txt.
        * platform/qt-4.8/http/tests/security/xss-DENIED-xsl-external-entity-redirect-expected.txt: Renamed from LayoutTests/platform/qt/http/tests/security/xss-DENIED-xsl-external-entity-redirect-expected.txt.
        * platform/qt-4.8/svg/custom/bug45331-expected.png: Renamed from LayoutTests/platform/qt/svg/custom/bug45331-expected.png.
        * platform/qt-4.8/svg/custom/bug45331-expected.txt: Renamed from LayoutTests/platform/qt/svg/custom/bug45331-expected.txt.
        * platform/qt-4.8/svg/custom/bug78807-expected.txt: Renamed from LayoutTests/platform/qt/svg/custom/bug78807-expected.txt.
        * platform/qt-4.8/svg/custom/use-invalid-html-expected.txt: Renamed from LayoutTests/platform/qt/svg/custom/use-invalid-html-expected.txt.
        * platform/qt-4.8/svg/custom/use-invalid-style-expected.txt: Renamed from LayoutTests/platform/qt/svg/custom/use-invalid-style-expected.txt.
        * platform/qt-4.8/svg/hixie/error/dumpAsText/004-expected.txt: Renamed from LayoutTests/platform/qt/svg/hixie/error/dumpAsText/004-expected.txt.
        * platform/qt-4.8/svg/hixie/error/dumpAsText/005-expected.txt: Renamed from LayoutTests/platform/qt/svg/hixie/error/dumpAsText/005-expected.txt.
        * platform/qt-5.0-wk1/Skipped:
        * platform/qt-5.0/Skipped:
        * platform/qt-5.0/http/tests/security/xss-DENIED-xsl-document-redirect-expected.txt: Added.
        * platform/qt-5.0/http/tests/security/xss-DENIED-xsl-external-entity-redirect-expected.txt: Added.
        * platform/qt-arm/Skipped:
        * platform/qt/Skipped:

2012-06-02  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed fix after r119255.

        * platform/qt/svg/css/getComputedStyle-basic-expected.txt:

2012-06-02  Ryosuke Niwa  <rniwa@webkit.org>

        Rename test_expectations.txt to TestExpectations.

        * platform/chromium/TestExpectations: Copied from LayoutTests/platform/chromium/test_expectations.txt.
        * platform/chromium/test_expectations.txt: Removed.
        * platform/efl/TestExpectations: Copied from LayoutTests/platform/efl/test_expectations.txt.
        * platform/efl/test_expectations.txt: Removed.
        * platform/gtk/TestExpectations: Copied from LayoutTests/platform/gtk/test_expectations.txt.
        * platform/gtk/test_expectations.txt: Removed.
        * platform/mac/TestExpectations: Copied from LayoutTests/platform/mac/test_expectations.txt.
        * platform/mac/test_expectations.txt: Removed.
        * platform/qt/TestExpectations: Copied from LayoutTests/platform/qt/test_expectations.txt.
        * platform/qt/test_expectations.txt: Removed.
        * platform/win/TestExpectations: Copied from LayoutTests/platform/win/test_expectations.txt.
        * platform/win/test_expectations.txt: Removed.

2012-06-02  Tony Chang  <tony@chromium.org>

        Rename the flexbox CSS propery values from start to flex-start and end to flex-end
        https://bugs.webkit.org/show_bug.cgi?id=88152

        Reviewed by Ojan Vafai.

        Rename start to flex-start and end to flex-end.

        * css3/flexbox/css-properties-expected.txt:
        * css3/flexbox/css-properties.html:
        * css3/flexbox/flex-align-column.html:
        * css3/flexbox/flex-align-end.html:
        * css3/flexbox/flex-align-vertical-writing-mode.html:
        * css3/flexbox/flex-align.html:
        * css3/flexbox/flex-pack.html:
        * css3/flexbox/line-wrapping.html:
        * css3/flexbox/multiline-align.html:
        * css3/flexbox/multiline-column-auto.html:
        * css3/flexbox/multiline-line-pack-horizontal-column-expected.txt:
        * css3/flexbox/multiline-line-pack-horizontal-column.html:
        * css3/flexbox/multiline-line-pack.html:
        * css3/flexbox/multiline-pack-expected.txt:
        * css3/flexbox/multiline-pack.html:
        * css3/flexbox/multiline-reverse-wrap-baseline.html:
        * css3/flexbox/multiline-reverse-wrap-overflow.html:
        * css3/flexbox/multiline-shrink-to-fit.html:
        * css3/flexbox/multiline.html:
        * css3/flexbox/nested-stretch.html:
        * css3/flexbox/orthogonal-flex-directions.html:
        * platform/chromium-linux-x86/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-linux/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-mac-leopard/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-mac-snowleopard/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-mac/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-win-vista/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-win-xp/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-win/svg/css/getComputedStyle-basic-expected.txt:
        * platform/gtk/svg/css/getComputedStyle-basic-expected.txt:
        * platform/mac/svg/css/getComputedStyle-basic-expected.txt:
        * platform/qt/svg/css/getComputedStyle-basic-expected.txt:
        * svg/css/getComputedStyle-basic-expected.txt:

2012-06-01  Ryosuke Niwa  <rniwa@webkit.org>

        Suppress text diff on http/tests/media/video-buffered.html on Chromium Leopard as
        it has been failing on Leopard since it was re-enabled in http://trac.webkit.org/changeset/119268.
        The failure is tracked by the bug 88160.

        * platform/chromium/test_expectations.txt:

2012-06-01  Jessie Berlin  <jberlin@apple.com>

        Skip more asserting tests on Windows.

        * platform/win/Skipped:

2012-06-01  Filip Pizlo  <fpizlo@apple.com>

        DFG CFA should know that PutByVal can clobber the world
        https://bugs.webkit.org/show_bug.cgi?id=88155

        Reviewed by Gavin Barraclough.

        * fast/js/dfg-putbyval-cfa-clobber-expected.txt: Added.
        * fast/js/dfg-putbyval-cfa-clobber.html: Added.
        * fast/js/script-tests/dfg-putbyval-cfa-clobber.js: Added.
        (foo.bar):
        (foo):

2012-06-01  Filip Pizlo  <fpizlo@apple.com>

        DFG should not emit unnecessary speculation checks when performing an int32 to double conversion on
        a value that is proved to be a number, predicted to be an int32, but not proved to be an int32
        https://bugs.webkit.org/show_bug.cgi?id=88146

        Reviewed by Gavin Barraclough.

        * fast/js/dfg-int32-to-double-on-known-number-expected.txt: Added.
        * fast/js/dfg-int32-to-double-on-known-number.html: Added.
        * fast/js/script-tests/dfg-int32-to-double-on-known-number.js: Added.
        (foo.bar):
        (foo):

2012-06-01  Tony Chang  <tony@chromium.org>

        rename -webkit-flex-pack and -webkit-flex-line-pack to -webkit-justify-content and -webkit-align-content
        https://bugs.webkit.org/show_bug.cgi?id=88113

        Reviewed by Ojan Vafai.

        Find and replace for the CSS keywords.

        * css3/flexbox/columns-auto-size.html:
        * css3/flexbox/css-properties-expected.txt:
        * css3/flexbox/css-properties.html:
        * css3/flexbox/flex-pack.html:
        * css3/flexbox/multiline-align.html:
        * css3/flexbox/multiline-column-auto.html:
        * css3/flexbox/multiline-line-pack-expected.txt:
        * css3/flexbox/multiline-line-pack-horizontal-column-expected.txt:
        * css3/flexbox/multiline-line-pack-horizontal-column.html:
        * css3/flexbox/multiline-line-pack.html:
        * css3/flexbox/multiline-pack-expected.txt:
        * css3/flexbox/multiline-pack.html:
        * css3/flexbox/multiline-reverse-wrap-overflow.html:
        * css3/flexbox/multiline-shrink-to-fit.html:
        * css3/flexbox/multiline.html:
        * css3/flexbox/nested-stretch.html:
        * css3/flexbox/position-absolute-child.html:
        * css3/flexbox/true-centering.html:
        * fast/css/getComputedStyle/computed-style-expected.txt:
        * fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/chromium-linux-x86/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-linux/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-mac-leopard/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/chromium-mac-leopard/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-mac-snowleopard/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/chromium-mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/chromium-mac/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-win-vista/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-win-xp/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/chromium-win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/chromium-win/svg/css/getComputedStyle-basic-expected.txt:
        * platform/gtk/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/gtk/svg/css/getComputedStyle-basic-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/mac/svg/css/getComputedStyle-basic-expected.txt:
        * platform/qt/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/qt/svg/css/getComputedStyle-basic-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * svg/css/getComputedStyle-basic-expected.txt:

2012-06-01  Alexey Proskuryakov  <ap@apple.com>

        Make cookie tests debuggable by merging scripts into HTML
        https://bugs.webkit.org/show_bug.cgi?id=88143

        Reviewed by Anders Carlsson.

        * http/tests/cookies/double-quoted-value-with-semi-colon.html:
        * http/tests/cookies/multiple-cookies.html:
        * http/tests/cookies/script-tests: Removed.
        * http/tests/cookies/script-tests/TEMPLATE.html: Removed.
        * http/tests/cookies/script-tests/double-quoted-value-with-semi-colon.js: Removed.
        * http/tests/cookies/script-tests/multiple-cookies.js: Removed.
        * http/tests/cookies/script-tests/simple-cookies-expired.js: Removed.
        * http/tests/cookies/script-tests/simple-cookies-max-age.js: Removed.
        * http/tests/cookies/script-tests/single-quoted-value.js: Removed.
        * http/tests/cookies/simple-cookies-expired.html:
        * http/tests/cookies/simple-cookies-max-age.html:
        * http/tests/cookies/single-quoted-value.html:

2012-06-01  Filip Pizlo  <fpizlo@apple.com>

        DFG constant folding search for the last local access skips the immediately previous local access
        https://bugs.webkit.org/show_bug.cgi?id=88141

        Reviewed by Michael Saboff.

        * fast/js/dfg-obvious-constant-cfa-expected.txt: Added.
        * fast/js/dfg-obvious-constant-cfa.html: Added.
        * fast/js/script-tests/dfg-obvious-constant-cfa.js: Added.
        (bar.baz):
        (bar):

2012-06-01  Ryosuke Niwa  <rniwa@webkit.org>

        Chromium rebaseline after r119274.

        * platform/chromium-linux/fast/reflections/reflection-with-zoom-expected.png: Added.
        * platform/chromium-mac-leopard/fast/reflections/reflection-with-zoom-expected.png: Added.
        * platform/chromium-mac/fast/reflections/reflection-with-zoom-expected.png: Added.
        * platform/chromium-win/fast/reflections/reflection-with-zoom-expected.png: Added.

2012-06-01  Ryosuke Niwa  <rniwa@webkit.org>

        Fix a typo in the expected result for the test added in r119281.119281

        * fast/js/dfg-cse-cfa-discrepancy-expected.txt:

2012-06-01  Alexey Proskuryakov  <ap@apple.com>

        http/tests/cookies/simple-cookies-expired.html and simple-cookies-max-age.html are failing
        https://bugs.webkit.org/show_bug.cgi?id=82749

        I don't see any failures locally (other than sometimes as flakiness in all cookie
        tests), and the bug report doesn't have any information about what was wrong.

        * platform/mac/Skipped: Re-enable to see what happens.

2012-06-01  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening, adding a TEXT expectation for http/tests/media/video-buffered.html
        after it started failing in r119268.

        * platform/gtk/test_expectations.txt:

2012-06-01  Filip Pizlo  <fpizlo@apple.com>

        DFG constant folding should be OK with GetLocal of captured variables having a constant
        https://bugs.webkit.org/show_bug.cgi?id=88137

        Fix a typo that Gavin found but that I failed to fix in previous commit.

        * fast/js/script-tests/dfg-cse-cfa-discrepancy.js:

2012-06-01  Filip Pizlo  <fpizlo@apple.com>

        DFG constant folding should be OK with GetLocal of captured variables having a constant
        https://bugs.webkit.org/show_bug.cgi?id=88137

        Reviewed by Gavin Barraclough.

        * fast/js/dfg-cse-cfa-discrepancy-expected.txt: Added.
        * fast/js/dfg-cse-cfa-discrepancy.html: Added.
        * fast/js/script-tests/dfg-cse-cfa-discrepancy.js: Added.
        (foo.bar.baz):
        (foo.bar):
        (foo):

2012-06-01  Jessie Berlin  <jberlin@apple.com>

        [Win] ASSERT(enclosingIntRect(rendererMappedResult) == enclosingIntRect(FloatQuad(result).boundingBox()))
        failed in RenderGeometryMap::absoluteRect
        https://bugs.webkit.org/show_bug.cgi?id=88128

        Add affected tests to the Windows Skipped list.

        * platform/win/Skipped:
        Also, fix the line endings for this file.

2012-06-01  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening, adding new baselines after r119256.

        * platform/gtk/fast/viewport/viewport-legacy-handheldfriendly-expected.txt: Added.
        * platform/gtk/fast/viewport/viewport-legacy-mobileoptimized-2-expected.txt: Added.
        * platform/gtk/fast/viewport/viewport-legacy-mobileoptimized-3-expected.txt: Added.
        * platform/gtk/fast/viewport/viewport-legacy-mobileoptimized-expected.txt: Added.
        * platform/gtk/fast/viewport/viewport-legacy-ordering-5-expected.txt: Added.
        * platform/gtk/fast/viewport/viewport-legacy-ordering-6-expected.txt: Added.

2012-06-01  Stephen Chenney  <schenney@chromium.org>

        Layout Test fast/dom/HTMLMeterElement/meter-element-crash.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=88131

        Unreviewed addition to Chromium test expectations.

        * platform/chromium/test_expectations.txt:

2012-06-01  Mihai Parparita  <mihaip@chromium.org>

        Improve synchronous XHR disabling
        https://bugs.webkit.org/show_bug.cgi?id=88032

        Reviewed by Alexey Proskuryakov.

        Update with new error message.

        * fast/xmlhttprequest/xmlhttprequest-sync-disabled-expected.txt:

2012-06-01  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=87774
        REGRESSION (r105515): reflection masks are truncated at zoom levels < 1
        -and corresponding-
        <rdar://problem/11387506>

        Reviewed by Simon Fraser.

        * fast/reflections/reflection-with-zoom.html: Added.
        * platform/mac/fast/reflections/reflection-with-zoom-expected.png: Added.
        * platform/mac/fast/reflections/reflection-with-zoom-expected.txt: Added.

2012-06-01  Stephen Chenney  <schenney@chromium.org>

        Another Chromium test expectation update per the bug 88124.

        Unreviewed Chromium test expectations fix.

        * platform/chromium/test_expectations.txt:

2012-06-01  Tim Horton  <timothy_horton@apple.com>

        Unreviewed rebaseline of svg/css/getComputedStyle-basic for mac.

        * platform/mac/svg/css/getComputedStyle-basic-expected.txt:

2012-06-01  Shezan Baig  <shezbaig.wk@gmail.com>

        Indenting a paragraph that begins with a link 3 times breaks the paragraph into two paragraphs
        https://bugs.webkit.org/show_bug.cgi?id=87428

        Reviewed by Ryosuke Niwa.

        Adding two tests for indenting nested inlines.

        * editing/execCommand/indent-nested-inlines-1-expected.txt: Added.
        * editing/execCommand/indent-nested-inlines-1.html: Added.
        * editing/execCommand/indent-nested-inlines-2-expected.txt: Added.
        * editing/execCommand/indent-nested-inlines-2.html: Added.

2012-06-01  Ami Fischman  <fischman@chromium.org>

        [chromium] Unskip http/tests/media/video-buffered.html
        https://bugs.webkit.org/show_bug.cgi?id=87568

        Reviewed by Eric Carlson.

        * http/tests/media/video-buffered-expected.txt:
        * http/tests/media/video-buffered.html:
        * platform/chromium/test_expectations.txt:

2012-06-01  Ryosuke Niwa  <rniwa@webkit.org>

        Another Chromium test expectation update per the bug 88124.

        * platform/chromium/test_expectations.txt:

2012-06-01  Ryosuke Niwa  <rniwa@webkit.org>

        Chromium test expectation update.

        * platform/chromium/test_expectations.txt:

2012-06-01  Joe Thomas  <joethomas@motorola.com>

        getComputedStyle for background shorthand property does not return background-origin and background-clip.
        https://bugs.webkit.org/show_bug.cgi?id=86155

        Reviewed by Tony Chang.

        Added background-origin and background-clip CSS Property values to the background shorthand CSSValueList.

        * fast/backgrounds/background-shorthand-with-backgroundSize-style-expected.txt:
        * fast/backgrounds/background-shorthand-with-backgroundSize-style.html:
        * fast/css/getComputedStyle/getComputedStyle-background-shorthand-expected.txt:
        * fast/css/getComputedStyle/getComputedStyle-background-shorthand.html:

2012-06-01  Hugo Parente Lima  <hugo.lima@openbossa.org>

        Improve handling of legacy viewport meta tags
        https://bugs.webkit.org/show_bug.cgi?id=55874

        Reviewed by Adam Barth.

        Add tests and expected results.

        * fast/viewport/viewport-legacy-handheldfriendly-expected.txt: Added.
        * fast/viewport/viewport-legacy-handheldfriendly.html: Added.
        * fast/viewport/viewport-legacy-mobileoptimized-2-expected.txt: Added.
        * fast/viewport/viewport-legacy-mobileoptimized-2.html: Added.
        * fast/viewport/viewport-legacy-mobileoptimized-3-expected.txt: Added.
        * fast/viewport/viewport-legacy-mobileoptimized-3.html: Added.
        * fast/viewport/viewport-legacy-mobileoptimized-expected.txt: Added.
        * fast/viewport/viewport-legacy-mobileoptimized.html: Added.
        * fast/viewport/viewport-legacy-ordering-1-expected.txt: Added.
        * fast/viewport/viewport-legacy-ordering-1.html: Added.
        * fast/viewport/viewport-legacy-ordering-2-expected.txt: Added.
        * fast/viewport/viewport-legacy-ordering-2.html: Added.
        * fast/viewport/viewport-legacy-ordering-3-expected.txt: Added.
        * fast/viewport/viewport-legacy-ordering-3.html: Added.
        * fast/viewport/viewport-legacy-ordering-4-expected.txt: Added.
        * fast/viewport/viewport-legacy-ordering-4.html: Added.
        * fast/viewport/viewport-legacy-ordering-5-expected.txt: Added.
        * fast/viewport/viewport-legacy-ordering-5.html: Added.
        * fast/viewport/viewport-legacy-ordering-6-expected.txt: Added.
        * fast/viewport/viewport-legacy-ordering-6.html: Added.
        * fast/viewport/viewport-legacy-ordering-7-expected.txt: Added.
        * fast/viewport/viewport-legacy-ordering-7.html: Added.
        * fast/viewport/viewport-legacy-ordering-8-expected.txt: Added.
        * fast/viewport/viewport-legacy-ordering-8.html: Added.
        * fast/viewport/viewport-legacy-ordering-9-expected.txt: Added.
        * fast/viewport/viewport-legacy-ordering-9.html: Added.

2012-06-01  Tony Chang  <tony@chromium.org>

        rename -webkit-flex-order to -webkit-order
        https://bugs.webkit.org/show_bug.cgi?id=88104

        Reviewed by Ojan Vafai.

        Just a find and replace for the new property name.

        * css3/flexbox/css-properties-expected.txt:
        * css3/flexbox/css-properties.html:
        * css3/flexbox/flex-order.html:
        * fast/css/getComputedStyle/computed-style-expected.txt:
        * fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/chromium-linux-x86/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-linux/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-mac-leopard/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/chromium-mac-leopard/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-mac-snowleopard/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/chromium-mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/chromium-mac/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-win-vista/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-win-xp/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/chromium-win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/chromium-win/svg/css/getComputedStyle-basic-expected.txt:
        * platform/gtk/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/gtk/svg/css/getComputedStyle-basic-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/mac/svg/css/getComputedStyle-basic-expected.txt:
        * platform/qt/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/qt/svg/css/getComputedStyle-basic-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * svg/css/getComputedStyle-basic-expected.txt:

2012-06-01  Florin Malita  <fmalita@chromium.org>

        [Chromium] Unreviewed. Adding Win and Mac baselines after r119241.

        * platform/chromium-mac/svg/repaint/text-mask-update-expected.png: Added.
        * platform/chromium-mac/svg/repaint/text-mask-update-expected.txt: Copied from LayoutTests/platform/chromium-linux/svg/repaint/text-mask-update-expected.txt.
        * platform/chromium-win/svg/repaint/text-mask-update-expected.png: Added.
        * platform/chromium-win/svg/repaint/text-mask-update-expected.txt: Renamed from LayoutTests/platform/chromium-linux/svg/repaint/text-mask-update-expected.txt.
        * platform/chromium/test_expectations.txt:

2012-06-01  Jessie Berlin  <jberlin@apple.com>

        [Win] 9 plugin tests fail/time out
        https://bugs.webkit.org/show_bug.cgi?id=88107

        Skip the ones that time out and add/update platform-specific results for the the ones that
        fail to get the bots greener.

        * platform/win/Skipped:
        * platform/win/plugins/get-value-netscape-window-expected.txt:
        * platform/win/plugins/netscape-dom-access-and-reload-expected.txt: Added.
        * platform/win/plugins/npn-invalidate-rect-invalidates-window-expected.txt:
        * platform/win/plugins/window-geometry-initialized-before-set-window-expected.txt:
        * platform/win/plugins/geturlnotify-during-document-teardown-expected.txt

2012-06-01  Jessie Berlin  <jberlin@apple.com>

        Skip some plugin tests that crash/assert on Windows.

        * platform/win/Skipped:

2012-06-01  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] EFL port does not enable WEB_INTENTS_TAG flag
        https://bugs.webkit.org/show_bug.cgi?id=86866

        Reviewed by Adam Barth.

        Unskip webintents/intent-tag.html now that the WEB_INTENTS_TAG flag is
        enabled by default on EFL port.

        * platform/efl/test_expectations.txt:

2012-06-01  Dominik Röttsches  <dominik.rottsches@intel.com>

        [cairo] Pixel artifacts can be seen on reflections
        https://bugs.webkit.org/show_bug.cgi?id=85483

        Reviewed by Martin Robinson.

        Rebaselining the relevant test case for GTK and EFL.

        * platform/efl/fast/css/transformed-mask-expected.png:
        * platform/efl/fast/css/transformed-mask-expected.txt:
        * platform/efl/test_expectations.txt:
        * platform/gtk/fast/css/transformed-mask-expected.png:

2012-06-01  Florin Malita  <fmalita@chromium.org>

        http://shinydemos.com/clock/ doesn't seem to work
        https://bugs.webkit.org/show_bug.cgi?id=79682

        Reviewed by Nikolas Zimmermann.

        * platform/chromium-linux/svg/repaint/text-mask-update-expected.png: Added.
        * platform/chromium-linux/svg/repaint/text-mask-update-expected.txt: Added.
        * platform/chromium/test_expectations.txt:
        * platform/mac/test_expectations.txt:
        * svg/repaint/text-mask-update.svg: Added.

2012-06-01  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] EFL's LayoutTestController needs to implement deliverWebIntent
        https://bugs.webkit.org/show_bug.cgi?id=86865

        Reviewed by Adam Barth.

        Unskip webintents/web-intents-delivery.html now that Web intent
        delivery is implemented on EFL port.

        * platform/efl/test_expectations.txt:

2012-06-01  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r119228.
        http://trac.webkit.org/changeset/119228
        https://bugs.webkit.org/show_bug.cgi?id=88098

        Caused the EFL debug bot to crash. (Requested by rakuco on
        #webkit).

        * platform/efl/test_expectations.txt:

2012-06-01  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed gardening.

        * platform/qt-5.0-wk2/Skipped:
        * platform/qt-5.0-wk2/compositing/layer-creation/fixed-position-and-transform-expected.txt: Added.
        * platform/qt-5.0-wk2/compositing/layer-creation/fixed-position-under-transform-expected.txt: Added.

2012-06-01  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Prepare styles-new-API.html results format for a more complex CSS model
        https://bugs.webkit.org/show_bug.cgi?id=88090

        Reviewed by Antti Koivisto.

        * inspector/styles/resources/styles-new-API.css:
        * inspector/styles/styles-new-API-expected.txt:
        * inspector/styles/styles-new-API.html:

2012-06-01  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] [DRT] editing/execCommand/paste-and-match-style-event.html crashes
        https://bugs.webkit.org/show_bug.cgi?id=86961

        Reviewed by Csaba Osztrogonác.

        Unskip editing/execCommand/paste-and-match-style-event.html now that
        it is no longer crashing thanks to ecore_x library init.

        * platform/efl/test_expectations.txt:

2012-06-01  Dan Bernstein  <mitz@apple.com>

        Layout not updated after setting -webkit-line-clamp to none
        https://bugs.webkit.org/show_bug.cgi?id=88049

        Reviewed by Abhishek Arya.

        * fast/flexbox/line-clamp-removed-dynamically-expected.html: Added.
        * fast/flexbox/line-clamp-removed-dynamically.html: Added.

2012-06-01  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed gardening, skip new failing and crashing tests.

        * platform/qt-5.0-wk2/Skipped:
        * platform/qt/Skipped:

2012-06-01  Pierre Rossi  <pierre.rossi@gmail.com>

        [Qt] Support drawing a pattern with a translation.
        https://bugs.webkit.org/show_bug.cgi?id=87025

        Reviewed by Kenneth Rohde Christiansen.

        * platform/qt-5.0/svg/W3C-SVG-1.1-SE/pservers-pattern-04-f-expected.png: fix the expected pixel result

2012-06-01  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>

        [EFL] Gardening failure case on EFL build bot
        https://bugs.webkit.org/show_bug.cgi?id=88067

        Unreviewed EFL gardening after r119196.

        * platform/efl/test_expectations.txt:

2012-06-01  Alexander Shalamov  <alexander.shalamov@intel.com>

        [EFL] Move input element's spinner style tests to test_expectations.txt
        https://bugs.webkit.org/show_bug.cgi?id=88054

        Unreviewed EFL gardening.

        * platform/efl/test_expectations.txt:

2012-06-01  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed gardening, update expected files.

        * platform/qt-5.0/fast/forms/HTMLOptionElement_label06-expected.png:
        * platform/qt-5.0/fast/forms/HTMLOptionElement_label06-expected.txt:
        * platform/qt-5.0/fast/forms/HTMLOptionElement_label07-expected.png:
        * platform/qt-5.0/fast/forms/HTMLOptionElement_label07-expected.txt:
        * platform/qt-5.0/fast/forms/form-element-geometry-expected.png:
        * platform/qt-5.0/fast/forms/form-element-geometry-expected.txt:
        * platform/qt-5.0/fast/forms/menulist-separator-painting-expected.png:
        * platform/qt-5.0/fast/forms/menulist-separator-painting-expected.txt:
        * platform/qt-5.0/fast/forms/select-baseline-expected.png:
        * platform/qt-5.0/fast/forms/select-baseline-expected.txt:
        * platform/qt-5.0/fast/forms/selectlist-minsize-expected.png:
        * platform/qt-5.0/fast/forms/selectlist-minsize-expected.txt:
        * platform/qt-5.0/fast/replaced/three-selects-break-expected.png:
        * platform/qt-5.0/fast/replaced/three-selects-break-expected.txt:

2012-06-01  Adam Barth  <abarth@webkit.org>

        sandbox directive in X-WebKit-CSP header unable to create a unique origin
        https://bugs.webkit.org/show_bug.cgi?id=88014

        Reviewed by Ryosuke Niwa.

        * http/tests/security/contentSecurityPolicy/sandbox-allow-scripts-in-http-header-control.html: Added.
        * http/tests/security/contentSecurityPolicy/sandbox-allow-scripts-in-http-header-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/sandbox-allow-scripts-in-http-header.html: Added.
        * http/tests/security/contentSecurityPolicy/sandbox-in-http-header-control-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/sandbox-in-http-header-control.html: Added.
        * http/tests/security/contentSecurityPolicy/resources/sandbox.php: Added.
        * http/tests/security/contentSecurityPolicy/sandbox-in-http-header-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/sandbox-in-http-header.html: Added.
        * http/tests/security/contentSecurityPolicy/sandbox-allow-scripts-in-http-header-control-expected.txt: Added.

2012-06-01  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening, add missing text and image baselines for
        fast/images/png-suite/test.html. Add MISSING expectations for two
        placeholder-in-text-area tests - the placeholder text does not appear
        in text areas (known bug).

        * platform/gtk/fast/images/png-suite: Added.
        * platform/gtk/fast/images/png-suite/test-expected.png: Added.
        * platform/gtk/fast/images/png-suite/test-expected.txt: Added.
        * platform/gtk/test_expectations.txt:

2012-06-01  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening after r119196.

        * platform/gtk/fast/dom/gc-attribute-node-expected.txt: Added.
        * platform/gtk/test_expectations.txt: Also mark fast/replaced/border-radius-clip.html as flaky.

2012-05-31  Dominic Cooney  <dominicc@chromium.org>

        [V8] Expando properties on attribute nodes disappear
        https://bugs.webkit.org/show_bug.cgi?id=87925

        Checks in a failing result for JSC; see
        <https://bugs.webkit.org/show_bug.cgi?id=88045>.

        Reviewed by Adam Barth.

        * fast/dom/gc-attribute-node-expected.txt: Added.
        * fast/dom/gc-attribute-node.html: Added.
        * platform/chromium/fast/dom/gc-attribute-node-expected.txt: Added.
        * platform/mac/fast/dom/gc-attribute-node-expected.txt: Added.

2012-05-31  Alexander Shalamov  <alexander.shalamov@intel.com>

        [EFL] <input type="number"> is not a spinbutton
        https://bugs.webkit.org/show_bug.cgi?id=86846

        Reviewed by Kenneth Rohde Christiansen.

        Unskip spinbutton layout tests.

        * platform/efl/test_expectations.txt:

2012-05-31  Ryosuke Niwa  <rniwa@webkit.org>

        Update Chromium test expectation of media/video-poster-blocked-by-willsendrequest.html to PASS TEXT
        on all platforms as supposed to just Mac and Linux since the result of jquery/traversing.html is
        bleeding into this test on Windows as well.

        * platform/chromium/test_expectations.txt:

2012-05-31  Tony Chang  <tony@chromium.org>

        Unreviewed. Fix expectations for for fast/multicol/span/clone-flexbox.html,
        the result I checked in was off by 1px.

        * fast/multicol/span/clone-flexbox-expected.txt:
        * platform/efl/fast/multicol/span/clone-flexbox-expected.txt:
        * platform/gtk/fast/multicol/span/clone-flexbox-expected.txt:
        * platform/qt/fast/multicol/span/clone-flexbox-expected.txt:

2012-05-31  Hajime Morrita  <morrita@chromium.org>

        REGRESSION(r117572): editing/spelling/spellcheck-async-remove-frame.html crashes on Mac
        https://bugs.webkit.org/show_bug.cgi?id=86859

        Reviewed by Ryosuke Niwa.

        * platform/mac/Skipped: Unskipped the test.

2012-05-31  Tony Chang  <tony@chromium.org>

        initial flex value should be 1 1 auto
        https://bugs.webkit.org/show_bug.cgi?id=86526

        In most tests, I added a CSS rule to default -webkit-flex: none.
        In a few tests, -webkit-flex didn't include the negative flex value
        and it was becoming 1, causing negative flexing. I fixed those by
        explicitly stating the negative flex as 0.

        Reviewed by Ojan Vafai.

        * css3/flexbox/align-absolute-child.html:
        * css3/flexbox/auto-margins.html:
        * css3/flexbox/flex-algorithm-with-margins.html:
        * css3/flexbox/flex-algorithm.html:
        * css3/flexbox/flex-align-end.html:
        * css3/flexbox/flex-flow-auto-margins.html:
        * css3/flexbox/flex-flow-orientations.html:
        * css3/flexbox/flex-flow-overflow.html:
        * css3/flexbox/flex-pack.html:
        * css3/flexbox/flex-property-parsing-expected.txt:
        * css3/flexbox/flex-property-parsing.html:
        * css3/flexbox/flexbox-overflow-auto-expected.html:
        * css3/flexbox/flexbox-overflow-auto.html:
        * css3/flexbox/multiline-column-auto.html:
        * css3/flexbox/multiline-pack.html:
        * css3/flexbox/multiline-shrink-to-fit.html:
        * css3/flexbox/multiline.html:
        * css3/flexbox/nested-stretch.html:
        * css3/flexbox/orthogonal-flex-directions.html:
        * css3/flexbox/position-absolute-child.html:
        * css3/flexbox/preferred-widths-orthogonal.html:
        * css3/flexbox/true-centering.html:
        * fast/css/getComputedStyle/computed-style-expected.txt:
        * fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/chromium-linux-x86/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-linux/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-mac-leopard/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/chromium-mac-leopard/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-mac-snowleopard/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/chromium-mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/chromium-mac/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-win-vista/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-win-xp/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/chromium-win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/chromium-win/svg/css/getComputedStyle-basic-expected.txt:
        * platform/gtk/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/gtk/svg/css/getComputedStyle-basic-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/mac/svg/css/getComputedStyle-basic-expected.txt:
        * platform/qt/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/qt/svg/css/getComputedStyle-basic-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * svg/css/getComputedStyle-basic-expected.txt:

2012-05-31  Jessie Berlin  <jberlin@apple.com>

        [Win] 4 fast/frames tests failing
        https://bugs.webkit.org/show_bug.cgi?id=88034

        Add Windows-specific expected (failing?) results to get the bots green.

        * platform/win/fast/frames/frame-set-scaling-hit-expected.txt: Added.
        * platform/win/fast/frames/frame-with-noresize-can-be-resized-after-removal-of-noresize-expected.txt: Added.
        * platform/win/fast/frames/frame-with-noresize-can-be-resized-after-setting-noResize-to-false-expected.txt: Added.
        * platform/win/fast/frames/frames-with-frameborder-zero-can-be-resized-expected.txt: Added.

2012-05-31  Tom Sepez  <tsepez@chromium.org>

        XSSAuditor bypass with leading /*///*/ comment
        https://bugs.webkit.org/show_bug.cgi?id=88002

        Reviewed by Adam Barth.

        Fixes issue in xssauditor's parsing of /*/.
        
        * http/tests/security/xssAuditor/script-tag-with-trailing-comment4-expected.txt: Added.
        * http/tests/security/xssAuditor/script-tag-with-trailing-comment4.html: Added.

2012-05-31  Hans Muller  <hmuller@adobe.com>

        Bug: Negative SVG rect rx,ry corner radii values aren't handled correctly
        https://bugs.webkit.org/show_bug.cgi?id=87859

        Reviewed by Dirk Schulze.

        Added a reftest which verifies that negative rect corner radius values are handled per the SVG spec, 
        http://www.w3.org/TR/SVG/shapes.html#RectElement.

        * svg/custom/rect-negative-corner-radii-expected.svg: Added.
        * svg/custom/rect-negative-corner-radii.svg: Added.

2012-05-31  Raphael Kubo da Costa  <rakuco@webkit.org>

        [EFL] Gardening. Skip fast/loader/opaque-base-url.html only on debug bots.

        The test hits an assertion which obviously only crashes the debug
        bots.

        * platform/efl/test_expectations.txt:

2012-05-31  Raphael Kubo da Costa  <rakuco@webkit.org>

        [EFL] Unskip fast/multicol tests.

        Most tests were passing and just needed new baselines. Only skip
        the few failing ones.

        * platform/efl/Skipped:
        * platform/efl/fast/multicol/block-axis-horizontal-bt-expected.png: Added.
        * platform/efl/fast/multicol/block-axis-horizontal-bt-expected.txt: Added.
        * platform/efl/fast/multicol/block-axis-horizontal-tb-expected.png: Added.
        * platform/efl/fast/multicol/block-axis-horizontal-tb-expected.txt: Added.
        * platform/efl/fast/multicol/block-axis-vertical-lr-expected.png: Added.
        * platform/efl/fast/multicol/block-axis-vertical-lr-expected.txt: Added.
        * platform/efl/fast/multicol/block-axis-vertical-rl-expected.png: Added.
        * platform/efl/fast/multicol/block-axis-vertical-rl-expected.txt: Added.
        * platform/efl/fast/multicol/client-rects-expected.png: Added.
        * platform/efl/fast/multicol/client-rects-expected.txt: Added.
        * platform/efl/fast/multicol/column-count-with-rules-expected.png:
        * platform/efl/fast/multicol/column-rules-expected.png:
        * platform/efl/fast/multicol/column-rules-stacking-expected.png:
        * platform/efl/fast/multicol/columns-shorthand-parsing-expected.png:
        * platform/efl/fast/multicol/float-avoidance-expected.png:
        * platform/efl/fast/multicol/float-multicol-expected.png:
        * platform/efl/fast/multicol/float-paginate-complex-expected.png:
        * platform/efl/fast/multicol/float-paginate-complex-expected.txt:
        * platform/efl/fast/multicol/float-paginate-empty-lines-expected.png:
        * platform/efl/fast/multicol/float-paginate-expected.png:
        * platform/efl/fast/multicol/layers-in-multicol-expected.png:
        * platform/efl/fast/multicol/layers-split-across-columns-expected.png:
        * platform/efl/fast/multicol/margin-collapse-expected.png:
        * platform/efl/fast/multicol/max-height-columns-block-expected.png:
        * platform/efl/fast/multicol/nested-columns-expected.png:
        * platform/efl/fast/multicol/nested-columns-expected.txt:
        * platform/efl/fast/multicol/overflow-across-columns-expected.png:
        * platform/efl/fast/multicol/overflow-across-columns-percent-height-expected.png:
        * platform/efl/fast/multicol/overflow-unsplittable-expected.png:
        * platform/efl/fast/multicol/paginate-block-replaced-expected.png:
        * platform/efl/fast/multicol/pagination-h-horizontal-bt-expected.png: Added.
        * platform/efl/fast/multicol/pagination-h-horizontal-bt-expected.txt: Added.
        * platform/efl/fast/multicol/pagination-h-horizontal-tb-expected.png: Added.
        * platform/efl/fast/multicol/pagination-h-horizontal-tb-expected.txt: Added.
        * platform/efl/fast/multicol/pagination-h-vertical-lr-expected.png: Added.
        * platform/efl/fast/multicol/pagination-h-vertical-lr-expected.txt: Added.
        * platform/efl/fast/multicol/pagination-h-vertical-rl-expected.png: Added.
        * platform/efl/fast/multicol/pagination-h-vertical-rl-expected.txt: Added.
        * platform/efl/fast/multicol/pagination-v-horizontal-bt-expected.png: Added.
        * platform/efl/fast/multicol/pagination-v-horizontal-bt-expected.txt: Added.
        * platform/efl/fast/multicol/pagination-v-horizontal-tb-expected.png: Added.
        * platform/efl/fast/multicol/pagination-v-horizontal-tb-expected.txt: Added.
        * platform/efl/fast/multicol/pagination-v-vertical-lr-expected.png: Added.
        * platform/efl/fast/multicol/pagination-v-vertical-lr-expected.txt: Added.
        * platform/efl/fast/multicol/pagination-v-vertical-rl-expected.png: Added.
        * platform/efl/fast/multicol/pagination-v-vertical-rl-expected.txt: Added.
        * platform/efl/fast/multicol/positioned-split-expected.png:
        * platform/efl/fast/multicol/positioned-with-constrained-height-expected.png:
        * platform/efl/fast/multicol/positive-leading-expected.png:
        * platform/efl/fast/multicol/scrolling-overflow-expected.png:
        * platform/efl/fast/multicol/single-line-expected.png: Added.
        * platform/efl/fast/multicol/single-line-expected.txt: Added.
        * platform/efl/fast/multicol/span/anonymous-before-child-parent-crash-expected.png: Added.
        * platform/efl/fast/multicol/span/anonymous-split-block-crash-expected.png:
        * platform/efl/fast/multicol/span/anonymous-style-inheritance-expected.png:
        * platform/efl/fast/multicol/span/clone-anonymous-block-non-inline-child-crash-expected.png:
        * platform/efl/fast/multicol/span/clone-flexbox-expected.txt: Added.
        * platform/efl/fast/multicol/span/clone-summary-expected.txt: Added.
        * platform/efl/fast/multicol/span/span-as-immediate-child-complex-splitting-expected.png:
        * platform/efl/fast/multicol/span/span-as-immediate-child-generated-content-expected.png:
        * platform/efl/fast/multicol/span/span-as-immediate-child-property-removal-expected.png:
        * platform/efl/fast/multicol/span/span-as-immediate-child-property-removal-expected.txt:
        * platform/efl/fast/multicol/span/span-as-immediate-columns-child-dynamic-expected.png:
        * platform/efl/fast/multicol/span/span-as-immediate-columns-child-expected.png:
        * platform/efl/fast/multicol/span/span-as-immediate-columns-child-removal-expected.png:
        * platform/efl/fast/multicol/span/span-as-immediate-columns-child-removal-expected.txt:
        * platform/efl/fast/multicol/span/span-as-nested-columns-child-dynamic-expected.png:
        * platform/efl/fast/multicol/span/span-as-nested-columns-child-expected.png:
        * platform/efl/fast/multicol/span/span-as-nested-inline-block-child-expected.png:
        * platform/efl/fast/multicol/span/span-margin-collapsing-expected.png:
        * platform/efl/fast/multicol/table-margin-collapse-expected.png:
        * platform/efl/fast/multicol/table-vertical-align-expected.png:
        * platform/efl/fast/multicol/table-vertical-align-expected.txt:
        * platform/efl/fast/multicol/unsplittable-inline-block-expected.png:
        * platform/efl/fast/multicol/vertical-lr/column-break-with-balancing-expected.png:
        * platform/efl/fast/multicol/vertical-lr/column-count-with-rules-expected.png:
        * platform/efl/fast/multicol/vertical-lr/column-rules-expected.png:
        * platform/efl/fast/multicol/vertical-lr/float-avoidance-expected.png:
        * platform/efl/fast/multicol/vertical-lr/float-multicol-expected.png:
        * platform/efl/fast/multicol/vertical-lr/float-paginate-complex-expected.png:
        * platform/efl/fast/multicol/vertical-lr/float-paginate-complex-expected.txt:
        * platform/efl/fast/multicol/vertical-lr/float-paginate-expected.png:
        * platform/efl/fast/multicol/vertical-lr/nested-columns-expected.png:
        * platform/efl/fast/multicol/vertical-lr/nested-columns-expected.txt:
        * platform/efl/fast/multicol/vertical-lr/unsplittable-inline-block-expected.png:
        * platform/efl/fast/multicol/vertical-rl/column-break-with-balancing-expected.png:
        * platform/efl/fast/multicol/vertical-rl/column-count-with-rules-expected.png:
        * platform/efl/fast/multicol/vertical-rl/column-rules-expected.png:
        * platform/efl/fast/multicol/vertical-rl/float-avoidance-expected.png:
        * platform/efl/fast/multicol/vertical-rl/float-multicol-expected.png:
        * platform/efl/fast/multicol/vertical-rl/float-paginate-complex-expected.png:
        * platform/efl/fast/multicol/vertical-rl/float-paginate-complex-expected.txt:
        * platform/efl/fast/multicol/vertical-rl/float-paginate-expected.png:
        * platform/efl/fast/multicol/vertical-rl/nested-columns-expected.png:
        * platform/efl/fast/multicol/vertical-rl/nested-columns-expected.txt:
        * platform/efl/fast/multicol/vertical-rl/rule-style-expected.txt: Added.
        * platform/efl/fast/multicol/vertical-rl/unsplittable-inline-block-expected.png:
        * platform/efl/test_expectations:

2012-05-31  Jessie Berlin  <jberlin@apple.com>

        [Win] 4 css3 tests fail
        https://bugs.webkit.org/show_bug.cgi?id=88024

        Add Windows-specific expected (failing?) results to get the bots green.

        * platform/win/css3: Added.
        * platform/win/css3/filters: Added.
        * platform/win/css3/filters/composited-during-animation-expected.txt: Added.
        * platform/win/css3/filters/composited-during-animation-layertree-expected.txt: Added.
        * platform/win/css3/filters/composited-during-transition-layertree-expected.txt: Added.
        * platform/win/css3/unicode-bidi-isolate-basic-expected.png: Added.
        * platform/win/css3/unicode-bidi-isolate-basic-expected.txt: Added.

2012-05-31  Jessie Berlin  <jberlin@apple.com>

        [Win] 10 fast/forms tests failing
        https://bugs.webkit.org/show_bug.cgi?id=88013

        Add/update Windows-expected (failing?) results to get the bots greener.

        * platform/win/fast/forms/basic-selects-expected.png: Added.
        * platform/win/fast/forms/basic-selects-expected.txt:
        * platform/win/fast/forms/fieldset-legend-padding-unclipped-fieldset-border-expected.png:
        * platform/win/fast/forms/fieldset-legend-padding-unclipped-fieldset-border-expected.txt:
        * platform/win/fast/forms/file: Added.
        * platform/win/fast/forms/file/file-input-disabled-expected.png: Added.
        * platform/win/fast/forms/file/file-input-disabled-expected.txt: Added.
        * platform/win/fast/forms/implicit-submission-expected.txt:
        * platform/win/fast/forms/input-step-as-double-expected.txt: Added.
        * platform/win/fast/forms/input-text-drag-down-expected.png:
        * platform/win/fast/forms/input-text-drag-down-expected.txt:
        * platform/win/fast/forms/select: Added.
        * platform/win/fast/forms/select-overflow-scroll-expected.png: Added.
        * platform/win/fast/forms/select-overflow-scroll-expected.txt: Added.
        * platform/win/fast/forms/select-overflow-scroll-inherited-expected.png: Added.
        * platform/win/fast/forms/select-overflow-scroll-inherited-expected.txt: Added.
        * platform/win/fast/forms/select/optgroup-rendering-expected.png: Added.
        * platform/win/fast/forms/select/optgroup-rendering-expected.txt: Added.
        * platform/win/fast/forms/text-control-intrinsic-widths-expected.txt:

2012-05-31  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Implement IDBTransaction.error and IDBRequest.error
        https://bugs.webkit.org/show_bug.cgi?id=87865

        Reviewed by Tony Chang.

        * storage/indexeddb/basics-expected.txt:
        * storage/indexeddb/basics-workers-expected.txt:
        * storage/indexeddb/create-and-remove-object-store-expected.txt:
        * storage/indexeddb/cursor-continue-expected.txt:
        * storage/indexeddb/cursor-update-expected.txt:
        * storage/indexeddb/database-basics-expected.txt:
        * storage/indexeddb/deleteIndex-expected.txt:
        * storage/indexeddb/factory-cmp-expected.txt:
        * storage/indexeddb/get-keyrange-expected.txt:
        * storage/indexeddb/index-basics-expected.txt:
        * storage/indexeddb/index-basics-workers-expected.txt:
        * storage/indexeddb/index-count-expected.txt:
        * storage/indexeddb/index-unique-expected.txt:
        * storage/indexeddb/invalid-keys-expected.txt:
        * storage/indexeddb/key-generator-expected.txt:
        * storage/indexeddb/key-type-array-expected.txt:
        * storage/indexeddb/keypath-edges-expected.txt:
        * storage/indexeddb/keyrange-expected.txt:
        * storage/indexeddb/objectstore-autoincrement-expected.txt:
        * storage/indexeddb/objectstore-basics-expected.txt:
        * storage/indexeddb/objectstore-basics-workers-expected.txt:
        * storage/indexeddb/objectstore-count-expected.txt:
        * storage/indexeddb/open-cursor-expected.txt:
        * storage/indexeddb/readonly-expected.txt:
        * storage/indexeddb/resources/basics.js:
        (test):
        (openCallback):
        * storage/indexeddb/resources/create-and-remove-object-store.js:
        (testCreateAndRemove):
        (cleanDatabase):
        (tryOnceMore):
        * storage/indexeddb/resources/cursor-continue.js:
        (ascendingErrorTestLessThan.request.onsuccess):
        (ascendingErrorTestLessThan):
        (ascendingErrorTestEqual.request.onsuccess):
        (ascendingErrorTestEqual):
        (descendingErrorTestGreaterThan.request.onsuccess):
        (descendingErrorTestGreaterThan):
        (descendingErrorTestEqual.request.onsuccess):
        (descendingErrorTestEqual):
        (onTransactionComplete):
        * storage/indexeddb/resources/cursor-update.js:
        (keyCursor):
        * storage/indexeddb/resources/database-basics.js:
        (testClose):
        * storage/indexeddb/resources/database-quota.js:
        (logError):
        * storage/indexeddb/resources/deleteIndex.js:
        (twiddleIndexes):
        (postTwiddling):
        * storage/indexeddb/resources/factory-cmp.js:
        (testValidKeys):
        (testInvalidKeys):
        * storage/indexeddb/resources/get-keyrange.js:
        (getNullTest):
        * storage/indexeddb/resources/index-basics.js:
        (index3Count):
        * storage/indexeddb/resources/index-count.js:
        * storage/indexeddb/resources/index-unique.js:
        (addMoreDataFailed):
        * storage/indexeddb/resources/invalid-keys.js:
        * storage/indexeddb/resources/key-generator.js:
        * storage/indexeddb/resources/key-type-array.js:
        (testDepthLimits):
        * storage/indexeddb/resources/keypath-edges.js:
        * storage/indexeddb/resources/keyrange.js:
        (test):
        * storage/indexeddb/resources/objectstore-autoincrement.js:
        (getAbrahamSuccess):
        * storage/indexeddb/resources/objectstore-basics.js:
        (setVersionSuccess):
        (createIndex):
        (addAgainFailure):
        (removeSuccessButNotThere):
        (testPreConditions.request.onsuccess):
        (testPreConditions):
        * storage/indexeddb/resources/objectstore-count.js:
        * storage/indexeddb/resources/open-cursor.js:
        (cursorWithKeySuccess):
        (cursorSuccess):
        * storage/indexeddb/resources/readonly.js:
        (openSuccess):
        * storage/indexeddb/resources/set_version_queue.js:
        (connectionError):
        * storage/indexeddb/resources/shared.js:
        (unexpectedErrorCallback):
        (evalAndExpectException):
        * storage/indexeddb/resources/transaction-abort-workers.js:
        (transactionAborted):
        (transactionCompleted):
        (timeoutTest.transaction.onabort):
        (timeoutTest):
        (errorTransactionAborted):
        * storage/indexeddb/resources/transaction-abort.js:
        (firstAdd):
        (secondAdd):
        (transactionAborted):
        * storage/indexeddb/resources/transaction-after-close.js:
        (firstTransactionComplete):
        * storage/indexeddb/resources/transaction-and-objectstore-calls.js:
        (created):
        (afterComplete):
        * storage/indexeddb/resources/transaction-basics.js:
        (testInactiveAbortedTransaction):
        (testInactiveCompletedTransaction):
        (testInvalidMode):
        * storage/indexeddb/resources/transaction-read-only.js:
        (setVersionDone):
        (gotCursor):
        * storage/indexeddb/set_version_queue-expected.txt:
        * storage/indexeddb/transaction-abort-expected.txt:
        * storage/indexeddb/transaction-abort-workers-expected.txt:
        * storage/indexeddb/transaction-after-close-expected.txt:
        * storage/indexeddb/transaction-and-objectstore-calls-expected.txt:
        * storage/indexeddb/transaction-basics-expected.txt:
        * storage/indexeddb/transaction-read-only-expected.txt:

2012-05-31  Ben Murdoch  <benm@google.com>

        Fix crash in V8Document::createTouchListCallback.
        https://bugs.webkit.org/show_bug.cgi?id=87085

        Test for crash in document.createTouchList when it
        is supplied with non-touch parameters.

        Reviewed by Abhishek Arya.

        * fast/events/touch/document-create-touch-list-crash-expected.txt: Added.
        * fast/events/touch/document-create-touch-list-crash.html: Added.

2012-05-31  Rafael Weinstein  <rafaelw@chromium.org>

        Updating test expectations after r119124.

        * platform/chromium/fast/workers/storage/test-authorizer-sync-expected.txt: Added.

2012-05-31  Jessie Berlin  <jberlin@apple.com>

        [Win] 5 fast/events/popup-* tests fail
        https://bugs.webkit.org/show_bug.cgi?id=88008

        Add Windows-specific expected (failing?) results to get the bots greener.

        * platform/win/fast/events/popup-allowed-from-gesture-initiated-event-expected.txt: Added.
        * platform/win/fast/events/popup-allowed-from-gesture-initiated-form-submit-expected.txt: Added.
        * platform/win/fast/events/popup-blocked-from-fake-user-gesture-expected.txt: Added.
        * platform/win/fast/events/popup-blocked-from-untrusted-mouse-click-expected.txt: Added.
        * platform/win/fast/events/popup-blocking-timers-expected.txt: Added.

2012-05-31  Jessie Berlin  <jberlin@apple.com>

        [Win] 23 media tests fail / time out
        https://bugs.webkit.org/show_bug.cgi?id=88005

        Add/update the Windows expected (failing?) results to get the bots greener.

        * platform/win/Skipped:
        * platform/win/media/audio-controls-rendering-expected.txt:
        * platform/win/media/audio-repaint-expected.txt:
        * platform/win/media/controls-after-reload-expected.txt:
        * platform/win/media/controls-strict-expected.txt:
        * platform/win/media/controls-styling-expected.txt:
        * platform/win/media/controls-without-preload-expected.txt:
        * platform/win/media/media-can-play-wav-audio-expected.txt: Added.
        * platform/win/media/media-controls-clone-expected.txt:
        * platform/win/media/media-controls-invalid-url-expected.txt: Added.
        * platform/win/media/media-document-audio-repaint-expected.txt:
        * platform/win/media/nodesFromRect-shadowContent-expected.txt: Added.
        * platform/win/media/video-colorspace-yuv420-expected.txt: Added.
        * platform/win/media/video-colorspace-yuv422-expected.txt: Added.
        * platform/win/media/video-controls-rendering-expected.txt:
        * platform/win/media/video-display-toggle-expected.txt:
        * platform/win/media/video-no-audio-expected.txt:
        * platform/win/media/video-pause-immediately-expected.txt: Added.
        * platform/win/media/video-playing-and-pause-expected.txt: Added.
        * platform/win/media/video-size-intrinsic-scale-expected.txt: Added.

2012-05-31  Jessie Berlin  <jberlin@apple.com>

        [Win] fast/events/remove-target* tests fail
        https://bugs.webkit.org/show_bug.cgi?id=88006

        Add Windows-specific expected (failing?) results to get the bots greener.

        * platform/win/fast/events/remove-target-in-mouseup-deep-expected.txt: Added.
        * platform/win/fast/events/remove-target-in-mouseup-expected.txt: Added.
        * platform/win/fast/events/remove-target-in-mouseup-insertback-expected.txt: Added.
        * platform/win/fast/events/remove-target-in-mouseup-twice-expected.txt: Added.
        * platform/win/fast/events/remove-target-with-shadow-in-drag-expected.txt: Added.

2012-05-31  Raphael Kubo da Costa  <rakuco@webkit.org>

        [EFL] Gardening; skip fast/canvas/canvas-imageSmoothingEnabled.

        Skip the test just like GTK+, as there seems to be a problem in
        the cairo backend that makes the test fail.

        * platform/efl/test_expectations.txt:

2012-05-31  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed gardening, updating baselines after r119124.

        * dom/xhtml/level3/core/documentnormalizedocument10-expected.txt:
        * dom/xhtml/level3/core/documentsetxmlversion03-expected.txt:
        * fast/workers/storage/test-authorizer-sync-expected.txt:

2012-05-31  Tony Chang  <tony@chromium.org>

        rename flexbox CSS properties from flex-align and flex-item-align to align-items and align-self
        https://bugs.webkit.org/show_bug.cgi?id=87907

        Reviewed by Ojan Vafai.

        Updated tests for new CSS property names.

        * css3/flexbox/align-absolute-child.html:
        * css3/flexbox/cross-axis-scrollbar.html:
        * css3/flexbox/css-properties-expected.txt:
        * css3/flexbox/css-properties.html:
        * css3/flexbox/flex-align-baseline.html:
        * css3/flexbox/flex-align-column.html:
        * css3/flexbox/flex-align-end.html:
        * css3/flexbox/flex-align-stretch.html:
        * css3/flexbox/flex-align-vertical-writing-mode.html:
        * css3/flexbox/flex-align.html:
        * css3/flexbox/line-wrapping.html:
        * css3/flexbox/multiline-align.html:
        * css3/flexbox/multiline-reverse-wrap-baseline.html:
        * css3/flexbox/orthogonal-flex-directions.html:
        * css3/flexbox/position-absolute-child.html:
        * css3/flexbox/true-centering.html:

2012-05-31  Jessie Berlin  <jberlin@apple.com>

        [Win] 10 fast/text tests failing
        https://bugs.webkit.org/show_bug.cgi?id=87998

        Add/update Windows-specific expected (failing?) pixel results in order to get the bots greener.

        * platform/win/fast/text/complex-preferred-logical-widths-expected.png: Added.
        * platform/win/fast/text/complex-synthetic-bold-space-width-expected.png: Added.
        * platform/win/fast/text/international/arabic-justify-expected.png: Added.
        * platform/win/fast/text/international/bidi-mirror-he-ar-expected.png:
        * platform/win/fast/text/international/float-as-only-child-of-isolate-crash-expected.png: Added.
        * platform/win/fast/text/international/text-combine-image-test-expected.png:
        * platform/win/fast/text/international/text-spliced-font-expected.png: Added.
        * platform/win/fast/text/line-initial-and-final-swashes-expected.png: Added.
        * platform/win/fast/text/midword-break-before-surrogate-pair-2-expected.png: Added.
        * platform/win/fast/text/unicode-variation-selector-expected.png: Added.

2012-05-31  Jessie Berlin  <jberlin@apple.com>

        [Win] 10 fast/text tests failing
        https://bugs.webkit.org/show_bug.cgi?id=87998

        Add/update Windows-specific expected (failing?) results in order to get the bots greener.

        * platform/win/fast/text/complex-preferred-logical-widths-expected.txt: Added.
        * platform/win/fast/text/complex-synthetic-bold-space-width-expected.txt: Added.
        * platform/win/fast/text/international/arabic-justify-expected.txt: Added.
        * platform/win/fast/text/international/bidi-mirror-he-ar-expected.txt: Added.
        * platform/win/fast/text/international/float-as-only-child-of-isolate-crash-expected.txt: Added.
        * platform/win/fast/text/international/text-combine-image-test-expected.txt:
        * platform/win/fast/text/international/text-spliced-font-expected.txt: Added.
        * platform/win/fast/text/line-initial-and-final-swashes-expected.txt: Added.
        * platform/win/fast/text/midword-break-before-surrogate-pair-2-expected.txt: Added.
        * platform/win/fast/text/unicode-variation-selector-expected.txt: Added.

2012-05-31  Rafael Weinstein  <rafaelw@chromium.org>

        Updating test expectations (svg/as-image/animated-svg-as-image.html)

        * platform/chromium/test_expectations.txt:

2012-05-31  Erik Arvidsson  <arv@chromium.org>

        Make DOM Exceptions Errors
        https://bugs.webkit.org/show_bug.cgi?id=85078

        Reviewed by Oliver Hunt.

        WebIDL mandates that exceptions should have Error.prototype on its prototype chain.

        For JSC we have access to the Error.prototype from the binding code.

        For V8 we set a field in the WrapperTypeInfo and when the constructor function is created we
        set the prototype as needed.

        Updated test: fast/dom/DOMException/prototype-object.html

        * fast/dom/DOMException/prototype-object-expected.txt:
        * fast/dom/DOMException/prototype-object.html:
        * fast/dom/DOMException/resources/prototype-object.js: Removed.
        * platform/chromium-win/fast/dom/NamedNodeMap-setNamedItem-crash-expected.txt: Removed.
        * platform/chromium-win/fast/dom/timer-clear-interval-in-handler-and-generate-error-expected.txt: Removed.
        * platform/chromium-win/svg/filters/feBlend-invalid-mode-expected.txt: Removed.
        * platform/chromium/dom/xhtml/level3/core/documentnormalizedocument10-expected.txt: Added.
        * platform/chromium/dom/xhtml/level3/core/documentsetxmlversion03-expected.txt: Added.
        * platform/chromium/fast/dom/DOMException/prototype-object-expected.txt:
        * platform/chromium/fast/dom/NamedNodeMap-setNamedItem-crash-expected.txt: Renamed from LayoutTests/platform/chromium-mac/fast/dom/NamedNodeMap-setNamedItem-crash-expected.txt.
        * platform/chromium/fast/dom/timer-clear-interval-in-handler-and-generate-error-expected.txt: Renamed from LayoutTests/platform/chromium-mac/fast/dom/timer-clear-interval-in-handler-and-generate-error-expected.txt.
        * platform/chromium/svg/filters/feBlend-invalid-mode-expected.txt: Renamed from LayoutTests/platform/chromium-mac/svg/filters/feBlend-invalid-mode-expected.txt.

2012-05-31  Jessie Berlin  <jberlin@apple.com>

        [Win] ASSERT(oldLayoutDelta == view()->layoutDelta()) failed in RenderBlock::layoutBlockChild
        when running media/media-volume-slider-rendered-below.html
        https://bugs.webkit.org/show_bug.cgi?id=87450

        Add the test to the Windows Skipped list to get the bots greener.

        * platform/win/Skipped:

2012-05-31  Jessie Berlin  <jberlin@apple.com>

        10 W3C video and audio canPlayType tests are failing on Mac and Win
        https://bugs.webkit.org/show_bug.cgi?id=75184

        Add Windows-specific expected (failing?) results to get the bots greener.

        * platform/win/media/W3C: Added.
        * platform/win/media/W3C/audio: Added.
        * platform/win/media/W3C/audio/canPlayType: Added.
        * platform/win/media/W3C/audio/canPlayType/canPlayType_supported_but_no_codecs_parameter_1-expected.txt: Added.
        * platform/win/media/W3C/audio/canPlayType/canPlayType_supported_but_no_codecs_parameter_2-expected.txt: Added.
        * platform/win/media/W3C/video: Added.
        * platform/win/media/W3C/video/canPlayType: Added.
        * platform/win/media/W3C/video/canPlayType/canPlayType_codecs_order_2-expected.txt: Added.
        * platform/win/media/W3C/video/canPlayType/canPlayType_codecs_order_3-expected.txt: Added.
        * platform/win/media/W3C/video/canPlayType/canPlayType_supported_but_no_codecs_parameter_2-expected.txt: Added.
        * platform/win/media/W3C/video/canPlayType/canPlayType_supported_but_no_codecs_parameter_3-expected.txt: Added.
        * platform/win/media/W3C/video/canPlayType/canPlayType_two_implies_one_3-expected.txt: Added.
        * platform/win/media/W3C/video/canPlayType/canPlayType_two_implies_one_4-expected.txt: Added.
        * platform/win/media/W3C/video/canPlayType/canPlayType_two_implies_one_5-expected.txt: Added.
        * platform/win/media/W3C/video/canPlayType/canPlayType_two_implies_one_6-expected.txt: Added.

2012-05-31  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>

        [EFL][DRT] EFL's DRT navigation_policy_decision implementation
        https://bugs.webkit.org/show_bug.cgi?id=85006

        Reviewed by Tor Arne Vestbø.

        Unskipped corresponding tests. Those still not passing are put into
        test_expectations.txt.

        * platform/efl/Skipped:
        * platform/efl/test_expectations.txt:

2012-05-31  Jussi Kukkonen  <jussi.kukkonen@intel.com>

        [EFL][DRT] LayoutTestController does not implement clearApplicationCacheForOrigin
        https://bugs.webkit.org/show_bug.cgi?id=86195

        Reviewed by Gustavo Noronha Silva.

        Unskip http/tests/appcache/origin-delete.html now that
        EFL TestLayoutController has required functionality.

        * platform/efl/Skipped:

2012-05-31  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Unreviewed. Added FAIL expectation due to failure after r119100.

        * platform/gtk/test_expectations.txt:

2012-05-31  Jessie Berlin  <jberlin@apple.com>

        [Win] 6 canvas tests failing
        https://bugs.webkit.org/show_bug.cgi?id=87983

        Add Windows-specific expected (failing?) results to get the bots greener.

        * platform/win/fast/canvas/canvas-draw-canvas-on-canvas-shadow-expected.txt: Added.
        * platform/win/fast/canvas/canvas-fillRect-gradient-shadow-expected.txt: Added.
        * platform/win/fast/canvas/canvas-scale-drawImage-shadow-expected.txt: Added.
        * platform/win/fast/canvas/canvas-scale-fillPath-shadow-expected.txt: Added.
        * platform/win/fast/canvas/canvas-scale-fillRect-shadow-expected.txt: Added.
        * platform/win/fast/canvas/canvas-transforms-fillRect-shadow-expected.txt: Added.

2012-05-31  Ulan Degenbaev  <ulan@chromium.org>

        [v8] Fix bug reference in array-override-set.html test
        https://bugs.webkit.org/show_bug.cgi?id=87952

        Reviewed by Abhishek Arya.

        * fast/canvas/webgl/array-override-set-expected.txt:
        * fast/canvas/webgl/array-override-set.html:

2012-05-31  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Unreviewed. Added FAIL expectation due to test consistently failing.

        * platform/gtk/test_expectations.txt:

2012-05-31  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Enable CSS_IMAGE_SET flag
        https://bugs.webkit.org/show_bug.cgi?id=87727

        Reviewed by Adam Roben.

        Unskip test case associated to CSS image-set functionality now that it
        is enabled by default on EFL port.

        * platform/efl/test_expectations.txt:

2012-05-31  Mario Sanchez Prada  <msanchez@igalia.com>

        Unreviewed. Added FAIL expectation for GTK due to missing feature in DRT.

        * platform/gtk/test_expectations.txt:

2012-05-31  Keyar Hood  <keyar@chromium.org>

        the imageSmoothingEnabled flag needs to be in the state object
        https://bugs.webkit.org/show_bug.cgi?id=87853

        Reviewed by Darin Adler.

        Updated the test for imageSmoothingEnabled to test that it is saved in
        the draw state.

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

2012-05-31  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>

        [EFL] Gardening after r118989
        https://bugs.webkit.org/show_bug.cgi?id=87958

        Unreviewed gardening.

        fast/css/font-face-download-error.html is skipped as bug85977 is not fixed yet.

        * platform/efl/test_expectations.txt:

2012-05-31  Alexander Pavlov  <apavlov@chromium.org>

        [Chromium] Unreviewed, update Mac Leopard baselines for fast/muticol/span/span-as-immediate-columns-child.html.

        * platform/chromium-mac-leopard/fast/multicol/span/span-as-immediate-columns-child-expected.png:

2012-05-31  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed gardening, skip new failing tests, unskip a now passing test.

        * platform/qt/Skipped:

2012-05-31  Mario Sanchez Prada  <msanchez@igalia.com>

        Unreviewed. Added new baselines for GTK after r117815.

        * platform/gtk/svg/zoom/page/zoom-hixie-rendering-model-004-expected.txt: Added.
        * platform/gtk/svg/zoom/page/zoom-svg-as-background-with-relative-size-and-viewBox-expected.png: Added.
        * platform/gtk/svg/zoom/page/zoom-svg-as-background-with-relative-size-and-viewBox-expected.txt: Added.
        * platform/gtk/svg/zoom/page/zoom-svg-through-object-with-auto-size-expected.png: Updated.
        * platform/gtk/svg/zoom/page/zoom-svg-through-object-with-auto-size-expected.txt: Added.

2012-05-31  Mario Sanchez Prada  <msanchez@igalia.com>

        Unreviewed. Added new baselines for GTK after r118891.

        * platform/gtk/fast/forms/select/optgroup-rendering-expected.png: Added.
        * platform/gtk/fast/forms/select/optgroup-rendering-expected.txt: Added.

2012-05-31  Christophe Dumez  <christophe.dumez@intel.com>

        fast/events/message-port-multi.html needs new baseline after r119027
        https://bugs.webkit.org/show_bug.cgi?id=87949

        Unreviewed gardening.

        Update baseline for fast/events/message-port-multi.html after r119027.
        Now all the checks are passing and we can get rid of the FAIL lines in
        the expected result.

        * fast/events/message-port-multi-expected.txt:

2012-05-31  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>

        [EFL] Gardening after r118993
        https://bugs.webkit.org/show_bug.cgi?id=87946

        Unreviewed gardening.

        Test fast/forms/file/input-file-write-files.html that was added at r118993 relies on 
        unsupported EventSender.beginDragWithFiles and hence should be skipped.

        * platform/efl/test_expectations.txt:

2012-05-31  Mario Sanchez Prada  <msanchez@igalia.com>

        Unreviewed. Unskipping tests for GTK now passing in all the bots.

        * platform/gtk/test_expectations.txt:

2012-05-31  Mario Sanchez Prada  <msanchez@igalia.com>

        fast/dom/Window/mozilla-focus-blur.html failing after r118916
        https://bugs.webkit.org/show_bug.cgi?id=87951

        Unreviewed. Added FAIL expectation for GTK after r118916.

        * platform/gtk/test_expectations.txt:

2012-05-31  Andras Becsi  <andras.becsi@nokia.com>

        Test expectation pngs missing checksums
        https://bugs.webkit.org/show_bug.cgi?id=87947

        Reviewed by Ojan Vafai.

        Add proper platform independent png expectation with checksum and revert chromium
        expectations since layoutTestController.keepWebHistory() seems to have no effect
        on chromium, and the test is still failing (See bug 87839).

        * http/tests/misc/acid3-expected.png: Add png with embedded checksum.
        * platform/chromium-mac-leopard/http/tests/misc/acid3-expected.png: Revert to prior r118566.
        * platform/chromium-mac-snowleopard/http/tests/misc/acid3-expected.png: Revert to prior r118566.
        * platform/chromium-mac/http/tests/misc/acid3-expected.png: Revert to prior r118566.
        * platform/chromium-mac/http/tests/misc/acid3-expected.txt: Revert to prior r118566.
        * platform/chromium/test_expectations.txt: Revert to prior r118566.

2012-05-31  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>

        [EFL] Gardening after r118957
        https://bugs.webkit.org/show_bug.cgi?id=87937

        Unreviewed gardening.

        compositing/layer-creation/fixed-position-and-transform.html and compositing/layer-creation/fixed-position-under-transform.html
        added with r118957 were skipped in EFL port as EFL's LayoutTestController does not implement layerTreeAsText.

        * platform/efl/test_expectations.txt:

2012-05-31  Zoltan Arvai  <zarvai@inf.u-szeged.hu>

        [Qt] Unreviewed gardening. Rebase xss test, skip failing tests.

        * platform/qt/Skipped:
        * platform/qt/http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write-expected.txt:
        * platform/qt/http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url-expected.txt:
        * platform/qt/http/tests/security/aboutBlank/xss-DENIED-set-opener-expected.txt:

2012-05-31  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>

        [EFL][DRT] Gardening after r118920
        https://bugs.webkit.org/show_bug.cgi?id=87934

        Unreviewed, gardening of http/tests/local/fileapi/file-last-modified-after-delete.html which
        relies on unsupported drag'n'drop feature.

        * platform/efl/test_expectations.txt:

2012-05-31  Alexei Filippov  <alexeif@chromium.org>

        Web Inspector: Retainers are missing for all objects
        https://bugs.webkit.org/show_bug.cgi?id=87655

        Skip the test on wincairo platform.

        Reviewed by Yury Semikhatsky.

        * platform/wincairo/Skipped:

2012-05-31  Hayato Ito  <hayato@chromium.org>

        ComposedShadowTreeWalker should support traversing nodes in an orphaned shadow subtree.
        https://bugs.webkit.org/show_bug.cgi?id=87493

        Reviewed by Dimitri Glazkov.

        * fast/dom/shadow/composed-shadow-tree-walker.html:

2012-05-31  Shane Stephens  <shanestephens@google.com>

        text-decoration should not be propagated through absolutely positioned elements to <a> tags
        https://bugs.webkit.org/show_bug.cgi?id=86517

        Added layout test to check no propagation of text-decoration to second-order descendants 
        (i.e. descendants of descendants), where the first-order descendant is positioned.

        Tightened up existing descendants test to fail when text-decoration is incorrectly propagated
        to first-order descendant.

        Reviewed by Darin Adler. 

        * fast/css/text-decoration-in-descendants-expected.html:
        * fast/css/text-decoration-in-second-order-descendants-expected.html: Added.
        * fast/css/text-decoration-in-second-order-descendants.html: Added.

2012-05-30  Abhishek Arya  <inferno@chromium.org>

        Crash in ContainerNode::parserAddChild.
        https://bugs.webkit.org/show_bug.cgi?id=87903

        Reviewed by Ryosuke Niwa.

        * fast/dom/child-insertion-notify-crash-expected.txt: Added.
        * fast/dom/child-insertion-notify-crash.html: Added.

2012-05-30  Rick Byers  <rbyers@chromium.org>

        [chromium] Implement pointer and hover CSS media features
        https://bugs.webkit.org/show_bug.cgi?id=87403

        Reviewed by Adam Barth.

        Adds tests for pointer and hover media features, for the initial cases
        with and without a touch screen.

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

2012-05-30  Jessie Berlin  <jberlin@apple.com>

        [Win] Need implementation of layoutTestController.setBackingScaleFactor
        https://bugs.webkit.org/show_bug.cgi?id=87919

        Add tests that use setBackingScaleFactor to the Windows Skipped list.

        * platform/win/Skipped:

2012-05-30  Christophe Dumez  <christophe.dumez@intel.com>

        [JSC] SerializedScriptValue.create() succeeds even if MessagePort object cannot be found in transferred ports
        https://bugs.webkit.org/show_bug.cgi?id=87118

        Reviewed by Adam Barth.

        Unskip webintents/web-intents-obj-constructor.html now that 
        SerializedScriptValue.create() throws an exception if one of the
        MessagePort objects cannot be found in the transferred ports.

        * platform/efl/test_expectations.txt:

2012-05-30  Jessie Berlin  <jberlin@apple.com>

        [Win] Need results for ietestcenter CSS3 tests
        https://bugs.webkit.org/show_bug.cgi?id=87916

        Add expected (failing?) results to get the bots greener.

        * platform/win/ietestcenter/css3/flexbox/flexbox-align-baseline-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-align-baseline-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-align-center-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-align-center-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-align-center-002-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-align-center-002-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-align-end-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-align-end-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-align-start-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-align-start-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-align-stretch-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-align-stretch-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-direction-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-direction-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-flex-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-flex-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-flex-002-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-flex-002-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-flex-003-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-flex-003-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-flex-004-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-flex-004-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-flex-005-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-flex-005-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-groups-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-groups-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-groups-002-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-groups-002-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-groups-003-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-groups-003-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-groups-004-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-groups-004-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-layout-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-layout-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-layout-002-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-layout-002-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-layout-003-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-layout-003-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-ordinal-group-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-pack-center-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-pack-center-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-pack-end-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-pack-end-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-pack-justify-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-pack-justify-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-pack-start-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/flexbox/flexbox-pack-start-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/grid/display-grid-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/grid/display-grid-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/grid/display-grid-002-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/grid/display-grid-002-expected.txt: Added.
        * platform/win/ietestcenter/css3/grid/grid-column-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/grid/grid-column-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/grid/grid-column-002-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/grid/grid-column-002-expected.txt: Added.
        * platform/win/ietestcenter/css3/grid/grid-column-003-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/grid/grid-column-003-expected.txt: Added.
        * platform/win/ietestcenter/css3/grid/grid-columns-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/grid/grid-columns-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/grid/grid-items-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/grid/grid-items-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/grid/grid-items-002-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/grid/grid-items-002-expected.txt: Added.
        * platform/win/ietestcenter/css3/grid/grid-items-003-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/grid/grid-items-003-expected.txt: Added.
        * platform/win/ietestcenter/css3/grid/grid-items-004-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/grid/grid-items-004-expected.txt: Added.
        * platform/win/ietestcenter/css3/grid/grid-items-005-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/grid/grid-items-005-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-block-formatting-context-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-block-formatting-context-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-containing-block-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-containing-block-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-containing-block-002-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-containing-block-002-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-containing-block-003-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-containing-block-003-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-filling-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-filling-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-002-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-002-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-003-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-003-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-004-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-004-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-005-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-005-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-006-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-006-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-007-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-007-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-008-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-008-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-009-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-009-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-010-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-010-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-012-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-012-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-013-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-013-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-014-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-014-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-015-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-applies-to-015-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-negative-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-negative-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-percentage-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/multicolumn/column-width-percentage-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/declaring-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/declaring-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/prefix-007-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/prefix-007-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/prefix-008-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/prefix-008-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/prefix-009-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/prefix-009-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/prefix-010-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/prefix-010-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/prefix-011-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/prefix-011-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/qualifiedNames-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/qualifiedNames-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/scope-003-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/scope-003-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/syntax-016-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/syntax-016-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/syntax-017-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/syntax-017-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/syntax-018-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/syntax-018-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/syntax-019-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/syntax-019-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/syntax-020-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/syntax-020-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/syntax-021-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/syntax-021-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/syntax-022-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/syntax-022-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/syntax-023-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/syntax-023-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/terminology-001-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/namespaces/terminology-001-expected.txt: Added.
        * platform/win/ietestcenter/css3/valuesandunits/units-000-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/valuesandunits/units-010-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/valuesandunits/units-010-expected.txt: Added.
        * platform/win/ietestcenter/css3/valuesandunits/units-020-expected-expected.txt: Added.
        * platform/win/ietestcenter/css3/valuesandunits/units-020-expected.txt: Added.

2012-05-30  Kent Tamura  <tkent@chromium.org>

        Form controls in <fieldset disabled> should not be focusable.
        https://bugs.webkit.org/show_bug.cgi?id=87380

        Reviewed by Darin Adler.

        * fast/forms/fieldset/fieldset-disabled-expected.txt:
        * fast/forms/fieldset/fieldset-disabled.html:
        Updated because disabled controls are not focusable.
        Also, remove testing elements to remove unnecessary blank lines.
        * fast/forms/fieldset/focus-in-fieldset-disabled-expected.txt: Added.
        * fast/forms/fieldset/focus-in-fieldset-disabled.html: Added.

2012-05-30  Hayato Ito  <hayato@chromium.org>

        Fix a composed-shadow-tree-walker.html so that it uses correct selectors.
        https://bugs.webkit.org/show_bug.cgi?id=87500

        Reviewed by Dimitri Glazkov.

        Fix a test and an expectation for composed-shadow-tree-walker.html.
        A current composed-shadow-tree-walker.html uses class selector
        (.class).  That's not the test author's intention and the expected
        text was wrongly generated based on wrong tests.

        * fast/dom/shadow/composed-shadow-tree-walker-expected.txt:
        * fast/dom/shadow/composed-shadow-tree-walker.html:

2012-05-30  Gavin Peters  <gavinp@chromium.org>

        Add a LayoutTest for prerender remove after stop.
        https://bugs.webkit.org/show_bug.cgi?id=87860

        Bug 87746 was uploaded without a LayoutTest because I originally thought
        it would only be testable in Chrome with a browser test.  However, that was
        wrong.

        Note that this test doesn't need to be disabled based on if the platform
        uses Prerendering, since the test is for a crash, which won't happen on
        platforms without prerendering, either.

        Reviewed by Adam Barth.

        * fast/dom/HTMLLinkElement/prerender-remove-after-stop-expected.txt: Added.
        * fast/dom/HTMLLinkElement/prerender-remove-after-stop.html: Added.
        * fast/dom/HTMLLinkElement/resources/empty.html: Added.
        * fast/dom/HTMLLinkElement/resources/simple-prerender.html: Added.

2012-05-30  Zhenyao Mo  <zmo@google.com>

        WebKit incorrectly clears the alpha channel on readPixels, even for Framebuffers
        https://bugs.webkit.org/show_bug.cgi?id=87310

        Reviewed by Kenneth Russell.

        * fast/canvas/webgl/context-attributes-alpha-depth-stencil-antialias-expected.txt:
        * fast/canvas/webgl/context-attributes-alpha-depth-stencil-antialias.html: synced with khronos

2012-05-30  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r118986.
        http://trac.webkit.org/changeset/118986
        https://bugs.webkit.org/show_bug.cgi?id=87914

        Caused several IndexedDB browser_test failures on Chromium
        canary builders (Requested by rafaelw_ on #webkit).

        * storage/indexeddb/basics-expected.txt:
        * storage/indexeddb/basics-workers-expected.txt:
        * storage/indexeddb/create-and-remove-object-store-expected.txt:
        * storage/indexeddb/cursor-continue-expected.txt:
        * storage/indexeddb/cursor-update-expected.txt:
        * storage/indexeddb/database-basics-expected.txt:
        * storage/indexeddb/deleteIndex-expected.txt:
        * storage/indexeddb/factory-cmp-expected.txt:
        * storage/indexeddb/get-keyrange-expected.txt:
        * storage/indexeddb/index-basics-expected.txt:
        * storage/indexeddb/index-basics-workers-expected.txt:
        * storage/indexeddb/index-count-expected.txt:
        * storage/indexeddb/index-unique-expected.txt:
        * storage/indexeddb/invalid-keys-expected.txt:
        * storage/indexeddb/key-generator-expected.txt:
        * storage/indexeddb/key-type-array-expected.txt:
        * storage/indexeddb/keypath-edges-expected.txt:
        * storage/indexeddb/keyrange-expected.txt:
        * storage/indexeddb/objectstore-autoincrement-expected.txt:
        * storage/indexeddb/objectstore-basics-expected.txt:
        * storage/indexeddb/objectstore-basics-workers-expected.txt:
        * storage/indexeddb/objectstore-count-expected.txt:
        * storage/indexeddb/open-cursor-expected.txt:
        * storage/indexeddb/readonly-expected.txt:
        * storage/indexeddb/resources/basics.js:
        (test):
        (openCallback):
        * storage/indexeddb/resources/create-and-remove-object-store.js:
        (testCreateAndRemove):
        (cleanDatabase):
        (tryOnceMore):
        * storage/indexeddb/resources/cursor-continue.js:
        (ascendingErrorTestLessThan.request.onsuccess):
        (ascendingErrorTestLessThan):
        (ascendingErrorTestEqual.request.onsuccess):
        (ascendingErrorTestEqual):
        (descendingErrorTestGreaterThan.request.onsuccess):
        (descendingErrorTestGreaterThan):
        (descendingErrorTestEqual.request.onsuccess):
        (descendingErrorTestEqual):
        (onTransactionComplete):
        * storage/indexeddb/resources/cursor-update.js:
        (keyCursor):
        * storage/indexeddb/resources/database-basics.js:
        (testClose):
        * storage/indexeddb/resources/database-quota.js:
        (logError):
        * storage/indexeddb/resources/deleteIndex.js:
        (twiddleIndexes):
        (postTwiddling):
        * storage/indexeddb/resources/factory-cmp.js:
        (testValidKeys):
        (testInvalidKeys):
        * storage/indexeddb/resources/get-keyrange.js:
        (getNullTest):
        * storage/indexeddb/resources/index-basics.js:
        (index3Count):
        * storage/indexeddb/resources/index-count.js:
        * storage/indexeddb/resources/index-unique.js:
        (addMoreDataFailed):
        * storage/indexeddb/resources/invalid-keys.js:
        * storage/indexeddb/resources/key-generator.js:
        * storage/indexeddb/resources/key-type-array.js:
        (testDepthLimits):
        * storage/indexeddb/resources/keypath-edges.js:
        * storage/indexeddb/resources/keyrange.js:
        (test):
        * storage/indexeddb/resources/objectstore-autoincrement.js:
        (getAbrahamSuccess):
        * storage/indexeddb/resources/objectstore-basics.js:
        (setVersionSuccess):
        (createIndex):
        (addAgainFailure):
        (removeSuccessButNotThere):
        (testPreConditions.request.onsuccess):
        (testPreConditions):
        * storage/indexeddb/resources/objectstore-count.js:
        * storage/indexeddb/resources/open-cursor.js:
        (cursorWithKeySuccess):
        (cursorSuccess):
        * storage/indexeddb/resources/readonly.js:
        (openSuccess):
        * storage/indexeddb/resources/set_version_queue.js:
        (connectionError):
        * storage/indexeddb/resources/shared.js:
        (unexpectedErrorCallback):
        (evalAndExpectException):
        * storage/indexeddb/resources/transaction-abort-workers.js:
        (transactionAborted):
        (transactionCompleted):
        (timeoutTest.transaction.onabort):
        (timeoutTest):
        (errorTransactionAborted):
        * storage/indexeddb/resources/transaction-abort.js:
        (firstAdd):
        (secondAdd):
        (transactionAborted):
        * storage/indexeddb/resources/transaction-after-close.js:
        (firstTransactionComplete):
        * storage/indexeddb/resources/transaction-and-objectstore-calls.js:
        (created):
        (afterComplete):
        * storage/indexeddb/resources/transaction-basics.js:
        (testInactiveAbortedTransaction):
        (testInactiveCompletedTransaction):
        (testInvalidMode):
        * storage/indexeddb/resources/transaction-read-only.js:
        (setVersionDone):
        (gotCursor):
        * storage/indexeddb/set_version_queue-expected.txt:
        * storage/indexeddb/transaction-abort-expected.txt:
        * storage/indexeddb/transaction-abort-workers-expected.txt:
        * storage/indexeddb/transaction-after-close-expected.txt:
        * storage/indexeddb/transaction-and-objectstore-calls-expected.txt:
        * storage/indexeddb/transaction-basics-expected.txt:
        * storage/indexeddb/transaction-read-only-expected.txt:

2012-05-30  Dominic Mazzoni  <dmazzoni@google.com>

        AX: Chromium WebAccessibilityObject should check if an AccessibilityObject is detached
        https://bugs.webkit.org/show_bug.cgi?id=87778

        Reviewed by Adam Barth.

        * accessibility/accessibility-object-detached-expected.txt: Added.
        * accessibility/accessibility-object-detached.html: Added.

2012-05-30  Jessie Berlin  <jberlin@apple.com>

        Enhance Windows DRT implementation to support platform scroll wheel events
        https://bugs.webkit.org/show_bug.cgi?id=36002

        Skip more tests that use eventSender.mouseScrollBy on Windows.

        * platform/win/Skipped:

2012-05-30  Tim Horton  <timothy_horton@apple.com>

        WebKitTestRunner needs an implementation of eventSender
        <https://bugs.webkit.org/show_bug.cgi?id=42194>

        Unreviewed mac-wk2 skip of fast/forms/file/input-file-write-files.html, which depends on eventSender.

        * platform/mac-wk2/Skipped:

2012-05-30  Jessie Berlin  <jberlin@apple.com>

        [Win] 8 accessibility tests failing
        https://bugs.webkit.org/show_bug.cgi?id=87909

        Add expected (failing?) results for Windows to get the bots greener.

        * platform/win/accessibility/deleting-iframe-destroys-axcache-expected.txt: Added.
        * platform/win/accessibility/disabled-controls-not-focusable-expected.txt: Added.
        * platform/win/accessibility/focus-events-expected.txt:
        * platform/win/accessibility/img-alt-tag-only-whitespace-expected.txt: Added.
        * platform/win/accessibility/option-element-selection-and-focus-events-expected.txt:
        * platform/win/accessibility/select-element-valuechange-event-expected.txt:
        * platform/win/accessibility/textbox-role-reports-line-number-expected.txt: Added.
        * platform/win/accessibility/textbox-role-reports-selection-expected.txt: Added.

2012-05-30  Emil A Eklund  <eae@chromium.org>

        Unreviewed test expectations updates for window and mac now that we no longer skip a couple of tests on those platforms.

        * platform/chromium-mac-leopard/fast/backgrounds/background-position-parsing-expected.png:
        * platform/chromium-win/fast/backgrounds/background-position-parsing-expected.png:
        * platform/chromium-win/fast/backgrounds/background-position-parsing-expected.txt:
        * platform/chromium-win/fast/block/margin-collapse/103-expected.png:
        * platform/chromium-win/fast/block/margin-collapse/103-expected.txt:

2012-05-30  Dan Bernstein  <mitz@apple.com>

        [Qt] REGRESSION(r118568): It broke fast/forms/textarea-maxlength.html on Qt 4.8
        https://bugs.webkit.org/show_bug.cgi?id=87740

        Reviewed by Darin Adler.

        * platform/qt-4.8/Skipped: Removed fast/forms/textarea-maxlength.html.

2012-05-30  Raphael Kubo da Costa  <rakuco@webkit.org>

        [EFL] Gardening. Unskip test that is now passing.

        * platform/efl/test_expectations.txt:

2012-05-30  Emil A Eklund  <eae@chromium.org>

        Unreviewed chromium snowleopard rebaseline for background-position-parsing test following r118978.

        * platform/chromium-mac-snowleopard/fast/backgrounds/background-position-parsing-expected.png:

2012-05-30  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Implement IDBTransaction.error and IDBRequest.error
        https://bugs.webkit.org/show_bug.cgi?id=87865

        Reviewed by Tony Chang.

        * storage/indexeddb/basics-expected.txt:
        * storage/indexeddb/basics-workers-expected.txt:
        * storage/indexeddb/create-and-remove-object-store-expected.txt:
        * storage/indexeddb/cursor-continue-expected.txt:
        * storage/indexeddb/cursor-update-expected.txt:
        * storage/indexeddb/database-basics-expected.txt:
        * storage/indexeddb/deleteIndex-expected.txt:
        * storage/indexeddb/factory-cmp-expected.txt:
        * storage/indexeddb/get-keyrange-expected.txt:
        * storage/indexeddb/index-basics-expected.txt:
        * storage/indexeddb/index-basics-workers-expected.txt:
        * storage/indexeddb/index-count-expected.txt:
        * storage/indexeddb/index-unique-expected.txt:
        * storage/indexeddb/invalid-keys-expected.txt:
        * storage/indexeddb/key-generator-expected.txt:
        * storage/indexeddb/key-type-array-expected.txt:
        * storage/indexeddb/keypath-edges-expected.txt:
        * storage/indexeddb/keyrange-expected.txt:
        * storage/indexeddb/objectstore-autoincrement-expected.txt:
        * storage/indexeddb/objectstore-basics-expected.txt:
        * storage/indexeddb/objectstore-basics-workers-expected.txt:
        * storage/indexeddb/objectstore-count-expected.txt:
        * storage/indexeddb/open-cursor-expected.txt:
        * storage/indexeddb/readonly-expected.txt:
        * storage/indexeddb/resources/basics.js:
        (test):
        (openCallback):
        * storage/indexeddb/resources/create-and-remove-object-store.js:
        (testCreateAndRemove):
        (cleanDatabase):
        (tryOnceMore):
        * storage/indexeddb/resources/cursor-continue.js:
        (ascendingErrorTestLessThan.request.onsuccess):
        (ascendingErrorTestLessThan):
        (ascendingErrorTestEqual.request.onsuccess):
        (ascendingErrorTestEqual):
        (descendingErrorTestGreaterThan.request.onsuccess):
        (descendingErrorTestGreaterThan):
        (descendingErrorTestEqual.request.onsuccess):
        (descendingErrorTestEqual):
        (onTransactionComplete):
        * storage/indexeddb/resources/cursor-update.js:
        (keyCursor):
        * storage/indexeddb/resources/database-basics.js:
        (testClose):
        * storage/indexeddb/resources/database-quota.js:
        (logError):
        * storage/indexeddb/resources/deleteIndex.js:
        (twiddleIndexes):
        (postTwiddling):
        * storage/indexeddb/resources/factory-cmp.js:
        (testValidKeys):
        (testInvalidKeys):
        * storage/indexeddb/resources/get-keyrange.js:
        (getNullTest):
        * storage/indexeddb/resources/index-basics.js:
        (index3Count):
        * storage/indexeddb/resources/index-count.js:
        * storage/indexeddb/resources/index-unique.js:
        (addMoreDataFailed):
        * storage/indexeddb/resources/invalid-keys.js:
        * storage/indexeddb/resources/key-generator.js:
        * storage/indexeddb/resources/key-type-array.js:
        (testDepthLimits):
        * storage/indexeddb/resources/keypath-edges.js:
        * storage/indexeddb/resources/keyrange.js:
        (test):
        * storage/indexeddb/resources/objectstore-autoincrement.js:
        (getAbrahamSuccess):
        * storage/indexeddb/resources/objectstore-basics.js:
        (setVersionSuccess):
        (createIndex):
        (addAgainFailure):
        (removeSuccessButNotThere):
        (testPreConditions.request.onsuccess):
        (testPreConditions):
        * storage/indexeddb/resources/objectstore-count.js:
        * storage/indexeddb/resources/open-cursor.js:
        (cursorWithKeySuccess):
        (cursorSuccess):
        * storage/indexeddb/resources/readonly.js:
        (openSuccess):
        * storage/indexeddb/resources/set_version_queue.js:
        (connectionError):
        * storage/indexeddb/resources/shared.js:
        (unexpectedErrorCallback):
        (evalAndExpectException):
        * storage/indexeddb/resources/transaction-abort-workers.js:
        (transactionAborted):
        (transactionCompleted):
        (timeoutTest.transaction.onabort):
        (timeoutTest):
        (errorTransactionAborted):
        * storage/indexeddb/resources/transaction-abort.js:
        (firstAdd):
        (secondAdd):
        (transactionAborted):
        * storage/indexeddb/resources/transaction-after-close.js:
        (firstTransactionComplete):
        * storage/indexeddb/resources/transaction-and-objectstore-calls.js:
        (created):
        (afterComplete):
        * storage/indexeddb/resources/transaction-basics.js:
        (testInactiveAbortedTransaction):
        (testInactiveCompletedTransaction):
        (testInvalidMode):
        * storage/indexeddb/resources/transaction-read-only.js:
        (setVersionDone):
        (gotCursor):
        * storage/indexeddb/set_version_queue-expected.txt:
        * storage/indexeddb/transaction-abort-expected.txt:
        * storage/indexeddb/transaction-abort-workers-expected.txt:
        * storage/indexeddb/transaction-after-close-expected.txt:
        * storage/indexeddb/transaction-and-objectstore-calls-expected.txt:
        * storage/indexeddb/transaction-basics-expected.txt:
        * storage/indexeddb/transaction-read-only-expected.txt:

2012-05-30  Emil A Eklund  <eae@chromium.org>

        Unreviewed chromium mac rebaseline for changes in r118978.

        * platform/chromium-mac/fast/backgrounds/background-position-parsing-expected.png:
        * platform/chromium-mac/fast/backgrounds/background-position-parsing-expected.txt:
        * platform/chromium-mac/fast/multicol/span/span-as-immediate-columns-child-expected.png:
        * platform/chromium-mac/fast/multicol/span/span-as-immediate-columns-child-expected.txt:
        * platform/chromium/test_expectations.txt:

2012-05-30  Emil A Eklund  <eae@chromium.org>

        Floats wraps incorrectly when top edge has subpixel precision
        https://bugs.webkit.org/show_bug.cgi?id=87688

        Reviewed by Levi Weintraub.
        
        When computing the logical left and right offsets for a float we
        incorrectly floored the logical top when passing it to the float search
        adapter. This caused it to return incorrect values where the floored and
        pixel snapped values are not the same.

        * fast/sub-pixel/float-wrap-with-subpixel-top-expected.html: Added.
        * fast/sub-pixel/float-wrap-with-subpixel-top.html: Added.
        * platform/chromium-linux/fast/backgrounds/background-position-parsing-expected.png:
        * platform/chromium-linux/fast/backgrounds/background-position-parsing-expected.txt:
        * platform/chromium-win/fast/multicol/span/span-as-immediate-columns-child-expected.txt:
        * platform/chromium/test_expectations.txt:
        * platform/efl/Skipped:
        * platform/gtk-wk2/Skipped:
        * platform/mac-lion/Skipped:
        * platform/mac-snowleopard/Skipped:
        * platform/mac-wk2/Skipped:
        * platform/mac/Skipped:
        * platform/qt-4.8/Skipped:
        * platform/qt/Skipped:
        * platform/win-wk2/Skipped:
        * platform/win-xp/Skipped:
        * platform/win/Skipped:
        * platform/wincairo/Skipped:
        * platform/wk2/Skipped:

2012-05-30  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] EFL's DRT should print the number of MessagePorts for new each new intent
        https://bugs.webkit.org/show_bug.cgi?id=86841

        Reviewed by Adam Barth.

        Unskip the test case which requires the DumpRenderTree to print out
        the number of MessagePorts for each new intent.

        * platform/efl/test_expectations.txt:

2012-05-30  Emil A Eklund  <eae@chromium.org>

        Inline blocks with margin wrap incorrectly with subpixel layout turned on
        https://bugs.webkit.org/show_bug.cgi?id=87897

        Reviewed by Levi Weintraub.

        Add test for inline blocks with a subpixel margin. Marked as skipped on
        all platforms but chromium as subpixel layout has not yet been enabled
        for any other platform.

        * fast/sub-pixel/inline-block-with-margin-expected.html: Added.
        * fast/sub-pixel/inline-block-with-margin.html: Added.
        * platform/efl/Skipped:
        * platform/gtk-wk2/Skipped:
        * platform/mac-lion/Skipped:
        * platform/mac-snowleopard/Skipped:
        * platform/mac-wk2/Skipped:
        * platform/mac/Skipped:
        * platform/qt-4.8/Skipped:
        * platform/qt/Skipped:
        * platform/win-wk2/Skipped:
        * platform/win-xp/Skipped:
        * platform/win/Skipped:
        * platform/wincairo/Skipped:
        * platform/wk2/Skipped:

2012-05-30  Jessie Berlin  <jberlin@apple.com>

        [Qt][GTK][Mac][Win] New plugins/npruntime/delete-plugin-within-* tests introduced in r117012
        fail/crash
        https://bugs.webkit.org/show_bug.cgi?id=86443

        Skip these tests on Windows because they crash.

        * platform/win/Skipped:

2012-05-30  Raphael Kubo da Costa  <rakuco@webkit.org>

        [EFL] Unreviewed gardening in fast/transforms.

        Unskip passing tests that just needed baselines and update the
        PNGs for a few ones which were already passing.

        * platform/efl/Skipped:
        * platform/efl/fast/transforms/bounding-rect-zoom-expected.png:
        * platform/efl/fast/transforms/diamond-expected.png:
        * platform/efl/fast/transforms/identity-matrix-expected.png:
        * platform/efl/fast/transforms/overflow-with-transform-expected.png:
        * platform/efl/fast/transforms/rotated-transform-affects-scrolling-1-expected.png:
        * platform/efl/fast/transforms/rotated-transform-affects-scrolling-2-expected.png:
        * platform/efl/fast/transforms/skew-with-unitless-zero-expected.png:
        * platform/efl/fast/transforms/transform-on-inline-expected.png:
        * platform/efl/fast/transforms/transform-positioned-ancestor-expected.png:
        * platform/efl/fast/transforms/transform-table-row-expected.png:
        * platform/efl/fast/transforms/transformed-caret-expected.png:
        * platform/efl/fast/transforms/transformed-caret-expected.txt:
        * platform/efl/fast/transforms/transformed-focused-text-input-expected.png:
        * platform/efl/fast/transforms/transformed-focused-text-input-expected.txt:
        * platform/efl/fast/transforms/transforms-with-opacity-expected.png:

2012-05-30  Raphael Kubo da Costa  <rakuco@webkit.org>

        [EFL] Unreviewed gardening in fast/parser.

        Unskip a passing test that just needed a baseline and update the
        PNGs for a few ones which were already passing.

        * platform/efl/Skipped:
        * platform/efl/fast/parser/001-expected.png:
        * platform/efl/fast/parser/bad-xml-slash-expected.png:
        * platform/efl/fast/parser/broken-comments-vs-parsing-mode-expected.png:
        * platform/efl/fast/parser/document-write-option-expected.png:
        * platform/efl/fast/parser/entity-comment-in-style-expected.png:
        * platform/efl/fast/parser/entity-comment-in-style-expected.txt:
        * platform/efl/fast/parser/entity-comment-in-textarea-expected.png:
        * platform/efl/fast/parser/fonts-expected.png:
        * platform/efl/fast/parser/nofoo-tags-inside-paragraph-expected.png:
        * platform/efl/fast/parser/open-comment-in-style-expected.png:
        * platform/efl/fast/parser/open-comment-in-textarea-expected.png:
        * platform/efl/fast/parser/title-error-test-expected.png:
        * platform/efl/fast/parser/xhtml-alternate-entities-expected.png:
        * platform/efl/test_expectations.txt:

2012-05-30  Tony Chang  <tony@chromium.org>

        rename flexbox css values from justify and distribute to space-between and space-around
        https://bugs.webkit.org/show_bug.cgi?id=87867

        Reviewed by Ojan Vafai.

        * css3/flexbox/columns-auto-size.html:
        * css3/flexbox/css-properties-expected.txt:
        * css3/flexbox/css-properties.html:
        * css3/flexbox/flex-pack.html:
        * css3/flexbox/multiline-line-pack-horizontal-column-expected.txt:
        * css3/flexbox/multiline-line-pack-horizontal-column.html:
        * css3/flexbox/multiline-line-pack.html:
        * css3/flexbox/multiline-pack-expected.txt:
        * css3/flexbox/multiline-pack.html:
        * css3/flexbox/position-absolute-child.html:
        * css3/flexbox/true-centering.html:

2012-05-30  Rafael Weinstein  <rafaelw@chromium.org>

        [Chromium] rebaseline fast/dom/Window/mozilla-focus-blur.html


        * platform/chromium/fast/dom/Window/mozilla-focus-blur-expected.txt: Added.

2012-05-30  Jessie Berlin  <jberlin@apple.com>

        [Win] Many editing tests failing
        https://bugs.webkit.org/show_bug.cgi?id=87890

        Add/updated expected (failing?) results for Windows editing tests.

        * platform/win/editing/deleting/delete-start-block-expected.txt: Added.
        * platform/win/editing/deleting/regional-indicators-expected.txt: Added.
        * platform/win/editing/input: Added.
        * platform/win/editing/input/reveal-caret-of-multiline-contenteditable-expected.txt: Added.
        * platform/win/editing/input/reveal-caret-of-multiline-input-expected.txt: Added.
        * platform/win/editing/input/scroll-to-edge-if-line-break-at-end-of-document-contenteditable-expected.txt: Added.
        * platform/win/editing/selection/caret-ltr-right-expected.txt:
        * platform/win/editing/selection/caret-rtl-2-left-expected.txt:
        * platform/win/editing/selection/caret-rtl-right-expected.txt:
        * platform/win/editing/selection/select-from-textfield-outwards-expected.txt:
        * platform/win/editing/selection/transformed-selection-rects-expected.txt:
        * platform/win/editing/spelling/grammar-paste-expected.txt: Added.
        * platform/win/editing/spelling/spellcheck-async-mutation-expected.txt: Added.
        * platform/win/editing/spelling/spellcheck-queue-expected.txt: Added.
        * platform/win/editing/spelling/spellcheck-sequencenum-expected.txt: Added.

2012-05-29  Adrienne Walker  <enne@google.com>

        Transformed fixed position layers have an incorrect overlap map entry
        https://bugs.webkit.org/show_bug.cgi?id=64201

        Reviewed by Darin Adler.

        Add a test for a layer with both fixed position and a transform to
        verify that this is considered as fixed position with respect to the
        root.

        Also, add a test with a child layer with fixed position and a parent
        with a transform to verify that the child is not considered as fixed
        position with respect to the root.

        * compositing/layer-creation/fixed-position-and-transform-expected.png: Added.
        * compositing/layer-creation/fixed-position-and-transform-expected.txt: Added.
        * compositing/layer-creation/fixed-position-and-transform.html: Added.
        * compositing/layer-creation/fixed-position-under-transform-expected.png: Added.
        * compositing/layer-creation/fixed-position-under-transform-expected.txt: Added.
        * compositing/layer-creation/fixed-position-under-transform.html: Added.

2012-05-30  Oliver Hunt  <oliver@apple.com>

        DFG does not correctly handle exceptions caught in the LLInt
        https://bugs.webkit.org/show_bug.cgi?id=87885

        Reviewed by Filip Pizlo.

        Pile of code to convince the DFG to throw an exception that ends up being caught
        in the LLInt

        * fast/js/exception-propagate-from-dfg-to-llint-expected.txt: Added.
        * fast/js/exception-propagate-from-dfg-to-llint.html: Added.
        * fast/js/script-tests/exception-propagate-from-dfg-to-llint.js: Added.
        (o.toString):
        (h):
        (g):
        (f1):
        (f2):

2012-05-30  Ulan Degenbaev  <ulan@chromium.org>

        [v8] Crash after redefining setter on typed array to a number
        https://bugs.webkit.org/show_bug.cgi?id=87862

        Reviewed by Kenneth Russell.

        Remove calls to typed array set() method from C++.
        Store the copying script as a hidden property of a typed array prototype.

        * fast/canvas/webgl/array-override-set-expected.txt: Added.
        * fast/canvas/webgl/array-override-set.html: Added.

2012-05-30  Stephen Chenney  <schenney@chromium.org>

        http/tests/cache/subresource-expiration-2.html is slow on Linux

        Unreviewed Chromium test expectations expansion.

        * platform/chromium/test_expectations.txt:

2012-05-30  Tim Horton  <timothy_horton@apple.com>

        fast/dom/Window/mozilla-focus-blur.html is failing on Mac
        https://bugs.webkit.org/show_bug.cgi?id=87884
        <rdar://problem/11558864>

        Unreviewed failing baselines after http://trac.webkit.org/changeset/118916.

        * platform/mac/fast/dom/Window/mozilla-focus-blur-expected.txt: Added.

2012-05-30  Stephen Chenney  <schenney@chromium.org>

        Layout Test perf/mouse-event.html is flaky on Linux
        https://bugs.webkit.org/show_bug.cgi?id=87886

        Unreviewed Chromium expectations update for perf/mouse-event.html

        * platform/chromium/test_expectations.txt:

2012-05-30  Stephen Chenney  <schenney@chromium.org>

        Unreviewed Chromium expectations update for http/tests/media/media-source/video-media-source-errors.html

        * platform/chromium/test_expectations.txt:

2012-05-30  Alexey Proskuryakov  <ap@apple.com>

        * platform/wk2/Skipped: Skipping newly added file-last-modified-after-delete.html,
        because WTR doesn't implement beginDragWithFiles.

2012-05-30  Shinya Kawanaka  <shinyak@chromium.org>

        comparePositions in htmlediting should consider nested Shadow DOM.
        https://bugs.webkit.org/show_bug.cgi?id=87623

        Reviewed by Ryosuke Niwa.

        * editing/shadow/compare-positions-in-nested-shadow-expected.txt: Added.
        * editing/shadow/compare-positions-in-nested-shadow.html: Added.

2012-05-30  Erik Arvidsson  <arv@chromium.org>

        [V8] Clean up V8LazyEventListener to use one less function call
        https://bugs.webkit.org/show_bug.cgi?id=87785

        Reviewed by Kentaro Hara.

        Instead of relying on 'arguments' we rely on 'this'. 'this' cannot be intercepted by a
        with-statement so it is safe to use that to bind the context objects. This allows us to
        remove one layer of function indirection in the generated code.

        * platform/chromium-win/inspector/debugger/debugger-scripts-expected.txt:

2012-05-30  Stephen Chenney  <schenney@chromium.org>

        Unreviewed Chromium test expectations for fast/layers/scroll-with-transform-composited-layer.html

        * platform/chromium/test_expectations.txt:

2012-05-30  Xueqing Huang  <huangxueqing@baidu.com>

        The tests listed in win/Skipped should be removed after this change, but some of these need to rebaseline in Windows, we do that in bug#87610.
        https://bugs.webkit.org/show_bug.cgi?id=86296

        Reviewed by Tony Chang.

        * platform/win/Skipped:

2012-05-30  Alexey Proskuryakov  <ap@apple.com>

        * fast/files/read-blob-async-expected.txt: Updating results to what Mac WK1 bot sees
        (two additional "result: null" lines).

2012-05-30  David Barton  <dbarton@mathscribe.com>

        mathml/presentation/mo-stretch.html and mroot-pref-width.html tests fail on Mac
        https://bugs.webkit.org/show_bug.cgi?id=86786

        Somehow these weren't included in r118935.

        Unreviewed gardening.

        * platform/mac-lion/Skipped:
        * platform/mac/Skipped:

2012-05-30  Stephen Chenney  <schenney@chromium.org>

        Unreviewed Chromium test expectations update.

        tex-image-with-format-and-type.html
        tex-image-with-format-and-type.html
        formaction-attribute.html
        terminate-during-sync-operation.html

        * platform/chromium/test_expectations.txt:

2012-05-30  Marcelo Lira  <marcelo.lira@openbossa.org>

        WebKit2: Implement layoutTestController.setPluginsEnabled() in WebKitTestRunner.
        https://bugs.webkit.org/show_bug.cgi?id=58593

        Unskip passing tests.

        Reviewed by Darin Adler.

        * platform/wk2/Skipped:

2012-05-30  Rafael Weinstein  <rafaelw@chromium.org>

        Updating test expectations (css3/filters/custom-filter-property-computed-style,
        fast/frames/cached-frame-counter).

        * platform/chromium/test_expectations.txt:

2012-05-30  David Barton  <dbarton@mathscribe.com>

        mathml/presentation/mo-stretch.html and mroot-pref-width.html tests fail on Mac
        https://bugs.webkit.org/show_bug.cgi?id=86786

        The test result files below contain slightly improved metrics (usually by a single
        pixel) and some other very minor (visually undetectable) pixel changes. To be honest,
        I'm not sure what caused all these changes, since a lot of mathml tests have been
        skipped or failing for a while. The small metric improvements were not caused by changes
        in mathml code - perhaps LayoutUnit rounding or other 1-pixel corrections in logical
        width code? At any rate, I'd like to rebaseline these tests, and unskip them and other
        mathml tests.

        Unreviewed rebaselining/gardening.

        * platform/mac-lion/Skipped:
        * platform/mac/Skipped:
        * platform/mac/mathml/presentation/attributes-expected.png:
        * platform/mac/mathml/presentation/fenced-mi-expected.png:
        * platform/mac/mathml/presentation/fractions-expected.png:
        * platform/mac/mathml/presentation/fractions-expected.txt:
        * platform/mac/mathml/presentation/fractions-vertical-alignment-expected.png:
        * platform/mac/mathml/presentation/fractions-vertical-alignment-expected.txt:
        * platform/mac/mathml/presentation/mo-stretch-expected.png:
        * platform/mac/mathml/presentation/mo-stretch-expected.txt:
        * platform/mac/mathml/presentation/roots-expected.png:
        * platform/mac/mathml/presentation/subsup-expected.png:
        * platform/mac/mathml/presentation/subsup-expected.txt:

2012-05-30  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>

        [EFL][DRT] http/tests/navigation/new-window-redirect-history.html does not pass
        https://bugs.webkit.org/show_bug.cgi?id=87848

        Reviewed by Csaba Osztrogonác.

        * platform/efl/Skipped: Unskipped http/tests/navigation/new-window-redirect-history.html.

2012-05-30  Sergio Villar Senin  <svillar@igalia.com>

        Unreviewed, removed some tests from the test_expectations file as
        they have been regularly passing in the 3 GTK bots for some time.

        * platform/gtk/test_expectations.txt:

2012-05-30  Jessie Berlin  <jberlin@apple.com>

        [Win] REGRESSION(r118018) fast/js/names.html failing due to JavaScriptExperiments not being
        enabled on Windows
        https://bugs.webkit.org/show_bug.cgi?id=87858

        Skip the test on Windows to get the bots greener.

        * platform/win/Skipped:

2012-05-30  Jessie Berlin  <jberlin@apple.com>

        More Windows test cleanup.

        Update the Skipped list and tests for features turned on/off on Windows.

        * platform/win/Skipped:
        * platform/win/fast/dom/constructed-objects-prototypes-expected.txt: Added.
        * platform/win/fast/js/global-constructors-expected.txt:

2012-05-30  Kinuko Yasuda  <kinuko@chromium.org>

        File.lastModifiedDate must return null if the modified time info is not available
        https://bugs.webkit.org/show_bug.cgi?id=87709

        Reviewed by Kentaro Hara.

        * http/tests/local/fileapi/file-last-modified-after-delete-expected.txt: Added.
        * http/tests/local/fileapi/file-last-modified-after-delete.html: Added.
        * http/tests/local/fileapi/resources/temp-file-utils.js: Added.
        * http/tests/local/fileapi/script-tests/file-last-modified-after-delete.js: Added.
        * http/tests/local/fileapi/script-tests/send-sliced-dragged-file.js: Factored out common temp-file related functions into temp-file-utils.js.
        * http/tests/local/fileapi/send-sliced-dragged-file.html:

2012-05-30  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>

        [EFL][DRT] EFL's DRT needs "postProgressFinishedNotification" message
        https://bugs.webkit.org/show_bug.cgi?id=87833

        Reviewed by Tor Arne Vestbø.

        * platform/efl/Skipped: Unskipped http/tests/loading/progress-finished-callback.html.

2012-05-30  Stephen Chenney  <schenney@chromium.org>

        [Chromium] Layout Test http/tests/media/media-source/webm/video-media-source-*.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=85952

        Unreviewed Chromium expectations update to broaden expectations.

        * platform/chromium/test_expectations.txt:

2012-05-30  Jochen Eisinger  <jochen@chromium.org>

        Match Firefox restrictions to window.blur and window.focus
        https://bugs.webkit.org/show_bug.cgi?id=86969

        Reviewed by Adam Barth.

        * fast/dom/HTMLDocument/hasFocus.html:
        * fast/dom/Window/mozilla-focus-blur-expected.txt: Added.
        * fast/dom/Window/mozilla-focus-blur.html: Added.
        * fast/notifications/notifications-click-event-focus-expected.txt: Added.
        * fast/notifications/notifications-click-event-focus.html: Added.

2012-05-30  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening, updating platform-specific baselines after r118902.

        * platform/gtk/fast/js/global-constructors-expected.txt:

2012-05-30  Zoltan Arvai  <zarvai@inf.u-szeged.hu>

        [Qt] Gardening. Shadow DOM is disabled on Qt.

        Reviewed by Csaba Osztrogonác.

        * platform/qt/Skipped: Skip fast/dom/shadow/shadow-element.html.

2012-05-30  David Barr  <davidbarr@chromium.org>

        Update test expectations for tests duplicated in Skipped
        https://bugs.webkit.org/show_bug.cgi?id=87822

        Unreviewed gardening; updating test expectations.

        * platform/mac/Skipped:
        * platform/mac/test_expectations.txt:
        * platform/qt/Skipped:
        * platform/qt/test_expectations.txt:
        * platform/qt-5.0-wk1/Skipped:
        * platform/qt-mac/Skipped:

2012-05-30  David Barr  <davidbarr@chromium.org>

        [GTK] Update test expectations after r118841.
        https://bugs.webkit.org/show_bug.cgi?id=87827

        Unreviewed gardening; updating test expectations

        * platform/gtk/test_expectations.txt:

2012-05-30  MORITA Hajime  <morrita@google.com>

        [Shadow DOM] HTMLContentElement and HTMLShadowElement constructors should be visible.
        https://bugs.webkit.org/show_bug.cgi?id=87818

        Added constructor checks.
        
        Reviewed by Kentaro Hara.

        * fast/dom/shadow/content-element-api-expected.txt:
        * fast/dom/shadow/content-element-api.html:
        * fast/dom/shadow/shadow-element-expected.txt:
        * fast/dom/shadow/shadow-element.html:

2012-05-30  Mike Lawther  <mikelawther@chromium.org>

        CSS3 calc: Implement CSSOM support
        https://bugs.webkit.org/show_bug.cgi?id=84551

        Reviewed by Ryosuke Niwa.

        * css3/calc/cssom-expected.txt: Added.
        * css3/calc/cssom.html: Added.

2012-05-29  Li Yin  <li.yin@intel.com>

        [FileAPI] The result attribute of FileReader shuold use null to replace empty string
        https://bugs.webkit.org/show_bug.cgi?id=87578

        Reviewed by Jian Li.

        Spec: http://www.w3.org/TR/FileAPI/#dfn-result
        If the readyState is EMPTY (no read method has been called) or an error in
        reading the File or Blob has occurred (using any read method), then the result
        attribute MUST return null.

        Currently, webkit return empty string, not null.

        * fast/files/read-file-async-expected.txt:
        * fast/files/resources/read-common.js:
        (logResult):
        (loadFailed):
        * fast/files/resources/read-file-test-cases.js:
        (testReadAgainAfterFailedReadStep1):
        * fast/files/workers/worker-read-file-async-expected.txt:

2012-05-29  Kent Tamura  <tkent@chromium.org>

        [Chromium] Test expectation update.

        Rebaseline for placeholder-related tests.

        * platform/chromium-linux/fast/forms/date/date-appearance-expected.txt:
        * platform/chromium-linux/fast/forms/input-placeholder-paint-order-expected.png: Added.
        * platform/chromium-linux/fast/forms/placeholder-position-expected.png:
        * platform/chromium-linux/fast/forms/search-styled-expected.txt:
        * platform/chromium-linux/fast/forms/textarea/textarea-placeholder-paint-order-expected.png: Added.
        * platform/chromium-mac-leopard/fast/forms/input-placeholder-paint-order-expected.png: Added.
        * platform/chromium-mac-leopard/fast/forms/textarea/textarea-placeholder-paint-order-expected.png: Added.
        * platform/chromium-mac-snowleopard/fast/forms/input-placeholder-paint-order-expected.txt: Removed.
        * platform/chromium-mac-snowleopard/fast/forms/textarea/textarea-placeholder-paint-order-expected.txt: Removed.
        * platform/chromium-mac/fast/css/text-overflow-input-expected.png:
        * platform/chromium-mac/fast/forms/date/date-appearance-expected.txt:
        * platform/chromium-mac/fast/forms/input-placeholder-paint-order-expected.png: Added.
        * platform/chromium-mac/fast/forms/placeholder-pseudo-style-expected.txt:
        * platform/chromium-mac/fast/forms/textarea-placeholder-pseudo-style-expected.txt:
        * platform/chromium-mac/fast/forms/textarea/textarea-placeholder-paint-order-expected.png: Added.
        * platform/chromium-win-xp/fast/forms/search-styled-expected.txt:
        * platform/chromium-win/fast/css/text-overflow-input-expected.txt:
        * platform/chromium-win/fast/forms/date/date-appearance-expected.txt:
        * platform/chromium-win/fast/forms/input-placeholder-paint-order-expected.png: Added.
        * platform/chromium-win/fast/forms/input-placeholder-visibility-1-expected.txt:
        * platform/chromium-win/fast/forms/input-placeholder-visibility-3-expected.txt:
        * platform/chromium-win/fast/forms/placeholder-position-expected.txt:
        * platform/chromium-win/fast/forms/placeholder-pseudo-style-expected.txt:
        * platform/chromium-win/fast/forms/search-styled-expected.txt:
        * platform/chromium-win/fast/forms/textarea-placeholder-pseudo-style-expected.txt:
        * platform/chromium-win/fast/forms/textarea-placeholder-visibility-1-expected.txt:
        * platform/chromium-win/fast/forms/textarea-placeholder-visibility-2-expected.txt:
        * platform/chromium-win/fast/forms/textarea/textarea-placeholder-paint-order-expected.png: Added.
        * platform/chromium/test_expectations.txt:

2012-05-29  Yoshifumi Inoue  <yosin@chromium.org>

        REGRESSION(r111497): The "option" element doesn't match CSS pseudo class :enabled
        https://bugs.webkit.org/show_bug.cgi?id=87719

        Reviewed by Kent Tamura.

        * platform/chromium-linux/fast/forms/select/optgroup-rendering-expected.png: Updated. Text color of option element is bule from CSS pseudo class option:enabled.
        * platform/chromium/test_expectations.txt: Update comment.

2012-05-29  Hayato Ito  <hayato@chromium.org>

        Refactor shadow-dom-event-dispatching.html.
        https://bugs.webkit.org/show_bug.cgi?id=87626

        Reviewed by Dimitri Glazkov.

        There are badly named functions in shadow-dom-event-dispatching.html.
        e.g. prepareDOMTree1, prepareDOMTree2 and so on.
        That should have better namings which make the intention of each test clear.

        * fast/dom/shadow/shadow-dom-event-dispatching.html:

2012-05-29  Raphael Kubo da Costa  <rakuco@webkit.org>

        [EFL] Gardening after r118845 and r118851.

        Apparently some baselines were not updated as expected, fixing
        that now.

        * platform/efl/fast/ruby/ruby-text-before-after-content-expected.png: Added.
        * platform/efl/fast/ruby/ruby-text-before-after-content-expected.txt:
        * platform/efl/fast/selectors/166-expected.png:
        * platform/efl/fast/selectors/166-expected.txt:
        * platform/efl/fast/selectors/unqualified-hover-strict-expected.png:
        * platform/efl/fast/selectors/unqualified-hover-strict-expected.txt: Added.
        * platform/efl/svg/batik/text/textAnchor-expected.txt:
        * platform/efl/svg/batik/text/textOnPath3-expected.txt:
        * platform/efl/svg/batik/text/verticalTextOnPath-expected.txt:
        * platform/efl/svg/carto.net/tabgroup-expected.txt:
        * platform/efl/transitions/cross-fade-background-image-expected.txt: Added.
        * platform/efl/transitions/cross-fade-border-image-expected.txt: Added.

2012-05-29  Christophe Dumez  <christophe.dumez@intel.com>

        Some Content Security Policy console messages are missing line numbers in JSC
        https://bugs.webkit.org/show_bug.cgi?id=87558

        Reviewed by Adam Barth.

        Remove Mac/EFL/GTK/Qt-specific expectations for Content Security Policy
        tests now that the line numbers are correctly printed.

        * platform/efl/http/tests/security/contentSecurityPolicy/inline-script-blocked-javascript-url-expected.txt: Removed.
        * platform/efl/http/tests/security/contentSecurityPolicy/javascript-url-blocked-expected.txt: Removed.
        * platform/gtk/http/tests/security/contentSecurityPolicy/inline-script-blocked-javascript-url-expected.txt: Removed.
        * platform/gtk/http/tests/security/contentSecurityPolicy/javascript-url-blocked-expected.txt: Removed.
        * platform/mac/http/tests/security/contentSecurityPolicy/inline-script-blocked-javascript-url-expected.txt: Removed.
        * platform/mac/http/tests/security/contentSecurityPolicy/javascript-url-blocked-expected.txt: Removed.
        * platform/qt/http/tests/security/contentSecurityPolicy/inline-script-blocked-javascript-url-expected.txt: Removed.
        * platform/qt/http/tests/security/contentSecurityPolicy/javascript-url-blocked-expected.txt: Removed.

2012-05-29  Filip Pizlo  <fpizlo@apple.com>

        DFG should keep captured variables alive until the (inline) return.
        https://bugs.webkit.org/show_bug.cgi?id=87205

        Reviewed by Gavin Barraclough.

        * fast/js/dfg-inline-arguments-osr-exit-and-capture-expected.txt: Added.
        * fast/js/dfg-inline-arguments-osr-exit-and-capture.html: Added.
        * fast/js/script-tests/dfg-inline-arguments-osr-exit-and-capture.js: Added.
        (foo):
        (bar):
        (baz):

2012-05-29  Alexis Menard  <alexis.menard@openbossa.org>

        [CSS3 Backgrounds and Borders] Implement box-decoration-break parsing.
        https://bugs.webkit.org/show_bug.cgi?id=87678

        Reviewed by Eric Seidel.

        Add a new test to cover the parsing part of the new css property. Also rebase the
        existing tests which are listing the css properties of the style.

        * fast/box-decoration-break/box-decoration-break-parsing-expected.txt: Added.
        * fast/box-decoration-break/box-decoration-break-parsing.html: Added.
        * fast/css/getComputedStyle/computed-style-expected.txt:
        * fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/chromium-linux-x86/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-linux/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-mac-leopard/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/chromium-mac-leopard/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-mac-snowleopard/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/chromium-mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/chromium-mac/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-win-vista/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-win-xp/svg/css/getComputedStyle-basic-expected.txt:
        * platform/chromium-win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/chromium-win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/chromium-win/svg/css/getComputedStyle-basic-expected.txt:
        * platform/gtk/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/gtk/svg/css/getComputedStyle-basic-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/mac/svg/css/getComputedStyle-basic-expected.txt:
        * platform/qt/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * platform/qt/svg/css/getComputedStyle-basic-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-expected.txt:
        * platform/win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
        * svg/css/getComputedStyle-basic-expected.txt:

2012-05-29  David Barr  <davidbarr@chromium.org>

        [text-overflow: ellipsis] WebKit should ignore the ellipsis for the purpose of dispatching mouse events
        https://bugs.webkit.org/show_bug.cgi?id=63781

        Reviewed by Eric Seidel.

        * fast/css/text-overflow-ellipsis-hit-test-expected.txt: Added.
        * fast/css/text-overflow-ellipsis-hit-test.html: Added.

2012-05-29  Jessie Berlin  <jberlin@apple.com>

        <progress> element is unsupported on Windows
        https://bugs.webkit.org/show_bug.cgi?id=49769

        Add platform-specific results for tests that use the progress element on Windows.

        * platform/win/fast/forms/label: Added.
        * platform/win/fast/forms/label/labelable-elements-expected.txt: Added.
        * platform/win/fast/forms/label/labels-add-htmlFor-label-expected.txt: Added.
        * platform/win/fast/forms/label/labels-add-parent-label-expected.txt: Added.
        * platform/win/fast/forms/label/labels-change-htmlFor-attribute-expected.txt: Added.
        * platform/win/fast/forms/label/labels-multiple-sibling-labels-expected.txt: Added.
        * platform/win/fast/forms/label/labels-parent-and-sibling-labels-expected.txt: Added.
        * platform/win/fast/forms/label/labels-remove-htmlFor-attribute-expected.txt: Added.
        * platform/win/fast/forms/label/labels-remove-htmlFor-label-expected.txt: Added.
        * platform/win/fast/forms/label/labels-remove-parent-label-expected.txt: Added.
        * platform/win/fast/forms/label/labels-set-htmlFor-attribute-expected.txt: Added.

2012-05-29  Rafael Weinstein  <rafaelw@chromium.org>

        Updating test expectation (media/track/track-cues-missed CRASH).

        * platform/chromium/test_expectations.txt:

2012-05-29  Raphael Kubo da Costa  <rakuco@webkit.org>

        [EFL] Unreviewed gardening.

        Unskip a lot of fast/selectors tests which were really passing all
        the time, they just needed updated baselines after the jhbuild and
        font commits.

        * platform/efl/Skipped:
        * platform/efl/fast/selectors/001-expected.png:
        * platform/efl/fast/selectors/002-expected.png:
        * platform/efl/fast/selectors/003-expected.png:
        * platform/efl/fast/selectors/004-expected.png:
        * platform/efl/fast/selectors/005-expected.png:
        * platform/efl/fast/selectors/006-expected.png:
        * platform/efl/fast/selectors/007a-expected.png:
        * platform/efl/fast/selectors/007b-expected.png:
        * platform/efl/fast/selectors/008-expected.png:
        * platform/efl/fast/selectors/009-expected.png:
        * platform/efl/fast/selectors/010-expected.png:
        * platform/efl/fast/selectors/011-expected.png:
        * platform/efl/fast/selectors/012-expected.png:
        * platform/efl/fast/selectors/013-expected.png:
        * platform/efl/fast/selectors/014-expected.png:
        * platform/efl/fast/selectors/015-expected.png:
        * platform/efl/fast/selectors/018-expected.png:
        * platform/efl/fast/selectors/018b-expected.png:
        * platform/efl/fast/selectors/021-expected.png:
        * platform/efl/fast/selectors/021b-expected.png:
        * platform/efl/fast/selectors/032-expected.png:
        * platform/efl/fast/selectors/034-expected.png:
        * platform/efl/fast/selectors/038-expected.png:
        * platform/efl/fast/selectors/040-expected.png:
        * platform/efl/fast/selectors/043-expected.png:
        * platform/efl/fast/selectors/043b-expected.png:
        * platform/efl/fast/selectors/044-expected.png:
        * platform/efl/fast/selectors/044b-expected.png:
        * platform/efl/fast/selectors/044c-expected.png:
        * platform/efl/fast/selectors/044d-expected.png:
        * platform/efl/fast/selectors/045-expected.png:
        * platform/efl/fast/selectors/045b-expected.png:
        * platform/efl/fast/selectors/045c-expected.png:
        * platform/efl/fast/selectors/046-expected.png:
        * platform/efl/fast/selectors/054-expected.png:
        * platform/efl/fast/selectors/056-expected.png:
        * platform/efl/fast/selectors/058-expected.png:
        * platform/efl/fast/selectors/059-expected.png:
        * platform/efl/fast/selectors/060-expected.png:
        * platform/efl/fast/selectors/061-expected.png:
        * platform/efl/fast/selectors/063-expected.png:
        * platform/efl/fast/selectors/064-expected.png:
        * platform/efl/fast/selectors/066-expected.png:
        * platform/efl/fast/selectors/066b-expected.png:
        * platform/efl/fast/selectors/072-expected.png:
        * platform/efl/fast/selectors/072b-expected.png:
        * platform/efl/fast/selectors/077-expected.png:
        * platform/efl/fast/selectors/077b-expected.png:
        * platform/efl/fast/selectors/078b-expected.png:
        * platform/efl/fast/selectors/083-expected.png:
        * platform/efl/fast/selectors/087b-expected.png:
        * platform/efl/fast/selectors/090b-expected.png:
        * platform/efl/fast/selectors/154-expected.png:
        * platform/efl/fast/selectors/155-expected.png:
        * platform/efl/fast/selectors/155a-expected.png:
        * platform/efl/fast/selectors/155b-expected.png:
        * platform/efl/fast/selectors/155c-expected.png:
        * platform/efl/fast/selectors/155d-expected.png:
        * platform/efl/fast/selectors/156b-expected.png:
        * platform/efl/fast/selectors/157-expected.png:
        * platform/efl/fast/selectors/158-expected.png:
        * platform/efl/fast/selectors/160-expected.png:
        * platform/efl/fast/selectors/168-expected.png:
        * platform/efl/fast/selectors/168a-expected.png:
        * platform/efl/fast/selectors/169-expected.png:
        * platform/efl/fast/selectors/169a-expected.png:
        * platform/efl/fast/selectors/lang-inheritance-expected.png:
        * platform/efl/fast/selectors/lang-inheritance2-expected.png:
        * platform/efl/fast/selectors/lang-vs-xml-lang-expected.png:
        * platform/efl/fast/selectors/lang-vs-xml-lang-xhtml-expected.png:
        * platform/efl/fast/selectors/visited-descendant-expected.png:

2012-05-29  Raphael Kubo da Costa  <rakuco@webkit.org>

        [EFL] Unreviewed gardening.

        House cleaning on Skipped: remove tests which do not exist, unskip
        some which are passing and add expectations for some which were
        lacking them.

        * platform/efl/Skipped:
        * platform/efl/editing/selection/fake-doubleclick-expected.png: Added.
        * platform/efl/editing/selection/fake-doubleclick-expected.txt: Added.
        * platform/efl/fast/borders/border-image-slice-constrained-expected.png: Added.
        * platform/efl/fast/borders/border-image-slice-constrained-expected.txt: Added.
        * platform/efl/fast/borders/border-mixed-alpha-expected.png: Added.
        * platform/efl/fast/borders/borderRadiusArcs01-expected.txt: Added.
        * platform/efl/fast/borders/borderRadiusDouble01-expected.txt: Added.
        * platform/efl/fast/borders/borderRadiusDouble02-expected.txt: Added.
        * platform/efl/fast/borders/borderRadiusDouble03-expected.txt: Added.
        * platform/efl/fast/borders/borderRadiusGroove01-expected.txt: Added.
        * platform/efl/fast/borders/borderRadiusGroove02-expected.txt: Added.
        * platform/efl/fast/borders/borderRadiusInset01-expected.txt: Added.
        * platform/efl/fast/borders/borderRadiusOutset01-expected.txt: Added.
        * platform/efl/fast/borders/borderRadiusRidge01-expected.txt: Added.
        * platform/efl/fast/borders/scaled-border-image-expected.png: Added.
        * platform/efl/fast/borders/scaled-border-image-expected.txt: Added.
        * platform/efl/fast/forms/input-appearance-disabled-expected.png: Added.
        * platform/efl/fast/forms/input-appearance-disabled-expected.txt: Added.
        * platform/efl/fast/forms/input-appearance-readonly-expected.png: Added.
        * platform/efl/fast/forms/input-appearance-readonly-expected.txt: Added.
        * platform/efl/fast/forms/input-placeholder-visibility-3-expected.png: Added.
        * platform/efl/fast/forms/input-placeholder-visibility-3-expected.txt: Added.
        * platform/efl/fast/forms/textarea-placeholder-visibility-1-expected.png: Added.
        * platform/efl/fast/forms/textarea-placeholder-visibility-1-expected.txt: Added.
        * platform/efl/fast/forms/textarea-placeholder-visibility-2-expected.png: Added.
        * platform/efl/fast/forms/textarea-placeholder-visibility-2-expected.txt: Added.
        * platform/efl/fast/forms/textarea-scrollbar-expected.png: Added.
        * platform/efl/fast/forms/textarea-scrollbar-expected.txt: Added.
        * platform/efl/fast/line-grid/line-grid-floating-expected.png: Added.
        * platform/efl/fast/line-grid/line-grid-floating-expected.txt: Added.
        * platform/efl/fast/line-grid/line-grid-inside-columns-expected.png: Added.
        * platform/efl/fast/line-grid/line-grid-inside-columns-expected.txt: Added.
        * platform/efl/fast/line-grid/line-grid-into-floats-expected.png: Added.
        * platform/efl/fast/line-grid/line-grid-into-floats-expected.txt: Added.
        * platform/efl/fast/line-grid/line-grid-positioned-expected.png: Added.
        * platform/efl/fast/line-grid/line-grid-positioned-expected.txt: Added.
        * platform/efl/fast/repaint/4774354-expected.png: Added.
        * platform/efl/fast/repaint/4774354-expected.txt: Added.
        * platform/efl/fast/repaint/4776765-expected.png: Added.
        * platform/efl/fast/repaint/4776765-expected.txt: Added.
        * platform/efl/fast/repaint/delete-into-nested-block-expected.png: Added.
        * platform/efl/fast/repaint/delete-into-nested-block-expected.txt: Added.
        * platform/efl/fast/repaint/inline-outline-repaint-expected.png: Added.
        * platform/efl/fast/repaint/inline-outline-repaint-expected.txt: Added.
        * platform/efl/fast/repaint/selection-after-delete-expected.png: Added.
        * platform/efl/fast/repaint/selection-after-delete-expected.txt: Added.
        * platform/efl/fast/selectors/159-expected.png: Added.
        * platform/efl/fast/selectors/159-expected.txt: Added.
        * platform/efl/fast/selectors/177a-expected.png: Added.
        * platform/efl/fast/selectors/177a-expected.txt: Added.
        * platform/efl/fast/spatial-navigation/snav-multiple-select-focusring-expected.png: Added.
        * platform/efl/fast/spatial-navigation/snav-multiple-select-focusring-expected.txt: Added.
        * platform/efl/fast/table/colspanMinWidth-vertical-expected.png:
        * platform/efl/fast/table/colspanMinWidth-vertical-expected.txt:
        * platform/efl/fast/text/delete-hard-break-character-expected.png: Added.
        * platform/efl/fast/text/delete-hard-break-character-expected.txt: Added.
        * platform/efl/fast/writing-mode/japanese-ruby-horizontal-bt-expected.png: Added.
        * platform/efl/fast/writing-mode/japanese-ruby-horizontal-bt-expected.txt: Added.
        * platform/efl/mathml/presentation/roots-expected.png: Added.
        * platform/efl/mathml/presentation/roots-expected.txt: Added.
        * platform/efl/mathml/presentation/row-alignment-expected.png: Added.
        * platform/efl/mathml/presentation/row-alignment-expected.txt: Added.
        * platform/efl/media/controls-styling-expected.png: Added.
        * platform/efl/media/controls-styling-expected.txt: Added.
        * platform/efl/svg/batik/text/textAnchor-expected.png: Added.
        * platform/efl/svg/batik/text/textOnPath3-expected.png: Added.
        * platform/efl/svg/batik/text/verticalTextOnPath-expected.png: Added.
        * platform/efl/svg/carto.net/tabgroup-expected.png: Added.
        * platform/efl/transitions/cross-fade-background-image-expected.png: Added.
        * platform/efl/transitions/cross-fade-border-image-expected.png: Added.
        * platform/efl/transitions/default-timing-function-expected.png:
        * platform/efl/transitions/default-timing-function-expected.txt:
        * platform/efl/transitions/move-after-transition-expected.png:
        * platform/efl/transitions/move-after-transition-expected.txt:
        * platform/efl/transitions/svg-text-shadow-transition-expected.png:
        * platform/efl/transitions/svg-text-shadow-transition-expected.txt:

2012-05-29  Rafael Weinstein  <rafaelw@chromium.org>

        Updating test expectations (fast/forms/form-associated-element-removal MISSING).

        * platform/chromium/test_expectations.txt:

2012-05-29  Victor Carbune  <victor@rosedu.org>

        Display cues in the controls area
        https://bugs.webkit.org/show_bug.cgi?id=87591

        Reviewed by Eric Carlson.

        * media/media-volume-slider-rendered-normal-expected.txt: Renamed from LayoutTests/media/video-controls-rendering-toggle-display-none-expected.txt.
        * media/media-volume-slider-rendered-normal.html: Renamed from LayoutTests/media/video-controls-rendering-toggle-display-none.html.
        * platform/chromium/test_expectations.txt: Unmarked tests.
        * platform/efl/test_expectations.txt: Unmarked tests.
        * platform/mac/test_expectations.txt: Unmarked tests.

2012-05-29  Raphael Kubo da Costa  <rakuco@webkit.org>

        [EFL] Gardening. Unskip passing test.

        * platform/efl/Skipped:
        * platform/efl/editing/input/emacs-ctrl-o-expected.png: Added.
        * platform/efl/editing/input/emacs-ctrl-o-expected.txt: Added.

2012-05-29  Alec Flett  <alecflett@chromium.org>

        IndexedDB: Align codes and names for IDB-specific and DOM-specific errors/exceptions
        https://bugs.webkit.org/show_bug.cgi?id=87276

        Reviewed by Tony Chang.

        * storage/indexeddb/constants-expected.txt:
        * storage/indexeddb/resources/constants.js:
        (test):

2012-05-29  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed gardening, skip new failing tests
        because of missing LayoutTestController implementation.

        * platform/qt/Skipped:

2012-05-29  Alexander Shalamov  <alexander.shalamov@intel.com>

        [EFL] Unskip scroll related layout tests
        https://bugs.webkit.org/show_bug.cgi?id=87765

        Unreviewed EFL gardening.

        * platform/efl/Skipped:

2012-05-29  Jessie Berlin  <jberlin@apple.com>

        AX: windows DRT needs to implement ::press
        https://bugs.webkit.org/show_bug.cgi?id=36145

        Add more tests that use press to the Windows Skipped list.

        * platform/win/Skipped:

2012-05-29  Alexey Proskuryakov  <ap@apple.com>

        fast/events/message-port-close.html hits ASSERT in Debug
        https://bugs.webkit.org/show_bug.cgi?id=85811

        * platform/mac/Skipped: I think that it's just this one test with a delayed effect. Skipping
        it, and unskipping a victim.

2012-05-29  Rafael Weinstein  <rafaelw@chromium.org>

        Updating chromium test_expectations (svg/dom/viewspec-parser timeouts)

        * platform/chromium/test_expectations.txt:

2012-05-29  Jessie Berlin  <jberlin@apple.com>

        JSC doesn't support heap profiling.
        https://bugs.webkit.org/show_bug.cgi?id=50485

        Add another heap profiling test to the Mac and Windows Skipped lists.

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

2012-05-29  Alexey Proskuryakov  <ap@apple.com>

        WTR doesn't support beginDragWithFiles.

        * platform/wk2/Skipped: Added fast/files/file-list-test.html

2012-05-29  Jessie Berlin  <jberlin@apple.com>

        Clean up the Windows WK2 Skipped list.

        Update it for the moves / renames in r96918, r102226, and r108612.

        * platform/win-wk2/Skipped:

2012-05-29  Jessie Berlin  <jberlin@apple.com>

        JSC doesn't support heap profiling.
        https://bugs.webkit.org/show_bug.cgi?id=50485

        Add two heap profiling tests to the Windows Skipped list.

        * platform/win/Skipped:

2012-05-29  Julien Chaffraix  <jchaffraix@webkit.org>

        REGRESSION(r111742): box-sizing: border-box doesn't work on fixed table layout
        https://bugs.webkit.org/show_bug.cgi?id=87536

        Reviewed by Tony Chang.

        * fast/table/fixed-table-layout/cell-box-sizing-fixed-table-layout-expected.html: Added.
        * fast/table/fixed-table-layout/cell-box-sizing-fixed-table-layout.html: Added.
        This test covers the regression.

        * fast/table/fixed-table-layout/column-box-sizing-fixed-table-layout-expected.html: Added.
        * fast/table/fixed-table-layout/column-box-sizing-fixed-table-layout.html: Added.
        * fast/table/fixed-table-layout/column-group-box-sizing-fixed-table-layout-expected.html: Added.
        * fast/table/fixed-table-layout/column-group-box-sizing-fixed-table-layout.html: Added.
        * fast/table/fixed-table-layout/column-in-column-group-box-sizing-fixed-table-layout-expected.html: Added.
        * fast/table/fixed-table-layout/column-in-column-group-box-sizing-fixed-table-layout.html: Added.
        Those test ensured I didn't regress and document our current behavior ie that column and column group fixed
        width apply to the cell's border-box.

2012-05-25  Ojan Vafai  <ojan@chromium.org>

        Absolute positioned elements in a relative positioned CSS3 Flexbox fail to display properly
        https://bugs.webkit.org/show_bug.cgi?id=58453

        Reviewed by Tony Chang.

        * css3/flexbox/align-absolute-child-expected.txt: Added.
        * css3/flexbox/align-absolute-child.html: Added.
        * css3/flexbox/position-absolute-child-expected.txt:
        * css3/flexbox/position-absolute-child.html:

2012-05-29  Jessie Berlin  <jberlin@apple.com>

        [Win] ~1/2 of all the iframe seamless tests fail
        https://bugs.webkit.org/show_bug.cgi?id=87543

        Rubber-stamped by Eric Seidel.

        Remove the platform-specific results as they are no longer needed.

        * platform/win/fast/frames/seamless/seamless-basic-expected.txt: Removed.
        * platform/win/fast/frames/seamless/seamless-css-cascade-expected.txt: Removed.
        * platform/win/fast/frames/seamless/seamless-form-get-expected.txt: Removed.
        * platform/win/fast/frames/seamless/seamless-form-get-named-expected.txt: Removed.
        * platform/win/fast/frames/seamless/seamless-form-post-expected.txt: Removed.
        * platform/win/fast/frames/seamless/seamless-form-post-named-expected.txt: Removed.
        * platform/win/fast/frames/seamless/seamless-hyperlink-expected.txt: Removed.
        * platform/win/fast/frames/seamless/seamless-hyperlink-named-expected.txt: Removed.
        * platform/win/fast/frames/seamless/seamless-inherited-document-style-expected.txt: Removed.
        * platform/win/fast/frames/seamless/seamless-window-location-expected.txt: Removed.
        * platform/win/fast/frames/seamless/seamless-window-location-href-expected.txt: Removed.
        * platform/win/fast/frames/seamless/seamless-window-location-sandbox-expected.txt: Removed.
        * platform/win/fast/frames/seamless/seamless-window-open-expected.txt: Removed.

2012-05-29  Abhishek Arya  <inferno@chromium.org>

        Crash due to text fragment destruction when updating first-letter block.
        https://bugs.webkit.org/show_bug.cgi?id=87751

        Reviewed by Eric Seidel.

        * fast/text/text-fragment-first-letter-update-crash-expected.txt: Added.
        * fast/text/text-fragment-first-letter-update-crash.html: Added.

2012-05-29  Thiago Marcos P. Santos  <thiago.santos@intel.com>

        [EFL] Gardening of failing tests and new passes
        https://bugs.webkit.org/show_bug.cgi?id=87754

        Unreviewed gardening.

        * platform/efl/Skipped:
        * platform/efl/fast/forms/select/optgroup-rendering-expected.png: Added.
        * platform/efl/fast/forms/select/optgroup-rendering-expected.txt: Added.
        * platform/efl/test_expectations.txt:

2012-05-29  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r118620.
        http://trac.webkit.org/changeset/118620
        https://bugs.webkit.org/show_bug.cgi?id=87760

        This patch causes regression to read an empty file/blob via
        FileReader (Requested by jianli on #webkit).

        * fast/files/blob-slice-test-expected.txt:
        * fast/files/read-blob-async-expected.txt:
        * fast/files/read-file-async-expected.txt:
        * fast/files/resources/read-common.js:
        (logResult):
        * fast/files/workers/worker-read-blob-async-expected.txt:
        * fast/files/workers/worker-read-file-async-expected.txt:

2012-05-29  Jessie Berlin  <jberlin@apple.com>

        [Win] ASSERT(m_manualStream) failed in PluginView::didFinishLoading running
        fast/loader/reload-zero-byte-plugin.html

        Skip the test on Windows to get the bots greener.

        * platform/win/Skipped:

2012-05-29  Rafael Weinstein  <rafaelw@chromium.org>

        Adding VISTA timeout expectations to a number of viewport tests. Also, narrowing optgroup-clicking.html
        to be just MAC.

        * platform/chromium/test_expectations.txt:

2012-05-29  Victor Carbune  <victor@rosedu.org>

        Update cue event dispatching for zero and negative duration cues
        https://bugs.webkit.org/show_bug.cgi?id=85143

        Reviewed by Eric Carlson.

        * media/track/captions-webvtt/missed-cues.vtt: Added negative
        duration cue and changed a missed cue to have zero-length.
        * media/track/track-cues-missed-expected.txt: Updated.
        * media/track/track-cues-missed.html: Updated.

2012-05-29  MORITA Hajime  <morrita@google.com>

        ShadowRoot.getElementById() returns removed node.
        https://bugs.webkit.org/show_bug.cgi?id=62184

        Reviewed by Dimitri Glazkov.

        * fast/dom/shadow/get-element-by-id-in-shadow-mutation-expected.txt: Added.
        * fast/dom/shadow/get-element-by-id-in-shadow-mutation.html: Added.

2012-05-29  Alexey Proskuryakov  <ap@apple.com>

        * platform/mac/Skipped: Skipping a heap profiler test (unsupported functionality).

2012-05-29  Jessie Berlin  <jberlin@apple.com>

        Regression: fast/forms/select/optgroup-clicking.html is failing / timing out
        https://bugs.webkit.org/show_bug.cgi?id=87748

        This test times out on Mac if there is no interaction with the keyboard. Skip it to keep the
        bots green.

        * platform/mac/Skipped:

2012-05-29  Alexei Filippov  <alexeif@chromium.org>

        Web Inspector: Retainers are missing for all objects
        https://bugs.webkit.org/show_bug.cgi?id=87655

        Reviewed by Yury Semikhatsky.

        * inspector/profiler/heap-snapshot-summary-retainers-expected.txt: Added.
        * inspector/profiler/heap-snapshot-summary-retainers.html: Added.
        * inspector/profiler/heap-snapshot-test.js:
        (initialize_HeapSnapshotTest.):
        (initialize_HeapSnapshotTest):

2012-05-29  Simon Pena  <spena@igalia.com>

        [GTK] fast tests needs rebaseline after r118733
        https://bugs.webkit.org/show_bug.cgi?id=87729

        Unreviewed GTK gardening, updated fast pngs.

        * platform/gtk/fast/forms/input-placeholder-visibility-1-expected.png:
        * platform/gtk/fast/forms/input-placeholder-visibility-3-expected.png:
        * platform/gtk/fast/forms/placeholder-position-expected.png:
        * platform/gtk/fast/forms/placeholder-pseudo-style-expected.png:
        * platform/gtk/fast/forms/search-styled-expected.png:
        * platform/gtk/fast/forms/textarea-placeholder-pseudo-style-expected.png:
        * platform/gtk/fast/forms/textarea-placeholder-visibility-1-expected.png:
        * platform/gtk/fast/forms/textarea-placeholder-visibility-2-expected.png:

2012-05-29  Jessie Berlin  <jberlin@apple.com>

        [Mac] fast/forms/select/optgroup-rendering.html "failing" since introduction in r118772
        https://bugs.webkit.org/show_bug.cgi?id=87752

        Add expected (failing?) results to get the bots green.

        * platform/mac/fast/forms/select/optgroup-rendering-expected.png: Added.
        * platform/mac/fast/forms/select/optgroup-rendering-expected.txt: Added.

2012-05-29  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening after r118776. The failing test was split into
        5 separate tests, but we're still failing all of them.

        * platform/gtk/test_expectations.txt:

2012-05-29  Li Yin  <li.yin@intel.com>

        [FileAPI] Miss FileList test
        https://bugs.webkit.org/show_bug.cgi?id=87696

        Reviewed by Kentaro Hara.

        WebKit should have the test to track the attribute of FileList.

        * fast/files/file-list-test-expected.txt: Added.
        * fast/files/file-list-test.html: Added.

2012-05-29  Jessie Berlin  <jberlin@apple.com>

        [Mac] fast/events/message-port-constructor-for-deleted-document.html ASSERTS in Debug.

        This is happening often enough that it is necessary to add the test to the Mac Skipped list
        in order to keep the bots green.

        * platform/mac/Skipped:

2012-05-29  Jussi Kukkonen  <jussi.kukkonen@intel.com>

        [EFL][DRT] move idn encoding test to test_expectations.txt
        https://bugs.webkit.org/show_bug.cgi?id=86080

        Unreviewed gardening. Implementing copy{En,De}codedHostName just
        to test them is not useful: marking fast/encoding/idn-security.html
        as expected to fail.

        * platform/efl/Skipped:
        * platform/efl/test_expectations.txt:

2012-05-29  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed gardening.

        * platform/qt-5.0-wk2/compositing/geometry/composited-in-columns-expected.txt: Added.
        * platform/qt-5.0-wk2/fast/forms/placeholder-pseudo-style-expected.png:
        * platform/qt-5.0-wk2/fast/forms/placeholder-pseudo-style-expected.txt:
        * platform/qt-5.0-wk2/svg/css/text-gradient-shadow-expected.png: Added.
        * platform/qt-5.0-wk2/svg/css/text-gradient-shadow-expected.txt:
        * platform/qt-5.0/fast/forms/placeholder-pseudo-style-expected.png:
        * platform/qt-5.0/fast/forms/placeholder-pseudo-style-expected.txt:
        * platform/wk2/Skipped:

2012-05-29  Marcus Bulach  <bulach@chromium.org>

        [chromium] Regression: fast/forms/select/optgroup-clicking.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=87748

        Unreviewed gardening.

        This test was added by r118772 and it fails with a mismatch in menulist.selectedIndex.

        * platform/chromium/test_expectations.txt:

2012-05-29  Tony Payne  <tpayne@chromium.org>

        Fix new layout tests for images with color profiles by using fixed size
        https://bugs.webkit.org/show_bug.cgi?id=87542

        Reviewed by Kent Tamura.

        * fast/images/jpeg-with-color-profile.html: Use width=400px instead of 50% to make sure size is consistent across ports.
        * fast/images/png-with-color-profile.html: Use width=40px instead of 50% to make sure size is consistent across ports.

2012-05-29  Ilya Tikhonovsky  <loislo@chromium.org>

        Unreviewed: Web Inspector: single line fix.
        heap-snapshot-loader are failing in Debug configuration because the list of profiles is not empty.

        * inspector/profiler/heap-snapshot-loader.html:

2012-05-29  Marcus Bulach  <bulach@chromium.org>

        Split svg/dom/viewspec-parser.html in smaller tests
        https://bugs.webkit.org/show_bug.cgi?id=87726

        Reviewed by Andreas Kling.

        This test was added by r118735.
        Splits into smaller independent tests to avoid timeouts on ports such as chromium.

        * svg/dom/resources/viewspec-parser.js: Added.
        (buildTestsToRun):
        (zoomAndPanToString):
        (viewSpecToString):
        (testString.string_appeared_here.makeURLRelative):
        (testFragment):
        (startNextTest):
        (continueFuzzing.else.script.onload):
        (continueFuzzing):
        * svg/dom/viewspec-parser-1-expected.txt: Copied from LayoutTests/svg/dom/viewspec-parser-expected.txt.
        * svg/dom/viewspec-parser-1.html: Added.
        * svg/dom/viewspec-parser-2-expected.txt: Copied from LayoutTests/svg/dom/viewspec-parser-expected.txt.
        * svg/dom/viewspec-parser-2.html: Added.
        * svg/dom/viewspec-parser-3-expected.txt: Copied from LayoutTests/svg/dom/viewspec-parser-expected.txt.
        * svg/dom/viewspec-parser-3.html: Added.
        * svg/dom/viewspec-parser-4-expected.txt: Copied from LayoutTests/svg/dom/viewspec-parser-expected.txt.
        * svg/dom/viewspec-parser-4.html: Added.
        * svg/dom/viewspec-parser-5-expected.txt: Renamed from LayoutTests/svg/dom/viewspec-parser-expected.txt.
        * svg/dom/viewspec-parser-5.html: Added.
        * svg/dom/viewspec-parser.html: Removed.

2012-05-29  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed gardening, skip failing tests.

        * platform/mac/Skipped:
        * platform/qt/Skipped:

2012-05-29  Yoshifumi Inoue  <yosin@chromium.org>

        REGRESSION(r109729): The optgroup element's "disabled" attribute has no effect to rendering and selection
        https://bugs.webkit.org/show_bug.cgi?id=87614

        Reviewed by Kent Tamura.

        Note: An image for optgroup-rendering.html will be change due by
        BUG-87719. Color of option elements should be blue (:enabled 
        pseudo class) instead of green.

        * fast/forms/select/optgroup-clicking-expected.txt: Added.
        * fast/forms/select/optgroup-clicking.html: Added.
        * fast/forms/select/optgroup-disabled-expected.txt: Added.
        * fast/forms/select/optgroup-disabled.html: Added.
        * fast/forms/select/optgroup-rendering.html: Added.
        * platform/chromium/test_expectations.txt: Add MISSING entry for optgroup-rendering.html.
        * platform/chromium-linux/fast/forms/select/optgroup-rendering-expected.png: Added.
        * platform/chromium-linux/fast/forms/select/optgroup-rendering-expected.txt: Added.

2012-05-29  Ádám Kallai  <kadam@inf.u-szeged.hu>

        REGRESSION(r118742): It made inspector/profiler/heap-snapshot-loader.html fail on Lion, Qt
        https://bugs.webkit.org/show_bug.cgi?id=87741

        Reviewed by Csaba Osztrogonác.

        * platform/qt/Skipped: Skip the failing test.

2012-05-29  Thiago Marcos P. Santos  <thiago.santos@intel.com>

        [EFL] Tests needs gardening after r118733
        https://bugs.webkit.org/show_bug.cgi?id=87733

        Unreviewed gardening.

        * platform/efl/fast/css/text-overflow-input-expected.txt:
        * platform/efl/fast/forms/search-styled-expected.png:
        * platform/efl/fast/forms/search-styled-expected.txt:
        * platform/efl/test_expectations.txt:

2012-05-29  Andrei Bucur  <abucur@adobe.com>

        [CSS Regions]Rename NamedFlow::overflow to NamedFlow::overset
        https://bugs.webkit.org/show_bug.cgi?id=87491

        This patch updates the CSSOM property name overflow to overset. There are no changes in functionality.
        Link to spec: http://www.w3.org/TR/2012/WD-css3-regions-20120503/

        The test was refactored to be more similar to the other script tests (by using make-new-script-test)

        Reviewed by Andreas Kling.

        * fast/regions/webkit-named-flow-overflow-expected.txt: Removed.
        * fast/regions/webkit-named-flow-overflow.html: Removed.
        * fast/regions/webkit-named-flow-overset-expected.txt: Added.
        * fast/regions/webkit-named-flow-overset.html: Added.

2012-05-29  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] REGRESSION(r118568): It broke fast/forms/textarea-maxlength.html on Qt 4.8
        https://bugs.webkit.org/show_bug.cgi?id=87740

        Unreviewed gardening.

        * platform/qt-4.8/Skipped: Skip fast/forms/textarea-maxlength.html until proper fix.

2012-05-29  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed gardening.

        * platform/qt-4.8/Skipped: Skip fast/parser/innerhtml-with-prefixed-elements.xhtml because of buggy QtXmlPatterns.
        * platform/qt-5.0/Skipped: Unskip fast/parser/innerhtml-with-prefixed-elements.xhtml, because libxslt works fine.
        * platform/qt/Skipped: Unskip a non-existing test.
        * platform/qt/fast/parser/innerhtml-with-prefixed-elements-expected.png: Added.
        * platform/qt/fast/parser/innerhtml-with-prefixed-elements-expected.txt: Updated.

2012-05-29  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening after r118733 and r118735.

        * platform/gtk/fast/css/text-overflow-input-expected.txt:
        * platform/gtk/fast/forms/input-placeholder-visibility-1-expected.txt:
        * platform/gtk/fast/forms/input-placeholder-visibility-3-expected.txt:
        * platform/gtk/fast/forms/placeholder-position-expected.txt:
        * platform/gtk/fast/forms/placeholder-pseudo-style-expected.txt:
        * platform/gtk/fast/forms/search-styled-expected.txt:
        * platform/gtk/fast/forms/textarea-placeholder-pseudo-style-expected.txt:
        * platform/gtk/fast/forms/textarea-placeholder-visibility-1-expected.txt:
        * platform/gtk/fast/forms/textarea-placeholder-visibility-2-expected.txt:
        * platform/gtk/test_expectations.txt:

2012-05-29  Ádám Kallai  <kadam@inf.u-szeged.hu>

        [Qt] Unreviewed Gardening. Update test expectations after r118733.

        * platform/qt/fast/css/text-overflow-input-expected.txt:
        * platform/qt/fast/forms/input-placeholder-visibility-1-expected.txt:
        * platform/qt/fast/forms/input-placeholder-visibility-3-expected.txt:
        * platform/qt/fast/forms/placeholder-position-expected.txt:
        * platform/qt/fast/forms/placeholder-pseudo-style-expected.txt:
        * platform/qt/fast/forms/search-styled-expected.txt:
        * platform/qt/fast/forms/textarea-placeholder-pseudo-style-expected.txt:
        * platform/qt/fast/forms/textarea-placeholder-visibility-1-expected.txt:
        * platform/qt/fast/forms/textarea-placeholder-visibility-2-expected.txt:

2012-05-29  Stephanie Lewis  <slewis@apple.com>

        Unreviewed, skipping failing test
        See https://bugs.webkit.org/show_bug.cgi?id=87728

        * platform/mac/Skipped:

2012-05-29  Stephanie Lewis  <slewis@apple.com>

        Unreviewed, updating results after http://trac.webkit.org/projects/webkit/changeset/118733

        * platform/mac/fast/css/text-overflow-input-expected.txt:
        * platform/mac/fast/forms/input-placeholder-visibility-1-expected.txt:
        * platform/mac/fast/forms/input-placeholder-visibility-3-expected.txt:
        * platform/mac/fast/forms/placeholder-position-expected.txt:
        * platform/mac/fast/forms/placeholder-pseudo-style-expected.txt:
        * platform/mac/fast/forms/search-styled-expected.txt:
        * platform/mac/fast/forms/textarea-placeholder-pseudo-style-expected.txt:
        * platform/mac/fast/forms/textarea-placeholder-visibility-1-expected.txt:
        * platform/mac/fast/forms/textarea-placeholder-visibility-2-expected.txt:

2012-05-29  Kent Tamura  <tkent@chromium.org>

        [Chromium] Update test expectations
        https://bugs.webkit.org/show_bug.cgi?id=87155

        More placehodler tests.

        * platform/chromium/test_expectations.txt:

2012-05-29  Kent Tamura  <tkent@chromium.org>

        [Chromium] Update test expectations.
        https://bugs.webkit.org/show_bug.cgi?id=87155

        Placeholder-related render dumps need to be udpated.

        * platform/chromium/test_expectations.txt:

2012-05-29  János Badics  <jbadics@inf.u-szeged.hu>

        [Qt] Unreviewed gardening after r118618. http/tests/cache/cancel-in-progress-load.html
        fails with code 5.
        https://bugs.webkit.org/show_bug.cgi?id=35377

        * platform/qt/Skipped:

2012-05-29  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: REGRESSION: load heap snapshot doesn't work.
        https://bugs.webkit.org/show_bug.cgi?id=87642

        HeapSnapshotReceiver interface was introduced.
        It declares the API for HSLoader, HSLoaderProxy and HSSaveToFileReceiver.
        The HeapProfileHeader was refactored and tests were added.

        Reviewed by Yury Semikhatsky.

        * inspector/profiler/heap-snapshot-loader-expected.txt:
        * inspector/profiler/heap-snapshot-loader.html:

2012-05-29  Marcus Bulach  <bulach@chromium.org>

        Test expectation pngs missing checksums are treated as MISSING by bots
        https://bugs.webkit.org/show_bug.cgi?id=87552

        Unreviewed gardening.

        This test was already failing for IMAGE and TEXT reasons prior to r118566.
        On r118566, new images were added, probably without an embedded checksum.
        It looks like our test infrastructure thinks that these images are MISSING.
        Temporarily add MISSING expectations, so that we can proceed with this (failing) test.

        * platform/chromium/test_expectations.txt:

2012-05-29  Marcus Bulach  <bulach@chromium.org>

        Test expectation pngs missing checksums are treated as MISSING by bots
        https://bugs.webkit.org/show_bug.cgi?id=87552

        Unreviewed gardening.

        This test was already failing for IMAGE and TEXT reasons prior to r118566.
        On r118566, new images were added, probably without an embedded checksum.
        It looks like our test infrastructure thinks that these images are MISSING.
        Temporarily add MISSING expectations, so that we can proceed with this (failing) test.

        * platform/chromium/test_expectations.txt:

2012-05-29  Thiago Marcos P. Santos  <thiago.santos@intel.com>

        [EFL] MathML tests needs rebaseline after r118713
        https://bugs.webkit.org/show_bug.cgi?id=87705

        Unreviewed gardening.

        * platform/efl/mathml/presentation/mo-stretch-expected.png:
        * platform/efl/mathml/presentation/mo-stretch-expected.txt:
        * platform/efl/mathml/presentation/mroot-pref-width-expected.png:
        * platform/efl/mathml/presentation/mroot-pref-width-expected.txt:
        * platform/efl/mathml/presentation/tables-expected.png:
        * platform/efl/mathml/presentation/tables-expected.txt:

2012-05-29  János Badics  <jbadics@inf.u-szeged.hu>

        [Qt] Unreviewed gardening after r118585. Added Qt platform specific expected files.
        https://bugs.webkit.org/show_bug.cgi?id=86848

        * platform/qt/http/tests/security/contentSecurityPolicy/inline-script-blocked-javascript-url-expected.txt: Added.
        * platform/qt/http/tests/security/contentSecurityPolicy/javascript-url-blocked-expected.txt: Added.

2012-05-29  Eric Seidel  <eric@webkit.org>

        Add HTMLIFrameElement.seamless property accessor now that seamless is enabled and works
        https://bugs.webkit.org/show_bug.cgi?id=87708

        Reviewed by Adam Barth.

        * fast/frames/seamless/seamless-basic-expected.txt:
        * fast/frames/seamless/seamless-inherited-origin-expected.txt:
        * fast/frames/seamless/seamless-nested-expected.txt:
        * fast/frames/seamless/seamless-quirks-expected.txt:
        * fast/frames/seamless/seamless-sandbox-flag-expected.txt:
        * fast/frames/seamless/seamless-sandbox-srcdoc-expected.txt:
        * http/tests/security/seamless/seamless-cross-origin-expected.txt:
        * http/tests/security/seamless/seamless-sandbox-srcdoc-expected.txt:

2012-05-29  Nikolas Zimmermann  <nzimmermann@rim.com>

        SVGViewSpec DOM bindings aka SVGSVGElement.currentView is unimplemented
        https://bugs.webkit.org/show_bug.cgi?id=15495

        Reviewed by Rob Buis.

        Re-enable a long disabled test for SVGViewSpec, and make it actually work.
        Extend SVGViewSpec test coverage, and rebaseline results that changed due the SVGViewSpec constructor addition.

        Make linking-a-03-b-all.svg a reftest, to avoid rebaselines on all platforms.

        * platform/chromium-linux/svg/custom/linking-a-03-b-all-expected.png: Removed.
        * platform/chromium-mac/svg/custom/linking-a-03-b-all-expected.png: Removed.
        * platform/chromium-win/fast/js/global-constructors-expected.txt:
        * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.png: Removed.
        * platform/chromium-win/svg/custom/linking-a-03-b-all-expected.txt: Removed.
        * platform/gtk/fast/js/global-constructors-expected.txt:
        * platform/gtk/svg/custom/linking-a-03-b-all-expected.png: Removed.
        * platform/gtk/svg/custom/linking-a-03-b-all-expected.txt: Removed.
        * platform/mac/fast/js/global-constructors-expected.txt:
        * platform/mac/svg/custom/linking-a-03-b-all-expected.png: Removed.
        * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: Removed.
        * platform/qt/fast/js/global-constructors-expected.txt:
        * platform/qt/svg/custom/linking-a-03-b-all-expected.png: Removed.
        * platform/qt/svg/custom/linking-a-03-b-all-expected.txt: Removed.
        * platform/win/fast/js/global-constructors-expected.txt:
        * svg/custom/global-constructors-expected.txt:
        * svg/custom/linking-a-03-b-all-expected.svg: Added.
        * svg/dom/SVGViewSpec-defaults-expected.txt: Added.
        * svg/dom/SVGViewSpec-defaults.html: Added.
        * svg/dom/SVGViewSpec-expected.txt: Added.
        * svg/dom/SVGViewSpec.html: Added.
        * svg/dom/complex-svgView-specification-expected.html: Added.
        * svg/dom/complex-svgView-specification.html: Added.
        * svg/dom/resources/viewspec-target.svg: Added.
        * svg/dom/script-tests/SVGViewSpec-defaults.js: Added.
        * svg/dom/script-tests/SVGViewSpec.js: Added.
        (completeTest.script.onload):
        (completeTest):
        (testFragment):
        (matrixToString):
        (continueTesting):
        * svg/dom/viewspec-parser-expected.txt: Added.
        * svg/dom/viewspec-parser.html: Renamed from LayoutTests/svg/dom/viewspec-parser.html-disabled.

2012-05-29  Marcus Bulach  <bulach@chromium.org>

        [chromium] Adjust expectations for fast/layers/clip-rects-assertion-expected.txt
        https://bugs.webkit.org/show_bug.cgi?id=87671

        Unreviewed gardening.
        Test has been fixed by r118724, remove expectation.

        * platform/chromium/test_expectations.txt:

2012-05-29  Kent Tamura  <tkent@chromium.org>

        REGRESSION (r90971): the cursor is painted “behind” the placeholder text
        https://bugs.webkit.org/show_bug.cgi?id=87155

        Reviewed by Hajime Morita.

        * fast/forms/input-placeholder-paint-order-2-expected.html: Added.
        * fast/forms/input-placeholder-paint-order-2.html: Added.
        * fast/forms/input-placeholder-paint-order.html: Added.
        * fast/forms/textarea/textarea-placeholder-paint-order-2-expected.html: Added.
        * fast/forms/textarea/textarea-placeholder-paint-order-2.html: Added.
        * fast/forms/textarea/textarea-placeholder-paint-order.html: Added.
        * platform/chromium-mac-snowleopard/fast/forms/input-placeholder-paint-order-expected.png: Added.
        * platform/chromium-mac-snowleopard/fast/forms/input-placeholder-paint-order-expected.txt: Added.
        * platform/chromium-mac-snowleopard/fast/forms/textarea/textarea-placeholder-paint-order-expected.png: Added.
        * platform/chromium-mac-snowleopard/fast/forms/textarea/textarea-placeholder-paint-order-expected.txt: Added.
        * platform/chromium/test_expectations.txt:

2012-05-29  János Badics  <jbadics@inf.u-szeged.hu>

        [Qt] Unreviewed gardening after r118631. http/tests/appcache/load-from-appcache-defer-resume-crash.html
        fails because of missing LayoutTestController::setUseDeferredFrameLoading implementation.

        * platform/qt/Skipped:

2012-05-28  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] New fast/dom/window-scroll-scaling.html made 3-400 tests flakey
        https://bugs.webkit.org/show_bug.cgi?id=87700

        Unreviewed gardening to paint the bot less and less red.

        * platform/qt/Skipped: Skip fast/dom/window-scroll-scaling.html until proper fix.

2012-05-28  Kent Tamura  <tkent@chromium.org>

        Fix a crash in HTMLFormControlElement::disabled().
        https://bugs.webkit.org/show_bug.cgi?id=86534

        Reviewed by Ryosuke Niwa.

        Add a testcase to confirm <lagend> doesn't affect validation.

        * fast/forms/datalist/datalist-child-validation-expected.txt:
        * fast/forms/datalist/datalist-child-validation.html:

2012-05-28  Marcus Bulach  <bulach@chromium.org>

        Removes pixel result requirements from fast/layers/clip-rects-assertion-expected.txt
        https://bugs.webkit.org/show_bug.cgi?id=87663

        Unreviewed gardening.

        This test was added by r118612, but no pixel result were provided.
        It seems that it's enough to remove the param for dumpAsText() and just use the text text output.
        * fast/layers/clip-rects-assertion.html:

2012-05-28  Takashi Toyoshima  <toyoshim@chromium.org>

        [WebSocket] Receiving reserved close codes, 1005, 1006, and 1015 must appear as code=1006 and wasClean=false
        https://bugs.webkit.org/show_bug.cgi?id=87084

        Reviewed by Kent Tamura.

        Add test cases where server initiates a closing handshake with forbidden status codes.

        * http/tests/websocket/tests/hybi/close-code-and-reason-expected.txt:
        * http/tests/websocket/tests/hybi/close-code-and-reason.html:
        * http/tests/websocket/tests/hybi/workers/close-code-and-reason-expected.txt:
        * http/tests/websocket/tests/hybi/workers/resources/close-code-and-reason.js:
        (WebSocketTest.prototype.onclose):

2012-05-28  Kent Tamura  <tkent@chromium.org>

        Form controls in <fieldset disabled> should not be validated.
        https://bugs.webkit.org/show_bug.cgi?id=87381

        Reviewed by Hajime Morita.

        * fast/forms/fieldset/validation-in-fieldset-expected.txt: Added.
        * fast/forms/fieldset/validation-in-fieldset.html: Added.

2012-05-28  Rakesh KN  <rakesh.kn@motorola.com>

        [Forms] HTMLFieldSetElement.idl doesn't have elements attribute.
        https://bugs.webkit.org/show_bug.cgi?id=80110

        Reviewed by Kent Tamura.

        * fast/forms/fieldset/fieldset-elements-expected.txt: Added.
        * fast/forms/fieldset/fieldset-elements.html: Added.
        * fast/forms/fieldset/fieldset-form-collection-radionode-list-expected.txt: Added.
        * fast/forms/fieldset/fieldset-form-collection-radionode-list.html: Added.

2012-05-28  David Barton  <dbarton@mathscribe.com>

        mathml/presentation/mo-stretch.html and mroot-pref-width.html tests fail on Mac
        https://bugs.webkit.org/show_bug.cgi?id=86786

        Unreviewed gardening - add back these two tests to skip for now.

        * platform/mac/Skipped:

2012-05-28  David Barton  <dbarton@mathscribe.com>

        mathml/presentation/mo-stretch.html and mroot-pref-width.html tests fail on Mac
        https://bugs.webkit.org/show_bug.cgi?id=86786

        Reviewed by Darin Adler.

        * platform/mac/Skipped:
        * platform/mac/mathml/presentation/mo-stretch-expected.png:
        * platform/mac/mathml/presentation/mo-stretch-expected.txt:
        * platform/mac/mathml/presentation/row-alignment-expected.png:
        * platform/mac/mathml/presentation/row-alignment-expected.txt:
        * platform/mac/mathml/presentation/tables-expected.png:
        * platform/mac/mathml/presentation/tables-expected.txt:

2012-05-28  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>

        Flaky tests in fast/profiler/
        https://bugs.webkit.org/show_bug.cgi?id=84102

        Unreviewed gardening.

        Tests fast/profiler/stop-profiling-after-setTimeout.html and
        fast/profiler/dead-time.html were still failing after
        https://bugs.webkit.org/show_bug.cgi?id=42328 . Mac and chromium
        already skip these tests.

        * platform/efl/Skipped:
        * platform/gtk/test_expectations.txt:
        * platform/qt/Skipped:

2012-05-25  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>

        WebKitTestRunner needs to support layoutTestController.setJavaScriptProfilingEnabled
        https://bugs.webkit.org/show_bug.cgi?id=42328

        Reviewed by Eric Seidel.

        Updated tests to use windows.internals instead of layoutTestController.

        * fast/profiler/anonymous-event-handler.html:
        * fast/profiler/anonymous-function-called-from-different-contexts.html:
        * fast/profiler/anonymous-function-calls-built-in-functions.html:
        * fast/profiler/anonymous-function-calls-eval.html:
        * fast/profiler/anonymous-functions-with-display-names.html:
        * fast/profiler/apply.html:
        * fast/profiler/built-in-function-calls-anonymous.html:
        * fast/profiler/built-in-function-calls-user-defined-function.html:
        * fast/profiler/call-register-leak.html:
        * fast/profiler/call.html:
        * fast/profiler/calling-the-function-that-started-the-profiler-from-another-scope.html:
        * fast/profiler/compare-multiple-profiles.html:
        * fast/profiler/constructor.html:
        * fast/profiler/dead-time.html:
        * fast/profiler/document-dot-write.html:
        * fast/profiler/event-handler.html:
        * fast/profiler/execution-context-and-eval-on-same-line.html:
        * fast/profiler/inline-event-handler.html:
        * fast/profiler/many-calls-in-the-same-scope.html:
        * fast/profiler/multiple-and-different-scoped-anonymous-function-calls.html:
        * fast/profiler/multiple-and-different-scoped-function-calls.html:
        * fast/profiler/multiple-anonymous-functions-called-from-the-same-function.html:
        * fast/profiler/multiple-frames.html:
        * fast/profiler/named-functions-with-display-names.html:
        * fast/profiler/nested-anonymous-functon.html:
        * fast/profiler/nested-start-and-stop-profiler.html:
        * fast/profiler/no-execution-context.html:
        * fast/profiler/one-execution-context.html:
        * fast/profiler/profile-calls-in-included-file.html:
        * fast/profiler/profile-with-no-title.html:
        * fast/profiler/profiling-from-a-nested-location-but-stop-profiling-outside-the-nesting.html:
        * fast/profiler/profiling-from-a-nested-location.html:
        * fast/profiler/simple-event-call.html:
        * fast/profiler/simple-no-level-change.html:
        * fast/profiler/start-and-stop-profiler-multiple-times.html:
        * fast/profiler/start-and-stop-profiling-in-the-same-function.html:
        * fast/profiler/start-but-dont-stop-profiling.html:
        * fast/profiler/stop-profiling-after-setTimeout.html:
        * fast/profiler/stop-then-function-call.html:
        * fast/profiler/throw-exception-from-eval.html-disabled:
        * fast/profiler/two-execution-contexts.html:
        * fast/profiler/user-defined-function-calls-built-in-functions.html:
        * fast/profiler/window-dot-eval.html:
        * inspector/profiler/cpu-profiler-profiling-without-inspector.html:
        * platform/wk2/Skipped:

2012-05-28  Yong Li  <yoli@rim.com>

        Crash on incomplete :not().
        https://bugs.webkit.org/show_bug.cgi?id=86673

        Reviewed by Antti Koivisto.

        Add a test case that makes CSS parser create incomplete
        :not selector.

        * fast/css/crash-on-incomplete-not.html: Added.
        * fast/css/crash-on-incomplete-not-expected.txt: Added.

2012-05-28  Marcus Bulach  <bulach@chromium.org>

        [chromium] Adjust expectations for fast/layers/clip-rects-assertion-expected.txt
        https://bugs.webkit.org/show_bug.cgi?id=87671

        Unreviewed gardening.
        Temporarily adds "MISSING" for this test.

        * platform/chromium/test_expectations.txt:

2012-05-28  Marcus Bulach  <bulach@chromium.org>

        [chromium] http/tests/cache/cancel-in-progress-load.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=87657

        Unreviewed gardening.
        It should be "MISSING" rather than "IMAGE" (fixes r118683).

        * platform/chromium/test_expectations.txt:

2012-05-28  Marcus Bulach  <bulach@chromium.org>

        Adds missing expectation after r118577
        https://bugs.webkit.org/show_bug.cgi?id=87670

        Unreviewed gardening.
        A few baselines were already added by r118584. Adds baseline for Windows.

        * platform/chromium-win/http/tests/media/video-buffered-range-contains-currentTime-expected.png: Added.

2012-05-28  Antti Koivisto  <antti@apple.com>

        REGRESSION(r96517): Attribute selector fails to match dynamically modified style attribute
        https://bugs.webkit.org/show_bug.cgi?id=87349

        Reviewed by Andreas Kling.

        * fast/css/dynamic-style-attribute-query-expected.txt: Added.
        * fast/css/dynamic-style-attribute-query.html: Added.

2012-05-28  Marcus Bulach  <bulach@chromium.org>

        [Chromium] [V8] Layout Test fast/js/string-replace-2.html failing following 11594 => 11648 v8 update
        https://bugs.webkit.org/show_bug.cgi?id=87423

        Unreviewed gardening.
        
        We have rolled v8 and we can now set the expectation for both debug and release back to TEXT.

        * platform/chromium/test_expectations.txt:

2012-05-28  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: Expose function (closure) scopes in remote protocol
        https://bugs.webkit.org/show_bug.cgi?id=86861

        Reviewed by Yury Semikhatsky.

        Test for function details now checks scopes.

        * inspector/debugger/function-details-expected.txt:
        * inspector/debugger/function-details.html:
        * platform/chromium/inspector/debugger/function-details-expected.txt:

2012-05-28  Marcus Bulach  <bulach@chromium.org>

        [chromium] Rebaseline following r118598
        https://bugs.webkit.org/show_bug.cgi?id=87669

        Unreviewed gardening.

        In chromium we print a prefix "line 1:" on one console message.

        * platform/chromium/http/tests/security/contentSecurityPolicy/inline-script-blocked-javascript-url-expected.txt: Added.
        * platform/chromium/http/tests/security/contentSecurityPolicy/javascript-url-blocked-expected.txt: Added.

2012-05-28  Marcus Bulach  <bulach@chromium.org>

        [chromium] http/tests/cache/cancel-in-progress-load.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=87657

        Unreviewed gardening.

        Adds PASS and IMAGE expectations.

        * platform/chromium/test_expectations.txt:

2012-05-28  Marcus Bulach  <bulach@chromium.org>

        [chromium] http/tests/cache/cancel-in-progress-load.html is flaky
        https://bugs.webkit.org/show_bug.cgi?id=87657

        Unreviewed gardening.

        r118618 added this new test but it's been flaky in chromium.

        * platform/chromium/test_expectations.txt:

2012-05-28  Marcus Bulach  <bulach@chromium.org>

        [chromium] Baseline compositing/geometry/composited-in-columns.html
        https://bugs.webkit.org/show_bug.cgi?id=87653

        Unreviewed gardening.

        r118567 introduced a new test. Chromium is positioning the layers
        a few pixels off.
        Set the baseline for IMAGE+TEXT temporarily.

        * platform/chromium/test_expectations.txt:

2012-05-28  Marcus Bulach  <bulach@chromium.org>

        [chromium] LayoutTestController needs DeferredFrameLoading flag
        https://bugs.webkit.org/show_bug.cgi?id=87652
  
        Unreviewed gardening.

        r118631 introduced a new test and a new API on LayoutTestController
        that we need to implement in chromium.
        Skip the test temporarily.

        * platform/chromium/test_expectations.txt:

2012-05-28  Christophe Dumez  <christophe.dumez@intel.com>

        fast/tokenizer/entities-01.html & fast/tokenizer/entities-03.html need new baseline after r118672
        https://bugs.webkit.org/show_bug.cgi?id=87648

        Unreviewed gardening.

        r118672 fixed a rendering bug with &AElig but did not update the
        expected results for fast/tokenizer/entities-01.html and
        fast/tokenizer/entities-03.html.

        * fast/tokenizer/entities-01-expected.txt:
        * fast/tokenizer/entities-03-expected.txt:

2012-05-28  Peter Beverloo  <peter@chromium.org>

        &AElig doesn't get rendered as U+00C6
        https://bugs.webkit.org/show_bug.cgi?id=87465

        Reviewed by Adam Barth.

        Test that the (current) first alphabetical entity in the named entity
        table (&AElig, without a semi-colon) renders as expected.

        * html5lib/resources/entities02.dat:

2012-05-28  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] fast/dom/beforeload/image-object-before-load* need to be skipped after r118618
        https://bugs.webkit.org/show_bug.cgi?id=87632

        Unreviewed EFL gardening.
        fast/dom/beforeload/image-object-before-load* need to be skipped after
        r118618. The issue will be addressed in Bug 87631.

        * platform/efl/test_expectations.txt:

2012-05-28  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] http/tests/appcache/abort-cache* are flaky and should be skipped
        https://bugs.webkit.org/show_bug.cgi?id=87634

        Unreviewed EFL gardening. Aborting application cache downloads is
        flaky on EFL port so we need to skip the corresponding test cases for
        now.

        * platform/efl/test_expectations.txt:

2012-05-28  Alexander Shalamov  <alexander.shalamov@intel.com>

        [EFL] Move input element's internal spinner layout tests to test_expectations.txt
        https://bugs.webkit.org/show_bug.cgi?id=87629

        Unreviewed EFL gardening.

        * platform/efl/Skipped:
        * platform/efl/test_expectations.txt:

2012-05-28  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Unreviewed EFL gardening after r118585
        https://bugs.webkit.org/show_bug.cgi?id=87621

        Unreviewed EFL Gardening.

        Two contentSecurityPolicy tests need expectation for EFL port after
        r118585 due to line numbers not being printed. Mac and GTK port are
        already doing the same.

        * platform/efl/http/tests/security/contentSecurityPolicy/inline-script-blocked-javascript-url-expected.txt: Added.
        * platform/efl/http/tests/security/contentSecurityPolicy/javascript-url-blocked-expected.txt: Added.

2012-05-28  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Test added in r118577 is failing and should be skipped
        https://bugs.webkit.org/show_bug.cgi?id=87620

        Unreviewed EFL gardening. Skipping new test introduced in r118577
        which is failing on our port.

        * platform/efl/test_expectations.txt:

2012-05-28  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] New tests added in r118567 should be skipped on EFL port
        https://bugs.webkit.org/show_bug.cgi?id=87618

        Unreviewed EFL gardening. Move the test added in r118567 to test
        expectations since the EFL port lacks support for
        LayoutTestController::layerTreeAsText.

        * platform/efl/test_expectations.txt:

2012-05-28  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Move allowRoundingHacks to Internals interface
        https://bugs.webkit.org/show_bug.cgi?id=87328

        Reviewed by Hajime Morita.

        Invoke allowRoundingHacks function from internals, because it is able to work in the
        cross-port way via the Internals interface.

        * platform/mac/fast/text/rounding-hacks-expansion.html:
        * platform/mac/fast/text/rounding-hacks.html:

2012-05-27  Shinya Kawanaka  <shinyak@chromium.org>

        cut, copy or paste event won't be fired in Shadow DOM.
        https://bugs.webkit.org/show_bug.cgi?id=87352

        Reviewed by Dimitri Glazkov.

        * fast/dom/shadow/cppevent-in-shadow-expected.txt: Added.
        * fast/dom/shadow/cppevent-in-shadow.html: Added.
        * fast/dom/shadow/cppevent-input-in-shadow-expected.txt: Added.
        * fast/dom/shadow/cppevent-input-in-shadow.html: Added.

2012-05-27  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>

        [EFL] Enable blob support for the EFL port
        https://bugs.webkit.org/show_bug.cgi?id=85363

        Reviewed by Hajime Morita.

        Unskip tests which require blob support to be enabled.

        * platform/efl/Skipped:
        * platform/efl/test_expectations.txt:

2012-05-27  Hayato Ito  <hayato@chromium.org>

        Support multiple shadow roots in event dispatching.
        https://bugs.webkit.org/show_bug.cgi?id=87470

        Reviewed by Dimitri Glazkov.

        * fast/dom/shadow/shadow-dom-event-dispatching-expected.txt:
        * fast/dom/shadow/shadow-dom-event-dispatching.html:

2012-05-27  Takashi Sakamoto  <tasak@google.com>

        fast/dom/shadow/content-element-in-media.html is wrong.
        https://bugs.webkit.org/show_bug.cgi?id=81310

        Modifying to check() to dump expected and actual text at the same
        absolute position, because DumpRenderTree dumps absolute x,y-position
        information for a layer which contains RenderVideo. For example,
        backgroundClip at (8,163), clip at (8, 163) and so on.

        Reviewed by Hajime Morita.

        * fast/dom/resources/shadow-test-driver.js:
        (check):
        Disabled actual block when dumping expected block as text, and vice
        versa.
        * platform/chromium/test_expectations.txt:
        Removed BUGWK81310.

2012-05-27  Benjamin Poulain  <bpoulain@apple.com>

        When pages are loaded from AppCache with DeferredLoading, willSendRequest() is never called
        https://bugs.webkit.org/show_bug.cgi?id=87582

        Reviewed by Darin Adler.

        * http/tests/appcache/load-from-appcache-defer-resume-crash-expected.txt: Added.
        * http/tests/appcache/load-from-appcache-defer-resume-crash.html: Added.
        * http/tests/appcache/resources/load-from-appcache-defer-resume-bounce-back.html: Added.
        * http/tests/appcache/resources/load-from-appcache-defer-resume-crash.manifest: Added.

2012-05-27  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening after r118618.

        * platform/gtk/test_expectations.txt:

2012-05-27  Li Yin  <li.yin@intel.com>

        [FileAPI] FileReader should fire progress event when blob has been completely read into memory
        https://bugs.webkit.org/show_bug.cgi?id=87585

        Reviewed by Kentaro Hara.

        From Spec: http://www.w3.org/TR/FileAPI/#dfn-progress-event
        One progress event will fire when blob has been completely read into memory.
        Firefox, Opera and IE follows the spec.
        Webkit based browser doesn't do that, it only fires progress event at interval of 50ms.
        WebKit should add the behavior to make the conformance with the spec.

        * fast/files/file-reader-event-listener-expected.txt:
        * fast/files/file-reader-event-listener.html:

2012-05-26  Li Yin  <li.yin@intel.com>

        [FileAPI] The result attribute of FileReader shuold use null to replace empty string
        https://bugs.webkit.org/show_bug.cgi?id=87578

        Reviewed by Kentaro Hara.

        From Spec: http://www.w3.org/TR/FileAPI/#filedata-attr
        Before read method has been called or an error in reading has occurred,
        the result attribute should be null, not empty string.
        WebKit should change the returned value empty string into null to keep
        conformance with the spec.

        * fast/files/blob-slice-test-expected.txt:
        * fast/files/read-blob-async-expected.txt:
        * fast/files/read-file-async-expected.txt:
        * fast/files/resources/read-common.js:
        (logResult):
        * fast/files/workers/worker-read-blob-async-expected.txt:
        * fast/files/workers/worker-read-file-async-expected.txt:

2012-05-26  Nate Chapin  <japhet@chromium.org>

        Test for https://bugs.webkit.org/show_bug.cgi?id=35377.

        Reviewed by Darin Adler.

        * http/tests/cache/cancel-in-progress-load-expected.txt: Added.
        * http/tests/cache/cancel-in-progress-load.html: Added.
        * http/tests/misc/write-while-waiting.html: Add waitUntilDone()/notifyDone().
            The slow script will now be cancelled when the script element is removed from the document.
            Without waitUntilDone(), LayoutTestController will immediately end the test upon cancellation
            of the last resource.

2012-05-26  Simon Fraser  <simon.fraser@apple.com>

        fast/block/inline-children-root-linebox-crash.html asserts after r118567
        https://bugs.webkit.org/show_bug.cgi?id=87544

        Reviewed by Darin Adler.
        
        Remove fast/block/inline-children-root-linebox-crash.html from the skipped
        list.
        
        New, more complex writing mode flipping test with compositing.

        * compositing/geometry/flipped-blocks-inline-mapping-expected.txt: Added.
        * compositing/geometry/flipped-blocks-inline-mapping.html: Added.
        * platform/mac/Skipped:

2012-05-26  David Barton  <dbarton@mathscribe.com>

        My first commit - set svn:mime-type to image/png on one .png file.

        * platform/mac/mathml/presentation/mroot-pref-width-expected.png:

2012-05-26  Simon Fraser  <simon.fraser@apple.com>

        Clip rects assertion when hovering div with transform
        https://bugs.webkit.org/show_bug.cgi?id=87580

        Reviewed by Eric Seidel.
        
        Test that changes transform on hover style, testing for clipRect-related
        assertions.

        * fast/layers/clip-rects-assertion-expected.txt: Added.
        * fast/layers/clip-rects-assertion.html: Added.

2012-05-26  Rob Buis  <rwlbuis@webkit.org>

        Bug 15799: textPath element does not re-render when referenced path changes
        https://bugs.webkit.org/show_bug.cgi?id=15799

        Reviewed by Nikolas Zimmermann.

        - textPath-path-change-id.svg, react to change of id attribute on referenced path (makes the xlink:href valid).
        - textPath-path-change-id2.svg, react to change of id attribute on referenced path (makes the xlink:href invalid).
        - textPath-path-set-id.svg, react to setting of id attribute on referenced path (makes the xlink:href valid).
        - textPath-change-reference.svg, <textPath> references existing <path>, change the xlink:href to a non-existing one.
        - textPath-change-reference-using-baseval.svg, <textPath> references existing <path>, change the xlink:href to a non-existing one using SVG DOM.
        - textPath-change-reference2.svg, <textPath> references non-existing <path>, change xlink:href to an existing one.
        - textPath-change-reference2-using-baseval.svg, <textPath> references non-existing <path>, change xlink:href to an existing one using SVG DOM.
        - textPath-insert-path.svg, <textPath> references non-existing <path>, <path> added dynamically.
        - textPath-modify-child.svg, react to change on textPath content.
        - textPath-path-change-using-svg-dom.svg, react to change on pathSegList of referenced path.
        - textPath-path-change.svg, react to change on d attribute of referenced path.
        - textPath-path-change2.svg, react to change on d attribute of path referenced by multiple <textPath>s.
        - textPath-remove-path.svg, <textPath> references existing <path>, <path> is removed from DOM.
        - textPath-startoffset.svg, react to startOffset attribute change on <textPath>.

        These tests are duplicated for <textPath> inside a <pattern>.

        * svg/custom/textPath-change-id-expected.svg: Added.
        * svg/custom/textPath-change-id-pattern-expected.svg: Added.
        * svg/custom/textPath-change-id-pattern.svg: Added.
        * svg/custom/textPath-change-id.svg: Added.
        * svg/custom/textPath-change-id2-expected.svg: Added.
        * svg/custom/textPath-change-id2-pattern-expected.svg: Added.
        * svg/custom/textPath-change-id2-pattern.svg: Added.
        * svg/custom/textPath-change-id2.svg: Added.
        * svg/custom/textPath-change-reference-expected.svg: Added.
        * svg/custom/textPath-change-reference-pattern-expected.svg: Added.
        * svg/custom/textPath-change-reference-pattern.svg: Added.
        * svg/custom/textPath-change-reference-using-baseval-expected.svg: Added.
        * svg/custom/textPath-change-reference-using-baseval-pattern-expected.svg: Added.
        * svg/custom/textPath-change-reference-using-baseval-pattern.svg: Added.
        * svg/custom/textPath-change-reference-using-baseval.svg: Added.
        * svg/custom/textPath-change-reference.svg: Added.
        * svg/custom/textPath-change-reference2-expected.svg: Added.
        * svg/custom/textPath-change-reference2-pattern-expected.svg: Added.
        * svg/custom/textPath-change-reference2-pattern.svg: Added.
        * svg/custom/textPath-change-reference2-using-baseval-expected.svg: Added.
        * svg/custom/textPath-change-reference2-using-baseval-pattern-expected.svg: Added.
        * svg/custom/textPath-change-reference2-using-baseval-pattern.svg: Added.
        * svg/custom/textPath-change-reference2-using-baseval.svg: Added.
        * svg/custom/textPath-change-reference2.svg: Added.
        * svg/custom/textPath-insert-path-expected.svg: Added.
        * svg/custom/textPath-insert-path-pattern-expected.svg: Added.
        * svg/custom/textPath-insert-path-pattern.svg: Added.
        * svg/custom/textPath-insert-path.svg: Added.
        * svg/custom/textPath-modify-child-expected.svg: Added.
        * svg/custom/textPath-modify-child-pattern-expected.svg: Added.
        * svg/custom/textPath-modify-child-pattern.svg: Added.
        * svg/custom/textPath-modify-child.svg: Added.
        * svg/custom/textPath-path-change-expected.svg: Added.
        * svg/custom/textPath-path-change-pattern-expected.svg: Added.
        * svg/custom/textPath-path-change-pattern.svg: Added.
        * svg/custom/textPath-path-change-using-svg-dom-expected.svg: Added.
        * svg/custom/textPath-path-change-using-svg-dom-pattern-expected.svg: Added.
        * svg/custom/textPath-path-change-using-svg-dom-pattern.svg: Added.
        * svg/custom/textPath-path-change-using-svg-dom.svg: Added.
        * svg/custom/textPath-path-change.svg: Added.
        * svg/custom/textPath-path-change2-expected.svg: Added.
        * svg/custom/textPath-path-change2-pattern-expected.svg: Added.
        * svg/custom/textPath-path-change2-pattern.svg: Added.
        * svg/custom/textPath-path-change2.svg: Added.
        * svg/custom/textPath-remove-path-expected.svg: Added.
        * svg/custom/textPath-remove-path-pattern-expected.svg: Added.
        * svg/custom/textPath-remove-path-pattern.svg: Added.
        * svg/custom/textPath-remove-path.svg: Added.
        * svg/custom/textPath-set-id-expected.svg: Added.
        * svg/custom/textPath-set-id.svg: Added.
        * svg/custom/textPath-startoffset-expected.svg: Added.
        * svg/custom/textPath-startoffset-pattern-expected.svg: Added.
        * svg/custom/textPath-startoffset-pattern.svg: Added.
        * svg/custom/textPath-startoffset.svg: Added.

2012-05-26  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening after r118577 and r118585.

        * platform/gtk/http/tests/security/contentSecurityPolicy/inline-script-blocked-javascript-url-expected.txt: Added.
        * platform/gtk/http/tests/security/contentSecurityPolicy/javascript-url-blocked-expected.txt: Added.
        * platform/gtk/test_expectations.txt:

2012-05-25  Sukolsak Sakshuwong  <sukolsak@google.com>

        cursor gets trapped when border-style: dashed is used
        https://bugs.webkit.org/show_bug.cgi?id=37693

        Reviewed by Tony Chang.

        This bug has been fixed. Add a test to make sure that it won't regress.

        * editing/selection/move-by-line-006-expected.txt: Added.
        * editing/selection/move-by-line-006.html: Added.

2012-05-25  Tony Chang  <tony@chromium.org>

        implement new negative flexing algorithm
        https://bugs.webkit.org/show_bug.cgi?id=86528

        Reviewed by Ojan Vafai.

        * css3/flexbox/flex-algorithm-expected.txt:
        * css3/flexbox/flex-algorithm.html:

2012-05-25  Mihai Parparita  <mihaip@chromium.org>

        Allow synchronous XHRs to be disabled in documents
        https://bugs.webkit.org/show_bug.cgi?id=87540

        Reviewed by Eric Seidel.

        Synchronous XMLHttpRequests are a problematic API, since they result
        in blocked UI threads. Some clients may wish to always disable them;
        give them a setting to do so (see also r103629 for other cases where
        synchronous XHRs are disabled).

        * fast/xmlhttprequest/xmlhttprequest-sync-disabled-expected.txt: Added.
        * fast/xmlhttprequest/xmlhttprequest-sync-disabled.html: Added.

2012-05-25  Stephanie Lewis  <slewis@apple.com>

        Unreviewed, fix bad copy/paste.

        * platform/mac/Skipped:

2012-05-25  Stephanie Lewis  <slewis@apple.com>

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

        Unreviewed, checking in expected failing results.

        * platform/mac/http/tests/security/contentSecurityPolicy/inline-script-blocked-javascript-url-expected.txt: Added.
        * platform/mac/http/tests/security/contentSecurityPolicy/javascript-url-blocked-expected.txt: Added.

2012-05-25  Stephanie Lewis  <slewis@apple.com>

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

        Unreviewed, skipping asserting test 

        * platform/mac/Skipped:

2012-05-25  Lynn Neir  <lynn.neir@skype.net>

        Updated tests as a result of implementing TextInputController in DRT for windows, https://bugs.webkit.org/show_bug.cgi?id=32021

        Reviewed by Eric Seidel.

        * platform/win/Skipped:
        * platform/win/editing/selection/5825350-1-expected.txt: Added.
        * platform/win/editing/selection/5825350-2-expected.txt: Added.
        * platform/win/editing/selection/mixed-editability-10-expected.txt:
        * platform/win/editing/selection/move-left-right-expected.txt: Added.
        * platform/win/fast/events/ime-composition-events-001-expected.txt:
        * platform/win/fast/forms/input-maxlength-ime-completed-expected.txt: Removed.
        * platform/win/fast/forms/input-maxlength-ime-preedit-expected.txt: Removed.
        * platform/win/svg/text/caret-in-svg-text-expected.txt: Added.

2012-05-25  Jessie Berlin  <jberlin@apple.com>

        Enhance Windows DRT implementation to support platform scroll wheel events.
        https://bugs.webkit.org/show_bug.cgi?id=36002

        Add another test that uses continuousMouseScrollBy to the Windows Skipped list.

        * platform/win/Skipped:

2012-05-25  Abhishek Arya  <inferno@chromium.org>

        Crash in RenderTableSection::paintCell.
        https://bugs.webkit.org/show_bug.cgi?id=87445

        Reviewed by Eric Seidel and Julien Chaffraix.

        * tables/table-section-overflow-clip-crash-expected.txt: Added.
        * tables/table-section-overflow-clip-crash.html: Added.

2012-05-25  Jessie Berlin  <jberlin@apple.com>

        Implement spinbutton support in RenderThemeSafari
        https://bugs.webkit.org/show_bug.cgi?id=54662

        Add more spinbutton tests to the Windows Skipped list.

        * platform/win/Skipped:

2012-05-25  Philip Rogers  <pdr@google.com>

        Fix for self-closing <use> tags
        https://bugs.webkit.org/show_bug.cgi?id=87504

        Reviewed by Adam Barth.

        * svg/custom/svg-self-closing-use-expected.html: Added.
        * svg/custom/svg-self-closing-use.html: Added.

2012-05-25  Jessie Berlin  <jberlin@apple.com>

        [Win] ~1/2 of all the iframe seamless tests fail
        https://bugs.webkit.org/show_bug.cgi?id=87543

        Add failing expected results for Windows in order to get the bots green.

        * platform/win/fast/frames: Added.
        * platform/win/fast/frames/seamless: Added.
        * platform/win/fast/frames/seamless/seamless-basic-expected.txt: Added.
        * platform/win/fast/frames/seamless/seamless-css-cascade-expected.txt: Added.
        * platform/win/fast/frames/seamless/seamless-form-get-expected.txt: Added.
        * platform/win/fast/frames/seamless/seamless-form-get-named-expected.txt: Added.
        * platform/win/fast/frames/seamless/seamless-form-post-expected.txt: Added.
        * platform/win/fast/frames/seamless/seamless-form-post-named-expected.txt: Added.
        * platform/win/fast/frames/seamless/seamless-hyperlink-expected.txt: Added.
        * platform/win/fast/frames/seamless/seamless-hyperlink-named-expected.txt: Added.
        * platform/win/fast/frames/seamless/seamless-inherited-document-style-expected.txt: Added.
        * platform/win/fast/frames/seamless/seamless-window-location-expected.txt: Added.
        * platform/win/fast/frames/seamless/seamless-window-location-href-expected.txt: Added.
        * platform/win/fast/frames/seamless/seamless-window-location-sandbox-expected.txt: Added.
        * platform/win/fast/frames/seamless/seamless-window-open-expected.txt: Added.

2012-05-25  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Make sure IceCallback is valid for PeerConnection00
        https://bugs.webkit.org/show_bug.cgi?id=87480

        Reviewed by Adam Barth.

        * fast/mediastream/constructors-expected.txt:
        * fast/mediastream/constructors.html:

2012-05-25  Mike West  <mkwst@chromium.org>

        Inline script and style blocked by Content Security Policy should provide more detailed console errors.
        https://bugs.webkit.org/show_bug.cgi?id=86848

        Reviewed by Adam Barth.

        * http/tests/security/contentSecurityPolicy/combine-multiple-policies-expected.txt:
        * http/tests/security/contentSecurityPolicy/default-src-inline-blocked-expected.txt:
        * http/tests/security/contentSecurityPolicy/injected-inline-script-allowed-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/injected-inline-script-allowed.html: Added.
        * http/tests/security/contentSecurityPolicy/injected-inline-script-blocked-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/inline-script-blocked-expected.txt.
        * http/tests/security/contentSecurityPolicy/injected-inline-script-blocked.html: Added.
        * http/tests/security/contentSecurityPolicy/injected-inline-style-allowed-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/injected-inline-style-allowed.html: Added.
        * http/tests/security/contentSecurityPolicy/injected-inline-style-blocked-expected.txt: Added.
        * http/tests/security/contentSecurityPolicy/injected-inline-style-blocked.html: Added.
        * http/tests/security/contentSecurityPolicy/inline-script-blocked-expected.txt:
        * http/tests/security/contentSecurityPolicy/inline-script-blocked-goofy-expected.txt:
        * http/tests/security/contentSecurityPolicy/inline-script-blocked-javascript-url-expected.txt:
        * http/tests/security/contentSecurityPolicy/inline-style-attribute-blocked-expected.txt:
        * http/tests/security/contentSecurityPolicy/inline-style-blocked-expected.txt:
        * http/tests/security/contentSecurityPolicy/javascript-url-blocked-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-and-enforce-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-only-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-only-from-header-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-uri-expected.txt:
        * http/tests/security/contentSecurityPolicy/report-uri-from-child-frame-expected.txt:
        * http/tests/security/contentSecurityPolicy/resources/inject-script.js: Added.
        * http/tests/security/contentSecurityPolicy/resources/inject-style.js: Added.
        * http/tests/security/contentSecurityPolicy/script-src-none-inline-event-expected.txt:
        * http/tests/security/contentSecurityPolicy/srcdoc-doesnt-bypass-script-src-expected.txt:

2012-05-25  Joshua Bell  <jsbell@chromium.org>

        [Chromium] Add missing expectations needed after http://trac.webkit.org/changeset/118577/

        Unreviewed gardening.

        * platform/chromium-mac-leopard/http/tests/media/video-buffered-range-contains-currentTime-expected.png: Added.
        * platform/chromium-mac-snowleopard/http/tests/media/video-buffered-range-contains-currentTime-expected.png: Added.
        * platform/chromium-mac/http/tests/media/video-buffered-range-contains-currentTime-expected.png: Added.

2012-05-25  Kenneth Russell  <kbr@google.com>

        New tex-image-and-sub-image-2d-with-video tests from r118565 failing on Mac Lion
        https://bugs.webkit.org/show_bug.cgi?id=87541

        Unreviewed; skipping tests until bug can be investigated.

        * platform/mac/Skipped:

2012-05-25  Adam Klein  <adamk@chromium.org>

        Remove a bunch of flaky expectations for tests that now pass.

        Unreviewed test expectations update.

        Also marked some nearby tests as more definitely failing.

        * platform/chromium/test_expectations.txt:

2012-05-25  Adam Klein  <adamk@chromium.org>

        compositing/overflow/overflow-positioning.html fails with timeout on multiple chromium bots
        https://bugs.webkit.org/show_bug.cgi?id=85771

        Unreviewed test expectations update.

        These tests haven't timed out lately on the Chromium bots, so removing
        the suppressions.

        * platform/chromium/test_expectations.txt:

2012-05-25  Anna Cavender <annacc@chromium.org>

        [Chromium] Removing tests from test_expectations.txt that are no longer crashing.

        Unreviewed gardening.

        * platform/chromium/test_expectations.txt:

2012-05-25  Anna Cavender <annacc@chromium.org>

        [Chromium] Removing media/video-volume-slider.html from test_expectations.txt

        Unreviewed gardening.

        * platform/chromium/test_expectations.txt:

2012-05-25  Adam Klein  <adamk@chromium.org>

        Mark some "flaky" TypedArray tests more appropriately as DEBUG SLOW

        Unreviewed test expectations update.

        * platform/chromium/test_expectations.txt:

2012-05-25  Adam Klein  <adamk@chromium.org>

        Rebaseline Chromium expectations for fast/box-shadow/shadow-buffer-partial.html

        Unreviewed rebaselining.

        The same rebaseline was made in r112582, but only got the Linux expectations.

        * fast/box-shadow/shadow-buffer-partial-expected.txt: Renamed from LayoutTests/platform/chromium-linux/fast/box-shadow/shadow-buffer-partial-expected.txt.
        * platform/chromium-linux-x86/fast/box-shadow/shadow-buffer-partial-expected.txt: Removed.
        * platform/chromium-mac-leopard/fast/box-shadow/shadow-buffer-partial-expected.txt: Removed.
        * platform/chromium-mac-snowleopard/fast/box-shadow/shadow-buffer-partial-expected.txt: Removed.
        * platform/chromium-mac/fast/box-shadow/shadow-buffer-partial-expected.txt: Removed.
        * platform/chromium-win-vista/fast/box-shadow/shadow-buffer-partial-expected.txt: Removed.
        * platform/chromium-win-xp/fast/box-shadow/shadow-buffer-partial-expected.txt: Removed.
        * platform/chromium-win/fast/box-shadow/shadow-buffer-partial-expected.txt: Removed.
        * platform/chromium/test_expectations.txt:
        * platform/efl/fast/box-shadow/shadow-buffer-partial-expected.txt: Removed.
        * platform/gtk/fast/box-shadow/shadow-buffer-partial-expected.txt: Removed.
        * platform/mac/fast/box-shadow/shadow-buffer-partial-expected.txt: Removed.

2012-05-24  Ryosuke Niwa  <rniwa@webkit.org>

        createContextualFragment and insertAdjacentHTML should throw syntax error
        https://bugs.webkit.org/show_bug.cgi?id=87454

        Reviewed by Darin Adler.

        Add a regression test, and rebaselined the existing tests since we throw
        DOMException.SYNTAX_ERR instead of DOMException.INVALID_STATE_ERR.

        * fast/dom/xhtml-fragment-parsing-exceptions-expected.txt: Added.
        * fast/dom/xhtml-fragment-parsing-exceptions.xhtml: Added.
        * fast/innerHTML/innerHTML-changing-document-properties-expected.txt:
        * fast/parser/xhtml-innerhtml-null-byte-first.xhtml:
        * fast/parser/xhtml-innerhtml-null-byte.xhtml:

2012-05-25  John Knottenbelt  <jknotten@chromium.org>

        Body scrollWidth() and scrollHeight() should be page scale-invariant
        https://bugs.webkit.org/show_bug.cgi?id=87494

        RenderView::documentRect() is calculating the "scaled" document rect by applying
        the current transformation matrix to the unscaledDocumentRect() and then
        returning the rounded-out IntRect result.

        This rounding out is incorrect because it allows the scaled rectangle to
        represent an area that is not actually covered by the document.

        We fix this by applying the current transform to the document rect
        as a FloatRect and then explicitly converting to IntRect, which
        takes the floor of the resulting rectangle coordinates instead of
        rounding them out.

        This is evidenced by the document.body.scrollWidth() and
        document.body.scrollHeight() changing under page scale factor when
        they are expected to remain invariant.

        Reviewed by James Robinson.

        * fast/dom/window-scroll-scaling-expected.txt: Added.
        * fast/dom/window-scroll-scaling.html: Added.

2012-05-25  Simon Fraser  <simon.fraser@apple.com>

        Terrible performance on http://alliances.commandandconquer.com/ and http://www.lordofultima.com/
        https://bugs.webkit.org/show_bug.cgi?id=84410

        Reviewed by Dave Hyatt.
        
        Basic tests for compositing inside columns, and in a flipped-writing-mode
        document.

        * compositing/geometry/composited-in-columns-expected.png: Added.
        * compositing/geometry/composited-in-columns-expected.txt: Added.
        * compositing/geometry/composited-in-columns.html: Added.
        * compositing/geometry/flipped-writing-mode-expected.png: Added.
        * compositing/geometry/flipped-writing-mode-expected.txt: Added.
        * compositing/geometry/flipped-writing-mode.html: Added.

2012-05-25  Andras Becsi  <andras.becsi@nokia.com>

        Acid3 fails in WebKit2 regression tests
        https://bugs.webkit.org/show_bug.cgi?id=87187

        Reviewed by Alexey Proskuryakov.

        Since the link test in the acid3.html relies on visited link tracking
        it should call layoutTestController.keepWebHistory() because visited
        link tracking is disabled by default to avoid interdependencies between
        test.

        Update expected files and png's now that the result does not show the
        "YOU SHOULD NOT SEE THIS AT ALL" text in red in the top left corner.

        * http/tests/misc/acid3-expected.png:
        * http/tests/misc/acid3-expected.txt:
        * http/tests/misc/acid3.html: Fix test.
        * platform/chromium-mac-leopard/http/tests/misc/acid3-expected.png:
        * platform/chromium-mac-snowleopard/http/tests/misc/acid3-expected.png:
        * platform/chromium-mac/http/tests/misc/acid3-expected.png:
        * platform/chromium-mac/http/tests/misc/acid3-expected.txt:
        * platform/mac-wk2/http/tests/misc/acid3-expected.png: Same as the platform independent result. Removed.
        * platform/mac-wk2/http/tests/misc/acid3-expected.txt: Same as the platform independent result. Removed.

2012-05-25  Kenneth Russell  <kbr@google.com>

        Incorporate new tex-image-and-sub-image-2d-with-video*.html tests
        https://bugs.webkit.org/show_bug.cgi?id=87042

        Reviewed by James Robinson.

        Incorporated current version of video-related WebGL tests from
        Khronos repository testing uploading to all packed pixel formats.

        * fast/canvas/webgl/resources/tex-image-and-sub-image-2d-with-video.js: Added.
        (generateTest.runOneIteration):
        (generateTest.runTest):
        * fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-expected.txt:
        * fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgb565-expected.txt: Copied from LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-expected.txt.
        * fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgb565.html: Added.
        * fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba4444-expected.txt: Copied from LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-expected.txt.
        * fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba4444.html: Added.
        * fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551-expected.txt: Copied from LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-expected.txt.
        * fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551.html: Added.
        * fast/canvas/webgl/tex-image-and-sub-image-2d-with-video.html:

2012-05-25  Jessie Berlin  <jberlin@apple.com>

        Rebaseline the Windows getComputedStyle results to reflect features
        turned off on Windows.

        * platform/win/fast/css/getComputedStyle/computed-style-expected.txt: Added.
        * platform/win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Added.

2012-05-25  Sukolsak Sakshuwong  <sukolsak@google.com>

        Pasting into contenteditable table cell pastes into adjacent cell instead.
        https://bugs.webkit.org/show_bug.cgi?id=53933

        Reviewed by Darin Adler.

        This bug has been fixed. Add a test to make sure that it won't regress.

        * editing/pasteboard/paste-into-table-cell-2-expected.txt: Added.
        * editing/pasteboard/paste-into-table-cell-2.html: Added.

2012-05-25  Joshua Bell  <jsbell@chromium.org>

        [Chromium] Remove 6 incorrect baselines from http://trac.webkit.org/changeset/117821/

        Unreviewed gardening.

        * platform/chromium-win/fast/viewport/viewport-126-expected.txt: Removed.
        * platform/chromium-win/fast/viewport/viewport-127-expected.txt: Removed.
        * platform/chromium-win/fast/viewport/viewport-65-expected.txt: Removed.
        * platform/chromium-win/fast/viewport/viewport-82-expected.txt: Removed.
        * platform/chromium-win/fast/viewport/viewport-84-expected.txt: Removed.
        * platform/chromium-win/fast/viewport/viewport-87-expected.txt: Removed.

2012-05-25  Jessie Berlin  <jberlin@apple.com>

        Web Timing is not enabled on Windows
        https://bugs.webkit.org/show_bug.cgi?id=42435

        Add the fast/performance tests to the Windows Skipped list.

        * platform/win/Skipped:

2012-05-25  Jessie Berlin  <jberlin@apple.com>

        File API is not yet supported on Windows
        https://bugs.webkit.org/show_bug.cgi?id=37957

        Add platform specific results for a test that attempts to use the FileReaderConstructor.

        * platform/win/fast/dom/call-a-constructor-as-a-function-expected.txt: Added.

2012-05-25  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r118395.
        http://trac.webkit.org/changeset/118395
        https://bugs.webkit.org/show_bug.cgi?id=87526

        Breaking sites including GMail and Yahoo mail (Requested by
        jsbell on #webkit).

        * fast/css/clear-float-sibling-expected.html: Removed.
        * fast/css/clear-float-sibling.html: Removed.

2012-05-25  Jessie Berlin  <jberlin@apple.com>

        Skip the Network Information tests on Windows.

        * platform/win/Skipped:

2012-05-25  Joshua Bell  <jsbell@chromium.org>

        [Chromium] Remove 2 incorrect rebaselines from http://trac.webkit.org/changeset/117818/

        Unreviewed gardening.

        * platform/chromium-mac/canvas/philip/tests/2d.imageData.create1.type-expected.txt: Removed.
        * platform/chromium-mac/canvas/philip/tests/2d.imageData.create2.type-expected.txt: Removed.

2012-05-25  Jessie Berlin  <jberlin@apple.com>

        Skip more WebGL tests on Windows.

        * platform/win/Skipped:

2012-05-25  Elliot Poger  <epoger@chromium.org>

        New baselines for http://crbug.com/129184

        Unreviewed rebaselining.

        * platform/chromium-linux/svg/filters/subRegion-one-effect-expected.png:
        * platform/chromium-linux/svg/filters/subRegion-two-effects-expected.png:
        * platform/chromium-linux/svg/transforms/svg-css-transforms-expected.png:
        * platform/chromium-linux/transforms/svg-vs-css-expected.png:
        * platform/chromium-mac/svg/filters/subRegion-one-effect-expected.png:
        * platform/chromium-mac/svg/filters/subRegion-two-effects-expected.png:
        * platform/chromium-mac/svg/transforms/svg-css-transforms-expected.png:
        * platform/chromium-mac/transforms/svg-vs-css-expected.png:
        * platform/chromium-win/svg/filters/subRegion-one-effect-expected.png:
        * platform/chromium-win/svg/filters/subRegion-two-effects-expected.png:
        * platform/chromium-win/svg/transforms/svg-css-transforms-expected.png:
        * platform/chromium-win/transforms/svg-vs-css-expected.png:
        * platform/efl/svg/filters/subRegion-one-effect-expected.txt: Removed.
        * platform/efl/svg/filters/subRegion-two-effects-expected.txt: Removed.
        * platform/gtk/svg/filters/subRegion-one-effect-expected.txt: Removed.
        * platform/gtk/svg/filters/subRegion-two-effects-expected.txt: Removed.
        * platform/mac/svg/filters/subRegion-one-effect-expected.txt: Removed.
        * platform/mac/svg/filters/subRegion-two-effects-expected.txt: Removed.
        * platform/qt/svg/filters/subRegion-one-effect-expected.txt: Removed.
        * platform/qt/svg/filters/subRegion-two-effects-expected.txt: Removed.
        * svg/filters/subRegion-one-effect-expected.txt: Added.
        * svg/filters/subRegion-two-effects-expected.txt: Added.

2012-05-25  Jessie Berlin  <jberlin@apple.com>

        Implement LayoutTest's eventSender.beginDragWithFiles interface in windows platform
        https://bugs.webkit.org/show_bug.cgi?id=86296

        Add more affected tests to the Windows Skipped list.

        * platform/win/Skipped:

2012-05-25  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Hangup when continuously changing a css width value in Inspector
        https://bugs.webkit.org/show_bug.cgi?id=85802

        Reviewed by Vsevolod Vlasov.

        * inspector/styles/styles-formatting-expected.txt:
        * inspector/styles/styles-formatting.html:

2012-05-25  Joshua Bell  <jsbell@chromium.org>

        [Chromium] Widen CRASH expectation for visibility-simple-canvas2d-layer.html to include Mac10.6.

        Unreviewed gardening.

        * platform/chromium/test_expectations.txt:

2012-05-25  Joshua Bell  <jsbell@chromium.org>

        [Chromium] Remove/restore test expectations for html5lib tests.
        https://bugs.webkit.org/show_bug.cgi?id=87275

        Unreviewed gardening.

        * platform/chromium/test_expectations.txt:

2012-05-25  Joshua Bell  <jsbell@chromium.org>

        [Chromium] Remove test expectation for video-cookie.html now that the issue
        is fixed on the Chromium side.
        https://bugs.webkit.org/show_bug.cgi?id=87459

        Unreviewed gardening.

        * platform/chromium/test_expectations.txt:

2012-05-25  Jessie Berlin  <jberlin@apple.com>

        Remove the Windows platform-specific results for window-domurl-crash.

        r115582 changed this test to use Blob instead of WebKitBlobBuilder, so the fact that Windows
        doesn't support WebKitBlobBuilder no longer affects this test.

        * platform/chromium-win/fast/dom/window-domurl-crash-expected.txt: Removed.
        * platform/win/fast/dom/window-domurl-crash-expected.txt: Removed.

2012-05-25  Vsevolod Vlasov  <vsevik@chromium.org>

        Unreviewed chromium test expectations update.

        * platform/chromium/test_expectations.txt:

2012-05-25  Alexei Filippov  <alexeif@chromium.org>

        Web Inspector: Speed up edges iteration in heap profiler
        https://bugs.webkit.org/show_bug.cgi?id=87286

        Add an extra node to nodes array that points to the end of edges array.
        It allows to eliminate a check for the last node in iteration code.

        Reviewed by Yury Semikhatsky.

        * inspector/profiler/heap-snapshot-test.js:
        (initialize_HeapSnapshotTest.InspectorTest.createHeapSnapshotMockObject):
        (initialize_HeapSnapshotTest.InspectorTest._postprocessHeapSnapshotMock):

2012-05-25  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening after r118166, r118291 and r118442.

        * platform/gtk/test_expectations.txt:

2012-05-25  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: drop obsolete WebInspector.Uint32Array and adjust snapshot chunk size for better transfer-snapshot metric.
        https://bugs.webkit.org/show_bug.cgi?id=87490

        Originally WebInspector.Uint32Array was used for dynamic array
        reallocation because we had no information about expected arrays sizes.
        Now we have these sizes and allocates array precisely.

        Reviewed by Yury Semikhatsky.

        * inspector/profiler/heap-snapshot-test.js:
        (initialize_HeapSnapshotTest.):

2012-05-25  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] fast/forms/color/input-value-sanitization-color.html can be unskipped
        https://bugs.webkit.org/show_bug.cgi?id=87487

        Unreviewed EFL gardening. Unskip
        fast/forms/color/input-value-sanitization-color.html now that
        INPUT_TYPE_COLOR flag has been enabled by default for EFL port in
        r114113.

        * platform/efl/Skipped:

2012-05-25  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>

        [EFL] [DRT] Gardening of failing tests and missing results
        https://bugs.webkit.org/show_bug.cgi?id=87486

        Unreviewed EFL gardening. Some rebaselines after r118448, and updated
        expectations for a couple of tests.

        * platform/efl/fast/html/details-position-expected.txt:
        * platform/efl/fast/replaced/width100percent-checkbox-expected.png:
        * platform/efl/fast/replaced/width100percent-checkbox-expected.txt:
        * platform/efl/fast/replaced/width100percent-radio-expected.png:
        * platform/efl/fast/replaced/width100percent-radio-expected.txt:
        * platform/efl/mathml/presentation/fractions-expected.png:
        * platform/efl/mathml/presentation/fractions-expected.txt:
        * platform/efl/mathml/presentation/fractions-vertical-alignment-expected.png:
        * platform/efl/mathml/presentation/fractions-vertical-alignment-expected.txt:
        * platform/efl/mathml/presentation/mo-stretch-expected.png:
        * platform/efl/mathml/presentation/mo-stretch-expected.txt:
        * platform/efl/mathml/presentation/subsup-expected.txt:
        * platform/efl/test_expectations.txt:

2012-05-25  János Badics  <jbadics@inf.u-szeged.hu>

        [Qt] Gardening. Skip a new test: fast/events/domactivate-sets-underlying-click-event-as-handled.html
        because it times out on Qt and GTK platforms.

        Reviewed by Csaba Osztrogonác.

        * platform/qt/Skipped:

2012-05-25  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>

        [EFL][DRT] Gardening. fast/events/option-tab.html does not pass
        https://bugs.webkit.org/show_bug.cgi?id=87471

        Unreviewed. fast/events/option-tab.html should not pass as the 
        EFL port uses different keyboard accelerators than Safari (via Chromium).

        * platform/efl/test_expectations.txt:

2012-05-25  Keishi Hattori  <keishi@webkit.org>

        Bad checkValidity result on recently "enabled" form fields
        https://bugs.webkit.org/show_bug.cgi?id=85704

        Reviewed by Kent Tamura.

        * fast/forms/disabled-attr-checkvalidity-expected.txt: Added.
        * fast/forms/disabled-attr-checkvalidity.html: Added.

2012-05-25  János Badics  <jbadics@inf.u-szeged.hu>

        [Qt] Unreviewed gardening after r118448. Added rebaseline to 2 tests on Qt platform that
        had 1 pixel differences because of rounding mistakes.

        * platform/qt/fast/html/details-position-expected.txt:
        * platform/qt/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt:

2012-05-25  Ryosuke Niwa  <rniwa@webkit.org>

        Pasting text in input field is not available if <body> has visibility:hidden
        https://bugs.webkit.org/show_bug.cgi?id=66754

        Reviewed by Kent Tamura.

        Add a regression test since this bug has been fixed by r99076.

        * editing/pasteboard/input-with-visibility-hidden-expected.txt: Copied from input-with-display-none-div-expected.txt.
        * editing/pasteboard/input-with-visibility-hidden.html: Copied from input-with-display-none-div.html.

2012-05-24  Kinuko Yasuda  <kinuko@chromium.org>

        [chromium] DataTransferItem.webkitGetAsEntry() shouldn't be exposed without flag yet
        https://bugs.webkit.org/show_bug.cgi?id=87457

        Reviewed by Kent Tamura.

        * platform/chromium/test_expectations.txt: Marking tests using webkitGetAsEntry SKIP

2012-05-25  Rakesh KN  <rakesh.kn@motorola.com>

        RadioNodeList does not include a object element
        https://bugs.webkit.org/show_bug.cgi?id=87371

        Reviewed by Kent Tamura.

        * fast/forms/form-collection-radio-node-list-expected.txt:
        * fast/forms/form-collection-radio-node-list.html:
        Updated test to include test for object element.

2012-05-25  Jan Keromnes  <janx@linux.com>

        Web Inspector: Resource object has no methods getContent and setContent
        https://bugs.webkit.org/show_bug.cgi?id=87424

        This fixes the expected test result for `handleOpenResource()`, see fix
        for bug #87424 in Source/WebCore/inspector/front-end/ExtensionAPI.js.

        Reviewed by Vsevolod Vlasov.

        * inspector/extensions/extensions-resources-expected.txt:

2012-05-25  Vsevolod Vlasov  <vsevik@chromium.org>

        Unreviewed chromium test expectations rebaseline.

        * platform/chromium-mac-leopard/editing/spelling/grammar-markers-expected.png: Added.
        * platform/chromium-mac-snowleopard/editing/spelling/grammar-markers-expected.png: Added.
        * platform/chromium-mac/editing/spelling/grammar-markers-expected.png: Added.
        * platform/chromium-win/editing/spelling/grammar-markers-expected.png: Added.

2012-05-25  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed gardening, unskip now passing tests.

        * platform/qt/Skipped:

2012-05-25  Tony Payne  <tpayne@chromium.org>

        Add tests for JPEG and PNG images with a non-generic RGB color profile
        https://bugs.webkit.org/show_bug.cgi?id=87437

        No layout test currently covers a color transform except for the no-op case of a
        Generic RGB profile (image) -> Generic RGB profile (screen) color transform. Add
        tests for JPEG and PNG images with a non-identity color correction transform, in
        particular, use test images with a (non-generic) RGB color profile.

        Reviewed by Kent Tamura.

        * fast/images/jpeg-with-color-profile-expected.txt: Added.
        * fast/images/jpeg-with-color-profile.html: Added.
        * fast/images/png-with-color-profile-expected.txt: Added.
        * fast/images/png-with-color-profile.html: Added.
        * fast/images/resources/red-at-12-oclock-with-color-profile.jpg: Added. The image
        has an RGB color profile (non-generic). If color correction is correctly applied,
        the image red sector appears at the 12 o'clock position. If color correction fails,
        the red sector appears at 4 o'clock.
        * fast/images/resources/red-at-12-oclock-with-color-profile.png: Added, and ditto
        for the expected image red sector position and image color profile type.
        * platform/chromium/test_expectations.txt: Add MISSING expectations.
        * platform/mac-snowleopard/fast/images/jpeg-with-color-profile-expected.png: Added.
        * platform/mac-snowleopard/fast/images/png-with-color-profile-expected.png: Added.

2012-05-25  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed gardening, unskip a now passing test.

        * platform/qt/Skipped:

2012-05-25  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed gardening. Unskip a passing test and mark it as SLOW.

        * platform/qt/Skipped:
        * platform/qt/test_expectations.txt:

2012-05-24  Kent Tamura  <tkent@chromium.org>

        PAGE_POPUP: window.setValueAndClosePopup should be moved to a
        per-context property of DOMWindow.
        https://bugs.webkit.org/show_bug.cgi?id=87086

        Reviewed by Adam Barth.

        * fast/forms/date/no-page-popup-controller-expected.txt: Added.
        * fast/forms/date/no-page-popup-controller.html: Added.

2012-05-24  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening, rebaselining fast/multicol/span/clone-flexbox.html.

        * platform/gtk/fast/multicol/span/clone-flexbox-expected.txt:

2012-05-24  Hironori Bono  <hbono@chromium.org>

        Enable grammar checking on Chromium when we paste text (Take 2)
        https://bugs.webkit.org/show_bug.cgi?id=74393

        Reviewed by Ryosuke Niwa.

        This change enables grammar checking on Chromium and implements a mock grammar
        checker to fix a failing test.

        * editing/spelling/grammar-markers-expected.txt: Added.
        * editing/spelling/grammar-markers.html: Added.
        * platform/chromium-linux/editing/spelling/grammar-markers-expected.png: Added.
        * platform/chromium/test_expectations.txt:
        * platform/mac/editing/spelling/grammar-markers-expected.png: Added.

2012-05-24  Dominic Mazzoni  <dmazzoni@google.com>

        Crash in WebCore::AccessibilityTable::isDataTable
        https://bugs.webkit.org/show_bug.cgi?id=87409

        Reviewed by Abhishek Arya.

        * accessibility/contenteditable-table-check-causes-crash-expected.txt: Added.
        * accessibility/contenteditable-table-check-causes-crash.html: Added.

2012-05-24  Filip Pizlo  <fpizlo@apple.com>

        REGRESSION (r118013-r118031): Loops/Reloads under www.yahoo.com, quits after three tries with error
        https://bugs.webkit.org/show_bug.cgi?id=87327

        Reviewed by Geoffrey Garen.
        
        * fast/js/dfg-check-two-structures-expected.txt: Added.
        * fast/js/dfg-check-two-structures.html: Added.
        * fast/js/script-tests/dfg-check-two-structures.js: Added.
        (foo):

2012-05-24  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>

        [EFL] [DRT] Add support for WebKitOfflineWebApplicationCacheEnabled preference
        https://bugs.webkit.org/show_bug.cgi?id=86842

        Reviewed by Antonio Gomes.

        Unskip passing test http/tests/appcache/disabled.html

        * platform/efl/Skipped:

2012-05-24  Zan Dobersek  <zandobersek@gmail.com>

        [Gtk] Many tests revealed as passing after moving from Skipped to test_expectations.txt
        https://bugs.webkit.org/show_bug.cgi?id=85591

        Reviewed by Philippe Normand.

        Remove CRASH text expectations for plenty of tests that have been
        consistently passing on all the Gtk builders.

        * platform/gtk/test_expectations.txt:

2012-05-24  Joshua Bell  <jsbell@chromium.org>

        [Chromium] Unreviewed gardening, add expectation for new failure.

        * platform/chromium/test_expectations.txt:

2012-05-24  Hayato Ito  <hayato@chromium.org>

        Fix crashes caused by a DOMCharacterDataModified event on a text node.
        https://bugs.webkit.org/show_bug.cgi?id=86953

        Reviewed by Dimitri Glazkov.

        * fast/events/dom-character-data-modified-textarea-crash-expected.txt: Added.
        * fast/events/dom-character-data-modified-textarea-crash.html: Added.

2012-05-24  Philippe Normand  <pnormand@igalia.com>

        Unreviewed, GTK rebaselines after r118448 and r118353.

        * platform/gtk/fast/forms/001-expected.txt:
        * platform/gtk/fast/html/details-position-expected.txt:
        * platform/gtk/fast/js/global-constructors-expected.txt:
        * platform/gtk/fast/multicol/span/clone-flexbox-expected.txt:
        * platform/gtk/fast/replaced/width100percent-checkbox-expected.txt:
        * platform/gtk/fast/replaced/width100percent-radio-expected.txt:
        * platform/gtk/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt:
        * platform/gtk/tables/mozilla/bugs/bug1318-expected.txt:
        * platform/gtk/tables/mozilla/bugs/bug4527-expected.txt:

2012-05-24  Joshua Bell  <jsbell@chromium.org>

        [Chromium] Widen expectations for a couple of tests to include LEOPARD.
        https://bugs.webkit.org/show_bug.cgi?id=81638
        https://bugs.webkit.org/show_bug.cgi?id=81931

        Unreviewed gardening.

        * platform/chromium/test_expectations.txt:

2012-05-24  Joshua Bell  <jsbell@chromium.org>

        [Chromium] More rebaselines following r118448.

        Unreviewed gardening (but I talked to eae about it).

        * platform/chromium-mac-leopard/fast/forms/001-expected.png:
        * platform/chromium-mac-leopard/fast/replaced/width100percent-checkbox-expected.png:
        * platform/chromium-mac-leopard/fast/replaced/width100percent-radio-expected.png:
        * platform/chromium-mac-leopard/tables/mozilla/bugs/bug1318-expected.png:
        * platform/chromium-mac-leopard/tables/mozilla/bugs/bug4527-expected.png:

2012-05-24  Jessie Berlin  <jberlin@apple.com>

        Disable all the shadow dom tests on Windows, since the feature isn't enabled there.

        * platform/win/Skipped:

2012-05-24  Jessie Berlin  <jberlin@apple.com>

        [Win] LayoutTests/editing/selection/selection-plugin-clear-crash.html crashes in
        ScrollView::delegatesScrolling
        https://bugs.webkit.org/show_bug.cgi?id=87431

        Add another affected test to the Windows Skipped list.

        * platform/win/Skipped:

2012-05-24  Pete Williamson  <petewil@google.com>

        [Chromium] Re-enable some layout tests that now pass reliably
        https://bugs.webkit.org/show_bug.cgi?id=87064

        Reviewed by Dmitry Titov.

        * platform/chromium/test_expectations.txt:

2012-05-24  Jessie Berlin  <jberlin@apple.com>

        ietestcenter/css3/valuesandunits/units-000.htm asserts
        https://bugs.webkit.org/show_bug.cgi?id=86176

        Add it to the Windows Skipped list to get the bots green.

        * platform/win/Skipped:

2012-05-24  Jessie Berlin  <jberlin@apple.com>

        webkit crashes on debug builds when running IETC flexbox-ordinal-group-001.htm
        https://bugs.webkit.org/show_bug.cgi?id=85832

        Add it to the Windows Skipped list to get the bots green.

        * platform/win/Skipped:

2012-05-24  Joshua Bell  <jsbell@chromium.org>

        [Chromium] Rebaselines following r118448.

        Unreviewed gardening (but I talked to eae about it).

        * platform/chromium-mac-snowleopard/fast/forms/001-expected.png:
        * platform/chromium-mac-snowleopard/fast/replaced/width100percent-checkbox-expected.png:
        * platform/chromium-mac-snowleopard/fast/replaced/width100percent-radio-expected.png:
        * platform/chromium-mac-snowleopard/tables/mozilla/bugs/bug1318-expected.png:
        * platform/chromium-mac-snowleopard/tables/mozilla/bugs/bug4527-expected.png:
        * platform/chromium-mac/fast/forms/001-expected.png:
        * platform/chromium-mac/fast/forms/001-expected.txt:
        * platform/chromium-mac/fast/replaced/width100percent-checkbox-expected.png:
        * platform/chromium-mac/fast/replaced/width100percent-checkbox-expected.txt:
        * platform/chromium-mac/fast/replaced/width100percent-radio-expected.png:
        * platform/chromium-mac/fast/replaced/width100percent-radio-expected.txt:
        * platform/chromium-mac/tables/mozilla/bugs/bug1318-expected.png:
        * platform/chromium-mac/tables/mozilla/bugs/bug1318-expected.txt:
        * platform/chromium-mac/tables/mozilla/bugs/bug4527-expected.png:
        * platform/chromium-mac/tables/mozilla/bugs/bug4527-expected.txt:

2012-05-24  Joshua Bell  <jsbell@chromium.org>

        [Chromium] Update test expectation pathnames following r118418.

        Unreviewed gardening.

        * platform/chromium/test_expectations.txt:

2012-05-24  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION (r112399): insertHTML doesn't respect current selection range and inserts HTML to incorrect position
        https://bugs.webkit.org/show_bug.cgi?id=87195

        Reviewed by Darin Adler.

        Add a regression test.

        * editing/pasteboard/paste-at-end-of-node-followed-by-inline-element-expected.txt: Added.
        * editing/pasteboard/paste-at-end-of-node-followed-by-inline-element.html: Added.

2012-05-24  Emil A Eklund  <eae@chromium.org>

        REGRESSION (115573): Incorrect rounding of margins for floats
        https://bugs.webkit.org/show_bug.cgi?id=87319

        Reviewed by Eric Seidel.

        Add new test ensuring that using margins with floats doesn't cause
        undesired wrapping.

        * fast/block/float/floats-with-margin-should-not-wrap-expected.txt: Added.
        * fast/block/float/floats-with-margin-should-not-wrap.html: Added.
        * platform/mac/fast/forms/001-expected.txt:
        * platform/mac/fast/html/details-position-expected.txt:
        * platform/mac/fast/replaced/width100percent-checkbox-expected.txt:
        * platform/mac/fast/replaced/width100percent-radio-expected.txt:
        * platform/mac/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug1318-expected.txt:
        * platform/mac/tables/mozilla/bugs/bug4527-expected.txt:

2012-05-24  Christophe Dumez  <christophe.dumez@intel.com>

        postMessage and webkitPostMessage should behave the same way
        https://bugs.webkit.org/show_bug.cgi?id=87384

        Reviewed by Adam Barth.

        Update global test expectation for
        fast/dom/Window/window-postmessage-args.html now that JSC's
        postMessage implementation supports transfer of MessagePorts.

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

2012-05-24  Pablo Flouret  <pablof@motorola.com>

        Submit button doesn't submit the form if the form is wrapped by an anchor tag
        https://bugs.webkit.org/show_bug.cgi?id=86719

        Reviewed by Ryosuke Niwa.

        * fast/forms/form-in-anchor-controls-activation-expected.txt: Added.
        * fast/forms/form-in-anchor-controls-activation.html: Added.

2012-05-24  Jessie Berlin  <jberlin@apple.com>

        Assertion failure in replaySavedEvents() when running editing/selection/drag-in-iframe.html
        and editing/pasteboard/drop-text-events.html and fast/events/dragging-mouse-moves.html
        https://bugs.webkit.org/show_bug.cgi?id=21796

        Add yet another affected test to the Windows Skipped list to get the bots green.

        * platform/win/Skipped:

2012-05-24  Jessie Berlin  <jberlin@apple.com>

        [Win] LayoutTests/editing/selection/selection-plugin-clear-crash.html crashes
        https://bugs.webkit.org/show_bug.cgi?id=87431

        Add it to the Windows Skipped list to get the bots green.

        * platform/win/Skipped:

2012-05-24  Jeffrey Pfau  <jpfau@apple.com>

        Test case for focusing readonly elements
        https://bugs.webkit.org/show_bug.cgi?id=87429

        Reviewed by Joseph Pecoraro.

        * fast/forms/input-readonly-focus-expected.txt: Added.
        * fast/forms/input-readonly-focus.html: Added.

2012-05-24  Levi Weintraub  <leviw@chromium.org>

        Avoid creating InlineBoxes for floating and positioned objects in isolates.
        https://bugs.webkit.org/show_bug.cgi?id=87277

        Reviewed by Eric Seidel.

        * fast/text/international/float-as-only-child-of-isolate-crash-expected.txt: Added.
        * fast/text/international/float-as-only-child-of-isolate-crash.html: Added.

2012-05-24  Jessie Berlin  <jberlin@apple.com>

        DOM ClipboardData.setData does not allow writes during clipboard events
        https://bugs.webkit.org/show_bug.cgi?id=17645

        Add the more affected tests to the Windows Skipped list in order to get the bots green and
        clean up the entry in the Skipped list to reference the bugs.webkit.org URL instead of the
        Radar URL.

        * platform/win/Skipped:

2012-05-24  Aaron Colwell  <acolwell@chromium.org>

        Move format independent Media Source tests to http/tests/media/media-source
        https://bugs.webkit.org/show_bug.cgi?id=86688

        Reviewed by Eric Carlson.

        * http/tests/media/media-source/media-source.js: Added. Replaces webm/webm-media-source.js.
        (MediaSourceTest.SegmentHelper): Helper class for loading & managing segment data.
        (MediaSourceTest.SegmentHelper.prototype.init.getDataCallback):
        (MediaSourceTest.SegmentHelper.prototype.init): Initializes helper and starts loading segment data into memory.
        (MediaSourceTest.SegmentHelper.prototype.getInitSegmentDone_): Called when the initialization segment has been loaded.
        (MediaSourceTest.SegmentHelper.prototype.downloadMediaSegment_.getDataCallback):
        (MediaSourceTest.SegmentHelper.prototype.downloadMediaSegment_): Downloads the i'th media segment.
        (MediaSourceTest.SegmentHelper.prototype.downloadMediaSegmentDone_): Called when the media segment is download. Initiates downloading of the next segment if we don't have them all yet.
        (MediaSourceTest.SegmentHelper.prototype.getData_.request.onload):
        (MediaSourceTest.SegmentHelper.prototype.getData_): Private helper function that downloads data with XHR.
        (MediaSourceTest.SegmentHelper.prototype.addSourceId): Helper function that adds a SourceID using the type specified in the segmentInfo.
        (MediaSourceTest.SegmentHelper.prototype.appendInitSegment): Append the initialization segment using webkitSourceAppend().
        (MediaSourceTest.SegmentHelper.prototype.appendMediaSegment): Appends the i'th media segment using webkitSourceAppend().
        (MediaSourceTest.SegmentHelper.prototype.appendUntilEndOfStream): Starts appending at the i'th media segment and continues appending segments until it has appended the last one.
        (MediaSourceTest.SegmentHelper.prototype.getTimeForMediaSegment): Gets the starting timestamp for the i'th media segment.
        (MediaSourceTest.SegmentHelper.prototype.getMediaSegmentIndexForTimestamp): Gets the media segment index number for the specified timestamp.
        (MediaSourceTest.setSrcToMediaSourceTestURL): Helper function that sets src to webkitMediaSourceURL.
        (MediaSourceTest.mediaErrorString): Helper function that converts a MediaError code to a string.
        (MediaSourceTest.defaultOnErrorChecks): Default event handler for error events. 
        (MediaSourceTest.runNext_.runNextFunction): Function passed to a test case to trigger moving on to the next test.
        (MediaSourceTest.runNext_.errorEventHandler): Error event handler to use for a test case. This allows moving on to the next test if we get an unexpected error.
        (MediaSourceTest.runNext_): Private helper function for running a single test case.
        (MediaSourceTest.startTesting): Runs the test case harness.
        (MediaSourceTest.startSourceOpenTesting.testWrapperFunction): Wraps test case functions so that they will get called when webkitsourceopen event fires.
        (MediaSourceTest.startSourceOpenTesting): Runs the test case harness where test case functions are run from the webkitsourceopen event handler.
        (MediaSourceTest.runOnSourceOpen.eventHandlerFunction): 
        (MediaSourceTest.runOnSourceOpen): Helper function that enable Media Source and calls a function when the webkitsourceopen fires.
        (MediaSourceTest.logSourceState): Logs the current webkitSourceState to the console.
        (MediaSourceTest.expectSourceState): Helper function that verifies a webkitSourceState expectatation.
        (MediaSourceTest.getSourceStateName): Converts a sourcestate value into a string.
        (MediaSourceTest.expectReadyState): Helper function that verifies a readyState expectation.
        (MediaSourceTest.getReadyStateName): Converts a readyState value into a string.
        * http/tests/media/media-source/video-media-source-abort-expected.txt: Added.
        * http/tests/media/media-source/video-media-source-abort.html: Added.
        * http/tests/media/media-source/video-media-source-add-and-remove-ids-expected.txt: Renamed from LayoutTests/http/tests/media/media-source/webm/video-media-source-add-and-remove-ids-expected.txt.
        * http/tests/media/media-source/video-media-source-add-and-remove-ids.html: Added.
        * http/tests/media/media-source/video-media-source-errors-expected.txt: Renamed from LayoutTests/http/tests/media/media-source/webm/video-media-source-errors-expected.txt.
        * http/tests/media/media-source/video-media-source-errors.html: Added.
        * http/tests/media/media-source/video-media-source-event-attributes.html:
        * http/tests/media/media-source/video-media-source-play-expected.txt: Renamed from LayoutTests/http/tests/media/media-source/webm/video-media-source-play-expected.txt.
        * http/tests/media/media-source/video-media-source-play.html: Renamed from LayoutTests/http/tests/media/media-source/webm/video-media-source-play.html.
        * http/tests/media/media-source/video-media-source-seek-expected.txt: Renamed from LayoutTests/http/tests/media/media-source/webm/video-media-source-seek-expected.txt.
        * http/tests/media/media-source/video-media-source-seek.html: Renamed from LayoutTests/http/tests/media/media-source/webm/video-media-source-seek.html.
        * http/tests/media/media-source/video-media-source-state-changes-expected.txt: Renamed from LayoutTests/http/tests/media/media-source/webm/video-media-source-state-changes-expected.txt.
        * http/tests/media/media-source/video-media-source-state-changes.html: Renamed from LayoutTests/http/tests/media/media-source/webm/video-media-source-state-changes.html.
        * http/tests/media/media-source/webm/video-media-source-abort-expected.txt: Removed.
        * http/tests/media/media-source/webm/video-media-source-abort.html: Removed.
        * http/tests/media/media-source/webm/video-media-source-add-and-remove-ids.html: Removed.
        * http/tests/media/media-source/webm/video-media-source-errors.html: Removed.
        * http/tests/media/media-source/webm/webm-media-source.js: Removed.
        * http/tests/media/resources/media-source/webm/segment-info.js: Added. Contains segment information for test.webm.
        * http/tests/media/resources/media-source/webm/test.webm.cluster-0: Removed.
        * http/tests/media/resources/media-source/webm/test.webm.cluster-1: Removed.
        * http/tests/media/resources/media-source/webm/test.webm.cluster-10: Removed.
        * http/tests/media/resources/media-source/webm/test.webm.cluster-11: Removed.
        * http/tests/media/resources/media-source/webm/test.webm.cluster-12: Removed.
        * http/tests/media/resources/media-source/webm/test.webm.cluster-13: Removed.
        * http/tests/media/resources/media-source/webm/test.webm.cluster-14: Removed.
        * http/tests/media/resources/media-source/webm/test.webm.cluster-15: Removed.
        * http/tests/media/resources/media-source/webm/test.webm.cluster-2: Removed.
        * http/tests/media/resources/media-source/webm/test.webm.cluster-3: Removed.
        * http/tests/media/resources/media-source/webm/test.webm.cluster-4: Removed.
        * http/tests/media/resources/media-source/webm/test.webm.cluster-5: Removed.
        * http/tests/media/resources/media-source/webm/test.webm.cluster-6: Removed.
        * http/tests/media/resources/media-source/webm/test.webm.cluster-7: Removed.
        * http/tests/media/resources/media-source/webm/test.webm.cluster-8: Removed.
        * http/tests/media/resources/media-source/webm/test.webm.cluster-9: Removed.
        * http/tests/media/resources/media-source/webm/test.webm.headers: Removed.

2012-05-24  Jessie Berlin  <jberlin@apple.com>

        [Win] ASSERTION FAILED !m_ptr under AccessibilityController::winAddNotificationListener
        https://bugs.webkit.org/show_bug.cgi?id=87426

        Add the affected tests to the Windows Skipped list in order to get the bots green.

        * platform/win/Skipped:

2012-05-24  Joshua Bell  <jsbell@chromium.org>

        [Chromium] Update test expectation for fast/js/string-replace-2.html on debug
        https://bugs.webkit.org/show_bug.cgi?id=87423

        * platform/chromium/test_expectations.txt:

2012-05-24  Jessie Berlin  <jberlin@apple.com>

        [Win] Crash under DocumentLoader::didTellClientAboutLoad when running
        fast/dom/Window/Location/window-override-location-using-defineGetter.html
        fast/dom/Window/Location/set-location-after-close.html

        Skip set-location-after-close.html on Windows.

        * platform/win/Skipped:

2012-05-24  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>

        [EFL] [DRT] keyboard-related tests do not pass
        https://bugs.webkit.org/show_bug.cgi?id=85369

        Reviewed by Gustavo Noronha Silva.

        * platform/efl/Skipped: Unskipped keyboard-related tests.

2012-05-24  Joshua Bell  <jsbell@chromium.org>

        [Chromium] Widen test suppressions to include linux crash.
        https://bugs.webkit.org/show_bug.cgi?id=87160

        Unreviewed gardening.

        * platform/chromium/test_expectations.txt:

2012-05-24  Yael Aharon  <yael.aharon@nokia.com>

        [Qt] Stop using the flag FIXED_POSITION_CREATES_STACKING_CONTEXT
        https://bugs.webkit.org/show_bug.cgi?id=87392

        Reviewed by Antonio Gomes.

        Update test expectations, since now don't turn on the setting when running layout tests.
        
        * platform/qt/fast/block/positioning/016-expected.txt:
        * platform/qt/fast/block/positioning/025-expected.txt:

2012-05-24  Robert Hogan  <robert@webkit.org>

        Negative margin block doesn't properly clear a float enclosed by a previous sibling
        https://bugs.webkit.org/show_bug.cgi?id=10900

        Reviewed by David Hyatt.

        * fast/css/clear-float-sibling-expected.html: Added.
        * fast/css/clear-float-sibling.html: Added.

2012-05-24  Jessie Berlin  <jberlin@apple.com>

        Clean up the Windows Skipped list a bit.

        Update it for the renames in r108832 and the test removed in r113532.
        Also, replace "//" with "#" in a couple comments.

        * platform/win/Skipped:

2012-05-24  Raphael Kubo da Costa  <rakuco@webkit.org>

        [EFL] Modify keycode conversion functions to return keycodes with location information after r118001.
        https://bugs.webkit.org/show_bug.cgi?id=87203

        Reviewed by Andreas Kling.

        * platform/efl/test_expectations.txt: Unskip fast/events/keydown-leftright-keys.html.

2012-05-24  Alexander Shalamov  <alexander.shalamov@intel.com>

        [EFL] Update test expectations for layout test fast/events/click-focus-anchor.html
        https://bugs.webkit.org/show_bug.cgi?id=87293

        Reviewed by Eric Seidel.

        Anchor elements are mouse focusable in EFL port.

        * fast/events/click-focus-anchor-expected.txt:
        * fast/events/click-focus-anchor.html:
        * platform/efl/Skipped:
        * platform/efl/fast/events/click-focus-anchor-expected.txt:
        * platform/gtk/fast/events/click-focus-anchor-expected.txt:
        * platform/qt/fast/events/click-focus-anchor-expected.txt:

2012-05-24  Alexander Shalamov  <alexander.shalamov@intel.com>

        [EFL] Update test expectations for layout test fast/events/click-focus-control.html
        https://bugs.webkit.org/show_bug.cgi?id=87295

        Reviewed by Eric Seidel.

        HTMLFormControlElement is not mouse focusable in EFL port.

        * platform/efl/Skipped:
        * platform/efl/fast/events/click-focus-control-expected.txt: Added.

2012-05-24  János Badics  <jbadics@inf.u-szeged.hu>

        [Qt] Unskip and rebase now passing tests from qt-5.0/Skipped list.

        Reviewed by Csaba Osztrogonác.

        * platform/qt-5.0-wk2/editing/pasteboard/4944770-1-expected.png: Added.
        * platform/qt-5.0-wk2/editing/pasteboard/4944770-1-expected.txt: Added.
        * platform/qt-5.0-wk2/editing/pasteboard/4944770-2-expected.png: Added.
        * platform/qt-5.0-wk2/editing/pasteboard/4944770-2-expected.txt: Added.
        * platform/qt-5.0-wk2/editing/selection/select-box-expected.png: Added.
        * platform/qt-5.0-wk2/editing/selection/select-box-expected.txt: Added.
        * platform/qt-5.0-wk2/editing/selection/select-element-paragraph-boundary-expected.png: Added.
        * platform/qt-5.0-wk2/editing/selection/select-element-paragraph-boundary-expected.txt: Added.
        * platform/qt-5.0-wk2/fast/dom/HTMLTextAreaElement/reset-textarea-expected.png: Added.
        * platform/qt-5.0-wk2/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt: Added.
        * platform/qt-5.0-wk2/fast/dynamic/008-expected.png: Added.
        * platform/qt-5.0-wk2/fast/dynamic/008-expected.txt: Added.
        * platform/qt-5.0-wk2/fast/forms/HTMLOptionElement_label06-expected.png: Added.
        * platform/qt-5.0-wk2/fast/forms/HTMLOptionElement_label06-expected.txt: Added.
        * platform/qt-5.0-wk2/fast/forms/HTMLOptionElement_label07-expected.png: Added.
        * platform/qt-5.0-wk2/fast/forms/HTMLOptionElement_label07-expected.txt: Added.
        * platform/qt-5.0-wk2/fast/forms/box-shadow-override-expected.png: Added.
        * platform/qt-5.0-wk2/fast/forms/box-shadow-override-expected.txt: Added.
        * platform/qt-5.0-wk2/fast/forms/form-element-geometry-expected.png: Added.
        * platform/qt-5.0-wk2/fast/forms/form-element-geometry-expected.txt: Added.
        * platform/qt-5.0-wk2/fast/forms/input-disabled-color-expected.png: Added.
        * platform/qt-5.0-wk2/fast/forms/input-disabled-color-expected.txt: Added.
        * platform/qt-5.0-wk2/fast/forms/menulist-separator-painting-expected.png: Added.
        * platform/qt-5.0-wk2/fast/forms/menulist-separator-painting-expected.txt: Added.
        * platform/qt-5.0-wk2/fast/forms/placeholder-pseudo-style-expected.png: Added.
        * platform/qt-5.0-wk2/fast/forms/placeholder-pseudo-style-expected.txt: Added.
        * platform/qt-5.0-wk2/fast/forms/select-background-none-expected.png: Added.
        * platform/qt-5.0-wk2/fast/forms/select-background-none-expected.txt: Added.
        * platform/qt-5.0-wk2/fast/forms/select-baseline-expected.png: Added.
        * platform/qt-5.0-wk2/fast/forms/select-baseline-expected.txt: Added.
        * platform/qt-5.0-wk2/fast/forms/selectlist-minsize-expected.png: Added.
        * platform/qt-5.0-wk2/fast/forms/selectlist-minsize-expected.txt: Added.
        * platform/qt-5.0-wk2/fast/forms/textarea-align-expected.png: Added.
        * platform/qt-5.0-wk2/fast/forms/textarea-align-expected.txt: Added.
        * platform/qt-5.0-wk2/fast/forms/textarea-setinnerhtml-expected.png: Added.
        * platform/qt-5.0-wk2/fast/forms/textarea-setinnerhtml-expected.txt: Added.
        * platform/qt-5.0-wk2/fast/parser/entity-comment-in-textarea-expected.png: Added.
        * platform/qt-5.0-wk2/fast/parser/entity-comment-in-textarea-expected.txt: Added.
        * platform/qt-5.0-wk2/fast/parser/open-comment-in-textarea-expected.png: Added.
        * platform/qt-5.0-wk2/fast/parser/open-comment-in-textarea-expected.txt: Added.
        * platform/qt-5.0-wk2/fast/replaced/three-selects-break-expected.png: Added.
        * platform/qt-5.0-wk2/fast/replaced/three-selects-break-expected.txt: Added.
        * platform/qt-5.0-wk2/fast/table/003-expected.png: Added.
        * platform/qt-5.0-wk2/fast/table/003-expected.txt: Added.
        * platform/qt-5.0-wk2/fast/text/large-text-composed-char-expected.png: Added.
        * platform/qt-5.0-wk2/fast/text/large-text-composed-char-expected.txt: Added.
        * platform/qt-5.0/Skipped:
        * platform/qt-5.0/editing/pasteboard/4944770-1-expected.png: Added.
        * platform/qt-5.0/editing/pasteboard/4944770-1-expected.txt: Added.
        * platform/qt-5.0/editing/pasteboard/4944770-2-expected.png: Added.
        * platform/qt-5.0/editing/pasteboard/4944770-2-expected.txt: Added.
        * platform/qt-5.0/editing/selection/select-box-expected.png: Added.
        * platform/qt-5.0/editing/selection/select-box-expected.txt: Added.
        * platform/qt-5.0/editing/selection/select-element-paragraph-boundary-expected.png: Added.
        * platform/qt-5.0/editing/selection/select-element-paragraph-boundary-expected.txt: Added.
        * platform/qt-5.0/fast/dom/DeviceMotion/create-event-expected.txt: Added.
        * platform/qt-5.0/fast/dom/DeviceMotion/no-page-cache-expected.txt: Added.
        * platform/qt-5.0/fast/dom/DeviceMotion/optional-event-properties-expected.txt: Added.
        * platform/qt-5.0/fast/dom/DeviceMotion/window-property-expected.txt: Added.
        * platform/qt-5.0/fast/dom/DeviceOrientation/create-event-expected.txt: Added.
        * platform/qt-5.0/fast/dom/DeviceOrientation/no-page-cache-expected.txt: Added.
        * platform/qt-5.0/fast/dom/DeviceOrientation/optional-event-properties-expected.txt: Added.
        * platform/qt-5.0/fast/dom/DeviceOrientation/window-property-expected.txt: Added.
        * platform/qt-5.0/fast/dom/HTMLTextAreaElement/reset-textarea-expected.png: Added.
        * platform/qt-5.0/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt: Added.
        * platform/qt-5.0/fast/dom/Orientation/create-event-orientationchange-expected.txt: Added.
        * platform/qt-5.0/fast/dom/Window/window-properties-device-orientation-expected.txt: Added.
        * platform/qt-5.0/fast/dynamic/008-expected.png: Added.
        * platform/qt-5.0/fast/dynamic/008-expected.txt: Added.
        * platform/qt-5.0/fast/forms/HTMLOptionElement_label06-expected.png: Added.
        * platform/qt-5.0/fast/forms/HTMLOptionElement_label06-expected.txt: Added.
        * platform/qt-5.0/fast/forms/HTMLOptionElement_label07-expected.png: Added.
        * platform/qt-5.0/fast/forms/HTMLOptionElement_label07-expected.txt: Added.
        * platform/qt-5.0/fast/forms/box-shadow-override-expected.png: Added.
        * platform/qt-5.0/fast/forms/box-shadow-override-expected.txt: Added.
        * platform/qt-5.0/fast/forms/form-element-geometry-expected.png: Added.
        * platform/qt-5.0/fast/forms/form-element-geometry-expected.txt: Added.
        * platform/qt-5.0/fast/forms/input-disabled-color-expected.png: Added.
        * platform/qt-5.0/fast/forms/input-disabled-color-expected.txt: Added.
        * platform/qt-5.0/fast/forms/menulist-separator-painting-expected.png: Added.
        * platform/qt-5.0/fast/forms/menulist-separator-painting-expected.txt: Added.
        * platform/qt-5.0/fast/forms/placeholder-pseudo-style-expected.png: Added.
        * platform/qt-5.0/fast/forms/placeholder-pseudo-style-expected.txt: Added.
        * platform/qt-5.0/fast/forms/select-background-none-expected.png: Added.
        * platform/qt-5.0/fast/forms/select-background-none-expected.txt: Added.
        * platform/qt-5.0/fast/forms/select-baseline-expected.png: Added.
        * platform/qt-5.0/fast/forms/select-baseline-expected.txt: Added.
        * platform/qt-5.0/fast/forms/selectlist-minsize-expected.png: Added.
        * platform/qt-5.0/fast/forms/selectlist-minsize-expected.txt: Added.
        * platform/qt-5.0/fast/forms/textarea-align-expected.png: Added.
        * platform/qt-5.0/fast/forms/textarea-align-expected.txt: Added.
        * platform/qt-5.0/fast/forms/textarea-setinnerhtml-expected.png: Added.
        * platform/qt-5.0/fast/forms/textarea-setinnerhtml-expected.txt: Added.
        * platform/qt-5.0/fast/parser/entity-comment-in-textarea-expected.png: Added.
        * platform/qt-5.0/fast/parser/entity-comment-in-textarea-expected.txt: Added.
        * platform/qt-5.0/fast/parser/open-comment-in-textarea-expected.png: Added.
        * platform/qt-5.0/fast/parser/open-comment-in-textarea-expected.txt: Added.
        * platform/qt-5.0/fast/replaced/three-selects-break-expected.png: Added.
        * platform/qt-5.0/fast/replaced/three-selects-break-expected.txt: Added.
        * platform/qt-5.0/fast/table/003-expected.png: Added.
        * platform/qt-5.0/fast/table/003-expected.txt: Added.
        * platform/qt-5.0/fast/text/basic/003-expected.png: Added.
        * platform/qt-5.0/fast/text/basic/003-expected.txt: Added.
        * platform/qt-5.0/fast/text/large-text-composed-char-expected.png: Added.
        * platform/qt-5.0/fast/text/large-text-composed-char-expected.txt: Added.
        * platform/qt-5.0/fast/text/letter-spacing-negative-opacity-expected.png: Added.
        * platform/qt-5.0/fast/text/letter-spacing-negative-opacity-expected.txt: Added.
        * platform/qt-5.0/fast/xsl/document-function-expected.png: Added.
        * platform/qt-5.0/fast/xsl/document-function-expected.txt: Added.
        * platform/qt-5.0/fast/xsl/xslt-entity-expected.png: Added.
        * platform/qt-5.0/fast/xsl/xslt-entity-expected.txt: Added.

2012-05-24  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: [regression] search in formatted scripts is broken.
        https://bugs.webkit.org/show_bug.cgi?id=87377

        Reviewed by Vsevolod Vlasov.

        * inspector/debugger/script-formatter-search-expected.txt: Added.
        * inspector/debugger/script-formatter-search.html: Added.

2012-05-24  Jessie Berlin  <jberlin@apple.com>

        Fix the Mac tests after r118353.

        * platform/mac/fast/js/global-constructors-expected.txt:

2012-05-24  Zoltan Arvai  <zarvai@inf.u-szeged.hu>

        [Qt5][WK2] Gardening. Skip failing test after r118058.
        https://bugs.webkit.org/show_bug.cgi?id=87395

        Reviewed by Csaba Osztrogonác.

        * platform/qt-5.0-wk2/Skipped: Skip fast/forms/ValidityState-valueMissing-002.html.

2012-05-24  Zoltan Arvai  <zarvai@inf.u-szeged.hu>

        [Qt] Gardening. Remove no more required expected file.

        [WK2] Skip test that uses unimplemented feature.
        https://bugs.webkit.org/show_bug.cgi?id=81042

        Reviewed by Csaba Osztrogonác.

        * platform/qt/svg/custom/global-constructors-expected.txt: Removed.
        * platform/wk2/Skipped: editing/spelling/grammar-markers.html.

2012-05-24  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r118352.
        http://trac.webkit.org/changeset/118352
        https://bugs.webkit.org/show_bug.cgi?id=87390

        Caused 6 editing/spelling tests crash/fail on chromium in
        debug. (Requested by vsevik on #webkit).

        * editing/spelling/grammar-markers-expected.txt: Removed.
        * editing/spelling/grammar-markers.html: Removed.
        * platform/chromium-linux/editing/spelling/grammar-markers-expected.png: Removed.
        * platform/chromium/test_expectations.txt:
        * platform/mac/editing/spelling/grammar-markers-expected.png: Removed.

2012-05-24  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r118256.
        http://trac.webkit.org/changeset/118256
        https://bugs.webkit.org/show_bug.cgi?id=87388

        It still fails on Qt5-WK2 (Requested by Ossy on #webkit).

        * platform/qt-5.0-wk1/Skipped:
        * platform/qt-5.0/Skipped:

2012-05-24  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>

        [EFL] [DRT] Add baselines for execCommand tests which are missing expected results
        https://bugs.webkit.org/show_bug.cgi?id=84839

        Unreviewed gardening, add EFL baselines for execCommand tests and move a
        few tests which rely on copy & paste functionality to test_expectations.txt.

        * platform/efl/editing/execCommand/4580583-1-expected.png: Added.
        * platform/efl/editing/execCommand/4580583-1-expected.txt: Added.
        * platform/efl/editing/execCommand/4580583-2-expected.png: Added.
        * platform/efl/editing/execCommand/4580583-2-expected.txt: Added.
        * platform/efl/editing/execCommand/4641880-1-expected.png: Added.
        * platform/efl/editing/execCommand/4641880-1-expected.txt: Added.
        * platform/efl/editing/execCommand/4641880-2-expected.png: Added.
        * platform/efl/editing/execCommand/4641880-2-expected.txt: Added.
        * platform/efl/editing/execCommand/4747450-expected.png: Added.
        * platform/efl/editing/execCommand/4747450-expected.txt: Added.
        * platform/efl/editing/execCommand/4916402-expected.png: Added.
        * platform/efl/editing/execCommand/4916402-expected.txt: Added.
        * platform/efl/editing/execCommand/4916541-expected.png: Added.
        * platform/efl/editing/execCommand/4916541-expected.txt: Added.
        * platform/efl/editing/execCommand/4924441-expected.png: Added.
        * platform/efl/editing/execCommand/4924441-expected.txt: Added.
        * platform/efl/editing/execCommand/5080333-1-expected.png: Added.
        * platform/efl/editing/execCommand/5080333-1-expected.txt: Added.
        * platform/efl/editing/execCommand/5080333-2-expected.png: Added.
        * platform/efl/editing/execCommand/5080333-2-expected.txt: Added.
        * platform/efl/editing/execCommand/5136770-expected.png: Added.
        * platform/efl/editing/execCommand/5136770-expected.txt: Added.
        * platform/efl/editing/execCommand/5138441-expected.png: Added.
        * platform/efl/editing/execCommand/5138441-expected.txt: Added.
        * platform/efl/editing/execCommand/5142012-1-expected.png: Added.
        * platform/efl/editing/execCommand/5142012-1-expected.txt: Added.
        * platform/efl/editing/execCommand/5142012-2-expected.png: Added.
        * platform/efl/editing/execCommand/5142012-2-expected.txt: Added.
        * platform/efl/editing/execCommand/5190926-expected.png: Added.
        * platform/efl/editing/execCommand/5190926-expected.txt: Added.
        * platform/efl/editing/execCommand/5481523-expected.png: Added.
        * platform/efl/editing/execCommand/5481523-expected.txt: Added.
        * platform/efl/editing/execCommand/5482023-expected.png: Added.
        * platform/efl/editing/execCommand/5482023-expected.txt: Added.
        * platform/efl/editing/execCommand/5569741-expected.png: Added.
        * platform/efl/editing/execCommand/5569741-expected.txt: Added.
        * platform/efl/editing/execCommand/create-list-with-hr-expected.png: Added.
        * platform/efl/editing/execCommand/create-list-with-hr-expected.txt: Added.
        * platform/efl/editing/execCommand/findString-2-expected.png: Added.
        * platform/efl/editing/execCommand/findString-2-expected.txt: Added.
        * platform/efl/editing/execCommand/findString-expected.png: Added.
        * platform/efl/editing/execCommand/findString-expected.txt: Added.
        * platform/efl/editing/execCommand/format-block-with-trailing-br-expected.png: Added.
        * platform/efl/editing/execCommand/indent-empty-root-expected.png: Added.
        * platform/efl/editing/execCommand/indent-empty-root-expected.txt: Added.
        * platform/efl/editing/execCommand/indent-list-item-expected.png: Added.
        * platform/efl/editing/execCommand/indent-list-item-expected.txt: Added.
        * platform/efl/editing/execCommand/indent-selection-expected.png: Added.
        * platform/efl/editing/execCommand/indent-selection-expected.txt: Added.
        * platform/efl/editing/execCommand/insert-list-and-stitch-expected.png: Added.
        * platform/efl/editing/execCommand/insert-list-and-stitch-expected.txt: Added.
        * platform/efl/editing/execCommand/insertHorizontalRule-expected.png: Added.
        * platform/efl/editing/execCommand/insertHorizontalRule-expected.txt: Added.
        * platform/efl/editing/execCommand/insertImage-expected.png: Added.
        * platform/efl/editing/execCommand/insertImage-expected.txt: Added.
        * platform/efl/editing/execCommand/nsresponder-indent-expected.png: Added.
        * platform/efl/editing/execCommand/nsresponder-indent-expected.txt: Added.
        * platform/efl/editing/execCommand/nsresponder-outdent-expected.png: Added.
        * platform/efl/editing/execCommand/nsresponder-outdent-expected.txt: Added.
        * platform/efl/editing/execCommand/outdent-blockquote-test1-expected.txt: Added.
        * platform/efl/editing/execCommand/outdent-blockquote-test2-expected.txt: Added.
        * platform/efl/editing/execCommand/outdent-blockquote-test3-expected.txt: Added.
        * platform/efl/editing/execCommand/outdent-blockquote-test4-expected.txt: Added.
        * platform/efl/editing/execCommand/print-expected.png: Added.
        * platform/efl/editing/execCommand/print-expected.txt: Added.
        * platform/efl/editing/execCommand/remove-list-from-range-selection-expected.png: Added.
        * platform/efl/editing/execCommand/remove-list-from-range-selection-expected.txt: Added.
        * platform/efl/editing/execCommand/remove-list-item-1-expected.png: Added.
        * platform/efl/editing/execCommand/remove-list-item-1-expected.txt: Added.
        * platform/efl/editing/execCommand/selectAll-expected.png: Added.
        * platform/efl/editing/execCommand/selectAll-expected.txt: Added.
        * platform/efl/test_expectations.txt:

2012-05-24  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: introduce virtual resource for inspector stylesheet.
        https://bugs.webkit.org/show_bug.cgi?id=87357

        Reviewed by Vsevolod Vlasov.

        * inspector/styles/edit-inspector-stylesheet-expected.txt: Added.
        * inspector/styles/edit-inspector-stylesheet.html: Added.
        * inspector/styles/styles-add-new-rule-expected.txt:
        * inspector/styles/styles-add-new-rule.html:
        * inspector/styles/undo-add-new-rule-expected.txt:

2012-05-24  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>

        [EFL][DRT] LayoutTestController's setCacheModel() implementation
        https://bugs.webkit.org/show_bug.cgi?id=86840

        Reviewed by Csaba Osztrogonác.

        * platform/efl/Skipped: Unskipped fast/dom/HTMLScriptElement/nested-execution.html.

2012-05-24  Kristóf Kosztyó  <kkristof@inf.u-szeged.hu>

        [Qt] Unreviewed. Update platform specific expectation after r118353

        * platform/qt/fast/js/global-constructors-expected.txt:

2012-05-24  Ádám Kallai  <kadam@inf.u-szeged.hu>

        [Qt] Unreviewed gardening. Add platform specific expectation.

        * platform/qt-5.0-wk2/fast/forms/search-rtl-expected.txt: Added after r117672.

2012-05-24  Kristóf Kosztyó  <kkristof@inf.u-szeged.hu>

        [Qt] r118325 made two inspector tests to fail
        https://bugs.webkit.org/show_bug.cgi?id=87385

        Unreviewed gardening.

        * platform/qt/Skipped: skip the failing tests

2012-05-24  Rakesh KN  <rakesh.kn@motorola.com>

        Filter for RadioNodeList should be case sensitive.
        https://bugs.webkit.org/show_bug.cgi?id=87369

        Reviewed by Kent Tamura.

        * fast/forms/form-collection-radio-node-list.html:

2012-05-24  Kristóf Kosztyó  <kkristof@inf.u-szeged.hu>

        new test fast/js/dfg-arguments-mixed-alias.html fail on 32 bit linux
        https://bugs.webkit.org/show_bug.cgi?id=87378

        Unreviewed gardening.

        * platform/qt/Skipped: skip the failing test

2012-05-24  Nikolas Zimmermann  <nzimmermann@rim.com>

        SVGZoomAndPan constants are missing from window object
        https://bugs.webkit.org/show_bug.cgi?id=15494

        Reviewed by Rob Buis.

        SVGZoomAndPan is now available as global constructor, rebaseline results.

        * svg/custom/global-constructors-expected.txt:
        * svg/custom/js-svg-constructors-expected.txt:
        * svg/custom/js-svg-constructors.svg:

2012-05-24  Hironori Bono  <hbono@chromium.org>

        Enable grammar checking on Chromium when we paste text.
        https://bugs.webkit.org/show_bug.cgi?id=74393

        Reviewed by Hajime Morita.

        This change enables grammar checking on Chromium and implements a mock grammar
        checker to fix a failing test.

        * editing/spelling/grammar-markers-expected.txt: Added.
        * editing/spelling/grammar-markers.html: Added.
        * platform/chromium-linux/editing/spelling/grammar-markers-expected.png: Added.
        * platform/chromium/test_expectations.txt:
        * platform/mac/editing/spelling/grammar-markers-expected.png: Added.

2012-05-17  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: add inspector instrumentation interface for compositing
        https://bugs.webkit.org/show_bug.cgi?id=83842

        Reviewed by Pavel Feldman.

        * inspector/timeline/timeline-enum-stability-expected.txt: added CompositeLayers.

2012-05-24  Vivek Galatage  <vivekgalatage@gmail.com>

        Web Inspector: localStorage items are not updated when the storage changes
        https://bugs.webkit.org/show_bug.cgi?id=83012

        Reviewed by Pavel Feldman.

        Test to verify the storage list is updated in the inspector frontend
        whenever there is any modifications to dom storage.

        * inspector/storage-panel-dom-storage-update-expected.txt: Added.
        * inspector/storage-panel-dom-storage-update.html: Added.

2012-05-24  Kristóf Kosztyó  <kkristof@inf.u-szeged.hu>

        [Qt] REGRESSION(r118291) fast/frames/flattening/iframe-tiny.html fails
        https://bugs.webkit.org/show_bug.cgi?id=87363

        Unreviewed gardening.

        * platform/qt/Skipped: skip the failing test

2012-05-24  Kristóf Kosztyó  <kkristof@inf.u-szeged.hu>

        [Qt] new test fast/block/positioning/fixed-position-stacking-context.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=87367

        Unreviewed gardening.

        * platform/qt/Skipped: skip the failing test

2012-05-24  Ádám Kallai  <kadam@inf.u-szeged.hu>

        [Qt] Unreviewed gardening. Skip tests because ENABLE(SHADOW_DOM) is disabled.

        * platform/qt/Skipped:

2012-05-24  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] Several canvas/philip test cases can be unskipped
        https://bugs.webkit.org/show_bug.cgi?id=87362

        Unreviewed EFL gardening. Unskip several canvas/philip that are now
        passing.

        * platform/efl/Skipped:
        * platform/efl/test_expectations.txt:

2012-05-24  Vsevolod Vlasov  <vsevik@chromium.org>

        Unreviewed, updating chromium test expectations.

        * platform/chromium/test_expectations.txt:

2012-05-24  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>

        [EFL][DRT] compositing/repaint/opacity-between-absolute.html does not pass
        https://bugs.webkit.org/show_bug.cgi?id=87353

        Unreviewed. Gardening of compositing/repaint/opacity-between-absolute.html test.

        * platform/efl/compositing/repaint/opacity-between-absolute-expected.txt:

2012-05-24  Shinya Kawanaka  <shinyak@chromium.org>

        Elements in Shadow DOM are not resizable.
        https://bugs.webkit.org/show_bug.cgi?id=87342

        Reviewed by Ryosuke Niwa.

        * fast/dom/shadow/resize-in-shadow-dom-expected.txt: Added.
        * fast/dom/shadow/resize-in-shadow-dom.html: Added.

2012-05-24  Vsevolod Vlasov  <vsevik@chromium.org>

        Unreviewed, skipping failing tests on chromium.

        * platform/chromium/test_expectations.txt:

2012-05-23  Stephanie Lewis  <slewis@apple.com>

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

        Unreviewed, skipping newly flaky test.

        * platform/mac/Skipped:

2012-05-24  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] EFL's LayoutTestController needs to implement sendWebIntentResponse
        https://bugs.webkit.org/show_bug.cgi?id=86867

        Reviewed by Adam Barth.

        Remove from test expectations the webintents tests that require
        support for sendWebIntentResponse() in EFL's LayoutTestController.

        * platform/efl/test_expectations.txt:

2012-05-23  Filip Pizlo  <fpizlo@apple.com>

        DFG operationTearOffActivation should return after handling the null activation case
        https://bugs.webkit.org/show_bug.cgi?id=87348
        <rdar://problem/11522295>

        Reviewed by Oliver Hunt.

        * fast/js/dfg-tear-off-arguments-not-activation-expected.txt: Added.
        * fast/js/dfg-tear-off-arguments-not-activation.html: Added.
        * fast/js/script-tests/dfg-tear-off-arguments-not-activation.js: Added.
        (bar):

2012-05-17  Filip Pizlo  <fpizlo@apple.com>

        DFG should optimize aliased uses of the Arguments object of the current call frame
        https://bugs.webkit.org/show_bug.cgi?id=86552

        Rubber stamped by Geoff Garen.
        
        Merged r117542 from dfgopt.
        
        Added a bunch of tests that check that our optimizations for aliased uses of the
        'arguments' object are robust against various forms of JavaScript crazy.
        
        * fast/js/dfg-arguments-alias-escape-expected.txt: Added.
        * fast/js/dfg-arguments-alias-escape.html: Added.
        * fast/js/dfg-arguments-alias-expected.txt: Added.
        * fast/js/dfg-arguments-alias.html: Added.
        * fast/js/dfg-arguments-cross-code-origin-expected.txt: Added.
        * fast/js/dfg-arguments-cross-code-origin.html: Added.
        * fast/js/dfg-arguments-mixed-alias-expected.txt: Added.
        * fast/js/dfg-arguments-mixed-alias.html: Added.
        * fast/js/dfg-arguments-osr-exit-expected.txt: Added.
        * fast/js/dfg-arguments-osr-exit.html: Added.
        * fast/js/dfg-arguments-unexpected-escape-expected.txt: Added.
        * fast/js/dfg-arguments-unexpected-escape.html: Added.
        * fast/js/jsc-test-list:
        * fast/js/script-tests/dfg-arguments-alias-escape.js: Added.
        (foo):
        (bar):
        * fast/js/script-tests/dfg-arguments-alias.js: Added.
        (foo):
        (bar):
        * fast/js/script-tests/dfg-arguments-cross-code-origin.js: Added.
        (foo):
        (bar):
        (baz):
        * fast/js/script-tests/dfg-arguments-mixed-alias.js: Added.
        (foo):
        (bar):
        * fast/js/script-tests/dfg-arguments-osr-exit.js: Added.
        (baz):
        (foo):
        (bar):
        * fast/js/script-tests/dfg-arguments-unexpected-escape.js: Added.
        (baz):
        (foo):
        (bar):

2012-05-23  Hayato Ito  <hayato@chromium.org>

        Add a test case of event dispatching which uses inactive insertion points.
        https://bugs.webkit.org/show_bug.cgi?id=87229

        Reviewed by Darin Adler.

        * fast/dom/shadow/shadow-dom-event-dispatching-expected.txt:
        * fast/dom/shadow/shadow-dom-event-dispatching.html:

2012-05-23  Shinya Kawanaka  <shinyak@chromium.org>

        Document.elementFromPoint exposes inner element of Shadow DOM.
        https://bugs.webkit.org/show_bug.cgi?id=87235

        Reviewed by Dimitri Glazkov.

        * fast/dom/shadow/element-from-point-in-nested-shadow-expected.txt: Added.
        * fast/dom/shadow/element-from-point-in-nested-shadow.html: Added.

2012-05-23  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r118297.
        http://trac.webkit.org/changeset/118297
        https://bugs.webkit.org/show_bug.cgi?id=87338

        It caused several layout failures on Mac (Requested by
        sundiamonde on #webkit).

        * fast/block/float/floats-with-margin-should-not-wrap-expected.html: Removed.
        * fast/block/float/floats-with-margin-should-not-wrap.html: Removed.

2012-05-23  Shinya Kawanaka  <shinyak@chromium.org>

        Document.caretRangeFromPoint exposes inner elemnet of Shadow DOM.
        https://bugs.webkit.org/show_bug.cgi?id=87231

        Reviewed by Dimitri Glazkov.

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

2012-05-23  Julien Chaffraix  <jchaffraix@webkit.org>

        Crash in RenderTableCol::nextColumn
        https://bugs.webkit.org/show_bug.cgi?id=87314

        Reviewed by Abhishek Arya.

        * fast/table/canvas-column-in-column-group-expected.txt: Added.
        * fast/table/canvas-column-in-column-group.html: Added.
        * fast/table/columngroup-inside-columngroup-expected.txt: Added.
        * fast/table/columngroup-inside-columngroup.html: Added.

2012-05-23  Raphael Kubo da Costa  <rakuco@webkit.org>

        [EFL] Gardening after r118203 and r118171.

        Remove wrong expectations added in r118171 and unskip passing
        tests after r118203.

        * platform/efl/compositing/layer-creation/fixed-position-scroll-expected.png: Removed.
        * platform/efl/compositing/layer-creation/fixed-position-scroll-expected.txt: Removed.
        * platform/efl/test_expectations.txt:

2012-05-23  Kangil Han  <kangil.han@samsung.com>

        [EFL][DRT] Fix WebCore library path and rebaseline result
        https://bugs.webkit.org/show_bug.cgi?id=86355

        Reviewed by Dirk Pranke.

        Currently EFL DRT uses wrong WebCore library path when running DRT.
        Therefore, this patch adjusted the path correctly.

        * platform/efl/test_expectations.txt: Added some cases to skipped list since we don't support those at this stage

2012-05-23  Stephanie Lewis  <slewis@apple.com>

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

        Unreviewed, skipping new test that can have side effects.

        * platform/mac/Skipped:

2012-05-23  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow] mousewheel event isn't fired on nodes in Shadow DOM.
        https://bugs.webkit.org/show_bug.cgi?id=87218

        Reviewed by Dimitri Glazkov.

        * fast/dom/shadow/wheel-event-in-shadow-dom-expected.txt: Added.
        * fast/dom/shadow/wheel-event-in-shadow-dom.html: Added.
        * fast/dom/shadow/wheel-event-on-input-in-shadow-dom-expected.txt: Added.
        * fast/dom/shadow/wheel-event-on-input-in-shadow-dom.html: Added.

2012-05-23  Hayato Ito  <hayato@chromium.org>

        Adjust a target node of a mouse event correctly when a distributed text node is clicked.
        https://bugs.webkit.org/show_bug.cgi?id=86999

        Reviewed by Dimitri Glazkov.

        * fast/dom/shadow/shadow-dom-event-dispatching-expected.txt:
        * fast/dom/shadow/shadow-dom-event-dispatching.html:

2012-05-23  Shinya Kawanaka  <shinyak@chromium.org>

        [Shadow] drop event is not fired on nodes in Shadow DOM
        https://bugs.webkit.org/show_bug.cgi?id=85774

        Reviewed by Dimitri Glazkov.

        Confirms drop event is fired on div and input in Shadow DOM.

        * fast/dom/shadow/drop-event-for-input-in-shadow-expected.txt: Added.
        * fast/dom/shadow/drop-event-for-input-in-shadow.html: Added.
        * fast/dom/shadow/drop-event-in-shadow-expected.txt: Added.
        * fast/dom/shadow/drop-event-in-shadow.html: Added.

2012-05-23  Emil A Eklund  <eae@chromium.org>

        REGRESSION (115573): Incorrect rounding of margins for floats
        https://bugs.webkit.org/show_bug.cgi?id=87319

        Reviewed by Eric Seidel.

        Add new test ensuring that using margins with floats doesn't cause
        undesired wrapping.

        * fast/block/float/floats-with-margin-should-not-wrap-expected.html: Added.
        * fast/block/float/floats-with-margin-should-not-wrap.html: Added.

2012-05-23  Eric Seidel  <eric@webkit.org>

        Add seamless layout code (and pass most of the remaining seamless tests)
        https://bugs.webkit.org/show_bug.cgi?id=86608

        Reviewed by Ojan Vafai.

        Add a test for percent height in child documents, as well as
        disabling the expand-to-fill-viewport quirk of html/body elements
        in quirks mode.
        Also update all the expectations now that we pass almost all the tests.

        * fast/frames/seamless/resources/percent-square.html: Added.
        * fast/frames/seamless/resources/two-inline-blocks.html:
        * fast/frames/seamless/seamless-basic-expected.txt:
        * fast/frames/seamless/seamless-float-expected.txt:
        * fast/frames/seamless/seamless-inherited-origin-expected.txt:
        * fast/frames/seamless/seamless-inherited-origin.html:
        * fast/frames/seamless/seamless-inline-expected.txt:
        * fast/frames/seamless/seamless-nested-expected.txt:
        * fast/frames/seamless/seamless-percent-height-expected.txt: Added.
        * fast/frames/seamless/seamless-percent-height.html: Added.
        * fast/frames/seamless/seamless-quirks-expected.txt:
        * fast/frames/seamless/seamless-sandbox-flag-expected.txt:
        * fast/frames/seamless/seamless-sandbox-srcdoc-expected.txt:

2012-05-23  Tony Chang  <tony@chromium.org>

        auto margins on flexbox should allocate space in the cross direction
        https://bugs.webkit.org/show_bug.cgi?id=86913

        Reviewed by Ojan Vafai.

        * css3/flexbox/auto-margins-expected.html: Added.
        * css3/flexbox/auto-margins.html: Added. These are the test cases in the spec.
        * css3/flexbox/flex-align-vertical-writing-mode.html: Fix tests with auto margins and add more tests.
        Also reduce the height so it's easier to see the test cases (these vertical tests don't check the height).
        * css3/flexbox/flex-align.html: Fix tests with auto margins and add more tests.
        * css3/flexbox/flex-flow-auto-margins.html: Fix results now that we handle auto in the cross direction.

2012-05-23  Joshua Bell  <jsbell@chromium.org>

        [Chromium] Marking a pair of fast/history layout tests as flaky (TEXT).
        https://bugs.webkit.org/show_bug.cgi?id=87321

        Unreviewed gardening.

        * platform/chromium/test_expectations.txt:

2012-05-23  Joshua Bell  <jsbell@chromium.org>

        [Chromium] http/tests/cache/history-only-cached-subresource-loads{-max-age-https}.html are now
        failing with TEXT differences, so updated failure expectations.

        Unreviewed gardening.

        * platform/chromium/test_expectations.txt:

2012-05-23  James Robinson  <jamesr@chromium.org>

        Add a Setting to make position:fixed form a new stacking context
        https://bugs.webkit.org/show_bug.cgi?id=87186

        Reviewed by Adam Barth.

        Adds layout tests that confirm we don't creates stacking contexts for position:fixed by default, but we do when
        the fixedPositionCreatesStackingContext Setting is true.

        Qt and Blackberry will need different expectations since they set this via an #ifdef

        * fast/block/positioning/fixed-position-stacking-context-expected.png: Added.
        * fast/block/positioning/fixed-position-stacking-context-expected.txt: Added.
        * fast/block/positioning/fixed-position-stacking-context.html: Added.
        * fast/block/positioning/fixed-position-stacking-context2-expected.png: Added.
        * fast/block/positioning/fixed-position-stacking-context2-expected.txt: Added.
        * fast/block/positioning/fixed-position-stacking-context2.html: Added.

2012-05-23  James Robinson  <jamesr@chromium.org>

        [chromium] Turn ENABLE(OVERFLOW_SCROLLING) off for Chromium port
        https://bugs.webkit.org/show_bug.cgi?id=87177

        Reviewed by Eric Seidel.

        Mark test depending on ENABLE(OVERFLOW_SCROLLING) as an expected failure since the define is off.

        * platform/chromium/test_expectations.txt:

2012-05-23  Hugo Parente Lima  <hugo.lima@openbossa.org>

        [Qt] fast/url/path.html with Qt5 differ results on both WK1 and WK2
        https://bugs.webkit.org/show_bug.cgi?id=77380

        Reviewed by Kenneth Rohde Christiansen.

        The test pass on qt5-wk2, but not on qt5-wk1.

        * platform/qt-5.0-wk1/Skipped:
        * platform/qt-5.0/Skipped:

2012-05-23  Kenneth Russell  <kbr@google.com>

        webgl/context-lost failing on Lion
        https://bugs.webkit.org/show_bug.cgi?id=81284

        Unreviewed test expectations update. The fix for Bug 87136 fixed
        the underlying bug here; adjusting test expectations.

        * platform/mac-snowleopard/fast/canvas/webgl/context-lost-expected.txt: Removed.
        * platform/mac/fast/canvas/webgl/context-lost-expected.txt: Removed.

2012-05-23  Abhishek Arya  <inferno@chromium.org>

        Crash in run-ins with continuations while moving back to original position.
        https://bugs.webkit.org/show_bug.cgi?id=87264

        Reviewed by Julien Chaffraix.

        * fast/runin/runin-continuations-crash-expected.txt: Added.
        * fast/runin/runin-continuations-crash.html: Added.

2012-05-23  Abhishek Arya  <inferno@chromium.org>

        Crash in RenderInline::linesVisualOverflowBoundingBox.
        https://bugs.webkit.org/show_bug.cgi?id=85804

        Reviewed by Dave Hyatt.

        * fast/block/inline-children-root-linebox-crash-expected.txt: Added.
        * fast/block/inline-children-root-linebox-crash.html: Added.

2012-05-23  Chris Rogers  <crogers@google.com>

        AudioParam must support fan-in (multiple audio connections)
        https://bugs.webkit.org/show_bug.cgi?id=83610

        Reviewed by Kenneth Russell.

        * webaudio/audioparam-connect-audioratesignal.html:
        * webaudio/audioparam-summingjunction-expected.txt: Added.
        * webaudio/audioparam-summingjunction.html: Added.

2012-04-12  Eric Uhrhane  <ericu@chromium.org>

        There are no shared worker filesystem tests
        https://bugs.webkit.org/show_bug.cgi?id=83828

        Reviewed by David Levin.

        * fast/filesystem/resources/file-writer-events.js:
        Minor tweak to prevent double-import of js-test-pre.js
        * fast/filesystem/resources/shared-worker-stub.js: Added.
        Stub that imports js-test-pre.js for shared workers, so that we don't
        actually import the test script until postMessage has somewhere to go.
        * fast/filesystem/workers/file-writer-events-shared-worker-expected.txt: Added.
        * fast/filesystem/workers/file-writer-events-shared-worker.html: Added.
        The new test, running the same old file-writer-events.js that runs in
        document and worker context.
        * fast/js/resources/js-test-pre.js:
        Previously it looked like startWorker supported creating shared workers;
        there was an option, but it was a lie.  If you used it, it was
        completely broken.  This adds a functional minimal implementation.
        (startWorker.worker.port.onmessage):
        (startWorker):
        (.self.onconnect.workerPort.onmessage):
        (.self.onconnect):
        (.description):
        (.testFailed):
        (.testPassed):
        (.finishJSTest):
        (.debug):
        * platform/chromium/test_expectations.txt:
        DumpRenderTree and test_shell don't support shared workers; you have to
        run this by hand in Chrome.

2012-05-23  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] webintents/web-intents-delivery-reuse.html is failing on EFL port
        https://bugs.webkit.org/show_bug.cgi?id=87092

        Reviewed by Adam Barth.

        Remove webintents/web-intents-delivery-reuse.html from test
        expectations now that window.webkitIntent is really replaceable and
        now that the test is passing.

        * platform/efl/test_expectations.txt:

2012-05-23  Abhishek Arya  <inferno@chromium.org>

        ASSERT failure toRenderProgress in HTMLProgressElement::didElementStateChange
        https://bugs.webkit.org/show_bug.cgi?id=87274

        Reviewed by Darin Adler.

        * fast/runin/progress-run-in-crash-expected.txt: Added.
        * fast/runin/progress-run-in-crash.html: Added.

2012-05-23  Kenneth Russell  <kbr@google.com>

        REGRESSION(117918) - 4 webgl/tex-iomage-and-sub-image-2d-with-image tests failing on Mac bots.
        https://bugs.webkit.org/show_bug.cgi?id=87136

        Reviewed by Stephen White.

        Unskipped tests.

        * platform/mac/Skipped:

2012-05-23  Chris Fleizach  <cfleizach@apple.com>

        Regression(r112694): Crash in WebCore::AXObjectCache::postNotification
        https://bugs.webkit.org/show_bug.cgi?id=86029

        Reviewed by Abhishek Arya.

        * accessibility/content-changed-notification-causes-crash-expected.txt: Added.
        * accessibility/content-changed-notification-causes-crash.html: Added.

2012-05-23  Joshua Bell  <jsbell@chromium.org>

        Unreviewed gardening - one more media/track test is crashy.

        * platform/chromium/test_expectations.txt:

2012-05-22  Jer Noble  <jer.noble@apple.com>

        PlatformClockCM has uninitialized m_rate member.
        https://bugs.webkit.org/show_bug.cgi?id=87217

        Reviewed by Eric Carlson.

        * media/media-controller-time-expected.txt: Added.
        * media/media-controller-time.html: Added.

2012-05-23  Levi Weintraub  <leviw@chromium.org>

        fast/sub-pixel/layout-boxes-with-zoom.html fails at 166% zoom on Windows only
        https://bugs.webkit.org/show_bug.cgi?id=87282

        Unreviewed. Marking fast/sub-pixel/layout-boxes-with-zoom.html as failing on Chromium Windows.

        * platform/chromium/test_expectations.txt:

2012-05-23  Joshua Bell  <jsbell@chromium.org>

        Unreviewed gardening - inspector/profiler/heap-snapshot-summary-show-ranges.html
        flakes on non-debug test runs too.

        * platform/chromium/test_expectations.txt:

2012-05-23  Joshua Bell  <jsbell@chromium.org>

        Unreviewed gardening - add timeout and crash expectations for a few tests.

        * platform/chromium/test_expectations.txt:

2012-05-23  Joshua Bell  <jsbell@chromium.org>

        Add crashing expectation for more media/track tests:
        track-language-preference.html, track-load-from-element-readyState.html, and
        track-webvtt-tc019-cue-size.html - tracked in http://webkit.org/b/87258

        Unreviewed gardening.

        * platform/chromium/test_expectations.txt:

2012-05-23  Emil A Eklund  <eae@chromium.org>

        Unskip sub-pixel tests on chromium now that they flag has been turned on (in r 117815).

        * platform/chromium/test_expectations.txt:

2012-05-23  Emil A Eklund  <eae@chromium.org>

        Add test for subpixel precision in DOM APIs
        https://bugs.webkit.org/show_bug.cgi?id=85534

        Reviewed by Eric Seidel.

        Add test for increased precision due to subpixel support in the
        getBoundingClientRect api. Also test that clientWidth returns the pixel
        snapped value.

        * fast/sub-pixel/client-rect-has-subpixel-precision-expected.html: Added.
        * fast/sub-pixel/client-rect-has-subpixel-precision.html: Added.
        * platform/efl/Skipped:
        * platform/gtk-wk2/Skipped:
        * platform/mac-lion/Skipped:
        * platform/mac-snowleopard/Skipped:
        * platform/mac-wk2/Skipped:
        * platform/mac/Skipped:
        * platform/qt-4.8/Skipped:
        * platform/qt/Skipped:
        * platform/win-wk2/Skipped:
        * platform/win-xp/Skipped:
        * platform/win/Skipped:
        * platform/wincairo/Skipped:
        * platform/wk2/Skipped:
        Mark as skipped on all platforms but chromium for now.

2012-05-23  Alexei Filippov  <alexeif@chromium.org>

        Web Inspector: filter out debugging stuff from the heap class view
        https://bugs.webkit.org/show_bug.cgi?id=86723

        Reviewed by Yury Semikhatsky.

        * inspector/profiler/heap-snapshot-comparison-dom-groups-change.html:
        * inspector/profiler/heap-snapshot-comparison-show-all.html:
        * inspector/profiler/heap-snapshot-containment-expansion-preserved-when-sorting.html:
        * inspector/profiler/heap-snapshot-containment-show-all.html:
        * inspector/profiler/heap-snapshot-containment-show-next.html:
        * inspector/profiler/heap-snapshot-containment-shown-node-count-preserved-when-sorting.html:
        * inspector/profiler/heap-snapshot-dominators-expansion-preserved-when-sorting.html:
        * inspector/profiler/heap-snapshot-dominators-show-all.html:
        * inspector/profiler/heap-snapshot-dominators-show-next.html:
        * inspector/profiler/heap-snapshot-dominators-shown-node-count-preserved-when-sorting.html:
        * inspector/profiler/heap-snapshot-dominators-sorting.html:
        * inspector/profiler/heap-snapshot-test.js:
        (initialize_HeapSnapshotTest.InspectorTest.createHeapSnapshotMockObject):
        (initialize_HeapSnapshotTest.InspectorTest.createHeapSnapshotMockRaw):
        (initialize_HeapSnapshotTest):
        (initialize_HeapSnapshotTest.):
        * inspector/profiler/heap-snapshot.html:

2012-05-23  Dominik Röttsches  <dominik.rottsches@intel.com>

        [EFL][DRT] Today's ingredients for a green bot
        https://bugs.webkit.org/show_bug.cgi?id=87244

        Unreviewed, EFL gardening.

        Some rebaselines, and moving out a set of new crashes that
        need more investigation.

        * platform/efl/fast/css-generated-content/inline-display-types-expected.png:
        * platform/efl/fast/css-generated-content/inline-display-types-expected.txt:
        * platform/efl/fast/css-generated-content/nested-tables-with-before-after-content-crash-expected.png:
        * platform/efl/fast/css-generated-content/nested-tables-with-before-after-content-crash-expected.txt:
        * platform/efl/fast/inline-block/001-expected.png:
        * platform/efl/fast/inline-block/001-expected.txt:
        * platform/efl/test_expectations.txt:

2012-05-23  Steve Block  <steveblock@google.com>

        Add crashing expectation for media/video-src-invalid-remove.html

        Unreviewed gardening.

        * platform/chromium/test_expectations.txt:

2012-05-23  Andrei Bucur  <abucur@adobe.com>

        [CSSRegions]Implement NamedFlow::name attribute
        https://bugs.webkit.org/show_bug.cgi?id=79645

        Test for the NamedFlow::name attribute per the CSS Regions WD 3-May-2012 recommendation:
        http://www.w3.org/TR/2012/WD-css3-regions-20120503/

        Reviewed by Andreas Kling.

        * fast/regions/webkit-named-flow-name-expected.txt: Added.
        * fast/regions/webkit-named-flow-name.html: Added.

2012-05-23  Grzegorz Czajkowski  <g.czajkowski@samsung.com>

        Unreviewed, rolling out r118157.
        http://trac.webkit.org/changeset/118157
        https://bugs.webkit.org/show_bug.cgi?id=87100

        Newly added tests are not connected to 8483 bug.
        editing/style directory should be unskiped first.

        * platform/efl/test_expectations.txt:

2012-05-23  Kangil Han  <kangil.han@samsung.com>

        [EFL][DRT] Rebaseline test results for BUG 86355
        https://bugs.webkit.org/show_bug.cgi?id=86956

        Unreviewed, EFL gardening.

        Updated test results for BUG 86355.

        * platform/efl/compositing/animation/state-at-end-event-transform-layer-expected.png:
        * platform/efl/compositing/animation/state-at-end-event-transform-layer-expected.txt:
        * platform/efl/compositing/bounds-in-flipped-writing-mode-expected.txt: Added.
        * platform/efl/compositing/color-matching/image-color-matching-expected.png:
        * platform/efl/compositing/color-matching/image-color-matching-expected.txt:
        * platform/efl/compositing/color-matching/pdf-image-match-expected.png:
        * platform/efl/compositing/color-matching/pdf-image-match-expected.txt:
        * platform/efl/compositing/compositing-visible-descendant-expected.png:
        * platform/efl/compositing/compositing-visible-descendant-expected.txt:
        * platform/efl/compositing/direct-image-compositing-expected.png:
        * platform/efl/compositing/direct-image-compositing-expected.txt:
        * platform/efl/compositing/generated-content-expected.png:
        * platform/efl/compositing/generated-content-expected.txt:
        * platform/efl/compositing/geometry/abs-position-inside-opacity-expected.png:
        * platform/efl/compositing/geometry/abs-position-inside-opacity-expected.txt:
        * platform/efl/compositing/geometry/clipping-foreground-expected.png:
        * platform/efl/compositing/geometry/clipping-foreground-expected.txt:
        * platform/efl/compositing/geometry/composited-html-size-expected.png:
        * platform/efl/compositing/geometry/composited-html-size-expected.txt:
        * platform/efl/compositing/geometry/fixed-in-composited-expected.png:
        * platform/efl/compositing/geometry/fixed-in-composited-expected.txt:
        * platform/efl/compositing/geometry/layer-due-to-layer-children-deep-expected.png:
        * platform/efl/compositing/geometry/layer-due-to-layer-children-deep-expected.txt:
        * platform/efl/compositing/geometry/layer-due-to-layer-children-expected.png:
        * platform/efl/compositing/geometry/layer-due-to-layer-children-expected.txt:
        * platform/efl/compositing/geometry/limit-layer-bounds-overflow-repaint-expected.txt:
        * platform/efl/compositing/geometry/outline-change-expected.png:
        * platform/efl/compositing/geometry/outline-change-expected.txt:
        * platform/efl/compositing/geometry/partial-layout-update-expected.png:
        * platform/efl/compositing/geometry/partial-layout-update-expected.txt:
        * platform/efl/compositing/geometry/root-layer-update-expected.png:
        * platform/efl/compositing/geometry/root-layer-update-expected.txt:
        * platform/efl/compositing/geometry/transfrom-origin-on-zero-size-layer-expected.png:
        * platform/efl/compositing/geometry/transfrom-origin-on-zero-size-layer-expected.txt:
        * platform/efl/compositing/geometry/video-fixed-scrolling-expected.png:
        * platform/efl/compositing/geometry/video-fixed-scrolling-expected.txt:
        * platform/efl/compositing/geometry/video-opacity-overlay-expected.png:
        * platform/efl/compositing/geometry/video-opacity-overlay-expected.txt:
        * platform/efl/compositing/iframes/composited-iframe-alignment-expected.png:
        * platform/efl/compositing/iframes/composited-iframe-alignment-expected.txt:
        * platform/efl/compositing/iframes/composited-iframe-scroll-expected.txt: Added.
        * platform/efl/compositing/iframes/iframe-content-flipping-expected.txt: Added.
        * platform/efl/compositing/iframes/iframe-copy-on-scroll-expected.png:
        * platform/efl/compositing/iframes/iframe-copy-on-scroll-expected.txt:
        * platform/efl/compositing/iframes/leave-compositing-iframe-expected.txt: Added.
        * platform/efl/compositing/images/direct-image-background-color-expected.png:
        * platform/efl/compositing/images/direct-image-background-color-expected.txt:
        * platform/efl/compositing/layers-inside-overflow-scroll-expected.png:
        * platform/efl/compositing/layers-inside-overflow-scroll-expected.txt:
        * platform/efl/compositing/masks/direct-image-mask-expected.png:
        * platform/efl/compositing/masks/direct-image-mask-expected.txt:
        * platform/efl/compositing/masks/masked-ancestor-expected.png:
        * platform/efl/compositing/masks/masked-ancestor-expected.txt:
        * platform/efl/compositing/masks/multiple-masks-expected.png:
        * platform/efl/compositing/masks/multiple-masks-expected.txt:
        * platform/efl/compositing/masks/simple-composited-mask-expected.png:
        * platform/efl/compositing/masks/simple-composited-mask-expected.txt:
        * platform/efl/compositing/overflow/ancestor-overflow-expected.png:
        * platform/efl/compositing/overflow/ancestor-overflow-expected.txt:
        * platform/efl/compositing/overflow/fixed-position-ancestor-clip-expected.png:
        * platform/efl/compositing/overflow/fixed-position-ancestor-clip-expected.txt:
        * platform/efl/compositing/overflow/overflow-compositing-descendant-expected.png:
        * platform/efl/compositing/overflow/overflow-compositing-descendant-expected.txt:
        * platform/efl/compositing/overflow/overflow-positioning-expected.png:
        * platform/efl/compositing/overflow/overflow-positioning-expected.txt:
        * platform/efl/compositing/overflow/overflow-scroll-expected.png:
        * platform/efl/compositing/overflow/overflow-scroll-expected.txt:
        * platform/efl/compositing/overflow/parent-overflow-expected.png:
        * platform/efl/compositing/overflow/parent-overflow-expected.txt:
        * platform/efl/compositing/overflow/scroll-ancestor-update-expected.png:
        * platform/efl/compositing/overflow/scroll-ancestor-update-expected.txt:
        * platform/efl/compositing/overflow/scrollbar-painting-expected.png:
        * platform/efl/compositing/overflow/scrollbar-painting-expected.txt:
        * platform/efl/compositing/overflow/theme-affects-visual-overflow-expected.png: Added.
        * platform/efl/compositing/overflow/theme-affects-visual-overflow-expected.txt: Added.
        * platform/efl/compositing/plugins/1x1-composited-plugin-expected.txt: Added.
        * platform/efl/compositing/plugins/composited-plugin-expected.png:
        * platform/efl/compositing/plugins/composited-plugin-expected.txt:
        * platform/efl/compositing/plugins/large-to-small-composited-plugin-expected.txt: Added.
        * platform/efl/compositing/reflections/animation-inside-reflection-expected.png:
        * platform/efl/compositing/reflections/animation-inside-reflection-expected.txt:
        * platform/efl/compositing/reflections/compositing-change-inside-reflection-expected.png:
        * platform/efl/compositing/reflections/compositing-change-inside-reflection-expected.txt:
        * platform/efl/compositing/reflections/deeply-nested-reflections-expected.png:
        * platform/efl/compositing/reflections/deeply-nested-reflections-expected.txt:
        * platform/efl/compositing/reflections/load-video-in-reflection-expected.png:
        * platform/efl/compositing/reflections/load-video-in-reflection-expected.txt:
        * platform/efl/compositing/reflections/masked-reflection-on-composited-expected.png:
        * platform/efl/compositing/reflections/masked-reflection-on-composited-expected.txt:
        * platform/efl/compositing/reflections/nested-reflection-anchor-point-expected.png:
        * platform/efl/compositing/reflections/nested-reflection-anchor-point-expected.txt:
        * platform/efl/compositing/reflections/nested-reflection-animated-expected.png:
        * platform/efl/compositing/reflections/nested-reflection-animated-expected.txt:
        * platform/efl/compositing/reflections/nested-reflection-expected.png:
        * platform/efl/compositing/reflections/nested-reflection-expected.txt:
        * platform/efl/compositing/reflections/nested-reflection-mask-change-expected.png:
        * platform/efl/compositing/reflections/nested-reflection-mask-change-expected.txt:
        * platform/efl/compositing/reflections/nested-reflection-on-overflow-expected.png:
        * platform/efl/compositing/reflections/nested-reflection-on-overflow-expected.txt:
        * platform/efl/compositing/reflections/nested-reflection-opacity-expected.png:
        * platform/efl/compositing/reflections/nested-reflection-opacity-expected.txt:
        * platform/efl/compositing/reflections/nested-reflection-size-change-expected.png:
        * platform/efl/compositing/reflections/nested-reflection-size-change-expected.txt:
        * platform/efl/compositing/reflections/nested-reflection-transformed-expected.png:
        * platform/efl/compositing/reflections/nested-reflection-transformed-expected.txt:
        * platform/efl/compositing/reflections/nested-reflection-transformed2-expected.png:
        * platform/efl/compositing/reflections/nested-reflection-transformed2-expected.txt:
        * platform/efl/compositing/reflections/nested-reflection-transition-expected.png:
        * platform/efl/compositing/reflections/nested-reflection-transition-expected.txt:
        * platform/efl/compositing/reflections/reflection-in-composited-expected.png:
        * platform/efl/compositing/reflections/reflection-in-composited-expected.txt:
        * platform/efl/compositing/reflections/reflection-opacity-expected.png:
        * platform/efl/compositing/reflections/reflection-opacity-expected.txt:
        * platform/efl/compositing/reflections/reflection-ordering-expected.png:
        * platform/efl/compositing/reflections/reflection-ordering-expected.txt:
        * platform/efl/compositing/reflections/reflection-positioning-expected.png:
        * platform/efl/compositing/reflections/reflection-positioning-expected.txt:
        * platform/efl/compositing/reflections/reflection-positioning2-expected.png:
        * platform/efl/compositing/reflections/reflection-positioning2-expected.txt:
        * platform/efl/compositing/reflections/simple-composited-reflections-expected.png:
        * platform/efl/compositing/reflections/simple-composited-reflections-expected.txt:
        * platform/efl/compositing/reflections/transform-inside-reflection-expected.png:
        * platform/efl/compositing/reflections/transform-inside-reflection-expected.txt:
        * platform/efl/compositing/repaint/become-overlay-composited-layer-expected.png:
        * platform/efl/compositing/repaint/become-overlay-composited-layer-expected.txt:
        * platform/efl/compositing/repaint/composited-document-element-expected.png:
        * platform/efl/compositing/repaint/composited-document-element-expected.txt:
        * platform/efl/compositing/repaint/layer-repaint-expected.png:
        * platform/efl/compositing/repaint/layer-repaint-expected.txt:
        * platform/efl/compositing/repaint/layer-repaint-rects-expected.png:
        * platform/efl/compositing/repaint/layer-repaint-rects-expected.txt:
        * platform/efl/compositing/repaint/opacity-between-absolute-expected.png:
        * platform/efl/compositing/repaint/opacity-between-absolute-expected.txt:
        * platform/efl/compositing/repaint/opacity-between-absolute2-expected.png:
        * platform/efl/compositing/repaint/opacity-between-absolute2-expected.txt:
        * platform/efl/compositing/self-painting-layers-expected.png:
        * platform/efl/compositing/self-painting-layers-expected.txt:
        * platform/efl/compositing/shadows/shadow-drawing-expected.png:
        * platform/efl/compositing/shadows/shadow-drawing-expected.txt:
        * platform/efl/compositing/sibling-positioning-expected.png:
        * platform/efl/compositing/sibling-positioning-expected.txt:
        * platform/efl/compositing/text-on-large-layer-expected.png:
        * platform/efl/compositing/text-on-large-layer-expected.txt:
        * platform/efl/compositing/transitions/scale-transition-no-start-expected.png:
        * platform/efl/compositing/transitions/scale-transition-no-start-expected.txt:
        * platform/efl/compositing/transitions/singular-scale-transition-expected.png:
        * platform/efl/compositing/transitions/singular-scale-transition-expected.txt:
        * platform/efl/compositing/video/video-background-color-expected.png:
        * platform/efl/compositing/video/video-background-color-expected.txt:
        * platform/efl/compositing/visibility/visibility-composited-expected.png: Added.
        * platform/efl/compositing/visibility/visibility-composited-expected.txt: Added.
        * platform/efl/compositing/visibility/visibility-composited-transforms-expected.png: Copied from LayoutTests/platform/efl/mathml/presentation/fenced-expected.png.
        * platform/efl/compositing/visibility/visibility-composited-transforms-expected.txt: Added.
        * platform/efl/mathml/presentation/attributes-expected.png:
        * platform/efl/mathml/presentation/attributes-expected.txt:
        * platform/efl/mathml/presentation/fenced-expected.png:
        * platform/efl/mathml/presentation/fenced-expected.txt:
        * platform/efl/mathml/presentation/fenced-mi-expected.png:
        * platform/efl/mathml/presentation/fenced-mi-expected.txt:
        * platform/efl/mathml/presentation/fractions-expected.png:
        * platform/efl/mathml/presentation/fractions-expected.txt:
        * platform/efl/mathml/presentation/fractions-vertical-alignment-expected.png:
        * platform/efl/mathml/presentation/fractions-vertical-alignment-expected.txt:
        * platform/efl/mathml/presentation/mo-stretch-expected.png: Added.
        * platform/efl/mathml/presentation/mo-stretch-expected.txt: Added.
        * platform/efl/mathml/presentation/mroot-pref-width-expected.png: Added.
        * platform/efl/mathml/presentation/mroot-pref-width-expected.txt: Added.
        * platform/efl/mathml/presentation/sub-expected.png:
        * platform/efl/mathml/presentation/sub-expected.txt:
        * platform/efl/mathml/presentation/subsup-expected.png:
        * platform/efl/mathml/presentation/subsup-expected.txt:
        * platform/efl/mathml/presentation/sup-expected.png:
        * platform/efl/mathml/presentation/sup-expected.txt:
        * platform/efl/mathml/presentation/tables-expected.png:
        * platform/efl/mathml/presentation/tables-expected.txt:
        * platform/efl/mathml/presentation/tokenElements-expected.png:
        * platform/efl/mathml/presentation/tokenElements-expected.txt:
        * platform/efl/mathml/presentation/under-expected.png:
        * platform/efl/mathml/presentation/under-expected.txt:
        * platform/efl/mathml/presentation/underover-expected.png:
        * platform/efl/mathml/presentation/underover-expected.txt:

2012-05-23  Steve Block  <steveblock@google.com>

        Fix crashing expectation for several media/ LayoutTests

        Unreviewed gardening.

        * platform/chromium/test_expectations.txt:

2012-05-23  Steve Block  <steveblock@google.com>

        Set crashing expectation for several media/ LayoutTests

        Unreviewed gardening.

        * platform/chromium/test_expectations.txt:

2012-05-23  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r118105.
        http://trac.webkit.org/changeset/118105
        https://bugs.webkit.org/show_bug.cgi?id=87255

        New LayoutTest is causing several cookie tests to fail on
        numerous bots (Requested by steveblock on #webkit).

        * http/tests/cookies/js-get-and-set-http-only-cookie-expected.txt: Removed.
        * http/tests/cookies/js-get-and-set-http-only-cookie.php: Removed.
        * http/tests/cookies/script-tests/js-get-and-set-http-only-cookie.js: Removed.

2012-05-23  Zan Dobersek  <zandobersek@gmail.com>

        [Gtk] EventSender should properly handle (left|right)(control|shift|alt) after r118001
        https://bugs.webkit.org/show_bug.cgi?id=87221

        Reviewed by Martin Robinson.

        Remove failing test expectations for fast/events/keydown-leftright-keys.html,
        the test should pass now.

        * platform/gtk/test_expectations.txt:

2012-05-23  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: eliminate getters from HeapSnapshot.js
        https://bugs.webkit.org/show_bug.cgi?id=87241

        getters can't be inlined by engine at the moment.
        I found that conversion getters into functions gives us about 600 ms

        RESULT heap-snapshot: switch-to-containment-view= 1920 ms
        vs
        RESULT heap-snapshot: switch-to-containment-view= 1367 ms

        Reviewed by Yury Semikhatsky.

        * inspector/profiler/heap-snapshot.html:

2012-05-23  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: Debugger should correctly show catch scope
        https://bugs.webkit.org/show_bug.cgi?id=87197

        Reviewed by Vsevolod Vlasov.

        Added test for "catch" block to the debugger test.

        * inspector/debugger/debugger-expand-scope-expected.txt:
        * inspector/debugger/debugger-expand-scope.html:
        * platform/chromium/inspector/debugger/debugger-expand-scope-expected.txt:

2012-05-23  Thiago Marcos P. Santos  <thiago.santos@intel.com>

        [EFL] Gardening of failing tests
        https://bugs.webkit.org/show_bug.cgi?id=87233

        Unreviewed gardening.

        * platform/efl/Skipped:
        * platform/efl/test_expectations.txt:

2012-05-23  Krzysztof Czech  <k.czech@samsung.com>

        [EFL] Gardening editing/style tests, missing baselines.
        https://bugs.webkit.org/show_bug.cgi?id=87100

        Unreviewed EFL gardening.

        * platform/efl/test_expectations.txt: added tests regarding 84839 bug, missing baselines.

2012-05-23  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>

        [EFL][DRT] Webarchives tests gardening
        https://bugs.webkit.org/show_bug.cgi?id=87225

        Unreviewed. The EFL port has no support for webarchives, so the related testcases should 
        be put to test_expectations as expected to fail.

        * platform/efl/Skipped:
        * platform/efl/test_expectations.txt:

2012-05-23  Alice Boxhall  <aboxhall@chromium.org>

        AX: Contenteditable tables should always be exposed as data tables
        https://bugs.webkit.org/show_bug.cgi?id=87052

        Reviewed by Chris Fleizach.

        * accessibility/table-detection.html:

2012-05-23  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] EFL's DRT does not print didFailProvisionalLoadWithError messages
        https://bugs.webkit.org/show_bug.cgi?id=85956

        Reviewed by Gustavo Noronha Silva.

        Unskip test cases which expect the DumpRenderTree to print
        didFailProvisionalLoadWithError messages.
        Add EFL expectation for
        http/tests/loading/pdf-commit-load-callbacks.html.

        * platform/efl/Skipped:
        * platform/efl/http/tests/loading/pdf-commit-load-callbacks-expected.txt: Added.
        Use same expectation as for Qt.
        * platform/efl/test_expectations.txt:

2012-05-23  Christophe Dumez  <christophe.dumez@intel.com>

        [EFL] EFL's DRT needs to call Settings::setValidationMessageTimerMagnification(-1)
        https://bugs.webkit.org/show_bug.cgi?id=86366

        Reviewed by Antonio Gomes.

        Unskip fast/forms/validation-message-appearance.html and add EFL
        expectation.

        * platform/efl/Skipped:
        * platform/efl/fast/forms/validation-message-appearance-expected.png: Added.
        * platform/efl/fast/forms/validation-message-appearance-expected.txt: Added.

2012-05-23  Zan Dobersek  <zandobersek@gmail.com>

        Unreviewed GTK gardening after r118001, r118011 and r118105.

        * platform/gtk/test_expectations.txt:

2012-05-23  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed gardening.

        * platform/qt/Skipped: Unskip a now passing test.

2012-05-22  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed gardening.

        * platform/qt/Skipped: Skip new, but failing tests.
        * platform/qt/printing/iframe-print-expected.png: Added after r118039.
        * platform/qt/printing/iframe-print-expected.txt: Added after r118039.

2012-05-22  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed gardening, skip a failing test.

        * platform/qt/Skipped:

2012-05-22  Hayato Ito  <hayato@chromium.org>

        Remove an assertion since an event's target might be a shadow root if a text node is clicked.
        https://bugs.webkit.org/show_bug.cgi?id=87072

        Reviewed by Dimitri Glazkov.

        * fast/dom/shadow/shadow-dom-event-dispatching.html:

2012-05-22  Dongwoo Im  <dw.im@samsung.com>

        [EFL] Implements the registerProtocolHandler method and option.
        https://bugs.webkit.org/show_bug.cgi?id=73638

        Reviewed by Andreas Kling.

        The registerProtocolHandler() method allows Web sites to register themselves
        as possible handlers for particular schemes.

        http://dev.w3.org/html5/spec/Overview.html#dom-navigator-registerprotocolhandler

        * platform/efl/fast/dom/register-protocol-handler-expected.txt: Added.

2012-05-22  Stephanie Lewis  <slewis@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=87208
        Unreviewed, checking in failing results.

        * platform/mac/http/tests/cookies/js-get-and-set-http-only-cookie-expected.txt: Added.

2012-05-22  MORITA Hajime  <morrita@google.com>

        REGRESSION(r116629) tests for <style scoped> is crashing
        https://bugs.webkit.org/show_bug.cgi?id=87191

        - Unskipped accidentally skipped test for <style scoped>.
        - Updated outdated expectations.

        Reviewed by Kent Tamura.

        * fast/css/style-scoped/style-scoped-in-shadow-expected.txt:
        * platform/chromium/test_expectations.txt:

2012-05-21  Shawn Singh  <shawnsingh@chromium.org>

        Improve W3C conformance of backface-visibility
        https://bugs.webkit.org/show_bug.cgi?id=84195

        Reviewed by Adrienne Walker.

        * compositing/backface-visibility-hierarchical-transform-expected.png: Removed.
        * compositing/backface-visibility/backface-visibility-3d-expected.png: Added.
        * compositing/backface-visibility/backface-visibility-3d-expected.txt: Copied from LayoutTests/compositing/backface-visibility-expected.txt.
        * compositing/backface-visibility/backface-visibility-3d.html: Added.
        * compositing/backface-visibility/backface-visibility-hierarchical-transform-expected.png: Added.
        * compositing/backface-visibility/backface-visibility-hierarchical-transform-expected.txt: Renamed from LayoutTests/compositing/backface-visibility-hierarchical-transform-expected.txt.
        * compositing/backface-visibility/backface-visibility-hierarchical-transform.html: Renamed from LayoutTests/compositing/backface-visibility-hierarchical-transform.html.
        * compositing/backface-visibility/backface-visibility-non3d-expected.png: Added.
        * compositing/backface-visibility/backface-visibility-non3d-expected.txt: Copied from LayoutTests/compositing/backface-visibility-expected.txt.
        * compositing/backface-visibility/backface-visibility-non3d.html: Added.
        * compositing/backface-visibility/backface-visibility-simple-expected.png: Renamed from LayoutTests/compositing/backface-visibility-expected.png.
        * compositing/backface-visibility/backface-visibility-simple-expected.txt: Renamed from LayoutTests/compositing/backface-visibility-expected.txt.
        * compositing/backface-visibility/backface-visibility-simple.html: Renamed from LayoutTests/compositing/backface-visibility.html.
        * platform/mac/test_expectations.txt:

2012-05-22  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r118095.
        http://trac.webkit.org/changeset/118095
        https://bugs.webkit.org/show_bug.cgi?id=87201

        "Causing crashes on Mac in
        WebCore::StyleResolver::adjustRenderStyle (Requested by
        sundiamonde on #webkit).

        * fast/block/positioning/fixed-position-stacking-context-expected.png: Removed.
        * fast/block/positioning/fixed-position-stacking-context-expected.txt: Removed.
        * fast/block/positioning/fixed-position-stacking-context.html: Removed.
        * fast/block/positioning/fixed-position-stacking-context2-expected.png: Removed.
        * fast/block/positioning/fixed-position-stacking-context2-expected.txt: Removed.
        * fast/block/positioning/fixed-position-stacking-context2.html: Removed.

2012-05-22  Levi Weintraub  <leviw@chromium.org>

        NULL ptr in WebCore::RenderBlock::layoutRunsAndFloatsInRange
        https://bugs.webkit.org/show_bug.cgi?id=77786

        Reviewed by Ryosuke Niwa.

        * fast/block/line-layout/crash-in-isolate-with-positioned-child-expected.txt: Added.
        * fast/block/line-layout/crash-in-isolate-with-positioned-child.html: Added.

2012-05-22  Hayato Ito  <hayato@chromium.org>

        Make ComposedShadowTreeWalker traverse inactive insertion points correctly.
        https://bugs.webkit.org/show_bug.cgi?id=86830

        Reviewed by Dimitri Glazkov.

        * fast/dom/shadow/composed-shadow-tree-walker-expected.txt:
        * fast/dom/shadow/composed-shadow-tree-walker.html:

2012-05-22  Stephanie Lewis  <slewis@apple.com>

        See https://bugs.webkit.org/show_bug.cgi?id=87199
        Unreviewed, add failing test to skipped list.

        * platform/mac/Skipped:

2012-05-22  Jason Liu  <jason.liu@torchmobile.com.cn>

        [BlackBerry] Possible to clobber httponly cookie.
        https://bugs.webkit.org/show_bug.cgi?id=86067

        Reviewed by Rob Buis.

        * http/tests/cookies/js-get-and-set-http-only-cookie-expected.txt: Added.
        * http/tests/cookies/js-get-and-set-http-only-cookie.php: Added.
        * http/tests/cookies/script-tests/js-get-and-set-http-only-cookie.js: Added.

2012-05-22  Kangil Han  <kangil.han@samsung.com>

        [EFL][DRT] Implement touch event
        https://bugs.webkit.org/show_bug.cgi?id=86720

        Reviewed by Hajime Morita.

        Currently EFL DRT doesn't support touch event.
        Therefore, this patch enabled it and implemented some eventSender function callbacks.

        * platform/efl/Skipped:

2012-05-22  Stephanie Lewis  <slewis@apple.com>

        Unreviewed, update result missed by http://trac.webkit.org/changeset/117673.

        * platform/mac-wk2/fast/forms/plaintext-mode-2-expected.txt:

2012-05-22  Stephanie Lewis  <slewis@apple.com>

        See https://bugs.webkit.org/show_bug.cgi?id=87187
        <rdar://problem/11511011> acid3 fails on WebKit2 (87187)

        Unreviewed, checking in failing results.

        * platform/mac-wk2/http/tests/misc/acid3-expected.txt:

2012-05-22  James Robinson  <jamesr@chromium.org>

        Add a Setting to make position:fixed form a new stacking context
        https://bugs.webkit.org/show_bug.cgi?id=87186

        Reviewed by Adam Barth.

        Adds layout tests that confirm we don't creates stacking contexts for position:fixed by default, but we do when
        the fixedPositionCreatesStackingContext Setting is true.

        Qt and Blackberry will need different expectations since they set this via an #ifdef

        * fast/block/positioning/fixed-position-stacking-context-expected.png: Added.
        * fast/block/positioning/fixed-position-stacking-context-expected.txt: Added.
        * fast/block/positioning/fixed-position-stacking-context.html: Added.
        * fast/block/positioning/fixed-position-stacking-context2-expected.png: Added.
        * fast/block/positioning/fixed-position-stacking-context2-expected.txt: Added.
        * fast/block/positioning/fixed-position-stacking-context2.html: Added.

2012-05-22  Adam Barth  <abarth@webkit.org>

        RenderInline::absoluteRects does some incorrect layout math
        https://bugs.webkit.org/show_bug.cgi?id=87036

        Reviewed by Eric Seidel.

        * fast/inline/boundingBox-with-continuation-expected.txt: Added.
        * fast/inline/boundingBox-with-continuation.html: Added.

2012-05-22  Jessie Berlin  <jberlin@apple.com>

        Do some more clean up on the WK2 Skipped list.

        Add bug numbers, remove tests that have been fixed, and consolidate tests that are already
        covered elsewhere in the file.

        * platform/wk2/Skipped:

2012-05-22  Jessie Berlin  <jberlin@apple.com>

        WebKitTestRunner needs an implementation of layoutTestController.setDefersLoading
        https://bugs.webkit.org/show_bug.cgi?id=64313

        Reviewed by Jon Honeycutt.

        * platform/wk2/Skipped:
        Remove a test that uses setDefersLoading from the WK2 Skipped list.

2012-05-22  Jessie Berlin  <jberlin@apple.com>

        [Mac WK2] platform/mac-wk2/plugins/mouse-events-scaled.html failing
        https://bugs.webkit.org/show_bug.cgi?id=87182

        Add expected (failing?) results to get the bots green.

        * platform/mac-wk2/plugins/mouse-events-scaled-expected.txt:

2012-05-22  Jessie Berlin  <jberlin@apple.com>

        WebKitTestRunner needs layoutTestController.setPrinting
        https://bugs.webkit.org/show_bug.cgi?id=42693

        Add printing/iframe-print.html to the WK2 Skipped list.

        * platform/wk2/Skipped:

2012-05-22  Raphael Kubo da Costa  <rakuco@webkit.org>

        [EFL] Gardening; skip test added in r118001.

        Skip it while the necessary mechanisms are not implemented by the
        port.

        * platform/efl/test_expectations.txt:

2012-05-22  Dan Bernstein  <mitz@apple.com>

        REGRESSION (r105513): CSS max-width is not applied to SVG element
        https://bugs.webkit.org/show_bug.cgi?id=87050

        Reviewed by Darin Adler.

        * svg/css/max-height-expected.png: Added.
        * svg/css/max-height-expected.txt: Added.
        * svg/css/max-height.html: Added.
        * svg/css/max-width-expected.png: Added.
        * svg/css/max-width-expected.txt: Added.
        * svg/css/max-width.html: Added.

2012-05-22  Emil A Eklund  <eae@chromium.org>

        Unreviewed chromium test_expectations update, added bug number for a couple of skipped tests.

        * platform/chromium/test_expectations.txt:

2012-05-22  Joshua Bell  <jsbell@chromium.org>

        [Chromium] Add missing baselines for r118039.

        Unreviewed gardening.

        * platform/chromium-linux/printing/iframe-print-expected.png: Added.
        * platform/chromium-mac-leopard/printing/iframe-print-expected.png: Added.
        * platform/chromium-mac-snowleopard/printing/iframe-print-expected.png: Added.
        * platform/chromium-mac/printing/iframe-print-expected.png: Added.
        * platform/chromium-mac/printing/iframe-print-expected.txt: Added.
        * platform/chromium-win/printing/iframe-print-expected.png: Added.
        * platform/chromium-win/printing/iframe-print-expected.txt: Added.

2012-05-22  Jessie Berlin  <jberlin@apple.com>

        WK2 Skipped list should be updated to reflect that
        https://bugs.webkit.org/show_bug.cgi?id=57515 has been fixed.
        https://bugs.webkit.org/show_bug.cgi?id=87170.

        Reviewed by Brady Eidson.

        Remove the tests from the Skipped list that now pass, separate out the test that crashes with
        its own entry, and correctly cover the shadow dom tests.

        * platform/wk2/Skipped:

2012-05-22  Jessie Berlin  <jberlin@apple.com>

        WTR needs an implementation of setAutomaticLinkDetectionEnabled
        https://bugs.webkit.org/show_bug.cgi?id=87162

        Add editing/inserting/typing-space-to-trigger-smart-link.html to the WK2 Skipped list.

        * platform/wk2/Skipped:

2012-05-22  Adam Barth  <abarth@webkit.org>

        echo-inspan.pl is missing a semicolon on line 14, freaks out Apache on multiple regression tests
        https://bugs.webkit.org/show_bug.cgi?id=86023

        Reviewed by Eric Seidel.

        This typo was causing a syntax error, making us lose test coverage.

        * http/tests/security/xssAuditor/open-iframe-src-expected.txt: Rebased result.
        * http/tests/security/xssAuditor/open-script-src-expected.txt: Ditto.
        * http/tests/security/xssAuditor/resources/echo-inspan.pl:

== Rolled over to ChangeLog-2012-05-22 ==
