# This file is used for tests that only need to be suppressed on
# the Chromium WebKit ASAN bots.
# Further documentation:
# https://chromium.googlesource.com/chromium/src/+/master/docs/testing/layout_test_expectations.md

# NULL deref in libflashplayer.so, http://crbug.com/145940
# ==12527== ERROR: AddressSanitizer: SEGV on unknown address 0x7f628058b38b
# AddressSanitizer can not provide additional info.
#    #0 0x7f62d3d34cf0 in ?? ??:0
#    #1 0x1fec5c261c15ff
crbug.com/145940 [ Linux ] images/embed-does-not-propagate-dimensions-to-object-ancestor.html [ Skip ]
crbug.com/145940 [ Linux ] fast/loader/loadInProgress.html [ Skip ]
crbug.com/145940 [ Linux ] fast/replaced/border-radius-clip.html [ Skip ]
crbug.com/145940 [ Linux ] plugins/iframe-shims.html [ Skip ]

# Use-after-free in NPP_DestroyStream, http://crbug.com/166932
# ==17332== ERROR: AddressSanitizer: heap-use-after-free on address 0x7f48e8a05a58
# WRITE of size 1 at 0x7f48e8a05a58 thread T0
#    #0 0x7f48eb06f7c5 in DocumentOpenInDestroyStream::NPP_DestroyStream
crbug.com/166932 [ Linux ] plugins/embed-attributes-setting.html [ Skip ]
crbug.com/166932 [ Linux ] plugins/embed-attributes-style.html [ Skip ]
crbug.com/166932 [ Linux ] plugins/fullscreen-plugins-dont-reload.html [ Skip ]

# These have been failing since at least chrome r203901, blink r151723 (no memory errors, just text failure):
crbug.com/231357 [ Linux ] editing/execCommand/switch-list-type-with-orphaned-li.html [ Failure ]

crbug.com/333791 [ Linux ] svg/animations/repeatn-event-1b.svg [ Pass Failure ]
crbug.com/333791 [ Linux ] svg/animations/repeatn-event-1d.svg [ Pass Failure ]
crbug.com/192172 [ Linux ] compositing/rtl/rtl-iframe-absolute-overflow.html [ Failure Pass ]
crbug.com/192172 [ Linux ] compositing/rtl/rtl-iframe-fixed-overflow-scrolled.html [ Failure Pass ]
crbug.com/192172 [ Linux ] compositing/rtl/rtl-iframe-fixed-overflow.html [ Failure Pass ]

crbug.com/248938 [ Linux ] virtual/threaded/transitions/transition-end-event-set-none.html [ Failure Pass ]
crbug.com/290411 [ Linux ] fast/text/sub-pixel/text-scaling-pixel.html [ Failure Pass ]
crbug.com/339778 [ Linux ] fast/dom/timer-throttling-hidden-page.html [ Failure Pass ]
crbug.com/353746 [ Linux ] virtual/android/fullscreen/video-specified-size.html [ Failure Pass ]
crbug.com/248938 [ Linux ] virtual/threaded/animations/opacity-transform-animation.html [ Timeout Pass ]
crbug.com/248938 [ Linux ] virtual/threaded/animations/missing-values-first-keyframe.html [ Pass Timeout ]

crbug.com/385015 [ Linux ] editing/execCommand/window-open-insert-list-crash.html [ Failure ]
crbug.com/385015 [ Linux ] fast/frames/iframe-onload-remove-self-no-crash.html [ Failure ]
crbug.com/385015 [ Linux ] fast/loader/create-frame-in-DOMContentLoaded.html [ Failure ]
crbug.com/385015 [ Linux ] fast/loader/frame-creation-removal.html [ Failure ]

# Stack use-after-return detection
crbug.com/438499 [ Linux ] crypto/worker-random-values-limits.html [ Timeout ]
crbug.com/438499 [ Linux ] fast/workers/simultaneous-errors.html [ Timeout ]
crbug.com/438499 [ Linux ] fast/workers/worker-multi-startup.html [ Timeout ]
crbug.com/438499 [ Linux ] http/tests/websocket/workers/worker-simple.html [ Timeout ]
crbug.com/438499 [ Linux ] http/tests/workers/text-encoding.html [ Timeout ]
crbug.com/438499 [ Linux ] http/tests/devtools/profiler/heap-snapshot-loader.js [ Timeout ]
crbug.com/438499 [ Linux ] http/tests/devtools/profiler/heap-snapshot-containment-show-all.js [ Timeout ]
crbug.com/438499 [ Linux ] virtual/threaded/animations/unanimated-style.html [ Timeout ]

# Flakily timeout on Linux ASAN bots.
crbug.com/243871 [ Linux ] virtual/threaded/fast/scroll-behavior/ [ Skip ]
crbug.com/700795 [ Linux ] http/tests/devtools/animation/animation-transition-setTiming-crash.js [ Skip ]

crbug.com/464065 [ Linux ] media/track/css-cue-for-video-in-shadow.html [ Timeout ]
crbug.com/464065 [ Linux ] media/track/css-cue-for-video-in-shadow-2.html [ Timeout ]

crbug.com/572723 [ Linux ] http/tests/devtools/sources/debugger/debugger-completions-on-call-frame.js [ Timeout Pass ]

# Intentionally failed allocations, via partitionAllocGenericFlags()
crbug.com/577889 [ Linux ] fast/js/typed-array-allocation-failure.html [ Crash ]

