# This file is used for tests that only need to be suppressed on the Chromium
# WebKit Leak bots.
#
# This list isn't comprehensive yet, and Leak Detector bots are not tree closers atm.
# Gardeners are welcome to touch this file, but you can ignore the failures
# and wait for kouhei@ or hajimehoshi@ to maintain this file.

# view-source:// tests are not supported by the leak detector
crbug.com/364398 fast/frames/viewsource/viewsource-1.html [ Leak ]
crbug.com/364398 fast/frames/viewsource/viewsource-2.html [ Leak ]
crbug.com/364398 fast/frames/viewsource/viewsource-3.html [ Leak ]
crbug.com/364398 fast/frames/viewsource/viewsource-4.html [ Leak ]
crbug.com/364398 fast/frames/viewsource/viewsource-5.html [ Leak ]
crbug.com/364398 fast/frames/viewsource/viewsource-6.html [ Leak ]
crbug.com/364398 fast/frames/viewsource/viewsource-7.html [ Leak ]
crbug.com/364398 fast/frames/viewsource/viewsource-incomplete-token.html [ Leak ]
crbug.com/364398 fast/frames/viewsource/viewsource-unfinished-script.html [ Leak ]
crbug.com/364398 fast/frames/viewsource/viewsource-unfinished-textarea.html [ Leak ]
crbug.com/364398 http/tests/security/xssAuditor/viewsource-onmouseover.html [ Leak ]
crbug.com/364398 http/tests/security/xssAuditor/viewsource-script-tag.html [ Leak ]

# FIXME: The below tests fails when the leak detector is disabled.
crbug.com/366029 compositing/fixed-body-background-positioned.html [ Failure Pass ]

# FIXME: The below tests crashes when the leak detector is run on debug builds
crbug.com/366043 [ Debug ] fast/history/history-traversal-is-asynchronous.html [ Crash ]

# The leak detector doesn't wait for worker threads to completely clean up, so leaks are expected.
crbug.com/301515 fast/workers/worker-terminate.html [ Leak ]

# FIXME: scroll customization leaks memory. See
# codereview.chromium.org/1236913004/ for context.
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 real leaks.
# -----------------------------------------------------------------

crbug.com/327574 permissionclient/image-permissions.html [ Leak ]
crbug.com/327574 http/tests/permissionclient/image-permissions.html [ Leak ]
crbug.com/327574 fast/loader/data-images-with-images-disabled.html [ Leak ]

# -----------------------------------------------------------------
# Untriaged but known leaks which may be false positives.
# -----------------------------------------------------------------

crbug.com/364417 fast/repaint/japanese-rl-selection-clear.html [ Leak ]

crbug.com/455369 fast/html/marquee-destroyed-without-removed-from-crash.html [ Leak Pass ]

crbug.com/414163 [ Debug ] inspector/sources/debugger/promise-tracker.html [ Crash ]

crbug.com/480769 http/tests/inspector/service-workers/user-agent-override.html [ Crash ]

# -----------------------------------------------------------------
# Untriaged but known leaks of ActiveDOMObject (fast).
# -----------------------------------------------------------------
crbug.com/506529 fast/mediastream/MediaStreamConstructor.html [ Leak ]
crbug.com/506529 fast/events/constructors/media-stream-event-constructor.html [ Leak ]
crbug.com/506529 fast/files/workers/worker-read-blob-async-crash.html [ Leak ]

# -----------------------------------------------------------------
# Untriaged but known leaks of ActiveDOMObject (IndexedDB).
# -----------------------------------------------------------------
# The leak detector's result for ActiveDOMObject (especially IndexedDB) is
# flaky and we need to fix the leak detector (crbug.com/507224). Until then,
# the tests for IndexedDB are skipped.
crbug.com/506752 imported/wpt/IndexedDB/ [ Skip ]
crbug.com/506752 storage/indexeddb/ [ Skip ]

# -----------------------------------------------------------------
# Untriaged but known leaks of ActiveDOMObject (http).
# -----------------------------------------------------------------
crbug.com/506754 http/tests/cachestorage/window/cache-put.html [ Leak ]
crbug.com/506754 http/tests/inspector/network/network-xhr-replay.html [ Leak ]
crbug.com/506754 http/tests/inspector/service-workers/service-worker-agents.html [ Crash Leak ]
crbug.com/506754 http/tests/security/cross-origin-indexeddb-allowed.html [ Leak ]
crbug.com/506754 http/tests/serviceworker/chromium/resolve-after-window-close.html [ Leak ]
crbug.com/506754 http/tests/serviceworker/chromium/window-close-during-registration.html [ Leak ]

# -----------------------------------------------------------------
# Untriaged but known leaks of ActiveDOMObject (Web Audio).
# -----------------------------------------------------------------
crbug.com/451577 [ Linux ] inspector/elements/user-properties.html [ Slow ]
crbug.com/451577 [ Linux ] inspector/extensions/extensions-reload.html [ Slow ]
crbug.com/451577 [ Linux ] inspector/extensions/extensions-sidebar.html [ Slow ]

crbug.com/578297 [ Linux ] media/video-autoplay-experiment-modes.html [ Slow ]
crbug.com/578297 [ Linux ] virtual/threaded/printing/webgl-oversized-printing.html [ Slow ]
crbug.com/578297 [ Linux ] http/tests/media/media-source/mediasource-appendstream-quota-exceeded.html [ Slow ]

# -----------------------------------------------------------------
# Leaks in imported/csswg-test/vendor-imports/mozilla/mozilla-central-reftests/*
# -----------------------------------------------------------------
crbug.com/594603 [ Linux ] imported/csswg-test/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-baseline-align-self-baseline-vert-001.html [ Leak ]
crbug.com/594603 [ Linux ] imported/csswg-test/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-baseline-empty-001a.html [ Leak ]
crbug.com/594603 [ Linux ] imported/csswg-test/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-baseline-empty-001b.html [ Leak ]
crbug.com/594603 [ Linux ] imported/csswg-test/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-baseline-multi-item-vert-001.html [ Leak ]
crbug.com/594603 [ Linux ] imported/csswg-test/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-whitespace-handling-002.xhtml [ Leak ]
crbug.com/594309 [ Linux ] imported/csswg-test/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-declaration-15.html [ Leak ]
crbug.com/594309 [ Linux ] imported/csswg-test/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-declaration-16.html [ Leak ]
crbug.com/594309 [ Linux ] imported/csswg-test/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-declaration-17.html [ Leak ]
crbug.com/594309 [ Linux ] imported/csswg-test/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-declaration-18.html [ Leak ]
crbug.com/594309 [ Linux ] imported/csswg-test/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-external-font-face-01.html [ Pass Leak ]
crbug.com/594309 [ Linux ] imported/csswg-test/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-font-face-02.html [ Pass Leak ]
crbug.com/594309 [ Linux ] imported/csswg-test/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-compression-007.html [ Leak ]
