# Chromium-specific suppressions
{
   dont_valgrind_python_1
   Memcheck:Cond
   ...
   obj:*python*
}
{
   dont_valgrind_python_2
   Memcheck:Value4
   ...
   obj:*python*
}
{
   dont_valgrind_python_3
   Memcheck:Addr4
   ...
   obj:*python*
}
{
   wine_bug_20551_as_seen_by_chromium
   Memcheck:Leak
   ...
   fun:RtlAllocateHeap
   ...
   fun:GlobalAlloc
   ...
   fun:Clipboard::WriteObjects
}
{
   suppress_chromium_crasher
   Memcheck:Addr1
   ...
   fun:*Test_Crasher*
}
{
   ignore_mozilla_errors
   Memcheck:Cond
   obj:*/ImporterTest/profile/mozcrt19.dll
}
{
   ignore_mozilla_errors2
   Memcheck:Cond
   obj:*/chrome/test/data/firefox3_nss/mozcrt19.dll
}
{
   ignore_gears_errors
   Memcheck:Addr4
   obj:*/gears.dll
}
{
   ignore_nss_decryptor_init_errors
   Memcheck:Leak
   fun:RtlAllocateHeap
   ...
   fun:NSSDecryptor::Init
}
{
   # cannot reproduce this one locally, not sure why this is happening in libstdc++.
   ignore_error_in_std_locale
   Memcheck:Addr4
   ...
   fun:std::locale::~locale
   ...
   fun:testing::Message::~Message
   fun:testing::AssertionResult::operator<<<enum net::LoadLog::EventPhase>
   fun:net::LogContains
   fun:SSLClientSocketTest_ConnectExpired_Test::TestBody
}
# Not sure why Valgrind started to think everything happening in the
# usr1_handler is invalid. Can't seem to reproduce these locally.
# This happens in URLFetcherTest.SameThreadsTest.
{
   ignore_wine_ntdll_usr1_handler_a
   Memcheck:Addr1
   ...
   fun:usr1_handler
}
{
   ignore_wine_ntdll_usr1_handler_b
   Memcheck:Addr2
   ...
   fun:usr1_handler
}
{
   ignore_wine_ntdll_usr1_handler_c
   Memcheck:Addr4
   ...
   fun:usr1_handler
}
{
   # This occurs at the same time as the usr1_handler errors above.
   ignore_wine_ntdll_no_symbol
   Memcheck:Addr4
   obj:*ntdll.dll.so
}
{
   # mysterious leaks in rsaenh.dll.so, no symbols / incorrect symbols.
   ignore_wine_rsaenh_no_symbols
   Memcheck:Leak
   fun:RtlAllocateHeap
   obj:*rsaenh.dll.so

}
{
   # Maybe a leak in strtoi() ?? StringToInt() seems to be leak free.
   ignore_strtoi_leak
   Memcheck:Leak
   fun:RtlAllocateHeap
   ...
   fun:StringToInt
}
{
   # Maybe a leak in _strtoi64() ?? StringToInt64() seems to be leak free.
   ignore_strtoi64_leak
   Memcheck:Leak
   fun:RtlAllocateHeap
   ...
   fun:StringToInt64
}
{
   # A leak in _vsnprintf_s?
   ignore_vsnprintf_s
   Memcheck:Leak
   fun:RtlAllocateHeap
   ...
   fun:_vsnprintf_s
   fun:base::vsnprintf
   fun:vsnprintfT
}
{
   # A leak in _wfopen_s() ?? ReadFileToString() behaves correctly.
   ignore_wfopen_s_leak
   Memcheck:Leak
   fun:RtlAllocateHeap
   ...
   fun:_wfopen_s
   fun:file_util::ReadFileToString
   fun:FileReader::ReadFileOnBackgroundThread
}
{
   # Leaking an 8 byte Clipboard object in the test code.
   ignore_get_clipboard
   Memcheck:Leak
   fun:RtlAllocateHeap
   ...
   fun:operator new
   fun:TestViewsDelegate::GetClipboard
   fun:views::NativeTextfieldWin::OnCopy
}
{
   # mysterious leak in _calloc_crt. Bug in Wine perhaps?? Hard to reproduce.
   ignore_calloc_crt
   Memcheck:Leak
   fun:RtlAllocateHeap
   fun:win_heap_malloc
   fun:malloc
   fun:calloc
   fun:_calloc_impl
   fun:_calloc_crt
   STOP
}
{
   wine_bug_20692_a
   Memcheck:Leak
   ...
   fun:CryptImportKey
   fun:CRYPT_ImportRsaPublicKeyInfoEx
   fun:CryptImportPublicKeyInfoEx
   fun:CryptImportPublicKeyInfo
   fun:base::SignatureVerifier::VerifyInit
}
{
   wine_bug_20692_b
   Memcheck:Leak
   ...
   fun:CryptGenKey
   fun:base::RSAPrivateKey::Create
}
{
   # Boy, oh, boy do we need a better way to deal with this.
   # See https://bugs.kde.org/show_bug.cgi?id=190660
   valgrind_bug_190660
   Memcheck:Addr4
   fun:strlen
}
{
   # Boy, oh, boy do we need a better way to deal with this.
   # See https://bugs.kde.org/show_bug.cgi?id=190660
   valgrind_bug_190660
   Memcheck:Addr4
   fun:strcmp
}
{
   # Boy, oh, boy do we need a better way to deal with this.
   # See https://bugs.kde.org/show_bug.cgi?id=190660
   valgrind_bug_190660
   Memcheck:Addr4
   fun:strchr
}
{
   # Boy, oh, boy do we need a better way to deal with this.
   # See https://bugs.kde.org/show_bug.cgi?id=190660
   valgrind_bug_190660
   Memcheck:Addr4
   fun:strcat
}
{
   # Boy, oh, boy do we need a better way to deal with this.
   # See https://bugs.kde.org/show_bug.cgi?id=190660
   valgrind_bug_190660
   Memcheck:Addr4
   fun:strncpy
}
{
   # Same leak exists in src/tools/valgrind/memcheck/suppressions.txt
   # with a mangled stack signature.
   intentional_BrowserThreadTest_NotReleasedIfTargetThreadNonExistent_Test_leak
   Memcheck:Leak
   ...
   fun:operator new
   fun:BrowserThreadTest_NotReleasedIfTargetThreadNonExistent_Test::TestBody
   fun:testing::Test::Run
}
# From src/tools/valgrind/memcheck/suppressions.txt
# TODO(thestig) dedup / merge
{
   Uninitialized value in deflate
   Memcheck:Cond
   ...
   fun:MOZ_Z_deflate
}
{
   bug_15276
   Memcheck:Cond
   fun:cld::OctaHashV3Lookup4
   fun:cld::DoOctaScoreV3
   fun:ScoreQuadgrams
   fun:CompactLangDetImpl::DetectLanguageSummaryV25
   fun:CompactLangDet::DetectLanguage
}
{
   bug_20653a
   Memcheck:Param
   write(buf)
   ...
   fun:sqlite3OsWrite
   fun:pager_write_pagelist
}
{
   bug_20653b
   Memcheck:Param
   write(buf)
   ...
   fun:*Write
   fun:sqlite3OsWrite
   ...
   fun:pager_write
}
# End of suppressions that need de-duping.
{
   bug_30547
   Memcheck:Leak
   ...
   fun:operator new
   fun:ImportantFileWriter::WriteNow
   fun:BookmarkStorage::SaveNow
   fun:BookmarkStorage::BookmarkModelDeleted
}
{
   bug_30584
   Memcheck:Cond
   fun:IconUtil::PixelsHaveAlpha
   fun:IconUtil::CreateSkBitmapFromHICON
   fun:TaskManagerBrowserProcessResource::TaskManagerBrowserProcessResource
}
{
   bug_30614
   Memcheck:Cond
   fun:strncpy
   fun:AffixMgr::parse_affix
   ...
   fun:SpellCheck::InitializeHunspell
}
{
   bug_31640
   Memcheck:Leak
   fun:RtlAllocateHeap
   ...
   fun:xmlGetGlobalState
   fun:__xmlGenericError
   fun:ScopedXmlErrorFunc::ScopedXmlErrorFunc
   fun:UpdateManifest::Parse
}
{
   bug_31643
   Memcheck:Leak
   ...
   fun:operator new
   fun:browser_sync::UIModelWorker::DoWorkAndWaitUntilDone
   fun:Syncer::SyncShare
}
{
   bug_31644
   Memcheck:Leak
   ...
   fun:operator new
   fun:NewRunnableMethod<ExtensionServiceBackend,void (__thiscall ExtensionServiceBackend::*)(void)>
   fun:ExtensionService::ClearProvidersForTesting
}
{
   bug_33424
   Memcheck:Leak
   ...
   fun:net::TCPClientSocketWin::Read
   fun:net::*::DoReadHeaders
   ...
   fun:net::*::OnIOComplete
}
{
   # This is a bit flaky, but it happens with both
   # FLAKY_FTPDirectoryListing_Test and FLAKY_FTPCacheLoginBoxCredentials_Test
   bug_33425
   Memcheck:Leak
   ...
   fun:net::TCPClientSocketWin::Read
   fun:net::FtpNetworkTransaction::DoCtrlRead
   fun:net::FtpNetworkTransaction::DoLoop
   fun:net::FtpNetworkTransaction::OnIOComplete
   fun:DispatchToMethod<net::FtpNetworkTransaction,void (__thiscall net::FtpNetworkTransaction::*)(int),int>
}
{
   # This is an invalid read/write that shows up sporadically.
   bug_33426
   Memcheck:Addr4
   fun:_free_base
   ...
   fun:std::basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >::~basic_stringbuf<char,std::char_traits<char>,std::allocator<char> >
   fun:std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::~basic_stringstream<char,std::char_traits<char>,std::allocator<char> >
   fun:std::basic_stringstream<char,std::char_traits<char>,std::allocator<char> >::`vbase destructor'
   fun:testing::internal::StrStreamToString
   fun:testing::Message::GetString
   fun:testing::AssertionResult::operator<<<enum net::LoadLog::EventPhase>
   ...
   fun:SSLClientSocketTest_ConnectMismatched_Test::TestBody
}
