# We divide the EFL WK2 test expectations into several categories:
# 1. PASSING TESTS
#    Test cases that pass for EFL WK2 but are skipped in a top-level TestExpectations file.

# 2. TESTS EXPECTED TO FAIL
#    Test cases related to features that we don't expect to be activated for EFL WK2 since
#    the feature implementation in WebKit2 is missing or not complete yet.
#    If test cases related to a feature cannot be activated since e.g.
#    * the feature implementation in WebCore is not complete yet
#    * the feature is not relevant for the EFL port
#    * the feature is meant to solve a backwards compatibility issue on other platforms
#    please put them into EFL TestExpectations file.
#    If in doubt, please discuss on webkit-efl mailing list whether a set of test cases
#    should be moved here.

# 3. CRASHES

# 4. FLAKY TESTS

# 5. PASSING TESTS WITH INCORRECT EXPECTATIONS
#    * Test cases that are passing with their generated incorrect expectations.
#    * It should be checked if the test fails. Remove the line if the test result is correct
#      otherwise update with new incorrect one.

# 6. FAILING TESTS
#    * Interim failures that are moved here for further investigation as a result of daily
#      gardening. They should be analysed quickly and either resolved or moved to 1).
#    * Remaining failures that are moved here until further investigation after
#      unskipping a directory or block of tests in the Skipped list.
#    * Tests that we expect to pass once the respective fix for DRT is available or
#      a relevant compile time feature can be enabled for EFL.

#////////////////////////////////////////////////////////////////////////////////////////
# PASSING TESTS
#////////////////////////////////////////////////////////////////////////////////////////

#////////////////////////////////////////////////////////////////////////////////////////
# TESTS EXPECTED TO FAIL
#////////////////////////////////////////////////////////////////////////////////////////

#////////////////////////////////////////////////////////////////////////////////////////
# CRASHES
#////////////////////////////////////////////////////////////////////////////////////////
webkit.org/b/92726 fast/dom/register-protocol-handler.html [ Crash ]
webkit.org/b/92726 fast/dom/unregister-protocol-handler.html [ Crash ]

# Crashes on plugin test, also blocked by 108077
webkit.org/b/98747 plugins/document-open.html [ Crash Failure ]

webkit.org/b/102200 fast/dom/HTMLAnchorElement/anchor-download.html [ Crash Failure ]
webkit.org/b/102200 fast/dom/HTMLAnchorElement/anchor-nodownload-set.html [ Crash Failure ]

# Hitting !decoder.destinationID() assertion.
webkit.org/b/102651 [ Debug ] networkinformation/multiple-frames.html [ Crash ]
webkit.org/b/102651 [ Debug ] networkinformation/basic-all-types-of-events.html [ Crash ]
webkit.org/b/102651 [ Debug ] networkinformation/updates.html [ Crash ]
webkit.org/b/102651 [ Debug ] networkinformation/add-listener-from-callback.html [ Crash ]
webkit.org/b/102651 [ Debug ] networkinformation/basic-operation.html [ Crash ]

# WebGL test cases crashing in WebCore::GraphicsContext3D::readPixels().
webkit.org/b/109417 webgl/conformance/textures/texture-attachment-formats.html [ Crash ]
webkit.org/b/109941 webgl/conformance/textures/origin-clean-conformance.html [ Crash ]
webkit.org/b/109945 webgl/conformance/glsl/misc/shader-uniform-packing-restrictions.html [ Crash ]
webkit.org/b/109945 webgl/conformance/uniforms/gl-uniform-arrays.html [ Crash Failure ]
webkit.org/b/109945 webgl/conformance/uniforms/uniform-default-values.html [ Crash ]

#////////////////////////////////////////////////////////////////////////////////////////
# FLAKY TESTS
#////////////////////////////////////////////////////////////////////////////////////////

webkit.org/b/111612 animations/animation-delay-changed.html [ Failure Pass ]

Bug(EFL) editing/selection/first-letter-selection-crash.html [ Crash Pass ]
Bug(EFL) http/tests/security/contentSecurityPolicy/connect-src-websocket-blocked.html [ Crash Pass ]
Bug(EFL) media/video-played-reset.html [ Failure Pass ]
Bug(EFL) fast/loader/fragment-after-redirect-gets-back-entry.html [ Failure Pass ]
Bug(EFL) fast/loader/child-frame-add-after-back-forward.html [ Failure Pass ]
Bug(EFL) fast/forms/validation-message-user-modify.html [ Failure Pass ]
Bug(EFL) fast/events/backspace-navigates-back.html [ Failure Pass ]
Bug(EFL) fast/events/onchange-click-hang.html [ Failure Pass ]
Bug(EFL) fast/events/dispatch-message-string-data.html [ Failure Pass ]
Bug(EFL) fast/layers/no-clipping-overflow-hidden-hardware-acceleration.html [ ImageOnlyFailure Pass ]
Bug(EFL) fast/events/domactivate-sets-underlying-click-event-as-handled.html [ Failure Pass ]
Bug(EFL) http/tests/loading/fire-error-event-empty-404-script.html [ Crash Failure Pass ]
Bug(EFL) js/dom/create-lots-of-workers.html [ Crash Failure Pass ]
Bug(EFL) media/track/track-element-load-event.html [ Crash Failure Pass ]

webkit.org/b/98761 svg/text/selection-tripleclick.svg [ Failure Pass ]

# Test is flaky and needs to be fixed
webkit.org/b/56985 http/tests/loading/bad-server-subframe.html [ Crash Pass ]

# Affects multiple platforms.
webkit.org/b/90980 fast/forms/textarea/textarea-state-restore.html [ Failure Pass ]

# Flaky, probably because the result is sometimes taken before data about visited link have passed through IPC.
webkit.org/b/81797 fast/history/visited-link-background-color.html [ Failure  Pass ]

# Also flaky at least on GTK+
webkit.org/b/72698 media/audio-garbage-collect.html

# window.internals does not reset font family mappings (done in other tests), leading to these failures
webkit.org/b/102370 fast/writing-mode/japanese-ruby-horizontal-bt.html [ Failure Pass ]
webkit.org/b/102370 fast/writing-mode/japanese-ruby-vertical-lr.html [ Failure Pass ]
webkit.org/b/102370 fast/writing-mode/japanese-ruby-vertical-rl.html [ Failure Pass ]
webkit.org/b/102370 fast/text/international/002.html [ Failure Pass ]

webkit.org/b/102204 http/tests/security/frameNavigation/inactive-function-in-popup-navigate-child.html [ Crash Pass ]

webkit.org/b/95428 media/video-controls-captions.html [ Failure ]
webkit.org/b/113106 media/track/track-prefer-captions.html [ Failure ]

# Flaky on Debug bot. See also webkit.org/b/102190
webkit.org/b/103043 fast/events/overflow-scroll-fake-mouse-move.html [ Failure Pass ]
webkit.org/b/103043 fast/events/frame-scroll-fake-mouse-move.html [ Failure Pass ]

# Failures after r130363.
webkit.org/b/98573 fast/forms/multiple-form-submission-protection-mouse.html [ Failure Pass ]

webkit.org/b/103115 http/tests/loading/remove-child-triggers-parser.html [ Failure Pass ]

webkit.org/b/102201 fast/dom/Window/window-resize.html [ Failure Pass ]

webkit.org/b/103396 [ Debug ] fast/forms/state-restore-per-form.html [ Failure Pass ]
webkit.org/b/103399 [ Debug ] fast/forms/basic-buttons.html [ Failure Pass ]

webkit.org/b/103400 [ Debug ] compositing/overflow/content-gains-scrollbars.html [ Crash Failure ]
webkit.org/b/103400 [ Debug ] compositing/overflow/content-loses-scrollbars.html [ Crash Failure ]

webkit.org/b/103883 css3/selectors3/html/css3-modsel-1.html [ Failure Pass ]
webkit.org/b/103883 css3/selectors3/xml/css3-modsel-1.xml [ Failure Pass ]
webkit.org/b/103883 css3/selectors3/xhtml/css3-modsel-1.xml [ Failure Pass ]

# Assertion failure and incorrect results on our port after r140999 (webkit.org/b/106142)
webkit.org/b/108257 compositing/overflow/automatically-opt-into-composited-scrolling.html [ Failure ]
webkit.org/b/108257 compositing/overflow/composited-scrolling-creates-a-stacking-container.html [ Missing Failure ]

# Asserts when destroying WebCore::Database (possibly because r141207)
webkit.org/b/108355 js/caller-property.html [ Crash Pass ]
webkit.org/b/108355 storage/websql/close-during-stress-test.html [ Crash Pass ]
webkit.org/b/108355 storage/websql/sql-error-codes.html [ Crash Pass ]

#////////////////////////////////////////////////////////////////////////////////////////
# PASSING TESTS WITH INCORRECT EXPECTATIONS
#////////////////////////////////////////////////////////////////////////////////////////
 
#////////////////////////////////////////////////////////////////////////////////////////
# FAILING TESTS
#////////////////////////////////////////////////////////////////////////////////////////

# Missing EFL's accessibility functions
webkit.org/b/111984 accessibility/aria-hidden-updates-alldescendants.html [ Failure ]
webkit.org/b/111987 accessibility/aria-link-supports-press.html [ Failure ]
webkit.org/b/111988 accessibility/aria-readonly.html [ Failure ]
webkit.org/b/111991 accessibility/aria-text-role.html [ Failure ]
webkit.org/b/111993 accessibility/button-press-action.html [ Failure ]
webkit.org/b/111994 accessibility/canvas-accessibilitynodeobject.html [ Failure ]
webkit.org/b/111996 accessibility/canvas-fallback-content-2.html [ Failure ]
webkit.org/b/111999 accessibility/disabled-controls-not-focusable.html [ Failure ]
webkit.org/b/112002 accessibility/inline-continuations.html [ Failure ]
webkit.org/b/112005 accessibility/onclick-handlers.html [ Failure ]
webkit.org/b/112006 accessibility/secure-textfield-title-ui.html [ Failure ]
webkit.org/b/112008 accessibility/spinbutton-value.html [ Failure ]
webkit.org/b/112012 accessibility/svg-bounds.html [ Failure ]
webkit.org/b/112014 accessibility/textarea-insertion-point-line-number.html [ Failure ]
webkit.org/b/112015 accessibility/textarea-line-for-index.html [ Failure ]
webkit.org/b/112018 accessibility/th-as-title-ui.html [ Failure ]
webkit.org/b/112019 accessibility/title-ui-element-correctness.html [ Failure ]
webkit.org/b/112021 accessibility/visible-elements.html [ Failure Crash ]

# New accessibility test added in r149858 that is failing for EFL.
webkit.org/b/115901 accessibility/poorly-formed-aria-table.html [ Failure ]

# New accessibility test added in r151079 that is failing for EFL.
webkit.org/b/117182 accessibility/text-role-with-aria-hidden-inside.html [ Failure ]

webkit.org/b/118418 accessibility/img-fallsback-to-title.html [ Missing ]
webkit.org/b/98348  accessibility/internal-link-anchors2.html [ Missing ]
webkit.org/b/116970 accessibility/multiselect-list-reports-active-option.html [ Missing ]
webkit.org/b/98348  accessibility/radio-button-group-members.html [ Missing ]
webkit.org/b/98348  accessibility/table-attributes.html [ Missing ]
webkit.org/b/98348  accessibility/table-sections.html [ Missing ]

accessibility/media-element.html [ Missing ]
accessibility/negative-tabindex-does-not-expose-label.html [ Missing ]

# EFL port doesn't support webarchives.
webarchive [ Skip ]
svg/webarchive [ Skip ]
svg/custom/image-with-prefix-in-webarchive.svg [ Skip ]
http/tests/webarchive [ Skip ]

# WebKitTestRunner needs an implementation for testRunner.titleTextDirection
webkit.org/b/93470 fast/dom/title-directionality-removeChild.html [ Failure ]
webkit.org/b/93470 fast/dom/title-directionality.html [ Failure ]

# WebKitTestRunner setTouchPointRadius() is not supported
Bug(EFL) fast/events/touch/basic-single-touch-events.html [ Failure ]

# Needs grammar checking
Bug(EFL) editing/spelling/grammar.html [ Failure ]
Bug(EFL) editing/spelling/grammar-edit-word.html [ Failure ]
Bug(EFL) editing/spelling/grammar-markers.html [ Failure ]
Bug(EFL) editing/spelling/grammar-markers-hidpi.html [ Failure ]
Bug(EFL) editing/spelling/grammar-paste.html [ Failure ]
Bug(EFL) editing/spelling/markers.html [ Failure ]

# EFL's text checker doesn't support the text replacement feature.
Bug(EFL) editing/spelling/spelling-marker-description.html [ Failure ]

# EFL's text checker doesn't support multi-word misspelling.
# Mac bug: https://bugs.webkit.org/show_bug.cgi?id=114470
editing/spelling/spelling-exactly-selected-multiple-words.html [ Failure ]
editing/spelling/spelling-should-select-multiple-words.html [ Failure ]

# Fails because MutationObservers are not notified at end-of-task.
webkit.org/b/78290 fast/dom/MutationObserver/end-of-task-delivery.html [ Failure ]

# testRunner.setUseDeferredFrameLoading() is not implemented in WK2. Skipped so it does not generate PNG results.
webkit.org/b/93980 http/tests/appcache/load-from-appcache-defer-resume-crash.html [ Skip ]

# WebKitTestRunner needs an implementation for testRunner.setStorageDatabaseIdleInterval
webkit.org/b/93982 storage/domstorage/storage-close-database-on-idle.html [ Failure ]

# The following test makes the fast/parser/document-write-ignores-later-network-bytes.html test crash
webkit.org/b/98345 fast/parser/document-open-in-unload.html [ Skip ]

# NPP_SetWindow is not called with proper size for the first time.
webkit.org/b/98746 plugins/netscape-plugin-setwindow-size-2.html [ Failure ]

# Mouse event problem with plugin test.
webkit.org/b/98745 plugins/keyboard-events.html [ Failure ]
webkit.org/b/98745 plugins/mouse-events-fixedpos.html [ Failure ]
webkit.org/b/98745 plugins/mouse-events.html [ Failure ]

# Window size is being reported as screen size.
webkit.org/b/103127 css3/device-adapt/opera/constrain-021.xhtml [ Failure ]
webkit.org/b/103127 css3/device-adapt/opera/constrain-022.xhtml [ Failure ]

# Page client doesn't react to orientation changes from CSS Viewport rules.
webkit.org/b/103130 css3/device-adapt/opera/orientation-001.xhtml [ Failure ]

# Text input controller needs selectedRange implementation
webkit.org/b/99438 editing/selection/mixed-editability-10.html [ Missing Failure ]

# NPN_ReloadPlugins is not implemented.
webkit.org/b/98744 plugins/reloadplugins-and-pages.html [ Failure ]

# Plugin test timeout.
webkit.org/b/98743 plugins/evaluate-js-after-removing-plugin-element.html [ Failure ]

# Reloading a Netscape plugin that accesses its own DOM element is failing.
webkit.org/b/82020 plugins/netscape-dom-access-and-reload.html [ Failure ]

# Plugin test failures having wrong object reference count problem.
webkit.org/b/98741 plugins/npruntime/browser-object-identity.html [ Failure ]
webkit.org/b/98741 plugins/refcount-leaks.html [ Failure ]

# New compositing tests introduced in r137051 that fail on WK2 EFL.
webkit.org/b/104476 compositing/background-color/background-color-padding-change.html [ ImageOnlyFailure ]

# These ref tests are failing because the text is blurry.
webkit.org/b/105766 compositing/text-on-scaled-layer.html [ ImageOnlyFailure ]
webkit.org/b/105766 compositing/text-on-scaled-surface.html [ ImageOnlyFailure ]

# Failing svg ref tests.
webkit.org/b/107018 svg/animations/animate-linear-discrete-additive.svg [ ImageOnlyFailure Pass ]
webkit.org/b/107018 svg/animations/animate-linear-discrete-additive-b.svg [ ImageOnlyFailure Pass ]
webkit.org/b/107018 svg/animations/animate-linear-discrete-additive-c.svg  [ ImageOnlyFailure Pass ]
webkit.org/b/107018 svg/transforms/transformed-text-fill-pattern.html [ ImageOnlyFailure ]
webkit.org/b/107018 svg/animations/mozilla/animateMotion-mpath-pathLength-1.svg [ ImageOnlyFailure Pass ]

webkit.org/b/104656 compositing/repaint/clipped-layer-size-change.html [ ImageOnlyFailure Pass ]

# NPP_SetWindow is not called during plugin destruction on X11.
webkit.org/b/63261 plugins/npp-set-window-called-during-destruction.html [ Failure ]

# Delete plugin failures.
webkit.org/b/98740 plugins/npruntime/delete-plugin-within-hasProperty-return-false.html [ Failure ]
webkit.org/b/98740 plugins/npruntime/delete-plugin-within-hasProperty-return-true.html [ Failure ]
webkit.org/b/98740 plugins/npruntime/delete-plugin-within-setProperty.html [ Failure ]

# Http plugin test failures.
webkit.org/b/99561 http/tests/plugins/plugin-document-has-focus.html [ Failure ]
webkit.org/b/99562 http/tests/plugins/post-url-file.html [ Failure ]

# Comparison of two javascript objects in C++ is failing.
webkit.org/b/98739 plugins/npruntime/embed-property-equality.html [ Failure ]

webkit.org/b/113094 editing/pasteboard/can-read-in-copy-and-cut-events.html [ Failure ]
webkit.org/b/113094 editing/pasteboard/can-read-in-dragstart-event.html [ Failure ]

webkit.org/b/102201 fast/dom/Window/open-window-min-size.html [ Failure ]

# Regression(r142112): Several compositing tests started failing.
webkit.org/b/109431 compositing/iframes/iframe-composited-scrolling.html [ Failure ]

# New test introduced in r143073 that never passed on WK2 EFL.
webkit.org/b/110054 compositing/geometry/limit-layer-bounds-fixed.html [ Failure ]

# Several new Khronos WebGL conformance tests are failing on WK2 EFL.
webkit.org/b/109435 webgl/conformance/context/premultiplyalpha-test.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/extensions/oes-texture-float-with-video.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/extensions/oes-texture-float.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/textures/texture-size-cube-maps.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/context/context-creation-and-destruction.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/glsl/functions/glsl-function-sin.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/glsl/functions/glsl-function-smoothstep-float.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/glsl/literals/float_literal.vert.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/glsl/misc/shader-with-global-variable-precision-mismatch.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/glsl/misc/shaders-with-varyings.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/more/functions/readPixelsBadArgs.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/more/functions/texImage2DHTML.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/more/functions/texSubImage2DHTML.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/renderbuffers/framebuffer-object-attachment.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/rendering/multisample-corruption.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/rendering/point-size.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/textures/copy-tex-image-2d-formats.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/textures/tex-image-and-sub-image-2d-with-video-rgb565.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/textures/tex-image-and-sub-image-2d-with-video-rgba4444.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/textures/tex-image-and-sub-image-2d-with-video-rgba5551.html [ Failure Crash ]
webkit.org/b/109435 webgl/conformance/textures/tex-image-and-sub-image-2d-with-video.html [ Failure Crash ]

# Failing media query test.
webkit.org/b/114916 fast/media/mq-resolution.html [ Failure ]

# New test introduced in r148672 that fails on EFL WK2.
webkit.org/b/114917 fast/events/touch/frame-hover-update.html [ Failure ]

# Regression(r148748).
webkit.org/b/114946 compositing/patterns/direct-pattern-compositing-add-text.html [ ImageOnlyFailure Crash ]
webkit.org/b/114946 compositing/patterns/direct-pattern-compositing-change.html [ ImageOnlyFailure Crash ]
webkit.org/b/114946 compositing/patterns/direct-pattern-compositing.html [ ImageOnlyFailure Crash ]

compositing/patterns/direct-pattern-compositing-load.html [ ImageOnlyFailure Pass ]

# Websocket tests are flaky on WK2
webkit.org/b/111976 http/tests/websocket [ Crash Pass Failure ]

# Most probably failures are result of delay in scrolling caused by 'delegated scrolling' usage.
webkit.org/b/107286 fast/css/sticky/sticky-margins.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-writing-mode-vertical-lr.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-overflowing.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-top-margins.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-left.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-as-positioning-container.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-left-percentage.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-writing-mode-vertical-rl.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-stacking-context.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/inflow-sticky.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-top-zoomed.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-both-sides.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-writing-mode-horizontal-bt.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-top.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/sticky-side-margins.html [ ImageOnlyFailure ]
webkit.org/b/107286 fast/css/sticky/replaced-sticky.html [ ImageOnlyFailure ]

# New ruby selection test (in r140613) fails to render correctly, not generating an expected result
webkit.org/b/108315 fast/ruby/select-ruby.html [ Missing ]

# failing after r149292
compositing/layer-creation/no-compositing-for-sticky.html [ Failure ]
compositing/repaint/resize-repaint.html [ Failure ]

compositing/layer-creation/deep-tree.html [ ImageOnlyFailure ]

compositing/iframes/invisible-nested-iframe-show.html [ Missing ]
compositing/tiling/huge-layer-add-remove-child.html [ Missing ]
compositing/tiling/rotated-tiled-clamped.html [ Missing ]
compositing/tiling/rotated-tiled-preserve3d-clamped.html [ Missing ]

# Failing after r142758.
webkit.org/b/109948 fast/dom/Window/mozilla-focus-blur.html [ Failure ]

webkit.org/b/119789 fast/events/touch/frame-hover-update.html [ Crash ]
webkit.org/b/119789 fast/events/touch/multi-touch-inside-iframes.html [ Crash ]
webkit.org/b/119789 fast/events/touch/multi-touch-inside-nested-iframes.html [ Crash ]
webkit.org/b/119789 fast/events/touch/touch-before-pressing-spin-button.html [ Crash ]
webkit.org/b/119789 fast/events/touch/touch-coords-in-zoom-and-scroll.html [ Crash ]
webkit.org/b/119789 fast/events/touch/touch-inside-iframe.html [ Crash ]
webkit.org/b/119789 fast/events/touch/touch-slider-no-js-touch-listener.html [ Crash ]

# WKTR / Do not support setViewModeMediaFeature().
Bug(EFL) fast/media/view-mode-media-feature.html [ ImageOnlyFailure ]
Bug(EFL) fast/media/media-query-list-02.html [ Failure ]
Bug(EFL) fast/media/media-query-list-03.html [ Failure ]
Bug(EFL) fast/media/media-query-list-04.html [ Failure ]
Bug(EFL) fast/media/media-query-list-05.html [ Failure ]
Bug(EFL) fast/media/media-query-list-06.html [ Failure ]

