# HeapCheck sanity test
leak:base::ToolsSanityTest_MemoryLeak_Test::TestBody

#### Third-party leaks ####

# False positives in libfontconfig. http://crbug.com/39050
leak:libfontconfig

# Leaks in Nvidia's libGL.
leak:libGL.so

# A small string is leaked here (57 bytes per process). http://crbug.com/46571#c9
leak:blink::V8GCController::collectGarbage

# http://crbug.com/270180
leak:net::ProxyResolverV8::Context::ResolveProxy

# NSS leaks in CertDatabaseNSSTest tests. http://crbug.com/51988
leak:net::NSSCertDatabase::ImportFromPKCS12
leak:net::NSSCertDatabase::ListCerts
leak:net::NSSCertDatabase::DeleteCertAndKey
leak:crypto::ScopedTestNSSDB::ScopedTestNSSDB
# Another leak due to not shutting down NSS properly. http://crbug.com/124445
leak:error_get_my_stack

# XRandR has several one time leaks.
leak:libxrandr

# The NSS suppressions above will not fire when the fast stack unwinder is used,
# because it can't unwind through NSS libraries. Apply blanket suppressions for
# now.
leak:libnssutil3
leak:libnspr4
leak:libnss3
leak:libplds4
leak:libnssckbi

# Skia leaks GrGpuGL::ProgramCache::Entry. http://crbug.com/262934
leak:GrGpuGL::flushGraphicsState

# xrandr leak. http://crbug.com/119677
leak:XRRFindDisplay

# V8 may leak this by design in unit tests. http://crbug.com/323149
leak:v8::internal::Genesis::Genesis

# Suppressions for objects which can be owned by the V8 heap. This is a
# temporary workaround until LeakSanitizer supports the V8 heap.
# Those should only fire in (browser)tests. If you see one of them in Chrome,
# then it's a real leak.
# http://crbug.com/328552
leak:WTF::StringImpl::createUninitialized
leak:WTF::StringImpl::create8BitIfPossible
leak:blink::MouseEvent::create
leak:blink::WindowProxy::initializeIfNeeded
leak:blink::*::*GetterCallback
leak:blink::CSSComputedStyleDeclaration::create
leak:blink::V8PerIsolateData::ensureDomInJSContext

# http://crbug.com/356785
leak:content::RenderViewImplTest_DecideNavigationPolicyForWebUI_Test::TestBody

#### Actual bugs in Chromium code ####
# PLEASE DO NOT ADD SUPPRESSIONS FOR NEW LEAKS.
# Instead, commits that introduce memory leaks should be reverted. Suppressing
# the leak is acceptable in some cases when reverting is impossible, i.e. when
# enabling leak detection for the first time for a test target with pre-existing
# leaks.

# Small test-only leak in ppapi_unittests. http://crbug.com/258113
leak:ppapi::proxy::PPP_Instance_Private_ProxyTest_PPPInstancePrivate_Test

# http://crbug.com/318221
leak:base::EnsureProcessTerminated

# http://crbug.com/322671
leak:content::SpeechRecognitionBrowserTest::SetUpOnMainThread

# http://crbug.com/355641
leak:TrayAccessibilityTest

# http://crbug.com/354644
leak:CertificateViewerUITest::ShowModalCertificateViewer

# http://crbug.com/356306
leak:content::SetProcessTitleFromCommandLine

# http://crbug.com/354881
leak:LoginUtilsBlockingLoginTest_LoginBlocksForUser
leak:LoginUtilsTest::SetUp
leak:LoginUtilsTest::PrepareProfile

# PLEASE READ ABOVE BEFORE ADDING NEW SUPPRESSIONS.
