# 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/layout_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 ]

# -----------------------------------------------------------------
# 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/672740 http/tests/security/mixedContent/websocket/insecure-websocket-in-secure-page-worker-allowed.html [ Leak Pass ]
crbug.com/672740 http/tests/security/mixedContent/websocket/insecure-websocket-in-secure-page-worker.html [ Leak Pass ]

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/762353 external/wpt/beacon/headers/header-referrer-no-referrer.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/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-03-08
# -----------------------------------------------------------------
crbug.com/821547 [ Linux ] animations/composition/backdrop-filter-composition.html [ Pass Leak ]
crbug.com/821547 [ Linux ] animations/interpolation/backdrop-filter-interpolation.html [ Pass Leak ]
crbug.com/821547 [ Linux ] animations/interpolation/filter-interpolation-003.html [ Pass Leak ]
crbug.com/821547 [ Linux ] external/wpt/web-animations/animation-model/animation-types/interpolation-per-property.html [ Pass Leak ]
crbug.com/821547 [ Linux ] svg/animations/additive-type-by-animation.html [ Pass Leak ]
crbug.com/821547 [ Linux ] virtual/threaded/animations/composition/backdrop-filter-composition.html [ Pass Leak ]
crbug.com/821547 [ Linux ] virtual/threaded/animations/interpolation/backdrop-filter-interpolation.html [ Pass Leak ]
crbug.com/821547 [ Linux ] virtual/threaded/animations/interpolation/filter-interpolation-003.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 ]

###########################################################################
# 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@.                                                       #
###########################################################################
