# These are the layout test expectations for Apple's iOS simulator port of WebKit2
#
# See http://trac.webkit.org/wiki/TestExpectations for more information on this file.
#

editing/inserting/insert-paragraph-selection-outside-contenteditable.html [ Failure ]
fast/events/offsetX-offsetY.html [ Failure ]
fast/hidpi/image-srcset-invalid-descriptor.html [ Failure ]
http/tests/cookies/js-get-and-set-http-only-cookie.html [ Failure ]
http/tests/security/cross-origin-worker-indexeddb-allowed.html [ Failure ]
http/tests/security/cross-origin-worker-indexeddb.html [ Failure ]

fast/events/scroll-to-anchor-vertical-lr-writing-mode.html [ ImageOnlyFailure ]
fast/events/scroll-to-anchor-vertical-writing-mode.html [ ImageOnlyFailure ]
fast/sub-pixel/sub-pixel-composited-layers.html [ ImageOnlyFailure ]

webkit.org/b/152439 compositing/overflow/dynamic-composited-scrolling-status.html [ Failure ]

webkit.org/b/173178 [ Release ] svg/animations/svglength-element-removed-crash.svg [ Skip ]

# iOS simulator doesn’t support dashboard.
mathml/mathml-in-dashboard.html [ Failure ]
svg/custom/embedded-svg-allowed-in-dashboard.xml [ Failure ]
svg/custom/manually-parsed-embedded-svg-allowed-in-dashboard.html [ Failure ]
svg/custom/manually-parsed-svg-allowed-in-dashboard.html [ Failure ]
svg/custom/svg-allowed-in-dashboard-object.html [ Failure ]
http/tests/xmlhttprequest/svg-created-by-xhr-allowed-in-dashboard.html [ Failure ]

webkit.org/b/174100 webgl/1.0.2/conformance/glsl/misc/shader-with-non-reserved-words.html [ Skip ]

webkit.org/b/173010 js/slow-stress/Int32Array-alloc-huge.html [ Pass Timeout ]

webkit.org/b/174183 animations/resume-after-page-cache.html [ Pass Failure ]
webkit.org/b/174183 legacy-animation-engine/animations/resume-after-page-cache.html [ Pass Failure ]

webkit.org/b/173861 http/tests/webrtc/filtering-ice-candidate-same-origin-frame2.html [ Skip ]
webkit.org/b/173861 http/tests/webrtc/filtering-ice-candidate-same-origin-frame.html [ Skip ]
webkit.org/b/173861 http/tests/webrtc/filtering-ice-candidate-cross-origin-frame.html [ Skip ]

webkit.org/b/172384 fast/hidpi/hidpi-long-page-with-inset-element.html [ Pass ImageOnlyFailure ]

webkit.org/b/175865 quicklook/multi-sheet-numbers-09.html [ Pass Failure ]
