# Copyright (c) 2017, the Dart project authors.  Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

[ $compiler == dart2js ]
convert/chunked_conversion_utf88_test: Slow
convert/utf85_test: Slow
developer/timeline_test: Skip # Not supported
html/async_test: SkipByDesign
html/custom/document_register_basic_test: Slow
html/custom/document_register_type_extensions_test/construction: Slow
html/custom/document_register_type_extensions_test/registration: Slow
html/custom/entered_left_view_test/shadow_dom: Slow
html/custom/js_custom_test: Skip # mirrors not supported, delete this test.
html/custom/mirrors_2_test: Skip # mirrors not supported, delete this test.
html/custom/mirrors_test: Skip # mirrors not supported, delete this test.
html/custom_elements_test: Slow # Issue 26789
html/isolates_test: SkipByDesign
html/mirrors_js_typed_interop_test: Skip # mirrors not supported, delete this test.
html/worker_api_test: SkipByDesign
html/wrapping_collections_test: SkipByDesign # Testing an issue that is only relevant to Dartium
html/xhr_test: Slow
isolate/*: SkipByDesign # No support for dart:isolate in dart4web (http://dartbug.com/30538)
mirrors/*: SkipByDesign # Mirrors not supported on web in Dart 2.0.
profiler/metrics_num_test: Skip # Because of an int / double type test.
wasm/*: SkipByDesign # dart:wasm not currently supported on web.

[ $compiler != dart2js ]
async/dart2js_uncaught_error_test: Skip # JS-integration only test

[ $compiler == dart2js && $runtime == chrome ]
async/slow_consumer2_test: SkipSlow # Times out. Issue 22050
convert/streamed_conversion_json_utf8_decode_test: SkipSlow # Times out. Issue 22050
convert/streamed_conversion_json_utf8_encode_test: SkipSlow # Times out. Issue 22050
convert/streamed_conversion_utf8_decode_test: SkipSlow # Times out. Issue 22050

[ $compiler == dart2js && $runtime == chromeOnAndroid ]
html/crypto_test/functional: Slow # TODO(dart2js-team): Please triage this failure.
html/input_element_datetime_test: Slow # TODO(dart2js-team): Please triage this failure.

[ $compiler == dart2js && $runtime == d8 ]
html/event_callback_test: Skip # Browser test

[ $compiler == dart2js && $runtime == ff ]
async/slow_consumer2_test: SkipSlow # Times out. Issue 22050
convert/streamed_conversion_json_utf8_decode_test: SkipSlow # Times out. Issue 22050
convert/streamed_conversion_json_utf8_encode_test: SkipSlow # Times out. Issue 22050
convert/streamed_conversion_utf8_decode_test: SkipSlow # Times out. Issue 22050
convert/utf85_test: Slow
html/callback_list_test: SkipByDesign # FileSystem not supported in FireFox.
html/custom/attribute_changed_callback_test: Skip # Times out
html/custom/created_callback_test: Skip # Times out
html/custom/document_register_basic_test: Skip # Times out, or unittest times out
html/dart_object_local_storage_test: Skip # sessionStorage NS_ERROR_DOM_NOT_SUPPORTED_ERR
html/file_sample_test: Skip # FileSystem not supported on FireFox.
html/fileapi_supported_test: Skip # FileSystem not supported on FireFox.
html/fileapi_supported_throws_test: Skip # FileSystem not supported on FireFox.
html/history_test/history: Skip # Issue 22050
html/request_animation_frame_test: Skip # Async test hangs.

[ $compiler == dart2js && $runtime == safari ]
html/callback_list_test: SkipByDesign # FileSystem not supported in Safari.
html/file_sample_test: Skip # FileSystem not supported on Safari.
html/fileapi_supported_throws_test: Skip # FileSystem not supported on Safari
html/interactive_media_test: SkipSlow

[ $compiler == dart2js && $system == linux ]
html/interactive_geolocation_test: Skip # Requires allowing geo location.

[ $compiler == dart2js && $checked ]
convert/utf85_test: Slow # Issue 12029.
html/js_function_getter_trust_types_test: Skip # --trust-type-annotations incompatible with --checked

[ $compiler == dart2js && $csp && ($runtime == chrome || $runtime == chromeOnAndroid || $runtime == ff || $runtime == safari) ]
html/event_customevent_test: SkipByDesign
html/js_array_test: SkipByDesign
html/js_dart_to_string_test: SkipByDesign
html/js_function_getter_test: SkipByDesign
html/js_function_getter_trust_types_test: SkipByDesign
html/js_interop_1_test: SkipByDesign
html/js_typed_interop_bind_this_test: SkipByDesign
html/js_typed_interop_callable_object_test: SkipByDesign
html/js_typed_interop_default_arg_test: SkipByDesign
html/js_typed_interop_test: SkipByDesign
html/js_typed_interop_type1_test: SkipByDesign
html/js_typed_interop_type3_test: SkipByDesign
html/js_typed_interop_type_test: SkipByDesign
html/js_typed_interop_window_property_test: SkipByDesign
html/js_util_test: SkipByDesign
html/mirrors_js_typed_interop_test: SkipByDesign
html/postmessage_structured_test: SkipByDesign

[ $compiler == dart2js && ($runtime == chrome || $runtime == ff) ]
async/slow_consumer2_test: SkipSlow # Times out. Issue 22050
convert/streamed_conversion_json_utf8_decode_test: SkipSlow # Times out. Issue 22050
convert/streamed_conversion_json_utf8_encode_test: SkipSlow # Times out. Issue 22050
convert/streamed_conversion_utf8_decode_test: SkipSlow # Times out. Issue 22050

