# 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, Pass
convert/utf85_test: Slow, Pass
developer/metrics_num_test: Skip # Because of an int / double type test.
developer/timeline_test: Skip # Not supported
html/async_test: SkipByDesign
html/custom/document_register_basic_test: Slow, Pass
html/custom/document_register_type_extensions_test/construction: Slow, Pass
html/custom/document_register_type_extensions_test/registration: Slow, Pass
html/custom/entered_left_view/shadow_dom_test: Slow, Pass
html/custom_elements_test: Slow, Pass # Issue 26789
html/interactive_geolocation_test: Skip # Requires allowing geo location.
html/isolates_test: SkipByDesign
html/worker_api_test: SkipByDesign
html/wrapping_collections_test: SkipByDesign # Testing an issue that is only relevant to Dartium
html/xhr_test: Slow, Pass
isolate/*: SkipByDesign # No support for dart:isolate in dart4web (http://dartbug.com/30538)
mirrors/*: SkipByDesign # Mirrors not supported on web in Dart 2.0.
typed_data/int64_list_load_store_test: SkipByDesign # No support for Int64List
typed_data/typed_data_hierarchy_int64_test: SkipByDesign # No support for Int64List
wasm/*: SkipByDesign # dart:wasm not currently supported on web.

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

[ $builder_tag == dart2js_production && $compiler == dart2js ]
js/js_util/properties_implicit_checks_test: SkipByDesign # No implicit checks in production mode

[ $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/input_element_datetime_test: Slow, Pass # TODO(dart2js-team): Please triage this failure.

[ $compiler == dart2js && $runtime == d8 ]
html/*: SkipByDesign # 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, Pass
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: Skip # Issue 22050
html/request_animation_frame_test: Skip # Async test hangs.

[ $compiler == dart2js && $runtime == safari ]
html/audiocontext_test: Skip # evades flake detection https://github.com/dart-lang/sdk/issues/50718
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/input_element_date_test: Skip # evades flake detection https://github.com/dart-lang/sdk/issues/50718
html/input_element_datetime_test: Skip # evades flake detection https://github.com/dart-lang/sdk/issues/50718
html/input_element_time_test: Skip # evades flake detection https://github.com/dart-lang/sdk/issues/50718
html/interactive_media_test: SkipSlow
html/mediasource_test: Skip # evades flake detection https://github.com/dart-lang/sdk/issues/50718
js/js_util/bigint_test: Skip # evades flake detection https://github.com/dart-lang/sdk/issues/50718

[ $compiler == dart2js && $checked ]
convert/utf85_test: Slow, Pass # Issue 12029.
html/js_function_getter_trust_types/function_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/function_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/postmessage_structured_test: SkipByDesign
js/js_util/dartify_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
