# This file should contain entries for expectations that are specific
# to the Apple Mac port running WebKit1 (DumpRenderTree)

#//////////////////////////////////////////////////////////////////////////////////////////
# Platform-specific tests. Skipped globally, then re-enabled here.
#//////////////////////////////////////////////////////////////////////////////////////////


#//////////////////////////////////////////////////////////////////////////////////////////
# End platform-specific directories.
#//////////////////////////////////////////////////////////////////////////////////////////

# Failures on WebKit Legacy

# Cookie policy only supported in WK2.
http/tests/cookies/only-accept-first-party-cookies.html [ Skip ]
http/tests/cookies/third-party-cookie-relaxing.html [ Skip ]
http/tests/security/cookies/third-party-cookie-blocking.html [ Skip ]
http/tests/security/cookies/third-party-cookie-blocking-redirect.html [ Skip ]
http/tests/security/cookies/third-party-cookie-blocking-user-action.html [ Skip ]
http/tests/security/cookies/third-party-cookie-blocking-xslt.xml [ Skip ]

# Server trust evaluation only supported in WK2.
http/tests/ssl/curl/certificate-and-authentication.html [ Skip ]
http/tests/ssl/iframe-upgrade.https.html [ Skip ]
http/tests/ssl/mixedContent/insecure-websocket.html [ Failure ]
http/tests/ssl/upgrade-origin-usage.html [ Failure ]

# There is not NetworkProcess in WK1, so it can't crash.
http/tests/websocket/tests/hybi/network-process-crash-error.html [ Skip ]

# Broken by r244182
animations/ [ Skip ]
legacy-animation-engine/ [ Skip ]
css3/filters/animation-from-initial-values-with-color-matrix.html [ Skip ]
css3/filters/composited-during-animation.html [ Skip ]
css3/filters/crash-filter-animation-invalid-url.html [ Skip ]
css3/filters/filter-animation-from-none-hw.html [ Skip ]
css3/filters/filter-animation-from-none-multi-hw.html [ Skip ]
css3/filters/filter-animation-from-none-multi.html [ Skip ]
css3/filters/filter-animation-from-none.html [ Skip ]
css3/filters/filter-animation-hw.html [ Skip ]
css3/filters/filter-animation-multi-hw.html [ Skip ]
css3/filters/filter-animation-multi.html [ Skip ]
css3/filters/filter-animation.html [ Skip ]
css3/masking/clip-path-animation.html [ Skip ]
fast/animation/animation-mixed-transform-crash.html [ Skip ]
fast/animation/animation-style-update-size.html [ Skip ]
fast/animation/css-animation-resuming-when-visible-with-style-change2.html [ Skip ]
fast/animation/css-animation-throttling-lowPowerMode.html [ Skip ]
fast/css-generated-content/pseudo-element-events.html [ Skip ]
fast/css-generated-content/pseudo-transition-event.html [ Skip ]
fast/css/animation-pseudo-style-change.html [ Skip ]
fast/css/getComputedStyle/getComputedStyle-with-pseudo-element.html [ Skip ]
fast/css/transition-color-unspecified.html [ Skip ]
fast/filter-image/filter-image-animation.html [ Skip ]
resize-observer/modify-frametree-in-callback.html [ Skip ]
resize-observer/multi-frames.html [ Skip ]
