#
# Copyright (C) 2007 Apple Inc.  All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1.  Redistributions of source code must retain the above copyright
#     notice, this list of conditions and the following disclaimer. 
# 2.  Redistributions in binary form must reproduce the above copyright
#     notice, this list of conditions and the following disclaimer in the
#     documentation and/or other materials provided with the distribution. 
# 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
#     its contributors may be used to endorse or promote products derived
#     from this software without specific prior written permission. 
#
# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#

# <rdar://5743854> Disable HTML 5 postMessage/MessageEvent support
http/tests/security/postMessage
http/tests/messaging/cross-domain-message-send.html
http/tests/security/cross-frame-access-delete.html
http/tests/security/cross-frame-access-history-put.html
http/tests/security/cross-frame-access-location-put.html

# Should be moved to platform/mac <rdar://5621425>
http/tests/misc/willCacheResponse-delegate-callback.html

# No Dashboard compatibility mode on Windows
http/tests/xmlhttprequest/default-content-type-dashboard.html
http/tests/xmlhttprequest/svg-created-by-xhr-disallowed-in-dashboard.html
svg/custom/embedded-svg-disallowed-in-dashboard.xml
svg/custom/manually-parsed-embedded-svg-disallowed-in-dashboard.html
svg/custom/manually-parsed-svg-disallowed-in-dashboard.html
svg/custom/svg-disallowed-in-dashboard-object.html

# Apache 1.3 doesn't support SSL <rdar://problem/5345985>
http/tests/ssl
http/tests/security/cross-frame-access-protocol-explicit-domain.html
http/tests/security/cross-frame-access-protocol.html

# Fails <rdar://problem/5674289>
media/video-seek-past-end-paused.html

# <rdar://problem/5075790> Layout tests that depend on certain fonts don't match Mac results:
#                          - Mac OS X and Windows do not have an Arabic font in common
fast/text/international/bidi-AN-after-L.html
fast/text/international/bidi-CS-after-AN.html
fast/text/international/bidi-neutral-run.html
fast/text/international/bidi-neutral-directionality-paragraph-start.html
svg/W3C-SVG-1.1/fonts-glyph-02-t.svg
svg/W3C-SVG-1.1/text-intro-05-t.svg
svg/batik/text/textBiDi.svg
svg/text/text-intro-05-t.svg
#                           - Mac OS X and Windows do not have a CJK font in common
fast/encoding/denormalised-voiced-japanese-chars.html
fast/text/international/002.html
fast/text/international/003.html
fast/text/international/wrap-CJK-001.html
svg/W3C-SVG-1.1/text-fonts-01-t.svg
svg/text/text-fonts-01-t.svg
#                           - Windows does not have Geneva
svg/W3C-SVG-1.1/interact-cursor-01-f.svg
#                           - Mac OS X and Windows do not have a Thai font in common
fast/text/atsui-multiple-renderers.html
fast/text/international/thai-line-breaks.html
#                           - Mac OS X and Windows do not have a Georgian font in common
css2.1/t1202-counter-09-b.html
css2.1/t1202-counters-09-b.html
fast/lists/w3-list-styles.html

# <rdar://problem/5720592> Width of certain complex text is off by one
fast/text/atsui-pointtooffset-calls-cg.html
fast/text/cg-vs-atsui.html
fast/text/atsui-spacing-features.html

# <rdar://problem/5718773> Support a minimum antialiased font size
svg/hixie/text/003.html
svg/hixie/text/003a.xml
svg/hixie/viewbox/preserveAspectRatio/002.xml

# ASSERT in ClipboardWin::setData <rdar://problem/5015941>
editing/execCommand/copy-without-selection.html

# Drag & Drop doesn't work correctly in DRT <rdar://5621244>
editing/pasteboard/drag-image-in-about-blank-frame.html
fast/events/drag-in-frames.html
fast/events/standalone-image-drag-to-editable.html

# <rdar://problem/5643675> window.scrollTo scrolls a window with no scrollbars
fast/events/attempt-scroll-with-no-scrollbars.html

# DRT is not fully implemented in boomer <rdar://problem/5128261>
fast/dom/Window/setting-properties-on-closed-window.html
svg/custom/use-events-crash.svg

# Emacs bindings are used in LayoutTests which fail on boomer. <rdar://problem/5137352>
fast/events/keydown-1.html

# The eqqivalent of option-tab doesn not exist in Boomer <rdar://problem/5137230>
fast/events/frame-tab-focus.html
fast/events/option-tab.html
fast/forms/focus2.html

# fast/html/keygen.html is failing on boomer <rdar://problem/5133799>
fast/html/keygen.html
fast/invalid/residual-style.html

# Number LayoutTest fails on boomer <rdar://problem/5130681>
fast/js/kde/Number.html

#<rdar://problem/5224271> Some LayoutTests fail when not run by themselves.
http/tests/navigation/anchor-frames.html

# No built-in plugin in DRT <rdar://problem/5074411>
plugins/call-as-function-test.html
plugins/get-url-that-the-resource-load-delegate-will-disallow.html
plugins/get-url-with-blank-target.html
plugins/jsobjc-dom-wrappers.html
plugins/jsobjc-simple.html
plugins/mouse-events.html
plugins/open-and-close-window-with-plugin.html
plugins/plugin-javascript-access.html
plugins/root-object-premature-delete-crash.html
plugins/throw-on-dealloc.html
plugins/undefined-property-crash.html

# Debug C Runtime assertion <rdar://problem/5079945>
svg/custom/mask-excessive-malloc.svg

# String::Number prints floating point numbers differently on Win than X. <rdar://problem/5127993>
svg/hixie/perf/001.xml
svg/hixie/perf/002.xml
svg/hixie/perf/007.xml

# <rdar://problem/5663632> TextStream::operator<<(float) rounding differs between Mac OS X and Windows
svg/batik/paints/patternRegions.svg
svg/batik/text/textAnchor.svg
svg/carto.net/button.svg
svg/carto.net/colourpicker.svg
svg/carto.net/combobox.svg
svg/carto.net/selectionlist.svg
svg/carto.net/slider.svg
svg/carto.net/textbox.svg
svg/carto.net/window.svg
svg/custom/circular-marker-reference-1.svg
svg/custom/circular-marker-reference-3.svg
svg/custom/circular-marker-reference-4.svg
svg/custom/coords-relative-units-transforms.svg
svg/custom/marker-changes.svg
svg/custom/use-referencing-nonexisting-symbol.svg
svg/custom/width-full-percentage.svg
svg/W3C-SVG-1.1/coords-viewattr-01-b.svg
svg/W3C-SVG-1.1/fonts-elem-01-t.svg
svg/W3C-SVG-1.1/fonts-elem-02-t.svg
svg/W3C-SVG-1.1/fonts-elem-03-b.svg
svg/W3C-SVG-1.1/fonts-elem-04-b.svg
svg/W3C-SVG-1.1/fonts-elem-07-b.svg

# No support for WebArchives in WebKitWin <rdar://problem/5066490>
webarchive
svg/webarchive
svg/custom/image-with-prefix-in-webarchive.svg

# <rdar://problem/5230396> layoutTestController.addFileToPasteboardOnDrag is unimplemented
fast/forms/dragging-to-file-input.html

# Need to add functionality to DumpRenderTree to test IDN <rdar://problem/5301954>
fast/encoding/idn-security.html

# emacs key bindings <rdar://problem/4883609> Support for kill rings
editing/input/emacs-ctrl-o.html
editing/pasteboard/emacs-ctrl-a-k-y.html
editing/pasteboard/emacs-ctrl-k-y-001.html
editing/pasteboard/emacs-cntl-y-001.html

# <rdar://5508270> Intermittently time out
editing/selection/5057506-2.html
editing/selection/5057506.html
fast/dom/Window/window-early-properties.html
fast/frames/frameElement-widthheight.html
fast/frames/frame-js-url-clientWidth.html
fast/loader/local-svg-parsed-as-svg.svg
svg/custom/image-clipped-hit.svg
svg/custom/use-clipped-hit.svg

# We can't make platform specifc results so keep this here for now
# This test is dependant on DRT being able to open windows.
fast/dom/Window/new-window-opener.html

# SVG filter support not implemented <rdar://5555151>
svg/W3C-SVG-1.1/filters-blend-01-b.svg
svg/W3C-SVG-1.1/filters-color-01-b.svg
svg/W3C-SVG-1.1/filters-composite-02-b.svg
svg/W3C-SVG-1.1/filters-comptran-01-b.svg
svg/W3C-SVG-1.1/filters-diffuse-01-f.svg
svg/W3C-SVG-1.1/filters-displace-01-f.svg
svg/W3C-SVG-1.1/filters-example-01-b.svg
svg/W3C-SVG-1.1/filters-gauss-01-b.svg
svg/W3C-SVG-1.1/filters-image-01-b.svg
svg/W3C-SVG-1.1/filters-light-01-f.svg
svg/W3C-SVG-1.1/filters-offset-01-b.svg
svg/W3C-SVG-1.1/filters-specular-01-f.svg
svg/W3C-SVG-1.1/filters-tile-01-b.svg
svg/batik/filters/filterRegions.svg
svg/custom/empty-merge.svg
svg/custom/feComponentTransfer-Discrete.svg
svg/custom/feComponentTransfer-Gamma.svg
svg/custom/feComponentTransfer-Linear.svg
svg/custom/feComponentTransfer-Table.svg
svg/custom/feDisplacementMap-01.svg
svg/custom/filter-source-alpha.svg
svg/custom/image-with-transform-clip-filter.svg
svg/custom/invalid-css.svg
svg/custom/non-opaque-filters.svg
svg/custom/text-filter.svg
svg/custom/visibility-override-filter.svg

# This test intermittently crashes <rdar://5621979>
editing/selection/5241148.html

# Crash in CFURLConnectionSendCallbacks <rdar://5631739>
fast/inspector/cssURLQuotes.html

# <rdar://problem/5228259> Leopard regression test failures: svg/W3C-SVG-1.1/animate-elem...
svg/W3C-SVG-1.1/animate-elem-06-t.svg
svg/W3C-SVG-1.1/animate-elem-07-t.svg

# <rdar://problem/5228278> Leopard SVG regression test failures due to different path dimensions
svg/W3C-SVG-1.1/metadata-example-01-b.svg
svg/W3C-SVG-1.1/paths-data-01-t.svg
svg/W3C-SVG-1.1/text-path-01-b.svg
svg/custom/control-points-for-S-and-T.svg

# <rdar://problem/5539818> REGRESSION (Leopard): http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-uppercase.html failing
http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-uppercase.html

# <rdar://5667007> 2 SVG text tests failing (due to bad rounding?)
svg/batik/text/textOnPath.svg
svg/batik/text/verticalTextOnPath.svg

# <rdar://5667273>
editing/selection/fake-drag.html

# <rdar://5667279> Undefined value exception
http/tests/xmlhttprequest/XMLHttpRequestException.html

# <rdar://5667302>
svg/dom/animated-tearoff-equality.xhtml
svg/dom/animated-tearoff-lifespan.xhtml

# <rdar://5670235> Sometimes spews output into the next test
http/tests/security/cross-frame-access-put.html

# <rdar://5673685>
fast/forms/input-readonly-autoscroll.html

# <rdar://5673709>
fast/xsl/sort-unicode.xml

# <rdar://5683523> Failing on at least one bot
fast/dom/Window/window-screen-properties.html

# <rdar://5686091> This test crashes, and sometimes freezes buildbot.
fast/frames/frame-name-reset.html

# <rdar://5313536> Intermittently fails
fast/dom/frame-loading-via-document-write.html

# <rdar://5646437> REGRESSION (r28015): svg/batik/text/smallFonts fails
svg/batik/text/smallFonts.svg

# <rdar://5686552> Intermittently fails
svg/css/glyph-orientation-rounding-test.xhtml

# <rdar://problem/5706770> http/tests/xmlhttprequest/readystatechange.html is failing on buildbot
http/tests/xmlhttprequest/readystatechange.html

# <rdar://problem/5706788> http/tests/security/cross-frame-access-port-explicit-domain.html fails on Windows
http/tests/security/cross-frame-access-port-explicit-domain.html

# <rdar://problem/5713126> Times out
http/tests/security/cross-frame-access-port.html

# <rdar://problem/5713127>
media/video-display-toggle.html

# <rdar://problem/5720767>
svg/W3C-SVG-1.1/text-tselect-02-f.svg

# <rdar://5723142>
svg/custom/frame-getSVGDocument.html

# <rdar://5723191>
http/tests/navigation/javascriptlink-frames.html

################################################################################
####################### No bugs filed about the below yet#######################
################################################################################

# Text, caret
editing/pasteboard/copy-paste-bidi.html

# Caret, RenderBlock
editing/pasteboard/copy-standalone-image.html

# Text, caret, RenderBlock
editing/pasteboard/paste-RTFD.html
editing/pasteboard/paste-TIFF.html

# Text
editing/selection/caret-rtl-2.html
editing/selection/caret-rtl.html

# Caret, RenderBlock
editing/pasteboard/undoable-fragment-removes.html

################################################################################
######################### All of above may be related ##########################
################################################################################

# These tests only fail in Release builds
editing/execCommand/find-after-replace.html
editing/pasteboard/4989774.html
fast/forms/input-truncate-newline.html
fast/forms/plaintext-mode-2.html
fast/forms/textarea-paste-newline.html

# Unimplemented part of DRT. (This test is currently disabled).
http/tests/plugins/npapi-response-headers.html

# Timed out Loading Page (check if missing DRT functionality)
editing/selection/4975120.html
editing/selection/designmode-no-caret.html
fast/encoding/char-encoding.html
fast/frames/frame-navigation.html
http/tests/incremental/slow-utf8-css.pl
http/tests/incremental/slow-utf8-text.pl

# Random sizing issues (Renderblock, RenderTableCells)
fast/forms/searchfield-heights.html
fast/table/frame-and-rules.html
fast/table/giantCellspacing.html

# Not investigated yet
editing/deleting/5408255.html
editing/deleting/deletionUI-single-instance.html
editing/pasteboard/input-field-1.html
editing/selection/contains-boundaries.html
editing/undo/5378473.html
http/tests/xmlhttprequest/failed-auth.html
http/tests/xmlhttprequest/connection-error-sync.html
plugins/netscape-plugin-setwindow-size.html
svg/custom/gradient-stop-style-change.svg

# Need Windows DRT support for "elementDoesAutoCompleteForElementWithId()"
security/set-form-autocomplete-attribute.html

