# This file is used for tests that only need to be suppressed on
# the Chromium WebKit ASAN bots.

# 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 ] fast/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/crash-restoring-plugin-page-from-page-cache.html [ Skip ]
crbug.com/145940 [ Linux ] plugins/iframe-shims.html [ Skip ]


# Use-after-free in NPP_SetWindow, http://crbug.com/144118
# ==15959== ERROR: AddressSanitizer: heap-use-after-free on address 0x7f6c187f8481
# READ of size 1 at 0x7f6c187f8481 thread T0
#    #0 0x7f6c1aec6c7a in NPP_SetWindow
crbug.com/144118 [ Linux ] plugins/destroy-on-setwindow.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/embed-inside-object.html [ Skip ]
crbug.com/166932 [ Linux ] plugins/embed-prefers-plugins-for-images.html [ Skip ]
crbug.com/166932 [ Linux ] plugins/form-value.html [ Skip ]
crbug.com/166932 [ Linux ] plugins/fullscreen-plugins-dont-reload.html [ Skip ]
crbug.com/166932 [ Linux ] plugins/get-empty-url.html [ Skip ]
crbug.com/166932 [ Linux ] plugins/get-file-url.html [ Skip ]


# NULL deref in HandleURLRequestInternal, http://crbug.com/142301
# ==17931== ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000
# AddressSanitizer can not provide additional info.
#    #0 0x2a054b2 in webkit::npapi::WebPluginImpl::HandleURLRequestInternal
crbug.com/142301 [ Linux ] plugins/get-url-notify-with-url-that-fails-to-load.html [ Skip ]

# Crash in fast/js/string-replacement-outofmemory.html, http://crbug.com/173366
# ==5971== ERROR: AddressSanitizer: SEGV on unknown address 0x0000bbadbeef
# AddressSanitizer can not provide additional info.
#     #0 0x8c2ee4 in WebCore::reportFatalErrorInMainThread
crbug.com/173366 [ Linux ] fast/js/string-replacement-outofmemory.html [ Skip ]

# Crash in fast/speechsynthesis/speech-synthesis-cancel.html:
# ==10454==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000008 (pc 0x00000558b918 sp 0x7fff3153dcf0 bp 0x7fff3153dcf0 T0)
# AddressSanitizer can not provide additional info.
#     #0 0x558b917 in WebCore::PlatformSpeechSynthesisUtterance::client() const /mnt/data/b/build/slave/WebKit_Linux_ASAN/build/src/out/Release/../../third_party/WebKit/Source/core/platform/PlatformSpeechSynthesisUtterance.h:71:0
# [pkasting] July 23 2014: Now timing out instead of crashing.
crbug.com/250520 [ Linux ] fast/speechsynthesis/speech-synthesis-cancel.html [ Timeout ]

# These tests consistently fail on slow bots.
crbug.com/231357 [ Linux ] compositing/video-page-visibility.html [ Failure ]

# 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/231357 [ Linux ] perf/mouse-event.html [ Crash ]

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/333901 [ Linux ] virtual/legacy-animations-engine/animations/timing-model.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 ] virtual/slimmingpaint/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 ]

# Flakily crash and timeout on Linux ASAN bots (crbug.com/395997 and crbug.com/395676 respectively).
crbug.com/395997 [ Linux ] inspector/elements/styles/style-formatter.html [ Crash Pass Timeout ]
crbug.com/395997 [ Linux ] inspector/sources/debugger/script-formatter.html [ Crash Pass ]

# 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 ] inspector/profiler/heap-snapshot-loader.html [ Timeout ]
crbug.com/438499 [ Linux ] inspector/profiler/heap-snapshot-containment-show-all.html [ 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/243871 [ Linux ] virtual/threaded_animation_timelines/fast/scroll-behavior/ [ Skip ]

# Reliably timeout on Linux ASAN bots.
crbug.com/248938 [ Linux ] virtual/threaded/animations/transition-and-animation-2.html [ Skip ]

crbug.com/446661 [Linux ] fast/dom/Geolocation/success-clear-watch.html [ Timeout Pass ]

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/525975 [ Linux ] http/tests/websocket/workers/close-before-open.html [ Timeout Pass ]
