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

###########################################################################
# WARNING: Memory leaks must be fixed asap. Sheriff is expected to revert #
# culprit CLs instead of suppressing the leaks. If you have any question, #
# ask hajimehoshi@.                                                       #
###########################################################################

# FIXME: scroll customization leaks memory. See
# codereview.chromium.org/1236913004/ for context.
crbug.com/410974 virtual/scroll_customization/fast/scroll-behavior/scroll-customization/scroll-customization-property.html [ Leak ]
crbug.com/410974 virtual/scroll_customization/fast/scroll-behavior/scroll-customization/touch-scroll-customization.html [ Leak ]
crbug.com/410974 virtual/scroll_customization/fast/scroll-behavior/scroll-customization/scrollstate-distribute-to-scroll-chain-descendant.html [ Leak ]

# FIXME: rootscroller/set-root-scroller.html on WebKit Linux Trusty
crbug.com/891575 rootscroller/set-root-scroller.html [ Leak ]
crbug.com/891575 virtual/android/rootscroller/remove-rootscroller-crash.html [ Leak Pass ]
crbug.com/891575 virtual/android/rootscroller/set-root-scroller.html [ Leak ]
crbug.com/891575 virtual/android/fullscreen/video-overlay-scroll.html [ Leak Pass ]

# -----------------------------------------------------------------
# Untriaged but known leaks of PausableObject (fast).
# -----------------------------------------------------------------
crbug.com/661182 fast/loader/open-in-srcdoc-unload.html [ Leak ]

# -----------------------------------------------------------------
# Untriaged but known leaks of PausableObject (http).
# -----------------------------------------------------------------
crbug.com/506754 http/tests/serviceworker/resolve-after-window-close.html [ Leak ]
crbug.com/506754 http/tests/serviceworker/window-close-during-registration.html [ Leak ]

crbug.com/786995 virtual/threaded/http/tests/devtools/tracing/timeline-style/timeline-style-recalc-all-invalidator-types.js [ Leak Pass ]
crbug.com/859640 http/tests/devtools/tracing/timeline-style/timeline-style-recalc-all-invalidator-types.js  [ Leak Pass ]

# Requests with keepalive specified will be kept alive even when the frame is
# detached, which means leaks reported by the leak detector are by design.
# Ignore them.
crbug.com/755625 external/wpt/beacon/beacon-error.window.html [ Leak ]
crbug.com/651742 external/wpt/content-security-policy/connect-src/connect-src-beacon-allowed.sub.html [ Leak ]

# -----------------------------------------------------------------
# Flakily leaks
# -----------------------------------------------------------------
crbug.com/780386 external/wpt/html/dom/reflection-grouping.html [ Leak Pass ]
crbug.com/667560 [ Linux ] http/tests/devtools/console/console-search.js [ Leak Pass ]
crbug.com/835943 [ Linux ] http/tests/appcache/non-html.xhtml [ Leak Pass ]

crbug.com/860117 [ Linux ] editing/pasteboard/drag-drop-iframe-refresh-crash.html [ Pass Leak ]

# -----------------------------------------------------------------
# Not revert suspected CL as jam@ request, expected to be fixed soon.
# -----------------------------------------------------------------
crbug.com/765721 [ Linux ] http/tests/navigation/navigation-interrupted-by-fragment.html [ Pass Leak ]
crbug.com/765721 [ Linux ] virtual/outofblink-cors/http/tests/navigation/navigation-interrupted-by-fragment.html [ Pass Leak ]
crbug.com/765721 [ Linux ] virtual/outofblink-cors-ns/http/tests/navigation/navigation-interrupted-by-fragment.html [ Pass Leak ]
crbug.com/765721 [ Linux ] virtual/stable/http/tests/navigation/navigation-interrupted-by-fragment.html [ Pass Leak ]

crbug.com/809609 [ Linux ] editing/pasteboard/drop-file-svg.html [ Pass Leak ]
crbug.com/809609 [ Linux ] editing/inserting/insert_div_with_style.html [ Pass Leak ]

# -----------------------------------------------------------------
# Sheriff 2018-04-23
# -----------------------------------------------------------------
crbug.com/836278 [ Linux ] external/wpt/offscreen-canvas/convert-to-blob/offscreencanvas.convert.to.blob.html [ Pass Leak ]
crbug.com/836278 [ Linux ] virtual/threaded/external/wpt/offscreen-canvas/convert-to-blob/offscreencanvas.convert.to.blob.html [ Pass Leak ]

# Sheriff 2018-07-10
# Test flaking on Linux Trusty Leak
crbug.com/862029 [ Linux ] http/tests/devtools/tracing/timeline-misc/timeline-window-filter.js [ Pass Leak ]

# Sheriff 2018-08-15
crbug.com/874442 [ Linux ] svg/animations/mpath-remove-from-dependents-on-delete-crash.html [ Pass Crash ]

# Sheriff 2018-08-17
crbug.com/847114 [ Linux ] http/tests/devtools/tracing/decode-resize.js [ Pass Failure ]
crbug.com/847114 [ Linux ] virtual/threaded/http/tests/devtools/tracing/decode-resize.js [ Pass Failure ]

# Sheriff 2018-08-29
crbug.com/878724 [ Linux ] editing/selection/modify_extend/extend_by_character.html [ Pass Leak ]
crbug.com/878724 [ Linux ] editing/selection/modify_move/move_right_word_09_ltr_multi_line.html [ Pass Leak ]
crbug.com/878727 [ Linux ] virtual/threaded/http/tests/devtools/tracing/timeline-misc/timeline-flame-chart-automatically-size-window.js [ Pass Leak ]

# Sheriff 2018-10-25
crbug.com/862029 [ Linux ] virtual/threaded/http/tests/devtools/tracing/timeline-misc/timeline-window-filter.js [ Pass Leak ]

###########################################################################
# WARNING: Memory leaks must be fixed asap. Sheriff is expected to revert #
# culprit CLs instead of suppressing the leaks. If you have any question, #
# ask hajimehoshi@.                                                       #
###########################################################################
