# There are three kinds of suppressions in this file:
# 1. Third party stuff we have no control over.
#
# 2. Intentional unit test errors, stuff that is somehow a false positive
# in our own code, or stuff that is so trivial it's not worth fixing.
#
# 3. Suppressions for real chromium bugs that are not yet fixed.
# These should all be in chromium's bug tracking system.
# Periodically we should sweep this file and the bug tracker clean by
# running overnight and removing outdated bugs/suppressions.
#-----------------------------------------------------------------------

# 1. Third party stuff we have no control over.
{
   FIXME mac kevent libevent probably needs valgrind hooks
   Memcheck:Param
   kevent(changelist)
   fun:kevent
   fun:event_base_new
}
{
   # CoreAudio leak.  See http://crbug.com/9351
   bug_9351
   Memcheck:Leak
   ...
   fun:_ZN12HALCADClient19AddPropertyListenerEmPK26AudioObjectPropertyAddressPFlmmS2_PvES3_
   ...
   fun:_ZN9HALSystem16CheckOutInstanceEv
   ...
}
{
   bug_18215
   Memcheck:Uninitialized
   fun:_DPSNextEvent
   fun:-[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
   fun:-[NSApplication run]
}
{
   # Also filed with Apple as rdar://7255382
   bug_20459b
   Memcheck:Leak
   fun:malloc_zone_malloc
   fun:_CFRuntimeCreateInstance
   fun:__CFArrayInit
   fun:CFArrayCreateMutableCopy
   ...
   fun:_ZN8Security12KeychainCore5Trust8evaluate*
}
{
   # See also http://openradar.appspot.com/radar?id=1169404
   bug_79533b
   Memcheck:Uninitialized
   ...
   fun:_Z*19cssm_DataAbortQuery17cssm_dl_db_handlel
   fun:CSSM_DL_DataAbortQuery
   fun:_ZN11SSDLSession14DataAbortQueryEll
   fun:_Z*19cssm_DataAbortQuery17cssm_dl_db_handlel
   fun:CSSM_DL_DataAbortQuery
   fun:tpDbFindIssuerCrl
   fun:tpVerifyCertGroupWithCrls
}
{
   # QTKit leak. See http://crbug.com/100772 and rdar://10319535.
   bug_100772
   Memcheck:Leak
   fun:calloc
   fun:QTMLCreateMutex
   fun:WarholCreateGlobals
   fun:INIT_QuickTimeLibInternal
   fun:pthread_once
   fun:INIT_QuickTimeLib
   fun:EnterMovies_priv
   fun:EnterMovies
   fun:TundraUnitInputFromTSFileEntry
   fun:TundraUnitVDIGInputEntry
   fun:TundraUnitCreateFromDescription
   fun:+[QTCaptureVDIGDevice _refreshDevices]
   fun:+[QTCaptureVDIGDevice devicesWithIOType:]
   fun:+[QTCaptureDevice devicesWithIOType:]
   fun:+[QTCaptureDevice inputDevices]
   fun:+[QTCaptureDevice inputDevicesWithMediaType:]
   ...
}
{
   # See http://crbug.com/385604
   bug_385604_a
   Memcheck:Leak
   fun:_Znw*
   fun:_ZNK11AEEventImpl9duplicateEv
   fun:AESendMessage
   fun:_ZL35HIToolboxLSNotificationCallbackFunc18LSNotificationCodedPKvPK7__LSASNS1_11LSSessionIDS1_
   fun:_ZL48LSScheduleNotificationReceiveMessageCallbackFuncP12__CFMachPortPvlS1_
   fun:__CFMachPortPerform
   fun:__CFRunLoopRun
   ...
}
# Intentional leaks in AppKit, for an OS-level cache. Only appear on the first
# run of each reboot.  See also issues 105525, 257276, 340847.
{
   bug_257276_b
   Memcheck:Leak
   fun:malloc_zone_malloc
   ...
   fun:setCursorFromBundle
   fun:CoreCursorSet
   fun:-[NSCursor set]
}

# 2. Intentional unit test errors, stuff that is somehow a false positive
# in our own code, or stuff that is so trivial it's not worth fixing.
{
   # Mac Sandbox test cases are registered in a global map.  This code is only
   # used in the unit test binary.
   Mac_Sandbox_Intentional_Leak1
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN7content8internal19RegisterSandboxTestINS_*
   ...
   fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
   fun:_ZN11ImageLoader23recursiveInitializationERKNS_11LinkContextEj
   fun:_ZN11ImageLoader15runInitializersERKNS_11LinkContextE
   fun:_ZN4dyld24initializeMainExecutableEv
}
{
   # __cxa_get_globals leaks a structure when called for the first time
   __cxa_get_globals one-time leak
   Memcheck:Leak
   ...
   fun:__cxa_get_globals
}

# 3. Suppressions for real chromium bugs that are not yet fixed.
{
   bug_87629
   Memcheck:Leak
   ...
   fun:realloc
   fun:new_sem_from_pool
}
{
   bug_93932_a
   Memcheck:Overlap
   fun:memcpy
   fun:vp8_decode_update_thread_context
   fun:update_context_from_thread
   ...
   fun:ff_thread_decode_frame
   fun:avcodec_decode_video2
   fun:_ZN5media23FFmpegVideoDecodeEngine6DecodeERK13scoped_refptrINS_6BufferEEPS1_INS_10VideoFrameEE
   fun:_ZN5media18FFmpegVideoDecoder14DoDecodeBufferERK13scoped_refptrINS_6BufferEE
}
{
   bug_93932_b
   Memcheck:Overlap
   fun:memcpy
   fun:vp8_decode_update_thread_context
   fun:update_context_from_thread
   fun:frame_thread_free
   fun:avcodec_close
   ...
   fun:_ZN5media23FFmpegVideoDecodeEngineD0Ev
   fun:_ZN10scoped_ptrIN5media23FFmpegVideoDecodeEngineEE5resetEPS1_
   fun:_ZN5media27FFmpegVideoDecodeEngineTestD2Ev
   fun:_ZN5media51FFmpegVideoDecodeEngineTest_DecodeFrame_Normal_TestD0Ev
}
{
   bug_159190
   Memcheck:Uninitialized
   ...
   fun:_ZNK19TConcreteFontScaler15CopyGlyphBitmapEtjP6CGRectPm
   ...
   fun:_ZN9Offscreen5getCGERK19SkScalerContext_MacRK7SkGlyphtPmb
   fun:_ZN19SkScalerContext_Mac13generateImageERK7SkGlyph
}
{
   bug_173779
   Memcheck:Uninitialized
   ...
   fun:img_data_lock
   fun:CGSImageDataLock
   fun:ripc_AcquireImage
   fun:ripc_DrawImage*
   fun:CGContextDrawImage*
   ...
   fun:_ZN11CUIRenderer4DrawE6CGRectP9CGContextPK14__CFDictionaryPS5_
}
{
  bug_340726
  Memcheck:Leak
  fun:_Znw*
  fun:_ZN4base17LoadNativeLibrary*
  fun:_ZN3gfx26InitializeStaticGLBindings*
  fun:_ZN3gfx9GLSurface30InitializeOneOffImplementation*
  fun:_ZN3gfx9GLSurface24InitializeOneOffForTestsEv
}
{
   bug_380568
   Memcheck:Leak
   fun:calloc
   fun:_internal_class_createInstanceFromZone
   fun:_internal_class_createInstance
   fun:NSAllocateObject
   fun:+[NSObject(NSObject) alloc]
   fun:-[VideoCaptureDeviceQTKit initWithFrameReceiver:]
   fun:_ZN5media21VideoCaptureDeviceMac4InitENS_18VideoCaptureDevice4Name14CaptureApiTypeE
   fun:_ZN5media28VideoCaptureDeviceFactoryMac6CreateERKNS_18VideoCaptureDevice4NameE
   fun:_ZN5media45VideoCaptureDeviceTest_OpenInvalidDevice_Test8TestBodyEv
}
{
   bug_385604_b
   Memcheck:Leak
   fun:calloc
   fun:_ZN18hb_object_header_t6createEj
   fun:_ZL16hb_object_createI9hb_face_tEPT_v
   fun:hb_face_create_for_tables
   fun:_ZN3gfx12_GLOBAL__N_118CreateHarfBuzzFaceEP10SkTypeface
   fun:_ZN3gfx12_GLOBAL__N_118CreateHarfBuzzFontEP10SkTypefacei
   fun:_ZN3gfx18RenderTextHarfBuzz8ShapeRunEPNS_8internal15TextRunHarfBuzzE
   fun:_ZN3gfx18RenderTextHarfBuzz12EnsureLayoutEv
   fun:_ZN3gfx41RenderTextTest_HarfBuzz_RunDirection_Test8TestBodyEv
}
{
   bug_416957
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKPKN15tracked_objects6BirthsENS3_9DeathDataEEEE8allocateEmPKv
   fun:_ZNSt8_Rb_treeIPKN15tracked_objects6BirthsESt4pairIKS3_NS0_9DeathDataEESt10_Select1stIS7_ESt4lessIS3_ESaIS7_EE11_M_get_nodeEv
   fun:_ZNSt8_Rb_treeIPKN15tracked_objects6BirthsESt4pairIKS3_NS0_9DeathDataEESt10_Select1stIS7_ESt4lessIS3_ESaIS7_EE14_M_create_nodeERKS7_
   fun:_ZNSt8_Rb_treeIPKN15tracked_objects6BirthsESt4pairIKS3_NS0_9DeathDataEESt10_Select1stIS7_ESt4lessIS3_ESaIS7_EE9_M_insertEPSt18_Rb_tree_node_baseSF_RKS7_
   fun:_ZNSt8_Rb_treeIPKN15tracked_objects6BirthsESt4pairIKS3_NS0_9DeathDataEESt10_Select1stIS7_ESt4lessIS3_ESaIS7_EE16_M_insert_uniqueESt17_Rb_tree_iteratorIS7_ERKS7_
   fun:_ZNSt3mapIPKN15tracked_objects6BirthsENS0_9DeathDataESt4lessIS3_ESaISt4pairIKS3_S4_EEE6insertESt17_Rb_tree_iteratorIS9_ERKS9_
   fun:_ZNSt3mapIPKN15tracked_objects6BirthsENS0_9DeathDataESt4lessIS3_ESaISt4pairIKS3_S4_EEEixERS8_
   fun:_ZN15tracked_objects10ThreadData11TallyADeathERKNS_6BirthsEiRKNS_13TaskStopwatchE
   fun:_ZN15tracked_objects10ThreadData31TallyRunOnNamedThreadIfTrackingERKN4base12TrackingInfoERKNS_13TaskStopwatchE
   fun:_ZN4base5debug13TaskAnnotator7RunTaskEPKcS3_RKNS_11PendingTaskE
   fun:_ZN4base11MessageLoop7RunTaskERKNS_11PendingTaskE
   fun:_ZN4base11MessageLoop21DeferOrRunPendingTaskERKNS_11PendingTaskE
   fun:_ZN4base11MessageLoop6DoWorkEv
}