# There are four kinds of suppressions in this file.
# 1. third party stuff we have no control over
#
# 2. intentional unit test errors, or 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 (but a few aren't yet).
# 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
{
   Uninitialized value in deflate (Third Party)
   Memcheck:Uninitialized
   ...
   fun:MOZ_Z_deflate
}
{
   #gtk developers don't like cleaning up one-time leaks.  See http://mail.gnome.org/archives/gtk-devel-list/2004-April/msg00230.html
   gtk_init_check leak (Third Party)
   Memcheck:Leak
   ...
   fun:gtk_init_check
}
{
   Fontconfig leak?
   Memcheck:Leak
   ...
   fun:XML_ParseBuffer
   fun:FcConfigParseAndLoad
}
{
   bug_9245_FcConfigAppFontAddFile_leak
   Memcheck:Leak
   ...
   fun:FcConfigAppFontAddFile
}
{
   pango_font_leak_todo_3
   Memcheck:Leak
   ...
   fun:FcFontRenderPrepare
   ...
   fun:pango_itemize_with_base_dir
}
{
   pango_font_leak_todo_4
   Memcheck:Leak
   ...
   fun:FcFontRenderPrepare
   ...
   fun:pango_ot_buffer_output
}
{
   pango_font_leak_todo_5
   Memcheck:Leak
   ...
   fun:FcFontRenderPrepare
   ...
   fun:pango_context_get_metrics
}
{
   pango_font_leak_todo_6
   Memcheck:Leak
   ...
   fun:FcDefaultSubstitute
   ...
   fun:pango_itemize_with_base_dir
}
{
   # Similar to fontconfig_bug_8428 below. Reported in
   # https://bugs.freedesktop.org/show_bug.cgi?id=8215
   fontconfig_bug_8215
   Memcheck:Leak
   fun:malloc
   fun:FcPatternObjectInsertElt
   fun:FcPatternObjectAddWithBinding
}
{
   # Fontconfig leak, seen in shard 16 of 20 of ui_tests
   # See https://bugs.freedesktop.org/show_bug.cgi?id=8428
   # and http://www.gnome.org/~johan/gtk.suppression
   fontconfig_bug_8428
   Memcheck:Leak
   ...
   fun:realloc
   fun:FcPatternObjectInsertElt
   fun:FcPatternObjectAddWithBinding
}
{
   bug_18590 (Third Party)
   Memcheck:Leak
   ...
   fun:malloc
   fun:FcConfigValues
   fun:FcConfigValues
   ...
   fun:FcConfigValues
   fun:FcConfigValues
}
{
   dlopen leak on error. Chromium issues 268368,273385. See http://sourceware.org/bugzilla/show_bug.cgi?id=12878.
   Memcheck:Leak
   fun:calloc
   fun:_dlerror_run
   fun:dlopen@@GLIBC_2.2.5
}
{
   bug_58730_libc.so_value8 (Third Party)
   Memcheck:Uninitialized
   obj:/lib/libc-2.11.1.so
}
# net::SniffXML() clearly tries to read < 8 bytes, but strncasecmp() reads 8.
{
   bug_58730_strncasecmp_uninit (Third Party)
   Memcheck:Uninitialized
   ...
   fun:strncasecmp
   fun:_ZN4base11strncasecmpEPKcS1_m
   fun:_ZN3netL8SniffXMLEPKcmPbPSs
}
{
   bug_76386a (Third Party)
   Memcheck:Leak
   fun:_Znw*
   fun:_ZNSs4_Rep9_S_createE*RKSaIcE
   ...
   fun:_ZNSsC1*KS*
}
{
   bug_76386b (Third Party)
   Memcheck:Leak
   fun:_Znw*
   fun:_ZNSs4_Rep9_S_createE*RKSaIcE
   fun:_ZNSs4_Rep8_M_cloneERKSaIcE*
}
{
   getpwuid_and_getgrouplist
   Memcheck:Leak
   fun:malloc
   fun:nss_parse_service_list
   fun:__nss_database_lookup
   obj:*
   ...
   fun:get*
}

# XRandRInfo object seems to be leaking inside XRRFindDisplay.  This happens the
# first time it is called, no matter who the caller is.  We have observed this
# problem with both XRRSelectInput and XRRQueryExtension.
{
   bug_119677
   Memcheck:Leak
   fun:malloc
   fun:XRRFindDisplay
}
{
   Ubuntu_Precise_Fontconfig_Optimized_Code
   Memcheck:Unaddressable
   fun:FcConfigFileExists
}
{
   Ubuntu_Precise_Itoa_Optimized_Code
   Memcheck:Uninitialized
   fun:_itoa_word
   fun:vfprintf
   fun:__vsnprintf_chk
   fun:__snprintf_chk
}
{
   Ubuntu_Precise_Wcscmp_Optimized_Code_In_Tests
   Memcheck:Uninitialized
   fun:wcscmp
   fun:_ZN7testing8internal6String17WideCStringEqualsEPKwS3_
}
{
   mesa_glsl_compile_shader
   Memcheck:Leak
   ...
   fun:_mesa_glsl_compile_shader
   fun:compile_shader
   fun:_mesa_CompileShaderARB
   fun:shared_dispatch_stub_529
}

#-----------------------------------------------------------------------
# 2. intentional unit test errors, or stuff that is somehow a false positive
# in our own code, or stuff that is so trivial it's not worth fixing

# See tools/valgrind/memcheck_analyze.py before modifying sanity tests.
{
   Memcheck sanity test 01 (memory leak).
   Memcheck:Leak
   fun:_Zna*
   fun:_ZN4base31ToolsSanityTest_MemoryLeak_Test8TestBodyEv
}
{
   Memcheck sanity test 02 (malloc/read left).
   Memcheck:Unaddressable
   fun:*ReadValueOutOfArrayBoundsLeft*
   ...
   fun:_ZN4base43ToolsSanityTest_AccessesToMallocMemory_Test8TestBodyEv
}
{
   Memcheck sanity test 03 (malloc/read right).
   Memcheck:Unaddressable
   fun:*ReadValueOutOfArrayBoundsRight*
   ...
   fun:_ZN4base43ToolsSanityTest_AccessesToMallocMemory_Test8TestBodyEv
}
{
   Memcheck sanity test 04 (malloc/write left).
   Memcheck:Unaddressable
   fun:*WriteValueOutOfArrayBoundsLeft*
   ...
   fun:_ZN4base43ToolsSanityTest_AccessesToMallocMemory_Test8TestBodyEv
}
{
   Memcheck sanity test 05 (malloc/write right).
   Memcheck:Unaddressable
   fun:*WriteValueOutOfArrayBoundsRight*
   ...
   fun:_ZN4base43ToolsSanityTest_AccessesToMallocMemory_Test8TestBodyEv
}
{
   Memcheck sanity test 06 (new/read left).
   Memcheck:Unaddressable
   fun:*ReadValueOutOfArrayBoundsLeft*
   ...
   fun:_ZN4base40ToolsSanityTest_AccessesToNewMemory_Test8TestBodyEv
}
{
   Memcheck sanity test 07 (new/read right).
   Memcheck:Unaddressable
   fun:*ReadValueOutOfArrayBoundsRight*
   ...
   fun:_ZN4base40ToolsSanityTest_AccessesToNewMemory_Test8TestBodyEv
}
{
   Memcheck sanity test 08 (new/write left).
   Memcheck:Unaddressable
   fun:*WriteValueOutOfArrayBoundsLeft*
   ...
   fun:_ZN4base40ToolsSanityTest_AccessesToNewMemory_Test8TestBodyEv
}
{
   Memcheck sanity test 09 (new/write right).
   Memcheck:Unaddressable
   fun:*WriteValueOutOfArrayBoundsRight*
   ...
   fun:_ZN4base40ToolsSanityTest_AccessesToNewMemory_Test8TestBodyEv
}
{
   Memcheck sanity test 10 (write after free).
   Memcheck:Unaddressable
   fun:_ZN4base43ToolsSanityTest_AccessesToMallocMemory_Test8TestBodyEv
}
{
   Memcheck sanity test 11 (write after delete).
   Memcheck:Unaddressable
   fun:_ZN4base40ToolsSanityTest_AccessesToNewMemory_Test8TestBodyEv
}
{
   Memcheck sanity test 12 (array deleted without []).
   Memcheck:Free
   ...
   fun:_ZN4base46ToolsSanityTest_ArrayDeletedWithoutBraces_Test8TestBodyEv
}
{
   Memcheck sanity test 13 (single element deleted with []).
   Memcheck:Free
   ...
   fun:_ZN4base51ToolsSanityTest_SingleElementDeletedWithBraces_Test8TestBodyEv
}
{
   Memcheck sanity test 14 (malloc/read uninit).
   Memcheck:Uninitialized
   fun:*ReadUninitializedValue*
   ...
   fun:_ZN4base43ToolsSanityTest_AccessesToMallocMemory_Test8TestBodyEv
}
{
   Memcheck sanity test 15 (new/read uninit).
   Memcheck:Uninitialized
   fun:*ReadUninitializedValue*
   ...
   fun:_ZN4base40ToolsSanityTest_AccessesToNewMemory_Test8TestBodyEv
}
{
   bug_86301 This test explicitly verifies PostTaskAndReply leaks the task if the originating MessageLoop has been deleted.
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN4base8internal20PostTaskAndReplyImpl16PostTaskAndReplyERKN15tracked_objects8LocationERKNS_8CallbackIFvvEEESA_
   fun:_ZN4base10TaskRunner16PostTaskAndReplyERKN15tracked_objects8LocationERKNS_8CallbackIFvvEEES9_
   fun:_ZN4base12_GLOBAL__N_169MessageLoopProxyTest_PostTaskAndReply_DeadReplyLoopDoesNotDelete_Test8TestBodyEv
}
{
   # Non-joinable thread doesn't clean up all state on program exit
   # very common in ui tests
   bug_16096 (WontFix)
   Memcheck:Leak
   fun:_Znw*
   fun:_ZNSs4_Rep9_S_createE*RKSaIcE
   fun:_ZNSs4_Rep8_M_cloneERKSaIcE*
   fun:_ZNSs7reserveE*
   fun:_ZNSs6appendEPKc*
   fun:*StringAppendV*
   ...
   fun:_ZN4base12StringPrintfEPKcz
}
{
   # According to dglazkov, these are one-time leaks and intentional.
   # They may go away if the change to move these off the heap lands.
   bug_17996 (Intentional)
   Memcheck:Leak
   ...
   fun:_ZN5blink8SVGNames4initEv
}
{
   # This is an on demand initialization which is done and then intentionally
   # kept around (not freed) while the process is running.
   intentional_blink_XMLNames_init_leak
   Memcheck:Leak
   ...
   fun:_ZN5blink8XMLNames4initEv
}
{
   # Intentionally leaking NSS to prevent shutdown crashes
   bug_61585a (Intentional)
   Memcheck:Leak
   fun:calloc
   ...
   fun:error_get_my_stack
}
{
   FileStream::Context can leak through WorkerPool by design
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN3net10FileStreamC1EPNS_6NetLogE
}
{
   # Histograms are used on un-joined threads, and can't be deleted atexit.
   Histograms via FactoryGet including Linear Custom Boolean and Basic
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN4base*Histogram10FactoryGet*
}
{
   Intentional leak for SampleMap (stores SparseHistogram counts).
   Memcheck:Leak
   ...
   fun:_ZN4base9SampleMap10AccumulateEii
   fun:_ZN4base15SparseHistogram3AddEi
}
{
   bug_73299 (Intentional)
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN7content17WorkerProcessHost20CreateMessageFiltersEi
   fun:_ZN7content17WorkerProcessHost4InitE*
   fun:_ZN7content17WorkerServiceImpl24CreateWorkerFromInstanceENS_17WorkerProcessHost14WorkerInstanceE
   fun:_ZN7content17WorkerServiceImpl12CreateWorkerE*
   fun:_ZN7content19WorkerMessageFilter14OnCreateWorkerERK31ViewHostMsg_CreateWorker_ParamsPi
}
{
   bug_83345 (Needs_Annotation)
   Memcheck:Leak
   ...
   fun:_ZN4base*23LeakyLazyInstanceTraits*NewEPv
   fun:_ZN4base12LazyInstance*LeakyLazyInstanceTraits*PointerEv
}
{
   bug_87500_a (Intentional)
   Memcheck:Leak
   ...
   fun:_ZN10disk_cache9BackendIO23ExecuteBackendOperationEv
   fun:_ZN10disk_cache9BackendIO16ExecuteOperationEv
}
{
   bug_79322 (Intentional)
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN4base*StatisticsRecorderTest_*_Test8TestBodyEv
}
{
   # According to dglazkov, UA style sheets are intentionally leaked.
   # As such, treat any leaks originating from parseUASheet as intentional.
   bug_121729 (Intentional)
   Memcheck:Leak
   ...
   fun:_ZN5blinkL12parseUASheetEPKcj
}
{
   bug_121729_b (Intentional)
   Memcheck:Leak
   ...
   fun:_ZN5blinkL12parseUASheetERKN3WTF6StringE
}
{
   intentional_see_bug_156466
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN3ash5ShellC1EPNS_13ShellDelegateE
   fun:_ZN3ash5Shell14CreateInstanceEPNS_13ShellDelegateE
}

# http://crbug.com/269278 causes really widespread, flaky leaks in
# value objects that own some memory.  These suppressions will cover
# all such objects, even though it's possible to get real leaks that
# look the same way (e.g. by allocating such an object in an arena).
{
   bug_269278a
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN4base4Bind*Callback*BindState*
}
{
   bug_269278b
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN9__gnu_cxx13new_allocator*allocate*
   fun:_ZNSt12_Vector_base*_M_allocate*
}

# Externally allocated objects referenced by V8 objects can currently
# be diagnosed as (false) leaks, since memcheck does not know how to
# handle V8 leaks. More detailed discussion in http://crbug.com/328552
{
   bug_328552
   Memcheck:Leak
   fun:malloc
   fun:_ZN3WTF10StringImpl19createUninitializedEjRPh
}
{
   bug_383956
   Memcheck:Leak
   fun:calloc
   fun:_ZN18hb_object_header_t6createEj
   fun:_Z*hb_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
}

{
  bug_391510
  Memcheck:Leak
  fun:_Znw*
  fun:_ZN4base21CancelableTaskTracker16NewTrackedTaskId*
  fun:_ZN14HistoryService14ScheduleDBTask*
  fun:_ZN7history19URLIndexPrivateData26ScheduleUpdateRecentVisits*
}
{
   bug_399852_a
   Memcheck:Uninitialized
   fun:_ZN5blink14DateComponents9parseTimeERKN3WTF6StringEjRj
   fun:_ZNK5blink13TimeInputType29parseToDateComponentsInternalERKN3WTF6StringEPNS_14DateComponentsE
   fun:_ZNK5blink24BaseDateAndTimeInputType21parseToDateComponentsERKN3WTF6StringEPNS_14DateComponentsE
}
{
   bug_399852_b
   Memcheck:Uninitialized
   fun:_ZN5blink12_GLOBAL__N_117parseJSONInternalIhEEN3WTF10PassRefPtrINS_9JSONValueEEEPKT_j
   fun:_ZN5blink9parseJSONERKN3WTF6StringE
   fun:_ZN5blink*InspectorBackendDispatcher*
   ...
   fun:_ZN5blink*WebDevToolsAgent*
   fun:_ZN7content*DevToolsAgent*
}
{
   bug_399852_c
   Memcheck:Uninitialized
   fun:_ZN5blinkL21extractRangeComponentEPN3WTF6StringERKNS0_6RefPtrINS_10JSONObjectEEERKS1_Rj
   fun:_ZN5blinkL22jsonRangeToSourceRangeEPN3WTF6StringEPNS_23InspectorStyleSheetBase*
   fun:_ZN5blink17InspectorCSSAgent*
   fun:_ZThn40_N5blink17InspectorCSSAgent*
   fun:_ZN5blink30InspectorBackendDispatcherImpl*
   fun:_ZN5blink30InspectorBackendDispatcherImpl8dispatchERKN3WTF6StringE
   fun:_ZN5blink19InspectorController27dispatchMessageFromFrontendERKN3WTF6StringE
   fun:_ZN5blink20WebDevToolsAgentImpl26dispatchOnInspectorBackendERKNS_9WebStringE
   fun:_ZN7content13DevToolsAgent28OnDispatchOnInspectorBackendERKSs
}
{
   bug_399852_d
   Memcheck:Uninitialized
   fun:_ZN5blink14DateComponents10parseMonthERKN3WTF6StringEjRj
   ...
   fun:_ZNK5blink24BaseDateAndTimeInputType21parseToDateComponentsERKN3WTF6StringEPNS_14DateComponentsE
   fun:_ZNK5blink24BaseDateAndTimeInputType15typeMismatchForERKN3WTF6StringE
   fun:_ZNK5blink24BaseDateAndTimeInputType13sanitizeValueERKN3WTF6StringE
}
{
   bug_418234
   Memcheck:Uninitialized
   fun:_ZN10extensions19ExtensionManagement7RefreshEv
   fun:_ZN10extensions19ExtensionManagement22OnExtensionPrefChangedEv
}
{
   bug_464462
   Memcheck:Uninitialized
   fun:_ZN7content14ManifestParser16ParseIconDensityERKN4base15DictionaryValueE
   fun:_ZN7content14ManifestParser10ParseIconsERKN4base15DictionaryValueE
   fun:_ZN7content14ManifestParser5ParseEv
   fun:_ZN7content18ManifestParserTest21ParseManifestWithURLsERKN4base16BasicStringPieceISsEERK4GURLS8_
   fun:_ZN7content18ManifestParserTest13ParseManifestERKN4base16BasicStringPieceISsEE
   fun:_ZN7content45ManifestParserTest_IconDensityParseRules_Test8TestBodyEv
}
{
   bug_484444
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN4mojo7BindingINS_15ServiceProviderEE4BindENS_16ScopedHandleBaseINS_17MessagePipeHandleEEEPK15MojoAsyncWaiter
   fun:_ZN4mojo7BindingINS_15ServiceProviderEE4BindENS_16InterfaceRequestIS1_EEPK15MojoAsyncWaiter
   fun:_ZN7content19ServiceRegistryImpl4BindEN4mojo16InterfaceRequestINS1_15ServiceProviderEEE
}
{
   bug_484444b
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN4mojo8internal11FilterChain6AppendINS0_22MessageHeaderValidatorEEEvv
   fun:_ZN4mojo8internal17InterfacePtrStateINS_15ServiceProviderEE25ConfigureProxyIfNecessaryEv
   fun:_ZN4mojo8internal17InterfacePtrStateINS_15ServiceProviderEE8instanceEv
}
{
   bug_484444c
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN4mojo8internal10SharedDataIPNS0_6RouterEEC2ERKS3_
   fun:_ZN4mojo8internal6RouterC1ENS_16ScopedHandleBaseINS_17MessagePipeHandleEEENS0_11FilterChainEPK15MojoAsyncWaiter
   fun:_ZN4mojo8internal17InterfacePtrStateINS_15ServiceProviderEE25ConfigureProxyIfNecessaryEv
   fun:_ZN4mojo8internal17InterfacePtrStateINS_15ServiceProviderEE8instanceEv
}

#-----------------------------------------------------------------------
# 3. Suppressions for real chromium bugs that are not yet fixed.
# These should all be in chromium's bug tracking system (but a few aren't yet).

{
   # webkit leak?  See http://crbug.com/9503
   bug_9503
   Memcheck:Leak
   ...
   fun:_ZN19TestWebViewDelegate24UpdateSelectionClipboardEb
}
{
   # very common in ui tests
   bug_16091
   Memcheck:Leak
   ...
   fun:_ZN4base11MessageLoop22AddDestructionObserverEPNS0_19DestructionObserverE
   ...
   fun:_ZN3IPC11SyncChannel11SyncContext15OnChannelOpenedEv
}
{
   # very common in ui tests
   bug_16092
   Memcheck:Leak
   fun:*
   fun:_ZN4base11MessageLoopC1ENS0_4TypeE
   fun:_ZN4base6Thread10ThreadMainEv
}
{
   # very common in ui tests
   bug_16092b
   Memcheck:Leak
   ...
   fun:_ZNSt11_Deque_baseIN4base11PendingTaskESaIS1_EE17_M_initialize_mapE*
   ...
   fun:_ZN4base11MessageLoopC1ENS0_4TypeE
}
{
   # very common in ui tests
   bug_16092c
   Memcheck:Leak
   ...
   fun:_ZNSt14priority_queueIN11MessageLoop11PendingTaskESt6vectorIS1_SaIS1_EESt4lessIS1_EEC1ERKS6_RKS4_
   fun:_ZN4base11MessageLoopC1ENS0_4TypeE
   fun:_ZN4base6Thread10ThreadMainEv
}
{
   # also bug 17979.  It's a nest of leaks.
   bug_17385
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN3IPC12ChannelProxy7Context13CreateChannel*Channel4ModeE
   fun:_ZN3IPC12ChannelProxy4Init*
   ...
   fun:_ZN3IPC11SyncChannel*Channel4Mode*Listener*
}
{
   bug_17540
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN4base19MessagePumpLibevent19WatchFileDescriptor*FileDescriptorWatcherEPNS0_7WatcherE
   fun:_ZN4base16MessageLoopForIO19WatchFileDescriptor*MessagePumpLibevent21FileDescriptorWatcherEPNS2_7WatcherE
   ...
   fun:_ZN3IPC*Channel*ConnectEv
   fun:_ZN3IPC12ChannelProxy7Context15OnChannelOpenedEv
}
{
   # slight variant of the above
   bug_19371a
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN4base13WaitableEvent7EnqueueEPNS0_6WaiterE
   fun:_ZN4base13WaitableEvent9TimedWaitERKNS_9TimeDeltaE
   fun:_ZN4base18MessagePumpDefault3RunEPNS_11MessagePump8DelegateE
}
{
   bug_19775_a
   Memcheck:Leak
   ...
   fun:malloc
   fun:sqlite3MemMalloc
   fun:mallocWithAlarm
   fun:sqlite3Malloc
   ...
   fun:sqlite3VdbeExec
   fun:sqlite3Step
   fun:sqlite3_step
   fun:sqlite3_exec
   fun:_ZN3sql10Connection7Execute*
   ...
   fun:_ZN7history*Database*Create*
}
{
   bug_19775_c
   Memcheck:Leak
   ...
   fun:openDatabase
   fun:sqlite3_open
   fun:_ZN3sql10Connection12OpenInternalERKSs
}
{
   bug_19775_g
   Memcheck:Leak
   fun:malloc
   fun:sqlite3MemMalloc
   fun:mallocWithAlarm
   fun:sqlite3Malloc
   fun:sqlite3ParserAlloc
   fun:sqlite3RunParser
   fun:sqlite3Prepare
   fun:sqlite3LockAndPrepare
   fun:sqlite3_prepare*
}
{
   bug_19775_h
   Memcheck:Leak
   ...
   fun:malloc
   fun:sqlite3MemMalloc
   fun:mallocWithAlarm
   fun:sqlite3Malloc
   ...
   fun:yy_reduce
}
# The following three suppressions are related to the workers code.
{
   bug_27837
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN19WebSharedWorkerStub9OnConnectEii
}
{
   bug_32085
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN9__gnu_cxx13new_allocatorIN7content21NotificationRegistrar6RecordEE8allocate*
   fun:_ZNSt12_Vector_baseIN7content21NotificationRegistrar6RecordESaIS*
   fun:_ZNSt6vectorIN7content21NotificationRegistrar6RecordESaIS2_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS2_S*
   fun:_ZNSt6vectorIN7content21NotificationRegistrar6RecordESaIS*
   fun:_ZN7content21NotificationRegistrar3Add*
}
{
   bug_32273_a
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN3IPC12ChannelProxy4SendEPNS_7MessageE
   fun:_ZN3IPC11SyncChannel15SendWithTimeoutEPNS_7MessageEi
   fun:_ZN3IPC11SyncChannel4SendEPNS_7MessageE
   fun:_ZN11ChildThread4SendEPN3IPC7MessageE
   fun:_ZN12RenderThread4SendEPN3IPC7MessageE
   fun:_ZN12RenderWidget4SendEPN3IPC7MessageE
   fun:_ZN12RenderWidget16DoDeferredUpdateEv
   fun:_ZN12RenderWidget20CallDoDeferredUpdateEv
}
{
   bug_32273_b
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN24BrowserRenderProcessHost4SendEPN3IPC7MessageE
   fun:_ZN16RenderWidgetHost4SendEPN3IPC7MessageE
}
{
   bug_32624_b
   Memcheck:Leak
   fun:malloc
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   obj:*
   fun:secmod_ModuleInit
}
{
   bug_32624_c
   Memcheck:Leak
   ...
   fun:malloc
   ...
   fun:PORT_Alloc_Util
   ...
   fun:PK11_InitPin
}
{
   bug_32624_f
   Memcheck:Leak
   ...
   fun:CERT_PKIXVerifyCert
   fun:_ZN3net12_GLOBAL__N_114PKIXVerifyCertE*
}
{
   bug_32624_g
   Memcheck:Leak
   ...
   fun:CERT_VerifySignedData
   fun:cert_VerifyCertChain
   fun:CERT_VerifyCertChain
   fun:CERT_VerifyCert
}
{
   bug_42842
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN19TestWebViewDelegate12createWorkerEPN5blink8WebFrameEPNS0_15WebWorkerClientE
   fun:_ZN5blink19WebWorkerClientImpl24createWorkerContextProxyEPN7blink6WorkerE
   fun:_ZN5blink18WorkerContextProxy6createEPNS_6WorkerE
   fun:_ZN5blink6WorkerC1EPNS_22ScriptExecutionContextE
   fun:_ZN5blink6Worker6createERKN3WTF6StringEPNS_22ScriptExecutionContextERi
   fun:_ZN5blink8V8Worker19constructorCallbackERKN2v89ArgumentsE
}
{
   bug_64887_a
   Memcheck:Uninitialized
   ...
   fun:*vfprintf
   ...
   fun:_ZN7testing*PrintByteSegmentInObjectTo*
   ...
   fun:_ZN7testing*PrintBytesInObjectTo*
   fun:_ZN7testing9internal220PrintBytesInObjectToEPKh*
   fun:_ZN7testing9internal220TypeWithoutFormatter*
   fun:_ZN7testing9internal2lsIcSt11char_traitsIcE*
}
{
   bug_64887_b
   Memcheck:Uninitialized
   ...
   fun:_ZNSolsEx
   fun:_ZN7testing9internal220TypeWithoutFormatterIN5media7PreloadELNS0_8TypeKindE1EE10PrintValueERKS3_PSo
   fun:_ZN7testing9internal2lsIcSt11char_traitsIcEN5media7PreloadEEERSt13basic_ostreamIT_T0_ESA_RKT1_
   fun:_ZN16testing_internal26DefaultPrintNonContainerToIN5media7PreloadEEEvRKT_PSo
   fun:_ZN7testing8internal14DefaultPrintToIN5media7PreloadEEEvcNS0_13bool_constantILb0EEERKT_PSo
   fun:_ZN7testing8internal7PrintToIN5media7PreloadEEEvRKT_PSo
   fun:_ZN7testing8internal16UniversalPrinterIN5media7PreloadEE5PrintERKS3_PSo
   fun:_ZN7testing8internal18TuplePrefixPrinter*
   fun:_ZN7testing8internal12PrintTupleToINSt3tr15tupleIN5media7PreloadENS2*
   fun:_ZN7testing8internal7PrintToIN5media7PreloadEEEvRKNSt3tr15tupleIT*
   fun:_ZN7testing8internal16UniversalPrinterINSt3tr15tupleIN5media7PreloadENS2*
   fun:_ZN7testing8internal14UniversalPrintINSt3tr15tupleIN5media7PreloadENS2*
   fun:_ZNK7testing8internal18FunctionMockerBaseIFvN5media7PreloadEEE32UntypedDescribeUninterestingCallEPKvPSo
   fun:_ZN7testing8internal25UntypedFunctionMockerBase17UntypedInvokeWithEPKv
   fun:_ZN7testing8internal18FunctionMockerBaseIFvN5media7PreloadEEE10InvokeWithERKNSt3tr15tupleIS3*
   fun:_ZN7testing8internal14FunctionMockerIFvN5media7PreloadEEE6InvokeES3_
   fun:_ZN5media11MockDemuxer10SetPreloadENS_7PreloadE
}
{
   bug_64887_c
   Memcheck:Uninitialized
   ...
   fun:_ZNSolsEx
   fun:_ZN7testing9internal220TypeWithoutFormatterIN5media7PreloadELNS0_8TypeKindE1EE10PrintValueERKS3_PSo
   fun:_ZN7testing9internal2lsIcSt11char_traitsIcEN5media7PreloadEEERSt13basic_ostreamIT_T0_ESA_RKT1_
   fun:_ZN16testing_internal26DefaultPrintNonContainerToIN5media7PreloadEEEvRKT_PSo
   fun:_ZN7testing8internal14DefaultPrintToIN5media7PreloadEEEvcNS0_13bool_constantILb0EEERKT_PSo
   fun:_ZN7testing8internal7PrintToIN5media7PreloadEEEvRKT_PSo
   fun:_ZN7testing8internal16UniversalPrinterIN5media7PreloadEE5PrintERKS3_PSo
   fun:_ZN7testing8internal18TuplePrefixPrinter*
   fun:_ZN7testing8internal12PrintTupleToINSt3tr15tupleIN5media7PreloadENS2*
   fun:_ZN7testing8internal7PrintToIN5media7PreloadEEEvRKNSt3tr15tupleIT*
   fun:_ZN7testing8internal16UniversalPrinterINSt3tr15tupleIN5media7PreloadENS2*
   fun:_ZN7testing8internal14UniversalPrintINSt3tr15tupleIN5media7PreloadENS2*
   fun:_ZNK7testing8internal18FunctionMockerBaseIFvN5media7PreloadEEE32UntypedDescribeUninterestingCallEPKvPSo
   fun:_ZN7testing8internal25UntypedFunctionMockerBase17UntypedInvokeWithEPKv
   fun:_ZN7testing8internal18FunctionMockerBaseIFvN5media7PreloadEEE10InvokeWithERKNSt3tr15tupleIS3*
   fun:_ZN7testing8internal14FunctionMockerIFvN5media7PreloadEEE6InvokeES3_
   fun:_ZN5media11MockDemuxer10SetPreloadENS_7PreloadE
}
{
   bug_65940_a
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN3IPC12ChannelProxy7Context13CreateChannelERKNS_13ChannelHandleERKNS_7Channel4ModeE
   fun:_ZN3IPC12ChannelProxy4InitERKNS_13ChannelHandleENS_7Channel4ModeEP11MessageLoopb
   fun:_ZN3IPC12ChannelProxyC2ERKNS_13ChannelHandleENS_7Channel4ModeEP11MessageLoopPNS0_7ContextEb
   fun:_ZN3IPC11SyncChannelC1ERKNS_13ChannelHandleENS_7Channel4ModeEPNS4_8ListenerEP11MessageLoopbPN4base13WaitableEventE
}
{
   bug_65940_b
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN3IPC11SyncChannelC1ERKNS_13ChannelHandleENS_7Channel4ModeEPNS_8ListenerEPN4base22SingleThreadTaskRunnerEbPNS8_13WaitableEventE
   fun:_ZN7content11ChildThread4InitEv
   fun:_ZN7content11ChildThreadC2ERKSs
}
{
   bug_65940_c
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN9__gnu_cxx13new_allocatorI13scoped_refptrIN3IPC12ChannelProxy13MessageFilterEEE8allocateEmPKv
   fun:_ZNSt12_Vector_baseI13scoped_refptrIN3IPC12ChannelProxy13MessageFilterEESaIS4_EE11_M_allocateEm
   fun:_ZNSt6vectorI13scoped_refptrIN3IPC12ChannelProxy13MessageFilterEESaIS4_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS4_S6_EERKS4_
   fun:_ZNSt6vectorI13scoped_refptrIN3IPC12ChannelProxy13MessageFilterEESaIS4_EE9push_backERKS4_
   fun:_ZN3IPC12ChannelProxy7Context11OnAddFilterEv
}
{
   bug_65940_d
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN7content11ChildThread4InitEv
   fun:_ZN7content11ChildThreadC*
   ...
   fun:_ZN7content21WebRTCAudioDeviceTest5SetUpEv
}
{
   bug_65940_e
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN7content16RenderThreadImpl4InitEv
   fun:_ZN7content16RenderThreadImplC*
   ...
   fun:_ZN7content21WebRTCAudioDeviceTest5SetUpEv
}
{
   bug_66853_a
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN11ProfileImpl14GetHostZoomMapEv
   ...
   fun:_ZNK17ProfileImplIOData6Handle27GetMainRequestContextGetterEv
   fun:_ZN11ProfileImpl17GetRequestContextEv
   fun:_ZN19SafeBrowsingService5StartEv
   fun:_ZN19SafeBrowsingService10InitializeEv
   fun:_ZN22ResourceDispatcherHost10InitializeEv
   fun:_ZN18BrowserProcessImpl28CreateResourceDispatcherHostEv
   fun:_ZN18BrowserProcessImpl24resource_dispatcher_hostEv
   fun:_ZN16ExtensionService4InitEv
   fun:_ZN11ProfileImpl14InitExtensionsE*
   fun:_ZN14ProfileManager10AddProfileEP7Profileb
}
{
   bug_67142
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN16ChildProcessHost13CreateChannelEv
   fun:_ZN14GpuProcessHost4InitEv
}
{
   bug_67261
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN3sql10Connection18GetUniqueStatementEPKc
   fun:_ZN3sql10Connection18GetCachedStatementERKNS_11StatementIDEPKc
   fun:_ZN8appcache16AppCacheDatabase22PrepareCachedStatementERKN3sql11StatementIDEPKcPNS1_9StatementE
}
{
   bug_67553
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZNSt3mapISs13scoped_refptrIK9ExtensionESt4lessISsESaISt4pairIKSsS3_EEEixERS7_
   fun:_ZN16ExtensionInfoMap12AddExtensionEPK9Extension
}
{
   Bug_69934_a
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN*NPObjectProxy10NPAllocateEP4_NPPP7NPClass
   fun:_NPN_CreateObject
   fun:_ZN5blink11WebBindings12createObjectEP4_NPPP7NPClass
}
{
   Bug_69934_b
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN3IPC11SyncMessage13GenerateReplyEPKNS_7MessageE
   fun:_ZN3IPC17SyncMessageSchema*
}
{
   bug_71728
   Memcheck:Leak
   fun:_Znw*
   fun:*DownloadFileTest5SetUpEv
}
{
   bug_72698_a
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN13ProfileIOData20InitializeOnUIThreadEP7Profile
}
{
   bug_73415
   Memcheck:Unaddressable
   fun:_ZN23AccessibilityController36shouldDumpAccessibilityNotificationsEv
   fun:_ZN11WebViewHost29postAccessibilityNotificationERKN5blink22WebAccessibilityObjectENS0_28WebAccessibilityNotificationE
   fun:_ZN5blink16ChromeClientImpl29postAccessibilityNotificationEPN7blink19AccessibilityObjectENS1_13AXObjectCache14AXNotificationE
   fun:_ZN5blink13AXObjectCache24postPlatformNotificationEPNS_19AccessibilityObjectENS0_14AXNotificationE
}
{
   bug_73675
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN20LayoutTestController13waitUntilDoneERKN3WTF6VectorI10CppVariantLj0EEEPS2_
   fun:_ZN13CppBoundClass14MemberCallbackI20LayoutTestControllerE3runERKN3WTF6VectorI10CppVariantLj0EEEPS5_
   fun:_ZN13CppBoundClass6invokeEPvPK10_NPVariantjPS1_
   fun:_ZN11CppNPObject6invokeEP8NPObjectPvPK10_NPVariantjPS3_
   fun:_ZN5blink18npObjectInvokeImplERKN2v89ArgumentsENS_18InvokeFunctionTypeE
   fun:_ZN5blink21npObjectMethodHandlerERKN2v89ArgumentsE
   fun:_ZN2v88internal19HandleApiCallHelperILb0EEEPNS0_11MaybeObjectENS0_47_GLOBAL__N_v8_src_builtins.cc_*BuiltinArgumentsILNS0_21BuiltinExtraArgumentsE1EEE
   obj:*
}
{
   bug_75019
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN14GpuDataManagerC1Ev
   fun:_ZN22DefaultSingletonTraitsI14GpuDataManagerE3NewEv
   fun:_ZN9SingletonI14GpuDataManager22DefaultSingletonTraitsIS0_ES0_E3getEv
   fun:_ZN14GpuDataManager11GetInstanceEv
   fun:_Z11BrowserMainRK18MainFunctionParams
   fun:_ZN20InProcessBrowserTest5SetUpEv
}
{
   bug_76197a
   Memcheck:Unaddressable
   fun:sqlite3DbFree
   fun:releaseMemArray
   fun:sqlite3VdbeDelete
   fun:sqlite3VdbeFinalize
   fun:sqlite3_finalize
   fun:_ZN3sql10Connection12StatementRef5CloseEv
   fun:_ZN3sql10Connection12StatementRefD2Ev
   fun:_ZN3sql10Connection12StatementRefD1Ev
   fun:_ZNK4base10RefCountedIN3sql10Connection12StatementRefEE7ReleaseEv
   fun:_ZN13scoped_refptrIN3sql10Connection12StatementRefEED2Ev
   fun:_ZN13scoped_refptrIN3sql10Connection12StatementRefEED1Ev
   fun:_ZNSt4pairIKN3sql11StatementIDE13scoped_refptrINS0_10Connection12StatementRefEEED2Ev
   fun:_ZNSt4pairIKN3sql11StatementIDE13scoped_refptrINS0_10Connection12StatementRefEEED1Ev
   fun:_ZN9__gnu_cxx13new_allocatorISt4pairIKN3sql11StatementIDE13scoped_refptrINS2_10Connection12StatementRefEEEE7destroyEPS9_
   fun:_ZNSt8_Rb_treeIN3sql11StatementIDESt4pairIKS1_13scoped_refptrINS0_10Connection12StatementRefEEESt10_Select1stIS8_ESt4lessIS1_ESaIS8_EE12destroy_nodeEPSt13_Rb_tree_nodeIS8_E
   fun:_ZNSt8_Rb_treeIN3sql11StatementIDESt4pairIKS1_13scoped_refptrINS0_10Connection12StatementRefEEESt10_Select1stIS8_ESt4lessIS1_ESaIS8_EE8_M_eraseEPSt13_Rb_tree_nodeIS8_E
   fun:_ZNSt8_Rb_treeIN3sql11StatementIDESt4pairIKS1_13scoped_refptrINS0_10Connection12StatementRefEEESt10_Select1stIS8_ESt4lessIS1_ESaIS8_EE5clearEv
   fun:_ZNSt3mapIN3sql11StatementIDE13scoped_refptrINS0_10Connection12StatementRefEESt4lessIS1_ESaISt4pairIKS1_S5_EEE5clearEv
   fun:_ZN3sql10Connection5CloseEv
   fun:_ZN3sql10ConnectionD2Ev
   fun:_ZN3sql10ConnectionD1Ev
   fun:_ZN7history16InMemoryDatabaseD0Ev
}
{
   bug_76197b
   Memcheck:Unaddressable
   ...
   fun:sqlite3_step
   fun:sqlite3_exec
   fun:_ZN3sql10Connection7ExecuteEPKc
   fun:_ZN7history11URLDatabase31CreateKeywordSearchTermsIndicesEv
   fun:_ZN7history16InMemoryDatabase12InitFromDiskE*
   fun:_ZN7history22InMemoryHistoryBackend4InitE*
}
{
   bug_79654_a
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZNSt3setIP16RenderWidgetHostSt4lessIS1_ESaIS1_EE6insertERKS1_
   fun:_ZN*9TabLoader12TabIsLoadingEP24NavigationControllerImpl
   fun:_ZN*18SessionRestoreImpl21ProcessSessionWindowsEPSt6vectorIP13SessionWindowSaIS3_EE
   fun:_ZN*18SessionRestoreImpl12OnGotSessionEiPSt6vectorIP13SessionWindowSaIS3_EE
}
{
   bug_79654_b
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:*RenderWidgetHost*
   ...
   fun:_ZNSt3setIP16RenderWidgetHostSt4lessIS1_ESaIS1_EE6insertERKS1_
   fun:*TabLoader7ObserveEiRKN7content18NotificationSourceERKNS1_19NotificationDetailsE
   fun:_ZN23NotificationServiceImpl*
   fun:_ZN15WebContentsImpl12SetIsLoading*
   fun:_ZN15WebContentsImpl14RenderViewGone*
}
{
   bug_84265
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN12LoginHandler6CreateEPN3net17AuthChallengeInfoEPNS0_10URLRequestE
   fun:_Z17CreateLoginPromptPN3net17AuthChallengeInfoEPNS_10URLRequestE
   fun:_ZN22ResourceDispatcherHost14OnAuthRequiredEPN3net10URLRequestEPNS0_17AuthChallengeInfoE
   fun:_ZN3net13URLRequestJob21NotifyHeadersCompleteEv
}
{
   bug_84770_a
   Memcheck:Unaddressable
   fun:_ZN5blink21FrameLoaderClientImpl12allowPluginsEb
   fun:_ZN5blink14SubframeLoader12allowPluginsENS_28ReasonForCallingAllowPluginsE
}
{
   bug_84770_b
   Memcheck:Unaddressable
   fun:_ZN5blink21FrameLoaderClientImpl15allowJavaScriptEb
   fun:_ZN5blink16ScriptController17canExecuteScriptsENS_33ReasonForCallingCanExecuteScriptsE
}
{
   bug_84770_c
   Memcheck:Unaddressable
   fun:_ZN5blink21FrameLoaderClientImpl20allowScriptExtensionERKN3WTF6StringEi
   fun:_ZN5blink16V8DOMWindowShell16createNewContextEN2v86HandleINS1_6ObjectEEEi
}
{
   bug_86481
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN9__gnu_cxx13new_allocator*FilePath*allocate*
   fun:_ZNSt11_Deque_base*FilePath*_M_allocate_map*
   fun:_ZNSt11_Deque_base*FilePath*_M_initialize_map*
   fun:_ZNSt11_Deque_baseI*FilePath*
   fun:_ZNSt5dequeI*FilePath*
   fun:_ZNSt5stackI*FilePath*deque*
   fun:_ZN9file_util14FileEnumeratorC1E*
   fun:_ZN7history20ExpireHistoryBackend25DoExpireHistoryIndexFilesEv
}
{
   bug_90215_c
   Memcheck:Leak
   ...
   fun:_ZN3net13URLRequestJob21NotifyRestartRequiredEv
   fun:_ZN8appcache21AppCacheURLRequestJob13BeginDeliveryEv
}
{
   bug_90215_d
   Memcheck:Leak
   ...
   fun:_ZN8appcache19AppCacheStorageImpl23RunOnePendingSimpleTaskEv
}
{
   bug_90215_e
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN8appcache15AppCacheService10InitializeE*
   fun:_ZN21ChromeAppCacheService20InitializeOnIOThreadE*
}
{
   bug_90215_f
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN26TransportSecurityPersisterC1EPN3net22TransportSecurityStateERKN4base8FilePathEb
   fun:_ZNK13ProfileIOData4InitEPSt3mapISs10linked_ptrIN3net20URLRequestJobFactory15ProtocolHandlerEESt4lessISsESaISt4pairIKSsS5_EEE
   fun:_ZN12_GLOBAL__N_114FactoryForMain6CreateEv
   fun:_ZN29ChromeURLRequestContextGetter20GetURLRequestContextEv
   fun:_ZN7content21ChromeAppCacheService20InitializeOnIOThreadERKN4base8FilePathEPNS_15ResourceContextEPN3net23URLRequestContextGetterE13scoped_refptrIN5quota20SpecialStoragePolicyEE
}
{
   bug_90240
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN2pp5proxy26PPP_Instance_Private_Proxy22OnMsgGetInstanceObjectEiNS0_24SerializedVarReturnValueE
}
{
   bug_90487a
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN9__gnu_cxx13new_allocatorISt10_List_nodeIPN5quota11QuotaClientEEE8allocateEjPKv
   fun:_ZNSt10_List_baseIPN5quota11QuotaClientESaIS2_EE11_M_get_nodeEv
   fun:_ZNSt4listIPN5quota11QuotaClientESaIS2_EE14_M_create_nodeERKS2_
   fun:_ZNSt4listIPN5quota11QuotaClientESaIS2_EE9_M_insertESt14_List_iteratorIS2_ERKS2_
   fun:_ZNSt4listIPN5quota11QuotaClientESaIS2_EE9push_backERKS2_
   fun:_ZN5quota12QuotaManager14RegisterClientEPNS_11QuotaClientE
   fun:_ZN5quota17QuotaManagerProxy14RegisterClientEPNS_11QuotaClientE
}
{
   bug_93730_a
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN14ServiceProcess10InitializeEP16MessageLoopForUIRK11CommandLineP19ServiceProcessState
   fun:_Z18ServiceProcessMainRK18MainFunctionParams
   ...
   fun:ChromeMain
   fun:main
}
{
   bug_93730_b
   Memcheck:Leak
   fun:_Zna*
   fun:_ZN4base13LaunchProcessERKSt6vectorISsSaISsEERKNS_13LaunchOptionsEPi
   fun:_ZN4base13LaunchProcessERK11CommandLineRKNS_13LaunchOptionsEPi
   fun:_ZN21ServiceProcessControl8Launcher5DoRunEv
}
{
   bug_93730_c
   Memcheck:Leak
   fun:_Znw*
   fun:_Z17NewRunnableMethodIN21ServiceProcessControl8LauncherEMS1_FvvEEP14CancelableTaskPT_T0_
   fun:_ZN21ServiceProcessControl8Launcher5DoRunEv
}
{
   bug_93730_d
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN3IPC11SyncChannelC1ERKNS_13ChannelHandleENS_7Channel4ModeEPNS4_8ListenerEPN4base16MessageLoopProxyEbPNS8_13WaitableEventE
   fun:_ZN16ServiceIPCServer13CreateChannelEv
   fun:_ZN16ServiceIPCServer4InitEv
   fun:_ZN14ServiceProcess10InitializeEP16MessageLoopForUIRK11CommandLineP19ServiceProcessState
   fun:_Z18ServiceProcessMainRK18MainFunctionParams
   ...
   fun:ChromeMain
   fun:main
}
{
   bug_94764
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN8remoting13ClientSession11UnpressKeysEv
   fun:_ZN8remoting34ClientSessionTest_UnpressKeys_Test8TestBodyEv
}
{
   bug_95448
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsPN4base5ValueEEEE8allocateEjPKv
   fun:_ZNSt8_Rb_treeISsSt4pairIKSsPN4base5ValueEESt10_Select1stIS5_ESt4lessISsESaIS5_EE11_M_get_nodeEv
   fun:_ZNSt8_Rb_treeISsSt4pairIKSsPN4base5ValueEESt10_Select1stIS5_ESt4lessISsESaIS5_EE14_M_create_nodeERKS5_
   fun:_ZNSt8_Rb_treeISsSt4pairIKSsPN4base5ValueEESt10_Select1stIS5_ESt4lessISsESaIS5_EE10_M_insert_EPKSt18_Rb_tree_node_baseSE_RKS5_
   fun:_ZNSt8_Rb_treeISsSt4pairIKSsPN4base5ValueEESt10_Select1stIS5_ESt4lessISsESaIS5_EE17_M_insert_unique_ESt23_Rb_tree_const_iteratorIS5_ERKS5_
   fun:_ZNSt3mapISsPN4base5ValueESt4lessISsESaISt4pairIKSsS2_EEE6insertESt17_Rb_tree_iteratorIS7_ERKS7_
   fun:_ZNSt3mapISsPN4base5ValueESt4lessISsESaISt4pairIKSsS2_EEEixERS6_
   fun:_ZN4base15DictionaryValue23SetWithoutPathExpansionERKSsPNS_5ValueE
   fun:_ZN4base15DictionaryValue3SetERKSsPNS_5ValueE
   fun:_ZN4base15DictionaryValue9SetStringERKSsRKSbItNS_20string16_char_traitsESaItEE
   fun:_ZN11PluginPrefs23CreatePluginFileSummaryERKN6webkit13WebPluginInfoE
   fun:_ZN11PluginPrefs19OnUpdatePreferencesESt6vectorIN6webkit13WebPluginInfoESaIS2_EES0_INS1_5npapi11PluginGroupESaIS6_EE
}
{
   bug_98867
   Memcheck:Jump
   obj:*
   obj:*
   obj:*
}
{
   bug_100982
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN5blink12RenderRegion22setRenderBoxRegionInfoEPKNS_9RenderBoxEiib
   fun:_ZNK7blink9RenderBox19renderBoxRegionInfoEPNS_12RenderRegionEiNS0_24RenderBoxRegionInfoFlagsE
   ...
   fun:_ZN5blink11RenderBlock5paintERNS_9PaintInfoERKNS_8IntPointE
}
{
   bug_101750
   Memcheck:Leak
   fun:malloc
   fun:_ZN3WTF10fastMallocEj
   fun:_ZN3WTF7HashSetIPN7blink16SVGStyledElementENS_7PtrHashIS3_EENS_10HashTraitsIS3_EEEnwEj
   fun:_ZN5blink21SVGDocumentExtensions18addPendingResourceERKN3WTF12AtomicStringEPNS_16SVGStyledElementE
}
{
   bug_101781_d
   Memcheck:Uninitialized
   fun:_ZN7testing8internal11CmpHelperGEIddEENS_15AssertionResultEPKcS4_RKT_RKT0_
   fun:_ZN3gfx31JPEGCodec_EncodeDecodeRGBA_Test8TestBodyEv
}
{
   bug_102327a
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN15tracked_objects10ThreadData10InitializeEv
   fun:_ZN15tracked_objects10ThreadData30InitializeAndSetTrackingStatusEb
   fun:_ZN15tracked_objects10ThreadData29ShutdownSingleThreadedCleanupEb
}
{
   bug_102327d
   Memcheck:Uninitialized
   fun:_ZN15tracked_objects9DeathData11RecordDeathEiii
   fun:_ZN15tracked_objects10ThreadData11TallyADeathERKNS_6BirthsEii
   fun:_ZN15tracked_objects10ThreadData31TallyRunOnNamedThreadIfTrackingERKN4base12TrackingInfoERKNS_11TrackedTimeES7_
}
{
   Intentional leak of stl map during thread cleanup in profiler
   Memcheck:Leak
   fun:_Znw*
   fun:_ZNK15tracked_objects10ThreadData26OnThreadTerminationCleanupEv
}
{
   bug_102831_a
   Memcheck:Leak
   ...
   fun:_ZN17PluginLoaderPosix19LoadPluginsInternalEv
}
{
   bug_104447
   Memcheck:Leak
   ...
   fun:HB_OpenTypeShape
   fun:arabicSyriacOpenTypeShape
   fun:HB_ArabicShape
   fun:HB_ShapeItem
   fun:_ZN5blink21ComplexTextController11shapeGlyphsEv
   fun:_ZN5blink21ComplexTextController13nextScriptRunEv
   fun:_ZN5blink21ComplexTextController14widthOfFullRunEv
   fun:_ZNK7blink4Font24floatWidthForComplexTextERKNS_7TextRunEPN3WTF7HashSetIPKNS_14SimpleFontDataENS4_7PtrHashIS8_EENS4_10HashTraitsIS8_EEEEPNS_13GlyphOverflowE
   fun:_ZNK7blink4Font5widthERKNS_7TextRunERiRN3WTF6StringE
   fun:_ZN5blink14SVGTextMetricsC1EPNS_19RenderSVGInlineTextERKNS_7TextRunE
   fun:_ZN5blink14SVGTextMetrics21measureCharacterRangeEPNS_19RenderSVGInlineTextEjj
   fun:_ZNK7blink30SVGTextLayoutAttributesBuilder25propagateLayoutAttributesEPNS_12RenderObjectERN3WTF6VectorINS_23SVGTextLayoutAttributesELm0EEERjRt
}
{
   bug_104806_a
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:*tracked_objects*ThreadData*TallyABirth*
}
{
   bug_104806_b
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:*tracked_objects*ThreadData*TallyADeath*
}
{
   bug_105744b
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZNSt6vector*9push_back*
   fun:_ZN4skia19ConvolutionFilter1D9AddFilterEiPKsi
   fun:_ZN4skia12_GLOBAL__N_112ResizeFilter14ComputeFiltersEiiiffPNS_19ConvolutionFilter1DE
   fun:_ZN4skia12_GLOBAL__N_112ResizeFilterC1ENS_15ImageOperations12ResizeMethodEiiiiRK7SkIRect
   fun:_ZN4skia15ImageOperations11ResizeBasicERK8SkBitmapNS0_12ResizeMethodEiiRK7SkIRect
   fun:_ZN4skia15ImageOperations6ResizeERK8SkBitmapNS0_12ResizeMethodEiiRK7SkIRect
   fun:_ZN4skia15ImageOperations6ResizeERK8SkBitmapNS0_12ResizeMethodEii
   fun:_ZN24ChromeRenderViewObserver21CaptureFrameThumbnailEPN5blink7WebViewEiiP8SkBitmapP14ThumbnailScore
   fun:_ZN24ChromeRenderViewObserver16CaptureThumbnailEv
   fun:_ZN24ChromeRenderViewObserver15CapturePageInfoEib
}
{
   bug_105907
   Memcheck:Uninitialized
   ...
   fun:_ZN4skia14BGRAConvolve2DEPKhibRKNS_19ConvolutionFilter1DES4_iPhb
   fun:_ZN4skia15ImageOperations11ResizeBasicE*
   fun:_ZN4skia15ImageOperations6ResizeE*
}
{
   bug_106912
   Memcheck:Leak
   ...
   fun:*tracked_objects*ThreadData*InitializeThreadContext*
   fun:*base*PlatformThread*SetName*
}
{
   bug_112278
   Memcheck:Uninitialized
   fun:fetch_texel_2d_f_rgba8888
   ...
   fun:sample_nearest_2d
   fun:fetch_texel_lod
   fun:fetch_texel
   fun:_mesa_execute_program
   fun:run_program*
   fun:_swrast_exec_fragment_program
   fun:shade_texture_span
   fun:_swrast_write_rgba_span
   fun:general_triangle
   ...
   fun:_swrast_Triangle
   fun:triangle_rgba
   ...
   fun:run_render
   fun:_tnl_run_pipeline
   fun:_tnl_draw_prims
   fun:_tnl_vbo_draw_prims
}
{
   bug_122457
   Memcheck:Leak
   fun:malloc
   fun:_ZN3WTF10fastMallocEm
   fun:_ZN3WTF10RefCountedIN5blink12MHTMLArchiveEEnwEm
   fun:_ZN5blink12MHTMLArchive6createEv
   ...
   fun:_ZN5blink11MHTMLParser22parseArchiveWithHeaderEPNS_10MIMEHeaderE
   fun:_ZN5blink11MHTMLParser12parseArchiveEv
   fun:_ZN5blink12MHTMLArchive6createERKNS_4KURLEPNS_12SharedBufferE
}
{
   bug_122717_use_after_free
   Memcheck:Unaddressable
   fun:__pthread_mutex_unlock_usercnt
   fun:_ZN4base8internal8LockImpl6UnlockEv
   fun:_ZN4base4Lock7ReleaseEv
   fun:_ZN4base8AutoLockD1Ev
   fun:_ZN5gdata15GDataFileSystem21RunTaskOnIOThreadPoolERKN4base8CallbackIFvvEEE
}
{
   bug_122717_leak
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN4base8internal20PostTaskAndReplyImpl16PostTaskAndReplyERKN15tracked_objects8LocationERKNS_8CallbackIFvvEEESA_
   fun:_ZN4base10TaskRunner16PostTaskAndReplyERKN15tracked_objects8LocationERKNS_8CallbackIFvvEEES9_
   fun:_ZN7content13BrowserThread16PostTaskAndReplyENS0_2IDERKN15tracked_objects8LocationERKN4base8CallbackIFvvEEESB_
}
{
   bug_123307
   Memcheck:Leak
   fun:malloc
   fun:_ZN3WTF10fastMallocEm
   fun:_ZN3WTF16fastZeroedMallocEm
   ...
   fun:_ZN5blink12_GLOBAL__N_111V8ObjectMapIN2v86ObjectEjE3setERKNS2_6HandleIS3_EERKj
   fun:_ZN5blink12_GLOBAL__N_110Serializer10greyObjectERKN2v86HandleINS2_6ObjectEEE
   fun:_ZN5blink12_GLOBAL__N_110Serializer11doSerializeEN2v86HandleINS2_5ValueEEEPNS1_9StateBaseE
   fun:_ZN5blink12_GLOBAL__N_110Serializer9serializeEN2v86HandleINS2_5ValueEEE
   fun:_ZN5blink21SerializedScriptValueC1EN2v86HandleINS1_5ValueEEEPN3WTF6VectorINS5_6RefPtrINS_11MessagePortEEELm1EEEPNS6_INS7_INS5_11ArrayBufferEEELm1EEERb
   fun:_ZN5blink21SerializedScriptValue6createEN2v86HandleINS1_5ValueEEEPN3WTF6VectorINS5_6RefPtrINS_11MessagePortEEELm1EEEPNS6_INS7_INS5_11ArrayBufferEEELm1EEERb
   fun:_ZN5blinkL25handlePostMessageCallbackERKN2v89ArgumentsEb
   fun:_ZN5blink11V8DOMWindow19postMessageCallbackERKN2v89ArgumentsE
   fun:_ZN2v88internalL19HandleApiCallHelperILb0EEEPNS0_11MaybeObjectENS0_12_GLOBAL__N_116BuiltinArgumentsILNS0_21BuiltinExtraArgumentsE1EEEPNS0_7IsolateE
   fun:_ZN2v88internalL21Builtin_HandleApiCallENS0_12_GLOBAL__N_116BuiltinArgumentsILNS0_21BuiltinExtraArgumentsE1EEEPNS0_7IsolateE
}
{
   bug_124488
   Memcheck:Leak
   fun:malloc
   fun:strdup
   ...
   fun:_ZN34CopyTextureCHROMIUMResourceManager10InitializeEv
   fun:_ZN3gpu5gles216GLES2DecoderImpl10InitializeERK13scoped_refptrIN3gfx9GLSurfaceEERKS2_INS3_9GLContextEERKNS3_4SizeERKNS0_18DisallowedFeaturesEPKcRKSt6vectorIiSaIiEE
   fun:_ZN6webkit3gpu18GLInProcessContext10InitializeERKN3gfx4SizeEPS1_PKcPKiNS2_13GpuPreferenceE
   fun:_ZN6webkit3gpu18GLInProcessContext22CreateOffscreenContextEPS1_RKN3gfx4SizeES2_PKcPKiNS3_13GpuPreferenceE
   fun:_ZN6webkit3gpu46WebGraphicsContext3DInProcessCommandBufferImpl10InitializeEN5blink20WebGraphicsContext3D10AttributesEPS3_
}
{
   bug_124496
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN8notifier26ProxyResolvingClientSocket23ProcessProxyResolveDoneEi
}
{
   bug_127716
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN3gfx5ImageC1ERK8SkBitmap
   fun:_ZN16BrowserThemePack16LoadRawBitmapsToE*
   fun:_ZN16BrowserThemePack18BuildFromExtensionEPK9Extension
   fun:_ZN45BrowserThemePackTest_CanBuildAndReadPack_Test8TestBodyEv
}
{
   bug_130362
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN12invalidation20NewPermanentCallbackINS_22InvalidationClientImplES1_St4pairINS_6StatusESsEEEPN4base8CallbackIFvT1_EEEPT_MT0_FvS7_E
   fun:_ZN12invalidation22InvalidationClientImpl34ScheduleStartAfterReadingStateBlobEv
   fun:_ZN12invalidation22InvalidationClientImpl5StartEv
   fun:_ZN6syncer24SyncInvalidationListener5StartERKSsS2_S2_RKSt3mapIN8syncable9ModelTypeElSt4lessIS5_ESaISt4pairIKS5_lEEERKN12browser_sync10WeakHandleINS_24InvalidationStateTrackerEEEPNS0_8ListenerEPNS_11StateWriterE
   fun:_ZN6syncer20InvalidationNotifier17UpdateCredentialsERKSsS2_
   fun:_ZN6syncer31NonBlockingInvalidationNotifier4Core17UpdateCredentialsERKSsS3_
}
{
   bug_130449
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN12invalidation20NewPermanentCallbackINS_22InvalidationClientImplES1_St4pairINS_6StatusESsEEEPN4base8CallbackIFvT1_EEEPT_MT0_FvS7_E
   fun:_ZN12invalidation22InvalidationClientImpl34ScheduleStartAfterReadingStateBlobEv
   fun:_ZN12invalidation22InvalidationClientImpl5StartEv
   fun:_ZN6syncer24SyncInvalidationListener5StartERKSsS2_S2_RKSt3mapIN8syncable9ModelTypeElSt4lessIS5_ESaISt4pairIKS5_lEEERKN12browser_sync10WeakHandleINS_24InvalidationStateTrackerEEEPNS0_8ListenerE
   fun:_ZN6syncer20InvalidationNotifier17UpdateCredentialsERKSsS2_
   fun:_ZN6syncer31NonBlockingInvalidationNotifier4Core17UpdateCredentialsERKSsS3_
}
{
   bug_130619
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN5blink9ClipRects6createERKS0_
   fun:_ZN5blink11RenderLayer15updateClipRectsEPKS0_PNS_12RenderRegionENS_13ClipRectsTypeENS_29OverlayScrollbarSizeRelevancyE
   ...
   fun:_ZNK7blink11RenderLayer15parentClipRectsEPKS0_PNS_12RenderRegionENS_13ClipRectsTypeERNS_9ClipRectsENS_29OverlayScrollbarSizeRelevancyE
   fun:_ZNK7blink11RenderLayer18backgroundClipRectEPKS0_PNS_12RenderRegionENS_13ClipRectsTypeENS_29OverlayScrollbarSizeRelevancyE
}
{
   bug_138058
   Memcheck:Uninitialized
   ...
   fun:_ZN5blink12WebVTTParser22constructTreeFromTokenEPNS_8DocumentE
   fun:_ZN5blink12WebVTTParser33createDocumentFragmentFromCueTextERKN3WTF6StringE
   fun:_ZN5blink12TextTrackCue12getCueAsHTMLEv
   fun:_ZN5blink12TextTrackCue17updateDisplayTreeEf
   fun:_ZN5blink16HTMLMediaElement25updateActiveTextTrackCuesEf
}
{
   bug_138060
   Memcheck:Uninitialized
   fun:_NPN_EvaluateHelper
   fun:_NPN_Evaluate
   fun:_ZN5blink11WebBindings8evaluateEP4_NPPP8NPObjectP9_NPStringP10_NPVariant
   fun:_ZL13executeScriptPK12PluginObjectPKc
   fun:NPP_Destroy
   fun:_ZN6webkit5npapi14PluginInstance11NPP_DestroyEv
   fun:_ZN6webkit5npapi21WebPluginDelegateImpl15DestroyInstanceEv
   fun:_ZN6webkit5npapi21WebPluginDelegateImplD0Ev
   fun:_ZN6webkit5npapi21WebPluginDelegateImpl15PluginDestroyedEv
   fun:_ZN6webkit5npapi13WebPluginImpl22TearDownPluginInstanceEPN5blink12WebURLLoaderE
   fun:_ZN6webkit5npapi13WebPluginImpl12SetContainerEPN5blink18WebPluginContainerE
   fun:_ZN6webkit5npapi13WebPluginImpl7destroyEv
   fun:_ZN5blink22WebPluginContainerImplD0Ev
   fun:_ZN3WTF10RefCountedIN7blink6WidgetEE5derefEv
   fun:_ZNSt4pairIN3WTF6RefPtrIN7blink6WidgetEEEPNS2_9FrameViewEED1Ev
   fun:_ZN3WTF9HashTableINS_6RefPtrIN7blink6WidgetEEESt4pairIS4_PNS2_9FrameViewEENS_18PairFirstExtractorIS8_EENS_7PtrHashIS4_EENS_14PairHashTraitsINS_10HashTraitsIS4_EENSE_IS7_EEEESF_E15deallocateTableEPS8_i
   fun:_ZN3WTF9HashTableINS_6RefPtrIN7blink6WidgetEEESt4pairIS4_PNS2_9FrameViewEENS_18PairFirstExtractorIS8_EENS_7PtrHashIS4_EENS_14PairHashTraitsINS_10HashTraitsIS4_EENSE_IS7_EEEESF_ED1Ev
   fun:_ZN3WTF7HashMapINS_6RefPtrIN7blink6WidgetEEEPNS2_9FrameViewENS_7PtrHashIS4_EENS_10HashTraitsIS4_EENS9_IS6_EEED1Ev
   fun:_ZN5blink12RenderWidget28resumeWidgetHierarchyUpdatesEv
   fun:_ZN5blink7Element6detachEv
   fun:_ZN5blink13ContainerNode14detachChildrenEv
   fun:_ZN5blink13ContainerNode6detachEv
}
{
   bug_138220_a
   Memcheck:Uninitialized
   fun:_ZNK7blink16HTMLInputElement8dataListEv
   fun:_ZNK7blink16HTMLInputElement4listEv
   fun:_ZN5blink21RenderSliderContainer6layoutEv
   fun:_ZN5blink11RenderBlock16layoutBlockChildEPNS_9RenderBoxERNS0_10MarginInfoERNS_20FractionalLayoutUnitES6_
   fun:_ZN5blink11RenderBlock19layoutBlockChildrenEbRNS_20FractionalLayoutUnitE
   fun:_ZN5blink11RenderBlock11layoutBlockEbNS_20FractionalLayoutUnitE
   fun:_ZN5blink11RenderBlock6layoutEv
   fun:_ZN5blink12RenderSlider6layoutEv
}
{
   bug_138220_b
   Memcheck:Uninitialized
   fun:_ZNK7blink16HTMLInputElement8dataListEv
   fun:_ZNK7blink16HTMLInputElement4listEv
   fun:_ZN5blink11RenderTheme16paintSliderTicksEPNS_12RenderObjectERKNS_9PaintInfoERKNS_7IntRectE
   fun:_ZN5blink24RenderThemeChromiumLinux16paintSliderTrackEPNS_12RenderObjectERKNS_9PaintInfoERKNS_7IntRectE
   fun:_ZN5blink11RenderTheme5paintEPNS_12RenderObjectERKNS_9PaintInfoERKNS_7IntRectE
   fun:_ZN5blink9RenderBox19paintBoxDecorationsERNS_9PaintInfoERKNS_21FractionalLayoutPointE
   fun:_ZN5blink11RenderBlock11paintObjectERNS_9PaintInfoERKNS_21FractionalLayoutPointE
}
{
   bug_138233_a
   Memcheck:Leak
   fun:malloc
   fun:_ZN3WTF10fastMallocEm
   fun:_ZN3WTF10RefCountedIN7blink17ScriptProfileNodeEEnwEm
   fun:_ZN5blink17ScriptProfileNode6createEPKN2v814CpuProfileNodeE
   fun:_ZNK7blink13ScriptProfile4headEv
   fun:_ZN5blink23ScriptProfileV8InternalL14headAttrGetterEN2v85LocalINS1_6StringEEERKNS1_12AccessorInfoE
   fun:_ZN2v88internal8JSObject23GetPropertyWithCallbackEPNS0_6ObjectES3_PNS0_6StringE
   fun:_ZN2v88internal6Object11GetPropertyEPS1_PNS0_12LookupResultEPNS0_6StringEP18PropertyAttributes
   fun:_ZN2v88internal6LoadIC4LoadENS0_16InlineCacheStateENS0_6HandleINS0_6ObjectEEENS3_INS0_6StringEEE
   fun:_ZN2v88internal11LoadIC_MissENS0_9ArgumentsEPNS0_7IsolateE
}
{
   bug_138233_b
   Memcheck:Leak
   fun:malloc
   fun:_ZN3WTF10fastMallocEm
   fun:_ZN3WTF10RefCountedIN7blink17ScriptProfileNodeEEnwEm
   fun:_ZN5blink17ScriptProfileNode6createEPKN2v814CpuProfileNodeE
   fun:_ZNK7blink17ScriptProfileNode8childrenEv
   fun:_ZN5blink27ScriptProfileNodeV8InternalL16childrenCallbackERKN2v89ArgumentsE
}
{
   bug_138712
   Memcheck:Uninitialized
   fun:_ZN7testing8internal11CmpHelperGEIddEENS_15AssertionResultEPKcS4_RKT_RKT0_
   fun:_ZN3gfx30JPEGCodec_EncodeDecodeRGB_Test8TestBodyEv
}
{
   bug_144118_b
   Memcheck:Unaddressable
   fun:_ZNK3WTF6OwnPtrIN5blink14ScrollbarGroupEEcvMS3_PS2_Ev
   fun:_ZN5blink22WebPluginContainerImpl14reportGeometryEv
   fun:_ZN5blink22WebPluginContainerImpl12setFrameRectERKN7blink7IntRectE
   ...
   fun:_ZN9TestShell4dumpEv
}
{
   bug_144913_b
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN8chromeos17DBusThreadManager10InitializeEv
   fun:_ZN8chromeos23KioskModeIdleLogoutTest5SetUpEv
}
{
   bug_144913_c
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN8chromeos21DBusThreadManagerImplC1ENS_28DBusClientImplementationTypeE
   fun:_ZN8chromeos17DBusThreadManager10InitializeEv
   fun:_ZN8chromeos23KioskModeIdleLogoutTest5SetUpEv
}
{
   bug_144930_b
   Memcheck:Leak
   fun:_Znw*
   fun:_ZL21cachedDeviceLuminancef
}
{
   bug_145650a
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN14WebDataService10AddKeywordERK15TemplateURLData
   fun:_ZN18TemplateURLService11AddNoNotifyEP11TemplateURLb
}
{
   bug_145650b
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN14WebDataService13RemoveKeywordEl
   fun:_ZN18TemplateURLService14RemoveNoNotifyEP11TemplateURL
   fun:_ZN18TemplateURLService6RemoveEP11TemplateURL
   fun:_ZN9protector71DefaultSearchProviderChangeTest_CurrentSearchProviderRemovedByUser_Test19RunTestOnMainThreadEv
}
{
   bug_145650c
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN14WebDataService13UpdateKeywordERK15TemplateURLData
   fun:_ZN18TemplateURLService32SetDefaultSearchProviderNoNotifyEP11TemplateURL
}
{
   bug_125692a
   Memcheck:Uninitialized
   fun:_ZN2v88internal11StoreBuffer28IteratePointersInStoreBufferEPFvPPNS0_10HeapObjectES3_E
   fun:_ZN2v88internal11StoreBuffer25IteratePointersToNewSpaceEPFvPPNS0_10HeapObjectES3_E
   fun:_ZN2v88internal20MarkCompactCollector29EvacuateNewSpaceAndCandidatesEv
   fun:_ZN2v88internal20MarkCompactCollector11SweepSpacesEv
   fun:_ZN2v88internal20MarkCompactCollector14CollectGarbageEv
   fun:_ZN2v88internal4Heap11MarkCompactEPNS0_8GCTracerE
}
{
   bug_125692b
   Memcheck:Uninitialized
   fun:_ZN2v88internal11StoreBuffer7CompactEv
   fun:_ZN2v88internal11StoreBuffer19PrepareForIterationEv
   fun:_ZN2v88internal11StoreBuffer25IteratePointersToNewSpaceEPFvPPNS0_10HeapObjectES3_E
   fun:_ZN2v88internal20MarkCompactCollector29EvacuateNewSpaceAndCandidatesEv
   fun:_ZN2v88internal20MarkCompactCollector11SweepSpacesEv
   fun:_ZN2v88internal20MarkCompactCollector14CollectGarbageEv
   fun:_ZN2v88internal4Heap11MarkCompactEPNS0_8GCTracerE
   fun:_ZN2v88internal4Heap24PerformGarbageCollectionENS0_16GarbageCollectorEPNS0_8GCTracerE
   fun:_ZN2v88internal4Heap14CollectGarbageENS0_15AllocationSpaceENS0_16GarbageCollectorEPKcS5_
   fun:_ZN2v88internal4Heap14CollectGarbageENS0_15AllocationSpaceEPKc
   fun:_ZN2v88internal4Heap17CollectAllGarbageEiPKc
   fun:_ZN2v88internal4Heap16IdleNotificationEi
   fun:_ZN2v88internal2V816IdleNotificationEi
   fun:_ZN2v82V816IdleNotificationEi
   fun:_ZN16RenderThreadImpl11IdleHandlerEv
}
{
   bug_145693
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN10extensions18PermissionsUpdater17RecordOAuth2GrantEPKNS_9ExtensionE
   fun:_ZN10extensions18PermissionsUpdater22GrantActivePermissionsEPKNS_9ExtensionEb
   fun:_ZN10extensions12CrxInstaller25ReportSuccessFromUIThreadEv
}
{
   bug_145695
   Memcheck:Leak
   fun:malloc
   fun:NaClDescImcBoundDescAcceptConn
   fun:RevRpcHandlerBase
   fun:NaClThreadInterfaceStart
}
{
   bug_145696
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN10extensions9TabHelper23OnInlineWebstoreInstallEiiRKSsRK4GURL
}
{
   bug_145697
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN18SecurityFilterPeer40CreateSecurityFilterPeerForDeniedRequestEN12ResourceType4TypeEPN11webkit_glue20ResourceLoaderBridge4PeerEi
   fun:_ZN12_GLOBAL__N_124RendererResourceDelegate17OnRequestCompleteEPN11webkit_glue20ResourceLoaderBridge4PeerEN12ResourceType4TypeERKN3net16URLRequestStatusE
   fun:_ZN7content18ResourceDispatcher17OnRequestCompleteEiRKN3net16URLRequestStatusERKSsRKN4base9TimeTicksE
}
{
   bug_145699
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN17OAuth2ApiCallFlow24CreateAccessTokenFetcherEv
   fun:_ZN17OAuth2ApiCallFlow20BeginMintAccessTokenEv
   fun:_ZN17OAuth2ApiCallFlow12BeginApiCallEv
   fun:_ZN17OAuth2ApiCallFlow5StartEv
   fun:_ZN19OAuth2MintTokenFlow13FireAndForgetEv
}
{
   bug_145703
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN7content16SiteInstanceImpl10GetProcessEv
   fun:_ZN7content*Render*SiteInstance*
   fun:_ZN7content*Render*SiteInstance*
   ...
   fun:_ZN7content15WebContentsImpl4InitERKNS_11WebContents12CreateParamsE
}
{
   bug_145708
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN27ExtensionDevToolsClientHostC1EPN7content11WebContentsERKSsS4_i
   fun:_ZN22AttachDebuggerFunction7RunImplEv
   fun:_ZN17ExtensionFunction3RunEv
   fun:_ZN27ExtensionFunctionDispatcher8DispatchERK31ExtensionHostMsg_Request_ParamsPN7content14RenderViewHostE
   fun:_ZN10extensions13ExtensionHost9OnRequestERK31ExtensionHostMsg_Request_Params
}
{
   bug_145712
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN5blink25NotificationPresenterImpl17requestPermissionEPN7blink22ScriptExecutionContextEN3WTF10PassRefPtrINS1_12VoidCallbackEEE
   fun:_ZN5blink18NotificationCenter17requestPermissionEN3WTF10PassRefPtrINS_12VoidCallbackEEE
   fun:_ZN5blink20V8NotificationCenter25requestPermissionCallbackERKN2v89ArgumentsE
}
{
   bug_145723
   Memcheck:Leak
   fun:_Znw*
   fun:_Z20NewExtensionFunctionI25TabsExecuteScriptFunctionEP17ExtensionFunctionv
   fun:_ZN25ExtensionFunctionRegistry11NewFunctionERKSs
   fun:_ZN27ExtensionFunctionDispatcher23CreateExtensionFunctionERK31ExtensionHostMsg_Request_ParamsPKN10extensions9ExtensionEiRKNS3_10ProcessMapEPNS3_12ExtensionAPIEPvPN3IPC6SenderEPN7content14RenderViewHostEi
   fun:_ZN27ExtensionFunctionDispatcher8DispatchERK31ExtensionHostMsg_Request_ParamsPN7content14RenderViewHostE
   fun:_ZN10extensions13ExtensionHost9OnRequestERK31ExtensionHostMsg_Request_Params
}
{
   bug_145735
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN9__gnu_cxx13new_allocatorIcE8allocateEmPKv
   fun:_ZNSt12_Vector_baseIcSaIcEE11_M_allocateEm
   fun:_ZNSt12_Vector_baseIcSaIcEEC2EmRKS0_
   fun:_ZNSt6vectorIcSaIcEEC1EmRKcRKS0_
   fun:_ZN4base5files12_GLOBAL__N_121InotifyReaderCallbackEPNS1_13InotifyReaderEii
}
{
   bug_146950
   Memcheck:Leak
   fun:malloc
   fun:get_peer_sock_name
   fun:_xcb_get_auth_info
   fun:xcb_connect_to_display_with_auth_info
   fun:_XConnectXCB
   fun:XOpenDisplay
   fun:_ZN4base18MessagePumpAuraX1118GetDefaultXDisplayEv
}
{
   bug_162825
   Memcheck:Uninitialized
   fun:bcmp
   fun:_ZNK3gpu5gles221ShaderTranslatorCache26ShaderTranslatorInitParamsltERKS2_
   fun:_ZNKSt4lessIN3gpu5gles221ShaderTranslatorCache26ShaderTranslatorInitParams*
   ...
   fun:*ShaderTranslatorInitParams*
   ...
   fun:_ZN3gpu5gles216GLES2DecoderImpl26InitializeShaderTranslatorEv
}
{
   bug_163922
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN10extensions16SettingsFrontendC1ERK13scoped_refptrINS_22SettingsStorageFactoryEEP7Profile
   fun:_ZN10extensions16SettingsFrontend6CreateEP7Profile
   fun:_ZN16ExtensionServiceC1E*
   fun:_ZN10extensions19ExtensionSystemImpl6Shared4InitEb
   fun:_ZN10extensions19ExtensionSystemImpl21InitForRegularProfileEb
   fun:_ZN14ProfileManager22DoFinalInitForServicesEP7Profileb
   fun:_ZN14ProfileManager11DoFinalInitEP7Profileb
   fun:_ZN14ProfileManager10AddProfileEP7Profile
   fun:_ZN14ProfileManager10GetProfileE*
}
{
   bug_163924
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN28JSONAsynchronousUnpackerImpl22StartProcessOnIOThreadEN7content13BrowserThread2IDERKSs
}
{
   bug_164176
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN18BrowserProcessImpl21PreMainMessageLoopRunEv
   fun:_ZN22ChromeBrowserMainParts25PreMainMessageLoopRunImplEv
   fun:_ZN22ChromeBrowserMainParts21PreMainMessageLoopRunEv
   fun:_ZN7content15BrowserMainLoop13CreateThreadsEv
   fun:_ZN7content21BrowserMainRunnerImpl10InitializeERKNS_18MainFunctionParamsE
   fun:_ZN7content11BrowserMainERKNS_18MainFunctionParamsE
   fun:_ZN7content23RunNamedProcessTypeMainERKSsRKNS_18MainFunctionParamsEPNS_19ContentMainDelegateE
   fun:_ZN7content21ContentMainRunnerImpl3RunEv
   fun:_ZN7content11ContentMainEiPPKcPNS_19ContentMainDelegateE
   fun:ChromeMain
}
{
   bug_164179
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN3net10URLFetcher6CreateERK4GURLNS0_11RequestTypeEPNS_18URLFetcherDelegateE
   fun:_ZN18WebResourceService10StartFetchEv
}
{
   bug_166819
   Memcheck:Leak
   fun:_Znw*
   fun:_ZNK3sql10Connection21GetUntrackedStatementEPKc
   fun:_ZNK3sql10Connection21DoesTableOrIndexExistEPKcS2_
   fun:_ZNK3sql10Connection14DoesTableExistEPKc
   fun:_ZN3sql9MetaTable14DoesTableExistEPNS_10ConnectionE
   ...
   fun:_ZN7history16TopSitesDatabase4InitE*
   fun:_ZN7history15TopSitesBackend16InitDBOnDBThreadE*
}
{
   bug_166819b
   Memcheck:Leak
   fun:_Znw*
   fun:_ZNK3sql10Connection21GetUntrackedStatementEPKc
   fun:_ZNK3sql10Connection21DoesTableOrIndexExistEPKcS2_
   fun:_ZNK3sql10Connection14DoesTableExistEPKc
   fun:_ZN7history17ShortcutsDatabase11EnsureTableEv
   fun:_ZN7history17ShortcutsDatabase4InitEv
   fun:_ZN7history16ShortcutsBackend12InitInternalEv
}
{
   bug_167175a
   Memcheck:Leak
   ...
   fun:g_*
   ...
   fun:_ZN16BrowserWindowGtk11InitWidgetsEv
   fun:_ZN16BrowserWindowGtk4InitEv
   fun:_ZN13BrowserWindow19CreateBrowserWindowEP7Browser
}
{
   bug_167175b
   Memcheck:Leak
   fun:malloc
   obj:/lib/libpng12.so.0.42.0
   fun:png_create_read_struct_2
   ...
   fun:_ZN15ReloadButtonGtkC1EP18LocationBarViewGtkP7Browser
   fun:_ZN17BrowserToolbarGtk4InitEP10_GtkWindow
   fun:_ZN16BrowserWindowGtk11InitWidgetsEv
   fun:_ZN16BrowserWindowGtk4InitEv
   fun:_ZN13BrowserWindow19CreateBrowserWindowEP7Browser
}
{
   bug_167175d
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN9__gnu_cxx13new_allocatorISbItN4base20string16_char_traitsESaItEEE8allocateEmPKv
   fun:_ZNSt12_Vector_baseISbItN4base20string16_char_traitsESaItEESaIS3_EE11_M_allocateEm
   ...
   fun:_ZN15WrenchMenuModel5BuildEbb
   fun:_ZN15WrenchMenuModelC1EPN2ui19AcceleratorProviderEP7Browserbb
   fun:_ZN17BrowserToolbarGtkC1EP7BrowserP16BrowserWindowGtk
   fun:_ZN16BrowserWindowGtk11InitWidgetsEv
   fun:_ZN16BrowserWindowGtk4InitEv
   fun:_ZN13BrowserWindow19CreateBrowserWindowEP7Browser
}
{
   bug_172005
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN7leveldb10VersionSet11LogAndApplyEPNS_11VersionEditEPNS_4port5MutexE
   fun:_ZN7leveldb2DB4OpenERKNS_7OptionsERKSsPPS0_
   fun:_ZN11dom_storage22SessionStorageDatabase9TryToOpenEPPN7leveldb2DBE
   fun:_ZN11dom_storage22SessionStorageDatabase8LazyOpenEb
   fun:_ZN11dom_storage22SessionStorageDatabase24ReadNamespacesAndOriginsEPSt3mapISsSt6vectorI4GURLSaIS3_EESt4lessISsESaISt4pairIKSsS5_EEE
   fun:_ZN11dom_storage17DomStorageContext36FindUnusedNamespacesInCommitSequenceERKSt3setISsSt4lessISsESaISsEES7_
}
{
   bug_172005b
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN7leveldb6DBImplC1ERKNS_7OptionsERKSs
   fun:_ZN7leveldb2DB4OpenERKNS_7OptionsERKSsPPS0_
   fun:_ZN11dom_storage22SessionStorageDatabase9TryToOpenEPPN7leveldb2DBE
   fun:_ZN11dom_storage22SessionStorageDatabase8LazyOpenEb
   fun:_ZN11dom_storage22SessionStorageDatabase24ReadNamespacesAndOriginsEPSt3mapISsSt6vectorI4GURLSaIS3_EESt4lessISsESaISt4pairIKSsS5_EEE
   fun:_ZN11dom_storage17DomStorageContext36FindUnusedNamespacesInCommitSequenceERKSt3setISsSt4lessISsESaISsEES7_
}
{
   bug_175823
   Memcheck:Leak
   ...
   fun:_ZN18ValueStoreFrontend*
}
{
   bug_176616_a
   Memcheck:Uninitialized
   fun:_ZN13WebTestRunner16WebTestProxyBase19didCreateDataSourceEPN5blink8WebFrameEPNS1_13WebDataSourceE
   fun:_ZN13WebTestRunner12WebTestProxyI11WebViewHostP9TestShellE19didCreateDataSourceEPN5blink8WebFrameEPNS5_13WebDataSourceE
   fun:_ZN5blink21FrameLoaderClientImpl20createDocumentLoaderERKN7blink15ResourceRequestERKNS1_14SubstituteDataE
   fun:_ZN5blink11FrameLoader4initEv
   fun:_ZN5blink5Frame4initEv
   fun:_ZN5blink12WebFrameImpl21initializeAsMainFrameEPN7blink4PageE
   fun:_ZN5blink11WebViewImpl19initializeMainFrameEPNS_14WebFrameClientE
   fun:_ZN9TestShell15createNewWindowERKN5blink6WebURLEP16DRTDevToolsAgentPN13WebTestRunner17WebTestInterfacesE
   fun:_ZN9TestShell16createMainWindowEv
   fun:_ZN9TestShell10initializeEP25MockWebKitPlatformSupport
}
{
   bug_176616_b
   Memcheck:Uninitialized
   fun:_ZN13WebTestRunner10TestRunner5resetEv
   fun:_ZN13WebTestRunner14TestInterfaces8resetAllEv
   fun:_ZN13WebTestRunner17WebTestInterfaces8resetAllEv
   fun:_ZN9TestShell19resetTestControllerEv
   fun:_ZL7runTestR9TestShellR10TestParamsRKSsb
}
{
   bug_176619_a
   Memcheck:Uninitialized
   fun:_ZN3WTF6StringC1EPKt
   fun:_ZN5blink12WebVTTParser22constructTreeFromTokenEPNS_8DocumentE
   fun:_ZN5blink12WebVTTParser33createDocumentFragmentFromCueTextERKN3WTF6StringE
   fun:_ZN5blink12TextTrackCue20createWebVTTNodeTreeEv
   fun:_ZN5blink12TextTrackCue22createCueRenderingTreeEv
   fun:_ZN5blink12TextTrackCue17updateDisplayTreeEf
}
{
   bug_176619_b
   Memcheck:Uninitialized
   fun:_ZN5blink12WebVTTParser13collectDigitsERKN3WTF6StringEPj
   fun:_ZN5blink12WebVTTParser16collectTimeStampERKN3WTF6StringEPj
   fun:_ZN5blink12WebVTTParser22constructTreeFromTokenEPNS_8DocumentE
   fun:_ZN5blink12WebVTTParser33createDocumentFragmentFromCueTextERKN3WTF6StringE
   fun:_ZN5blink12TextTrackCue20createWebVTTNodeTreeEv
   fun:_ZN5blink12TextTrackCue22createCueRenderingTreeEv
   fun:_ZN5blink12TextTrackCue17updateDisplayTreeEf
}
{
   bug_176621
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN13WebTestRunner10TestPlugin6createEPN5blink8WebFrameERKNS1_15WebPluginParamsEPNS_15WebTestDelegateE
   fun:_ZN13WebTestRunner16WebTestProxyBase12createPluginEPN5blink8WebFrameERKNS1_15WebPluginParamsE
   fun:_ZN13WebTestRunner12WebTestProxyI11WebViewHostP9TestShellE12createPluginEPN5blink8WebFrameERKNS5_15WebPluginParamsE
   fun:_ZN5blink21FrameLoaderClientImpl12createPluginERKN7blink7IntSizeEPNS1_17HTMLPlugInElementERKNS1_4KURLERKN3WTF6VectorINSA_6String*
   fun:_ZN5blink14SubframeLoader10loadPluginEPNS_22HTMLPlugInImageElementERKNS_4KURLERKN3WTF6StringERKNS6_6VectorIS7*
}
{
   bug_176891a
   Memcheck:Leak
   fun:calloc
   fun:nss_ZAlloc
   fun:nssCryptokiObject_Create
   fun:create_objects_from_handles
   fun:find_objects
   fun:find_objects_by_template
   fun:nssToken_FindCertificateByEncodedCertificate
   fun:PK11_FindCertFromDERCertItem
   fun:_ZN24mozilla_security_manager12_GLOBAL__N_125nsPKCS12Blob_ImportHelper*
}
{
   bug_176891b
   Memcheck:Leak
   ...
   fun:nssPKIObject_Create
   fun:nssTrustDomain_FindTrustForCertificate
   fun:STAN_DeleteCertTrustMatchingSlot
   fun:SEC_DeletePermCertificate
}
{
   bug_177213
   Memcheck:Leak
   ...
   fun:_ZN10extensionsL9SerializeERKSt6vectorINS_10UserScriptESaIS1_EE
}
{
   bug_179758_a
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN4base54WeakPtrTest_NonOwnerThreadCanCopyAndAssignWeakPtr_Test8TestBodyEv
}
{
   bug_179758_b
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN4base58WeakPtrTest_NonOwnerThreadCanCopyAndAssignWeakPtrBase_Test8TestBodyEv
}
{
   bug_181680b
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN5blink11ScriptState10forContextEN2v86HandleINS1_7ContextEEE
   fun:_ZN5blink17ScriptDebugServer18handleProgramBreakEN2v86HandleINS1_6ObjectEEENS2_INS1_5ValueEEENS2_INS1_5ArrayEEE
}
{
   bug_195160_a
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIiEE8allocateEmPKv
   fun:_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE11_M_get_nodeEv
   fun:_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE14_M_create_nodeERKi
   fun:_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE10_M_insert_EPKSt18_Rb_tree_node_baseS8_RKi
   fun:_ZNSt8_Rb_treeIiiSt9_IdentityIiESt4lessIiESaIiEE16_M_insert_uniqueERKi
   fun:_ZNSt3setIiSt4lessIiESaIiEE6insertERKi
   fun:_ZN10extensions10URLMatcher14UpdateTriggersEv
   fun:_ZN10extensions10URLMatcher28UpdateInternalDatastructuresEv
   fun:_ZN10extensions10URLMatcher16AddConditionSetsERKSt6vectorI13scoped_refptrINS_22URLMatcherConditionSetEESaIS4_EE
   fun:_ZN12_GLOBAL__N_113FilterBuilder5BuildEv
   fun:_ZN12_GLOBAL__N_134LoadWhitelistsOnBlockingPoolThreadE12ScopedVectorI19ManagedModeSiteListE
}
{
   bug_195160_b
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeIPN10extensions13StringPatternEEE8allocateEmPKv
   fun:_ZNSt8_Rb_treeIPN10extensions13StringPatternES2_St9_IdentityIS2_ENS0_26URLMatcherConditionFactory27StringPatternPointerCompareESaIS2_EE11_M_get_nodeEv
   fun:_ZNSt8_Rb_treeIPN10extensions13StringPatternES2_St9_IdentityIS2_ENS0_26URLMatcherConditionFactory27StringPatternPointerCompareESaIS2_EE14_M_create_nodeERKS2_
   fun:_ZNSt8_Rb_treeIPN10extensions13StringPatternES2_St9_IdentityIS2_ENS0_26URLMatcherConditionFactory27StringPatternPointerCompareESaIS2_EE10_M_insert_EPKSt18_Rb_tree_node_baseSB_RKS2_
   fun:_ZNSt8_Rb_treeIPN10extensions13StringPatternES2_St9_IdentityIS2_ENS0_26URLMatcherConditionFactory27StringPatternPointerCompareESaIS2_EE16_M_insert_uniqueERKS2_
   fun:_ZNSt3setIPN10extensions13StringPatternENS0_26URLMatcherConditionFactory27StringPatternPointerCompareESaIS2_EE6insertERKS2_
   fun:_ZN10extensions26URLMatcherConditionFactory15CreateConditionENS_19URLMatcherCondition9CriterionERKSs
   fun:_ZN10extensions26URLMatcherConditionFactory35CreateHostSuffixPathPrefixConditionERKSsS2_
   fun:_ZN6policy12URLBlacklist18CreateConditionSetEPN10extensions10URLMatcherEiRKSsS5_btS5_
   fun:_ZN12_GLOBAL__N_113FilterBuilder10AddPatternERKSsi
   fun:_ZN12_GLOBAL__N_113FilterBuilder11AddSiteListEP19ManagedModeSiteList
   fun:_ZN12_GLOBAL__N_134LoadWhitelistsOnBlockingPoolThreadE12ScopedVectorI19ManagedModeSiteListE
}
{
   bug_195160_c
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN4base8internal20PostTaskAndReplyImpl16PostTaskAndReplyERKN15tracked_objects8LocationERKNS_8CallbackIFvvEEESA_
   fun:_ZN4base10TaskRunner16PostTaskAndReplyERKN15tracked_objects8LocationERKNS_8CallbackIFvvEEES9_
   fun:_ZN4base26PostTaskAndReplyWithResultI10scoped_ptrIN20ManagedModeURLFilter8ContentsENS_14DefaultDeleterIS3_EEES6_EEbPNS_10TaskRunnerERKN15tracked_objects8LocationERKNS_8CallbackIFT_vEEERKNSD_IFvT0_EEE
   fun:_ZN20ManagedModeURLFilter14LoadWhitelistsE12ScopedVectorI19ManagedModeSiteListE
}
{
   bug_222876
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN21WebDataServiceWrapperC1EP7Profile
   fun:_ZNK21WebDataServiceFactory23BuildServiceInstanceForEPN7content14BrowserContextE
   fun:_ZN33BrowserContextKeyedServiceFactory27GetServiceForBrowserContextEPN7content14BrowserContextEb
   fun:_ZN21WebDataServiceFactory13GetForProfileEP7ProfileNS0_17ServiceAccessTypeE
   ...
   fun:_ZN12TokenService10InitializeEPKcP7Profile
}
{
   bug_222883
   Memcheck:Uninitialized
   fun:_ZN2v88internal15ScavengeVisitor15ScavengePointerEPPNS0_6Object*
   fun:_ZN2v88internal15ScavengeVisitor13VisitPointersEPPNS0_6ObjectES4_
   fun:_ZNK2v88internal13StandardFrame18IterateExpressionsEPNS0_13ObjectVisitorE
   ...
   fun:_ZN2v88internal4Heap8ScavengeEv
   fun:_ZN2v88internal4Heap24PerformGarbageCollectionENS0_16GarbageCollector*
}
{
   bug_225028
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN31SafeBrowsingDatabaseFactoryImpl26CreateSafeBrowsingDatabaseEbbbb
   fun:_ZN20SafeBrowsingDatabase6CreateEbbbb
   fun:_ZN27SafeBrowsingDatabaseManager11GetDatabaseEv
}
{
   bug_226254
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN4base4BindIMN10extensions16UserScriptMaster14ScriptReloader*
   fun:_ZN10extensions16UserScriptMaster14ScriptReloader9StartLoad*
   fun:_ZN10extensions16UserScriptMaster9StartLoadEv
   fun:_ZN10extensions16UserScriptMaster7ObserveEiRKN7content18NotificationSourceERKNS1_19NotificationDetailsE
}
{
   bug_234845
   Memcheck:Leak
   fun:malloc
   fun:PORT_Alloc_Util
   fun:pk11_CreateSymKey
   fun:PK11_KeyGenWithTemplate
   fun:pk11_TokenKeyGenWithFlagsAndKeyType
   fun:pk11_RawPBEKeyGenWithKeyType
   fun:PK11_PBEKeyGen
   fun:PK11_ExportEncryptedPrivKeyInfo
   fun:_ZN6crypto12ECPrivateKey25ExportEncryptedPrivateKeyERKSsiPSt6vectorIhSaIhEE
}
{
   bug_235584
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN4base4Bind*
   fun:_ZN3net18SSLClientSocketNSS4Core21OnHandshakeIOCompleteEi
   fun:_ZN3net18SSLClientSocketNSS4Core28OnGetDomainBoundCertCompleteEi
}
{
   bug_236791
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN3ash4test53FocusCyclerTest_CycleFocusThroughWindowWithPanes_Test8TestBodyEv
}
{
   bug_239141
   Memcheck:Leak
   fun:malloc
   ...
   fun:_ZN3WTF9BitVector13OutOfLineBits6createEm
   fun:_ZN3WTF9BitVector15resizeOutOfLineEm
   fun:_ZN3WTF9BitVector10ensureSizeEm
   fun:_ZN3WTF9BitVectorC*
   ...
   fun:_ZN5blink10UseCounter17recordMeasurementENS0_7FeatureE
}
{
   bug_242672
   Memcheck:Leak
   fun:malloc
   ...
   fun:_ZN3WTF9BitVector13OutOfLineBits6createEm
   fun:_ZN3WTF9BitVector15resizeOutOfLineEm
   fun:_ZN3WTF9BitVector10ensureSizeEm
   fun:_ZN5blink10UseCounterC1Ev
   fun:_ZN5blink4PageC1ERNS0_11PageClientsE
}
{
   bug_245714
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN7content17WorkerServiceImplC1Ev
   fun:_ZN22DefaultSingletonTraitsIN7content17WorkerServiceImplEE3NewEv
   fun:_ZN9SingletonIN7content17WorkerServiceImplE22DefaultSingletonTraitsIS1_ES1_E3getEv
   fun:_ZN7content17WorkerServiceImpl11GetInstanceEv
   fun:_ZN7content19WorkerMessageFilter16OnChannelClosingEv
   fun:_ZN3IPC12ChannelProxy7Context15OnChannelClosedEv
}
{
   bug_245714b
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN7content17WorkerServiceImplC1Ev
   fun:_ZN22DefaultSingletonTraitsIN7content17WorkerServiceImplEE3NewEv
   fun:_ZN9SingletonIN7content17WorkerServiceImplE22DefaultSingletonTraitsIS1_ES1_E3getEv
   fun:_ZN7content17WorkerServiceImpl11GetInstanceEv
   fun:_ZN7content22ResourceRequestDetailsC1EPKN3net10URLRequestEi
   fun:_ZN7content26ResourceDispatcherHostImpl18DidReceiveResponseEPNS_14ResourceLoaderE
   fun:_ZN7content14ResourceLoader23CompleteResponseStartedEv
   fun:_ZN7content14ResourceLoader17OnResponseStartedEPN3net10URLRequestE
   fun:_ZN3net10URLRequest21NotifyResponseStartedEv
}
{
   bug_245714c
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN7content17WorkerServiceImplC1Ev
   fun:_ZN22DefaultSingletonTraitsIN7content17WorkerServiceImplEE3NewEv
   fun:_ZN9SingletonIN7content17WorkerServiceImplE22DefaultSingletonTraitsIS1_ES1_E3getEv
   fun:_ZN7content17WorkerServiceImpl11GetInstanceEv
   fun:_ZN7content22ResourceRequestDetailsC1EPKN3net10URLRequestEi
   fun:_ZN7content23ResourceRedirectDetailsC1EPKN3net10URLRequestEiRK4GURL
   fun:_ZN7content26ResourceDispatcherHostImpl18DidReceiveRedirectEPNS_14ResourceLoaderERK4GURL
   fun:_ZN7content14ResourceLoader18OnReceivedRedirectEPN3net10URLRequestERK4GURLPb
   fun:_ZN3net10URLRequest22NotifyReceivedRedirectERK4GURLPb
   fun:_ZN3net13URLRequestJob21NotifyHeadersCompleteEv
   fun:_ZN3net17URLRequestHttpJob21NotifyHeadersCompleteEv
   fun:_ZN3net17URLRequestHttpJob14SaveNextCookieEv
   fun:_ZN3net17URLRequestHttpJob35SaveCookiesAndNotifyHeadersCompleteEi
   fun:_ZN3net17URLRequestHttpJob16OnStartCompletedEi
}
{
   bug_245828
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN4base8internal20PostTaskAndReplyImpl16PostTaskAndReplyERKN15tracked_objects8LocationERKNS_8CallbackIFvvEEESA_
   fun:_ZN4base10TaskRunner16PostTaskAndReplyERKN15tracked_objects8LocationERKNS_8CallbackIFvvEEES9_
   fun:_ZN7content13BrowserThread16PostTaskAndReplyENS0_2IDERKN15tracked_objects8LocationERKN4base8CallbackIFvvEEESB_
}
{
   bug_245866
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN4base23EnsureProcessTerminatedEi
   fun:_ZN7content6Zygote17HandleReapRequestEiRK6Pickle14PickleIterator
   fun:_ZN7content6Zygote24HandleRequestFromBrowserEi
   fun:_ZN7content6Zygote15ProcessRequestsEv
   fun:_ZN7content10ZygoteMainERKNS_18MainFunctionParamsEPNS_18ZygoteForkDelegateE
   fun:_ZN7content9RunZygoteERKNS_18MainFunctionParamsEPNS_19ContentMainDelegateE
   fun:_ZN7content23RunNamedProcessTypeMainERKSsRKNS_18MainFunctionParamsEPNS_19ContentMainDelegateE
   fun:_ZN7content21ContentMainRunnerImpl3RunEv
   fun:_ZN7content11ContentMainEiPPKcPNS_19ContentMainDelegateE
}
{
   bug_250529_a
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN14TestingProfile20CreateRequestContextEv
   fun:_ZN12_GLOBAL__N_130ProfileSyncServiceTypedUrlTest5SetUpEv
}
{
   bug_250529_b
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN14TestingProfile20CreateRequestContextEv
   fun:_ZN30ProfileSyncServicePasswordTest5SetUpEv
}
{
   bug_250533_b
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN3net18HttpNetworkSessionC1ERKNS0_6ParamsE
   fun:_ZN11jingle_glue26ProxyResolvingClientSocketC1EPN3net19ClientSocketFactoryERK13scoped_refptrINS1_23URLRequestContextGetterEERKNS1_9SSLConfigERKNS1_12HostPortPairE
   fun:_ZN11jingle_glue23XmppClientSocketFactory27CreateTransportClientSocketERKN3net12HostPortPairE
   fun:_ZN11jingle_glue17ChromeAsyncSocket7ConnectERKN9talk_base13SocketAddressE
}
{
   bug_251034
   Memcheck:Leak
   ...
   fun:_ZN3gpu5gles216ShaderTranslator4InitE12ShShaderType12ShShaderSpecPK18ShBuiltInResourcesNS0_25ShaderTranslatorInterface22GlslImplementationTypeENS7_27GlslBuiltInFunctionBehaviorE
   fun:_ZN3gpu5gles221ShaderTranslatorCache13GetTranslatorE12ShShaderType12ShShaderSpecPK18ShBuiltInResourcesNS0_25ShaderTranslatorInterface22GlslImplementationTypeENS7_27GlslBuiltInFunctionBehaviorE
   fun:_ZN3gpu5gles216GLES2DecoderImpl26InitializeShaderTranslatorEv
   fun:_ZN3gpu5gles216GLES2DecoderImpl10InitializeERK13scoped_refptrIN3gfx9GLSurfaceEERKS2_INS3_9GLContextEEbRKNS3_4SizeERKNS0_18DisallowedFeaturesEPKcRKSt6vectorIiSaIiEE
   fun:_ZN3gpu22InProcessCommandBuffer21InitializeOnGpuThreadEbmRKN3gfx4SizeEPKcRKSt6vectorIiSaIiEENS1_13GpuPreferenceE
}
{
   bug_252054
   Memcheck:Unaddressable
   fun:_ZNK7blink32PlatformSpeechSynthesisUtterance6clientEv
   fun:_ZN5blink15SpeechSynthesis17didFinishSpeakingEN3WTF10PassRefPtrINS_32PlatformSpeechSynthesisUtteranceEEE
   fun:_ZN5blink29PlatformSpeechSynthesizerMock16speakingFinishedEPNS_5TimerIS0_EE
   fun:_ZN5blink5TimerINS_29PlatformSpeechSynthesizerMockEE5firedEv
   fun:_ZN5blink12ThreadTimers24sharedTimerFiredInternalEv
   fun:_ZN5blink12ThreadTimers16sharedTimerFiredEv
   fun:_ZN11webkit_glue25WebKitPlatformSupportImpl9DoTimeoutEv
}
{
   bug_252036
   Memcheck:Uninitialized
   fun:_ZN2cc9Scheduler27SetupNextBeginFrameIfNeededEv
   fun:_ZN2cc9Scheduler23ProcessScheduledActionsEv
}
{
   bug_252241_a
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN7content19BlinkTestController20PrepareForLayoutTestERK4GURLRKN4base8FilePathEbRKSs
   fun:_Z16ShellBrowserMainRKN7content18MainFunctionParams*
   fun:_ZN7content17ShellMainDelegate10RunProcessERKSsRKNS_18MainFunctionParamsE
   fun:_ZN7content23RunNamedProcessTypeMainERKSsRKNS_18MainFunctionParamsEPNS_19ContentMainDelegateE
   fun:_ZN7content21ContentMainRunnerImpl3RunEv
   fun:_ZN7content11ContentMainEiPPKcPNS_19ContentMainDelegateE
}
{
   bug_252241_b
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN7content19ContentMainDelegate26CreateContentUtilityClientEv
   fun:_ZN7content24ContentClientInitializer3SetERKSsPNS_19ContentMainDelegateE
   fun:_ZN7content21ContentMainRunnerImpl10InitializeEiPPKcPNS_19ContentMainDelegateE
   fun:_ZN7content11ContentMainEiPPKcPNS_19ContentMainDelegateE
}
{
   bug_252641_a
   Memcheck:Uninitialized
   fun:pthread_rwlock_init$UNIX2003
   fun:_ZN3re25MutexC2Ev
   fun:_ZN3re25MutexC1Ev
   ...
   fun:_ZN11leveldb_env19ParseMethodAndErrorEPKcPNS_8MethodIDEPi
}
{
   bug_252641_b
   Memcheck:Uninitialized
   fun:pthread_rwlock_init$UNIX2003
   fun:_ZN3re25MutexC2Ev
   fun:_ZN3re25MutexC1Ev
   ...
   fun:_ZN3gpu12_GLOBAL__N_114StringMismatchERKSsS2_
}
{
   bug_258132a
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN5ppapi5proxy15PPP_Class_Proxy19CreateProxiedObjectEPK18PPB_Var_DeprecatedPNS0_10DispatcherEill
   fun:_ZN5ppapi5proxy24PPB_Var_Deprecated_Proxy27OnMsgCreateObjectDeprecatedEillNS0_24SerializedVarReturnValueE
}
{
   bug_258132b
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN5ppapi5proxy26PluginProxyMultiThreadTest7RunTestEv
   fun:_ZN5ppapi*ThreadAwareCallback*Test_*
}
{
   bug_259357d
   Memcheck:Uninitialized
   ...
   fun:_ZN3gpu5gles239ShaderTranslatorTest_OptionsString_Test8TestBodyEv
}
{
   bug_259357f
   Memcheck:Uninitialized
   fun:_ZNK3gpu12AsyncAPIMock6IsArgsclEPKv
   fun:_ZNK7testing8internal12TrulyMatcherIN3gpu12AsyncAPIMock6IsArgsEE15MatchAndExplainIPKvEEbRT_PNS_19MatchResultListenerE
   fun:_ZNK7testing18PolymorphicMatcherINS_8internal12TrulyMatcherIN3gpu12AsyncAPIMock6IsArgsEEEE15MonomorphicImplIPKvE15MatchAndExplainESA_PNS_19MatchResultListenerE
   fun:_ZNK7testing8internal11MatcherBaseIPKvE15MatchAndExplainES3_PNS_19MatchResultListenerE
   fun:_ZNK7testing8internal11MatcherBaseIPKvE7MatchesES3_
   fun:_ZN7testing8internal11TuplePrefixILm3EE7MatchesINSt3tr15tupleIINS_7MatcherIjEES7_NS6_IPKvEEEEENS5_IIjjS9_EEEEEbRKT_RKT0_
   fun:_ZN7testing8internal12TupleMatchesINSt3tr15tupleIINS_7MatcherIjEES5_NS4_IPKvEEEEENS3_IIjjS7_EEEEEbRKT_RKT0_
   fun:_ZNK7testing8internal16TypedExpectationIFN3gpu5error5ErrorEjjPKvEE7MatchesERKNSt3tr15tupleIIjjS6_EEE
   fun:_ZNK7testing8internal16TypedExpectationIFN3gpu5error5ErrorEjjPKvEE21ShouldHandleArgumentsERKNSt3tr15tupleIIjjS6_EEE
   fun:_ZNK7testing8internal18FunctionMockerBaseIFN3gpu5error5ErrorEjjPKvEE29FindMatchingExpectationLockedERKNSt3tr15tupleIIjjS6_EEE
   fun:_ZN7testing8internal18FunctionMockerBaseIFN3gpu5error5ErrorEjjPKvEE30UntypedFindMatchingExpectationES6_PS6_PbPSoSB_
   fun:_ZN7testing8internal25UntypedFunctionMockerBase17UntypedInvokeWithEPKv
   fun:_ZN7testing8internal18FunctionMockerBaseIFN3gpu5error5ErrorEjjPKvEE10InvokeWithERKNSt3tr15tupleIIjjS6_EEE
   fun:_ZN7testing8internal14FunctionMockerIFN3gpu5error5ErrorEjjPKvEE6InvokeEjjS6_
   fun:_ZN3gpu12AsyncAPIMock9DoCommandEjjPKv
   fun:_ZN3gpu13CommandParser14ProcessCommandEv
   fun:_ZN3gpu12GpuScheduler10PutChangedEv
}
{
   bug_259789b
   Memcheck:Uninitialized
   fun:_ZN5blink12_GLOBAL__N_116adjustAttributesERKNS_17GraphicsContext3D10AttributesEPNS_8SettingsE
   fun:_ZN5blink21WebGLRenderingContext6createEPNS_17HTMLCanvasElementEPNS_22WebGLContextAttributesE
   fun:_ZN5blink17HTMLCanvasElement10getContextERKN3WTF6StringEPNS_23CanvasContextAttributesE
}
{
   bug_273398
   Memcheck:Leak
   ...
   fun:_ZN6Pickle6ResizeEm
   fun:_ZN6PickleC1Ev
   fun:_ZN7content14ZygoteHostImpl20GetTerminationStatusEibPi
   fun:_ZN7content20ChildProcessLauncher25GetChildTerminationStatusEbPi
}
{
   bug_288804
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKN3net12HostPortPairESt3mapINS3_15SpdySettingsIdsES2_INS3_17SpdySettingsFlagsEjESt4lessIS7_ESaIS2_IKS7_S9_EEEEEE8allocateEmPKv
   fun:_ZNSt8_Rb_treeIN3net12HostPortPairESt4pairIKS1_St3mapINS0_15SpdySettingsIdsES2_INS0_17SpdySettingsFlagsEjESt4lessIS5_ESaIS2_IKS5_S7_EEEESt10_Select1stISE_ES8_IS1_ESaISE_EE11_M_get_nodeEv
   fun:_ZNSt8_Rb_treeIN3net12HostPortPairESt4pairIKS1_St3mapINS0_15SpdySettingsIdsES2_INS0_17SpdySettingsFlagsEjESt4lessIS5_ESaIS2_IKS5_S7_EEEESt10_Select1stISE_ES8_IS1_ESaISE_EE14_M_create_nodeERKSE_
   fun:_ZNSt8_Rb_treeIN3net12HostPortPairESt4pairIKS1_St3mapINS0_15SpdySettingsIdsES2_INS0_17SpdySettingsFlagsEjESt4lessIS5_ESaIS2_IKS5_S7_EEEESt10_Select1stISE_ES8_IS1_ESaISE_EE13_M_clone_nodeEPKSt13_Rb_tree_nodeISE_E
   fun:_ZNSt8_Rb_treeIN3net12HostPortPairESt4pairIKS1_St3mapINS0_15SpdySettingsIdsES2_INS0_17SpdySettingsFlagsEjESt4lessIS5_ESaIS2_IKS5_S7_EEEESt10_Select1stISE_ES8_IS1_ESaISE_EE7_M_copyEPKSt13_Rb_tree_nodeISE_EPSL_
   fun:_ZNSt8_Rb_treeIN3net12HostPortPairESt4pairIKS1_St3mapINS0_15SpdySettingsIdsES2_INS0_17SpdySettingsFlagsEjESt4lessIS5_ESaIS2_IKS5_S7_EEEESt10_Select1stISE_ES8_IS1_ESaISE_EEaSERKSJ_
   fun:_ZNSt3mapIN3net12HostPortPairES_INS0_15SpdySettingsIdsESt4pairINS0_17SpdySettingsFlagsEjESt4lessIS2_ESaIS3_IKS2_S5_EEES6_IS1_ESaIS3_IKS1_SB_EEEaSERKSG_
   fun:_ZN18chrome_browser_net27HttpServerPropertiesManager24UpdatePrefsFromCacheOnIOERKN4base8CallbackIFvvEEE
   fun:_ZN18chrome_browser_net27HttpServerPropertiesManager24UpdatePrefsFromCacheOnIOEv
}
{
   bug_290407
   Memcheck:Leak
   fun:calloc
   fun:_swrast_new_soft_renderbuffer
   fun:_mesa_BindRenderbufferEXT
   fun:shared_dispatch_stub_939
   fun:_ZN3gfx9GLApiBase23glBindRenderbufferEXTFnEjj
   fun:_ZN3gpu5gles216GLES2DecoderImpl18DoBindRenderbufferEjj
}
{
   bug_293024_b
   Memcheck:Leak
   fun:malloc
   fun:_ZN3WTF10fastMallocEm
   fun:_ZN3WTF24ThreadSafeRefCountedBasenwEm
   fun:_ZN5blink12_GLOBAL__N_131AllowFileSystemMainThreadBridge6createEPN7blink17WorkerGlobalScopeEPNS_13WebWorkerBaseERKN3WTF6StringE
   fun:_ZN5blink22WorkerFileSystemClient15allowFileSystem*
   ...
   fun:_ZN2v88internal25FunctionCallbackArguments4CallEPFvRKNS_20FunctionCallbackInfoINS_5ValueEEEE
}
{
   bug_298143
   Memcheck:Uninitialized
   ...
   fun:_ZN5blink25TypeConversionsV8Internal*AttributeGetterE*
}
{
   bug_298788
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN10extensions19TestExtensionSystem22CreateExtensionServiceEPKN4base11CommandLineERKNS1_8FilePathEb
   fun:_ZN10extensions12_GLOBAL__N_130ExtensionActionIconFactoryTest5SetUpEv
}
{
   bug_299804
   Memcheck:Uninitialized
   fun:_ZN24GrConfigConversionEffect30TestForPreservingPMConversionsEP9GrContextPNS_12PMConversionES3_
   fun:_ZN12_GLOBAL__N_119test_pm_conversionsEP9GrContextPiS2_
   fun:_ZN9GrContext19createPMToUPMEffectEP9GrTexturebRK8SkMatrix
   fun:_ZN9GrContext22readRenderTargetPixelsEP14GrRenderTargetiiii13GrPixelConfigPvmj
   fun:_ZN11SkGpuDevice12onReadPixelsE*
   fun:_ZN12SkBaseDevice10readPixelsE*
   fun:_ZN8SkCanvas10readPixelsE*
   fun:_ZN*DeferredDevice12onReadPixelsE*
   fun:_ZN12SkBaseDevice10readPixelsE*
   fun:_ZN8SkCanvas10readPixelsE*
   fun:_ZN5blink15GraphicsContext10readPixelsE*
   ...
   fun:_ZN*blink24CanvasRenderingContext2D12getImageDataE*
   ...
   fun:_ZN5blink34CanvasRenderingContext2DV8InternalL18getImageDataMethodERKN2v820FunctionCallbackInfoINS1_5ValueEEE
   fun:_ZN5blink34CanvasRenderingContext2DV8InternalL26getImageDataMethodCallbackERKN2v820FunctionCallbackInfoINS1_5ValueEEE
}
{
   bug_309477
   Memcheck:Uninitialized
   fun:_ZN13WebTestRunner11EventSender5resetEv
   fun:_ZN13WebTestRunner14TestInterfaces26resetTestHelperControllersEv
   fun:_ZN13WebTestRunner14TestInterfaces8resetAllEv
   ...
   fun:_ZN7content26ShellRenderProcessObserver17WebKitInitializedEv
   fun:_ZN7content16RenderThreadImpl23EnsureWebKitInitializedEv
   fun:_ZN7content16RenderThreadImpl15OnCreateNewViewERK18ViewMsg_New_Params
}
{
   bug_317166
   Memcheck:Leak
   fun:malloc
   fun:_dl_close_worker
   fun:_dl_close
   fun:_dl_catch_error
   fun:_dlerror_run
   fun:dlclose
   obj:/usr/lib/x86_64-linux-gnu/libasound.so.2.0.0
   fun:snd_config_searcha_hooks
   fun:snd_config_searchva_hooks
   obj:/usr/lib/x86_64-linux-gnu/libasound.so.2.0.0
   fun:snd_config_search_definition
   obj:/usr/lib/x86_64-linux-gnu/libasound.so.2.0.0
   fun:_ZN5media11AlsaWrapper7PcmOpenEPP8_snd_pcmPKc15_snd_pcm_streami
   fun:_ZN9alsa_utilL10OpenDeviceEPN5media11AlsaWrapperEPKc15_snd_pcm_streamii15_snd_pcm_formati
   fun:_ZN9alsa_util18OpenPlaybackDeviceEPN5media11AlsaWrapperEPKcii15_snd_pcm_formati
   fun:_ZN5media19AlsaPcmOutputStream16AutoSelectDeviceEj
   fun:_ZN5media19AlsaPcmOutputStream4OpenEv
   fun:_ZN5media25AudioOutputDispatcherImpl19CreateAndOpenStreamEv
   fun:_ZN5media25AudioOutputDispatcherImpl10OpenStreamEv
   fun:_ZN5media20AudioOutputResampler10OpenStreamEv
   fun:_ZN5media16AudioOutputProxy4OpenEv
   fun:_ZN5media18AudioStreamHandler20AudioStreamContainer4PlayEv
}
{
   bug_318221
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN4base23EnsureProcessTerminatedEi
}
{
   bug_321976
   Memcheck:Leak
   ...
   fun:nssList_Create
   fun:nssTrustDomain_UpdateCachedTokenCerts
}
{
   bug_331925
   Memcheck:Leak
   ...
   fun:_ZN3net27TestURLRequestContextGetter20GetURLRequestContextEv
   fun:_ZN3net14URLFetcherCore30StartURLRequestWhenAppropriateEv
   fun:_ZN3net14URLFetcherCore19DidInitializeWriterEi
   fun:_ZN3net14URLFetcherCore15StartOnIOThreadEv
}
{
   bug_332330
   Memcheck:Leak
   fun:malloc
   fun:_ZN3WTF10fastMallocEm
   fun:_ZN5blink8ResourcenwEm
   fun:_ZN5blinkL14createResourceENS_8Resource4TypeERKNS_15ResourceRequestERKN3WTF6StringE
   fun:_ZN5blink15ResourceFetcher12loadResourceENS_8Resource4TypeERNS_12FetchRequestERKN3WTF6StringE
   fun:_ZN5blink15ResourceFetcher15requestResourceENS_8Resource4TypeERNS_12FetchRequestE
   fun:_ZN5blink15ResourceFetcher16fetchRawResourceERNS_12FetchRequestE
   fun:_ZN5blink24DocumentThreadableLoader11loadRequestERKNS_15ResourceRequestENS_19SecurityCheckPolicyE
}
{
   bug_340952
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN5blink15DOMWrapperWorldC2Eii
   fun:_ZN5blink15DOMWrapperWorldC1Eii
   fun:_ZN5blink15DOMWrapperWorld6createEii
   fun:_ZN5blink15DOMWrapperWorld9mainWorldEv
   ...
   fun:_ZN7content22BufferedDataSourceTestC2Ev
}
{
   bug_340752
   Memcheck:Uninitialized
   ...
   fun:_ZN5blink4Heap19checkAndMarkPointerEPNS_7VisitorEPh
   fun:_ZN5blink11ThreadState10visitStackEPNS_7VisitorE
   ...
   fun:_ZN5blink4Heap14collectGarbageENS_11ThreadState10StackState*
}
{
   bug_342591
   Memcheck:Param
   write(buf)
   obj:*libpthread*
   fun:_ZN3IPC7Channel11ChannelImpl23ProcessOutgoingMessagesEv
   fun:_ZN3IPC7Channel11ChannelImpl4SendEPNS_7MessageE
   fun:_ZN3IPC7Channel4SendEPNS_7MessageE
   fun:_ZN3IPC12ChannelProxy7Context13OnSendMessageE10scoped_ptrINS_7MessageEN4base14DefaultDeleterIS3_EEE
}
{
   bug_345432
   Memcheck:Leak
   ...
   fun:_ZN7content14GpuChannelHost7ConnectERKN3IPC13ChannelHandle*
   fun:_ZN7content14GpuChannelHost6CreateEPNS_21GpuChannelHostFactoryERKN3gpu7GPUInfoERKN3IPC13ChannelHandle*
   fun:_ZN7content28BrowserGpuChannelHostFactory21GpuChannelEstablishedEv
   fun:_ZN7content28BrowserGpuChannelHostFactory16EstablishRequest12FinishOnMainEv
   fun:_ZN7content28BrowserGpuChannelHostFactory16EstablishRequest4WaitEv
}
{
   bug_346336_a
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN7content16SiteInstanceImpl10GetProcessEv
   fun:_ZN7content22RenderFrameHostManager21CreateRenderFrameHostEPNS_12SiteInstanceEiibb
   fun:_ZN7content22RenderFrameHostManager4InitEPNS_14BrowserContextEPNS_12SiteInstanceEii
   fun:_ZN7content15WebContentsImpl4InitERKNS_11WebContents12CreateParamsE
   fun:_ZN7content15WebContentsImpl16CreateWithOpenerERKNS_11WebContents12CreateParamsEPS0_
   fun:_ZN7content11WebContents6CreateERKNS0_12CreateParamsE
   fun:_ZN7content5Shell15CreateNewWindowEPNS_14BrowserContextERK4GURLPNS_12SiteInstanceEiRKN3gfx4SizeE
   fun:_ZN7content19BlinkTestController20PrepareForLayoutTestERK4GURLRKN4base8FilePathEbRKSs
   fun:_ZN12_GLOBAL__N_110RunOneTestERKSsPbRK10scoped_ptrIN7content17BrowserMainRunnerEN4base14DefaultDeleterIS5_EEE
   fun:_Z16ShellBrowserMainRKN7content18MainFunctionParamsERK10scoped_ptrINS_17BrowserMainRunnerEN4base14DefaultDeleterIS4_EEE
   fun:_ZN7content17ShellMainDelegate10RunProcessERKSsRKNS_18MainFunctionParamsE
   fun:_ZN7content23RunNamedProcessTypeMainERKSsRKNS_18MainFunctionParamsEPNS_19ContentMainDelegateE
   fun:_ZN7content21ContentMainRunnerImpl3RunEv
   fun:_ZN7content11ContentMainEiPPKcPNS_19ContentMainDelegateE
}
{
   bug_347683
   Memcheck:Leak
   fun:_Znw*
   fun:_ZNK13LoginDatabase9GetLoginsERKN8autofill12PasswordFormEPSt6vectorIPS1_SaIS5_EE
   fun:_ZN50LoginDatabaseTest_UpdateIncompleteCredentials_Test8TestBodyEv
}
{
   bug_347967
   Memcheck:Uninitialized
   fun:unpack_RGB*888
   fun:_mesa_unpack_rgba_row
   fun:slow_read_rgba_pixels
   fun:read_rgba_pixels
   fun:_mesa_readpixels
   ...
   fun:shared_dispatch_stub_*
   ...
   fun:*gpu*gles*GLES2DecoderImpl*DoCommand*
   fun:*gpu*CommandParser*ProcessCommand*
   fun:*gpu*GpuScheduler*PutChanged*
}
{
   bug_348863
   Memcheck:Unaddressable
   fun:_ZNK7blink32PlatformSpeechSynthesisUtterance6clientEv
   fun:_ZN5blink15SpeechSynthesis17didFinishSpeakingEN3WTF10PassRefPtrINS_32PlatformSpeechSynthesisUtteranceEEE
   fun:_ZN5blink29PlatformSpeechSynthesizerMock16speakingFinishedEPNS_5TimerIS0_EE
   fun:_ZN5blink5TimerINS_29PlatformSpeechSynthesizerMockEE5firedEv
   fun:_ZN5blink12ThreadTimers24sharedTimerFiredInternalEv
   fun:_ZN5blink12ThreadTimers16sharedTimerFiredEv
   fun:_ZN7content17BlinkPlatformImpl9DoTimeoutEv
}
{
   bug_350809
   Memcheck:Uninitialized
   fun:_ZN5blink23ReplaceSelectionCommand7doApplyEv
   fun:_ZN5blink20CompositeEditCommand5applyEv
   fun:_ZN5blink6Editor28replaceSelectionWithFragmentEN3WTF10PassRefPtrINS_16DocumentFragmentEEEbbb
   fun:_ZN5blink6Editor24replaceSelectionWithTextERKN3WTF6StringEbb
}
{
  bug_361594
  Memcheck:Uninitialized
  ...
  fun:*SkA8_Shader_Blitter*blitH*
  ...
  fun:*content*ScreenshotData*EncodeOnWorker*
}
{
  bug_364274
  Memcheck:Uninitialized
  fun:_ZN5blink21RenderLayerCompositor14updateIfNeededEv
}
{
   bug_364724
   Memcheck:Param
   write(buf)
   obj:/lib/x86_64-linux-gnu/libpthread-2.15.so
   fun:_ZN3IPC12ChannelPosix23ProcessOutgoingMessagesEv
   fun:_ZN3IPC12ChannelPosix29OnFileCanWriteWithoutBlockingEi
   ...
   fun:_ZN4base19MessagePumpLibevent21FileDescriptorWatcher29OnFileCanWriteWithoutBlockingEiPS0_
   ...
   fun:event_process_active
   fun:event_base_loop
}
{
   bug_364724b
   Memcheck:Uninitialized
   fun:_ZN4base17MD5DigestToBase16ERKNS_9MD5DigestE
   fun:_ZN7content15BlinkTestRunner17CaptureDumpPixelsERK8SkBitmap
}
{
   bug_364724c
   Memcheck:Param
   write(buf)
   obj:/lib/x86_64-linux-gnu/libpthread-2.15.so
   fun:_ZN3IPC12ChannelPosix23ProcessOutgoingMessagesEv
   fun:_ZN3IPC12ChannelPosix4SendEPNS_7MessageE
   fun:_ZN3IPC12ChannelProxy7Context13OnSendMessageE10scoped_ptrINS_7MessageEN4base14DefaultDeleterIS3_EEE
}
{
   bug_364821
   Memcheck:Leak
   fun:malloc
   fun:_ZN3WTF10fastMallocEm
   fun:_ZN3WTF10RefCountedIN5blink11ScriptStateEEnwEm
   fun:_ZN5blink11ScriptState6createEN2v85LocalINS1_7ContextEEEN3WTF10PassRefPtrINS_15DOMWrapperWorldEEE
   ...
   fun:_ZN3WTF15FunctionWrapperIMN5blink12WorkerThreadEFvvEEclEPS2_
}
{
   bug_365258
   Memcheck:Leak
   fun:malloc
   fun:_ZN3WTF10fastMallocEm
   fun:_ZN5blink8ResourcenwEm
   fun:_ZN5blinkL14createResourceENS_8Resource4TypeERKNS_15ResourceRequestERKN3WTF6StringE
   fun:_ZN5blink15ResourceFetcher18revalidateResourceERKNS_12FetchRequestEPNS_8ResourceE
   fun:_ZN5blink15ResourceFetcher15requestResourceENS_8Resource4TypeERNS_12FetchRequestE
   fun:_ZN5blink15ResourceFetcher11fetchScriptERNS_12FetchRequestE
   fun:_ZN5blink12ScriptLoader11fetchScriptERKN3WTF6StringE
   fun:_ZN5blink12ScriptLoader13prepareScriptERKN3WTF12TextPositionENS0_17LegacyTypeSupportE
   fun:_ZN5blink16HTMLScriptRunner9runScriptEPNS_7ElementERKN3WTF12TextPositionE
   fun:_ZN5blink16HTMLScriptRunner7executeEN3WTF10PassRefPtrINS_7ElementEEERKNS1_12TextPositionE
   fun:_ZN5blink18HTMLDocumentParser30runScriptsForPausedTreeBuilderEv
   fun:_ZN5blink18HTMLDocumentParser38processParsedChunkFromBackgroundParserEN3WTF10PassOwnPtrINS0_11ParsedChunkEEE
   fun:_ZN5blink18HTMLDocumentParser23pumpPendingSpeculationsEv
   fun:_ZN5blink18HTMLDocumentParser41didReceiveParsedChunkFromBackgroundParserEN3WTF10PassOwnPtrINS0_11ParsedChunkEEE
   fun:_ZN3WTF15FunctionWrapperIMN7blink18HTMLDocumentParserEFvNS_10PassOwnPtrINS2_11ParsedChunkEEEEEclERKNS_7WeakPtrIS2_EES5_
   fun:_ZN3WTF17BoundFunctionImplINS_15FunctionWrapperIMN7blink18HTMLDocumentParserEFvNS_10PassOwnPtrINS3_11ParsedChunkEEEEEEFvNS_7WeakPtrIS3_EES6_EEclEv
   fun:_ZNK3WTF8FunctionIFvvEEclEv
   fun:_ZN3WTFL18callFunctionObjectEPv
}
{
   bug_367809_a
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN4mojo6common13HandleWatcher5StartERKNS_6HandleEjmRKN4base8CallbackIFviEEE
   fun:_ZN4mojo8internal12_GLOBAL__N_19AsyncWaitEP15MojoAsyncWaiterjjmPFvPviES4_
   fun:_ZN4mojo8internal9Connector14WaitToReadMoreEv
   fun:_ZN4mojo8internal9ConnectorC1ENS_16ScopedHandleBaseINS_17MessagePipeHandleEEEP15MojoAsyncWaiter
   fun:_ZN4mojo8internal6RouterC1ENS_16ScopedHandleBaseINS_17MessagePipeHandleEEEP15MojoAsyncWaiter
   fun:_ZN4mojo9RemotePtrINS_11ShellClientEE5StateC1ENS_16ScopedHandleBaseINS_17MessagePipeHandleEEEPNS_5ShellEPNS_12ErrorHandlerEP15MojoAsyncWaiter
   fun:_ZN4mojo9RemotePtrINS_11ShellClientEE5resetENS_16ScopedHandleBaseINS_15InterfaceHandleIS1_EEEEPNS_5ShellEPNS_12ErrorHandlerEP15MojoAsyncWaiter
   fun:_ZN7content19MojoApplicationHost4InitEv
}
{
   bug_367809_b
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN4mojo8internal12_GLOBAL__N_19AsyncWaitEP15MojoAsyncWaiterjjmPFvPviES4_
   fun:_ZN4mojo8internal9Connector14WaitToReadMoreEv
   fun:_ZN4mojo8internal9ConnectorC1ENS_16ScopedHandleBaseINS_17MessagePipeHandleEEEP15MojoAsyncWaiter
   fun:_ZN4mojo8internal6RouterC1ENS_16ScopedHandleBaseINS_17MessagePipeHandleEEEP15MojoAsyncWaiter
   fun:_ZN4mojo9RemotePtrINS_11ShellClientEE5StateC1ENS_16ScopedHandleBaseINS_17MessagePipeHandleEEEPNS_5ShellEPNS_12ErrorHandlerEP15MojoAsyncWaiter
   fun:_ZN4mojo9RemotePtrINS_11ShellClientEE5resetENS_16ScopedHandleBaseINS_15InterfaceHandleIS1_EEEEPNS_5ShellEPNS_12ErrorHandlerEP15MojoAsyncWaiter
   fun:_ZN7content19MojoApplicationHost4InitEv
}
{
   bug_367809_c
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN4mojo8internal10SharedDataIPNS0_6RouterEEC1ERKS3_
   fun:_ZN4mojo8internal6RouterC1ENS_16ScopedHandleBaseINS_17MessagePipeHandleEEEP15MojoAsyncWaiter
   fun:_ZN4mojo9RemotePtrINS_11ShellClientEE5StateC1ENS_16ScopedHandleBaseINS_17MessagePipeHandleEEEPNS_5ShellEPNS_12ErrorHandlerEP15MojoAsyncWaiter
   fun:_ZN4mojo9RemotePtrINS_11ShellClientEE5resetENS_16ScopedHandleBaseINS_15InterfaceHandleIS1_EEEEPNS_5ShellEPNS_12ErrorHandlerEP15MojoAsyncWaiter
   fun:_ZN7content19MojoApplicationHost4InitEv
}
{
   bug_367809_d
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN7content21RenderProcessHostImpl4InitEv
   ...
   fun:_ZN7content5Shell7LoadURLERK4GURL
   fun:_ZN7content19BlinkTestController20PrepareForLayoutTestERK4GURLRKN4base8FilePathEbRKSs
   fun:_ZN12_GLOBAL__N_110RunOneTestERKSsPbRK10scoped_ptrIN7content17BrowserMainRunnerEN4base14DefaultDeleterIS5_EEE
}
{
   bug_369843
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN7content27ServiceWorkerContextWrapper12InitInternalE*
}
{
  bug_371844
  Memcheck:Uninitialized
  fun:bcmp
  fun:_ZNK7content15GamepadProvider8PadState5MatchERKN5blink10WebGamepadE
  fun:_ZN7content15GamepadProvider6DoPollEv
}
{
   bug_371860
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN8feedback16FeedbackDataTestC1Ev
   fun:_ZN8feedback*FeedbackDataTest*
   fun:_ZN7testing8internal15TestFactoryImplIN8feedback*
}
{
   bug_372487_a
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN4mojo10BindToPipeIN7content19MojoApplicationHost9ShellImplEEEPT_S5_NS_16ScopedHandleBaseINS_17MessagePipeHandleEEEP15MojoAsyncWaiter
   fun:_ZN7content19MojoApplicationHost4InitEv
   fun:_ZN7content21RenderProcessHostImpl4InitEv
   fun:_ZN7content18RenderViewHostImpl16CreateRenderViewERKSbItN4base20string16_char_traitsESaItEEiib
   fun:_ZN7content15WebContentsImpl32CreateRenderViewForRenderManagerEPNS_14RenderViewHostEiPNS_26CrossProcessFrameConnectorE
   fun:_ZN7content22RenderFrameHostManager14InitRenderViewEPNS_14RenderViewHostEi
   fun:_ZN7content22RenderFrameHostManager8NavigateERKNS_19NavigationEntryImplE
   fun:_ZN7content13NavigatorImpl15NavigateToEntryEPNS_19RenderFrameHostImplERKNS_19NavigationEntryImplENS_20NavigationController10ReloadTypeE
   fun:_ZN7content13NavigatorImpl22NavigateToPendingEntryEPNS_19RenderFrameHostImplENS_20NavigationController10ReloadTypeE
   fun:_ZN7content15WebContentsImpl22NavigateToPendingEntryENS_20NavigationController10ReloadTypeE
   fun:_ZN7content24NavigationControllerImpl22NavigateToPendingEntryENS_20NavigationController10ReloadTypeE
   fun:_ZN7content24NavigationControllerImpl9LoadEntryEPNS_19NavigationEntryImplE
   fun:_ZN7content24NavigationControllerImpl17LoadURLWithParamsERKNS_20NavigationController13LoadURLParamsE
   fun:_ZN7content5Shell15LoadURLForFrameERK4GURLRKSs
   fun:_ZN7content5Shell7LoadURLERK4GURL
   fun:_ZN7content19BlinkTestController20PrepareForLayoutTestERK4GURLRKN4base8FilePathEbRKSs
   fun:_ZN12_GLOBAL__N_110RunOneTestERKSsPbRK10scoped_ptrIN7content17BrowserMainRunnerEN4base14DefaultDeleterIS5_EEE
   fun:_Z16ShellBrowserMainRKN7content18MainFunctionParamsERK10scoped_ptrINS_17BrowserMainRunnerEN4base14DefaultDeleterIS4_EEE
   fun:_ZN7content17ShellMainDelegate10RunProcessERKSsRKNS_18MainFunctionParamsE
   fun:_ZN7content23RunNamedProcessTypeMainERKSsRKNS_18MainFunctionParamsEPNS_19ContentMainDelegateE
}
{
   bug_372487_b
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN4mojo8internal6RouterC1ENS_16ScopedHandleBaseINS_17MessagePipeHandleEEEP15MojoAsyncWaiter
   fun:_ZN4mojo8internal18InterfaceImplStateINS_5ShellEE4BindENS_16ScopedHandleBaseINS_17MessagePipeHandleEEEP15MojoAsyncWaiter
   fun:_ZN4mojo10BindToPipeIN7content19MojoApplicationHost9ShellImplEEEPT_S5_NS_16ScopedHandleBaseINS_17MessagePipeHandleEEEP15MojoAsyncWaiter
   fun:_ZN7content19MojoApplicationHost4InitEv
   fun:_ZN7content21RenderProcessHostImpl4InitEv
   fun:_ZN7content18RenderViewHostImpl16CreateRenderViewERKSbItN4base20string16_char_traitsESaItEEiib
   fun:_ZN7content15WebContentsImpl32CreateRenderViewForRenderManagerEPNS_14RenderViewHostEiPNS_26CrossProcessFrameConnectorE
   fun:_ZN7content22RenderFrameHostManager14InitRenderViewEPNS_14RenderViewHostEi
   fun:_ZN7content22RenderFrameHostManager8NavigateERKNS_19NavigationEntryImplE
   fun:_ZN7content13NavigatorImpl15NavigateToEntryEPNS_19RenderFrameHostImplERKNS_19NavigationEntryImplENS_20NavigationController10ReloadTypeE
   fun:_ZN7content13NavigatorImpl22NavigateToPendingEntryEPNS_19RenderFrameHostImplENS_20NavigationController10ReloadTypeE
   fun:_ZN7content15WebContentsImpl22NavigateToPendingEntryENS_20NavigationController10ReloadTypeE
   fun:_ZN7content24NavigationControllerImpl22NavigateToPendingEntryENS_20NavigationController10ReloadTypeE
   fun:_ZN7content24NavigationControllerImpl9LoadEntryEPNS_19NavigationEntryImplE
   fun:_ZN7content24NavigationControllerImpl17LoadURLWithParamsERKNS_20NavigationController13LoadURLParamsE
   fun:_ZN7content5Shell15LoadURLForFrameERK4GURLRKSs
   fun:_ZN7content5Shell7LoadURLERK4GURL
}
{
   bug_379943
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN7content20StoragePartitionImpl6CreateEPNS_14BrowserContextEbRKN4base8FilePathE
   fun:_ZN7content23StoragePartitionImplMap3GetERKSsS2_b
   fun:_ZN7content12_GLOBAL__N_129GetStoragePartitionFromConfigEPNS_14BrowserContext*
   fun:_ZN7content14BrowserContext19GetStoragePartitionEPS0_PNS_12SiteInstanceE
   fun:_ZN7content14BrowserContext26GetDefaultStoragePartitionEPS0_
   ...
   fun:_ZN7content21ShellBrowserMainParts21PreMainMessageLoopRunEv
   fun:_ZN7content15BrowserMainLoop21PreMainMessageLoopRunEv
}
{
   bug_380575
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKSsPN3net20URLRequestJobFactory15ProtocolHandlerEEEE8allocateEmPKv
   ...
   fun:_ZNSt3mapISsPN3net20URLRequestJobFactory15ProtocolHandlerESt4lessISsESaISt4pairIKSsS3_EEEixERS7_
   fun:_ZN3net24URLRequestJobFactoryImpl18SetProtocolHandlerERKSsPNS_20URLRequestJobFactory15ProtocolHandlerE
   ...
   fun:_ZN7content28ShellURLRequestContextGetter20GetURLRequestContextEv
}
{
   bug_381065
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN5blink18ModulesInitializer4initEv
   fun:_ZN5blink19initializeWithoutV8EPNS_8PlatformE
   fun:_ZN5blink10initializeEPNS_8PlatformE
   fun:_ZN7content27TestBlinkWebUnitTestSupportC2Ev
   fun:_ZN7content27TestBlinkWebUnitTestSupportC1Ev
   fun:_ZN7content17UnitTestTestSuiteC2EPN4base9TestSuiteE
   fun:_ZN7content17UnitTestTestSuiteC1EPN4base9TestSuiteE
}
{
   bug_381156
   Memcheck:Uninitialized
   ...
   fun:_ZN*14SkTDynamicHashI10SkFlatData*
   fun:_ZN16SkFlatDictionaryI7SkPaintNS0_16FlatteningTraitsEE24findAndReturnMutableFlatERKS0_
   fun:_ZN16SkFlatDictionaryI7SkPaintNS0_16FlatteningTraitsEE17findAndReturnFlatERKS0_
   fun:_ZN15SkPictureRecord16getFlatPaintDataERK7SkPaint
   fun:_ZN15SkPictureRecord11addPaintPtrEPK7SkPaint
   fun:_ZN15SkPictureRecord8addPaintERK7SkPaint
   fun:_ZN15SkPictureRecord8drawPathERK6SkPathRK7SkPaint
   fun:_ZN12SkBBoxRecord8drawPathERK6SkPathRK7SkPaint
   fun:_ZN5blink15GraphicsContext8drawPathERK6SkPathRK7SkPaint
   fun:_ZN5blink15GraphicsContext10strokePathERKNS_4PathE
   fun:_ZNK7blink14RenderSVGShape11strokeShapeEPNS_15GraphicsContextE
   fun:_ZNK7blink13RenderSVGPath11strokeShapeEPNS_15GraphicsContextE
   fun:_ZN5blink27RenderSVGResourceSolidColor17postApplyResourceEPNS_12RenderObjectERPNS_15GraphicsContextEtPKNS_4PathEPKNS_14RenderSVGShapeE
   fun:_ZN5blink14RenderSVGShape11strokeShapeEPNS_11RenderStyleEPNS_15GraphicsContextE
   fun:_ZN5blink14RenderSVGShape5paintERNS_9PaintInfoERKNS_11LayoutPointE
   fun:_ZN5blink9RenderBox5paintERNS_9PaintInfoERKNS_11LayoutPointE
   fun:_ZN5blink13RenderSVGRoot13paintReplacedERNS_9PaintInfoERKNS_11LayoutPointE
   fun:_ZN5blink14RenderReplaced5paintERNS_9PaintInfoERKNS_11LayoutPointE
   fun:_ZN5blink11RenderBlock18paintAsInlineBlockEPNS_12RenderObjectERNS_9PaintInfoERKNS_11LayoutPointE
}
{
   bug_385381
   Memcheck:Unaddressable
   fun:_ZN5blink23FrameLoaderStateMachine9advanceToENS0_5StateE
   fun:_ZN5blink11FrameLoader4initEv
   fun:_ZN5blink10LocalFrame4initEv
   fun:_ZN5blink17WebLocalFrameImpl22initializeAsChildFrameEPN7blink9FrameHostEPNS1_10FrameOwnerERKN3WTF12AtomicStringES9_
   fun:_ZN5blink17WebLocalFrameImpl16createChildFrameERKN7blink16FrameLoadRequestEPNS1_21HTMLFrameOwnerElementE
}
{
   bug_385396a
   Memcheck:Uninitialized
   ...
   fun:_ZN5blink11RenderLayer7hitTestERKNS_14HitTestRequestERKNS_15HitTestLocationERNS_13HitTestResultE
   fun:_ZN5blink10RenderView7hitTestERKNS_14HitTestRequestERKNS_15HitTestLocationERNS_13HitTestResultE
   fun:_ZN5blink10RenderView7hitTestERKNS_14HitTestRequestERNS_13HitTestResultE
   ...
   fun:_ZN5blink12EventHandler18handleGestureEventERKNS_20PlatformGestureEventE
   fun:_ZN5blink11WebViewImpl18handleGestureEventERKNS_15WebGestureEventE
}
{
   bug_385396b
   Memcheck:Uninitialized
   ...
   fun:_ZN5blink11LayoutPointC*ERKNS_8IntPointE
   ...
   fun:_ZN5blink12EventHandler18handleGestureEventERKNS_20PlatformGestureEventE
   fun:_ZN5blink11WebViewImpl18handleGestureEventERKNS_15WebGestureEventE
}
{
   bug_385396c
   Memcheck:Uninitialized
   fun:_ZNK5blink7IntRect8containsEii
   ...
   fun:_ZN5blink12EventHandler18handleGestureEventERKNS_20PlatformGestureEventE
   fun:_ZN5blink11WebViewImpl18handleGestureEventERKNS_15WebGestureEventE
}
{
   bug_385396d
   Memcheck:Uninitialized
   fun:_ZNK7blink10LayoutUnit5floorEv
   ...
   fun:_ZN5blink12EventHandler18handleGestureEventERKNS_20PlatformGestureEventE
   fun:_ZN5blink11WebViewImpl18handleGestureEventERKNS_15WebGestureEventE
   fun:_ZN5blink18PageWidgetDelegate16handleInputEventEPN7blink4PageERNS_22PageWidgetEventHandlerERKNS_13WebInputEventE
}
{
   bug_385396e
   Memcheck:Uninitialized
   fun:_ZN5blink15roundedIntPointERKNS_11LayoutPointE
   fun:_ZNK5blink15HitTestLocation12roundedPointEv
   fun:_ZN5blink10RenderView7hitTestERKNS_14HitTestRequestERKNS_15HitTestLocationERNS_13HitTestResultE
   fun:_ZN5blink10RenderView7hitTestERKNS_14HitTestRequestERNS_13HitTestResultE
   fun:_ZN5blink12EventHandler20hitTestResultAtPointERKNS_11LayoutPointEjRKNS_10LayoutSizeE
   fun:_ZN5blink12EventHandler18targetGestureEventERKNS_20PlatformGestureEventEb
}
{
   bug_387435
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN7content16WebURLLoaderImplC1Ev
   fun:_ZN7content17BlinkPlatformImpl15createURLLoaderEv
   fun:_ZN5blink10PingLoaderC1EPNS_10LocalFrameERNS_15ResourceRequestERKNS_18FetchInitiatorInfoENS_17StoredCredentialsE
   fun:_ZN5blink10PingLoader5startEPNS_10LocalFrameERNS_15ResourceRequestERKNS_18FetchInitiatorInfoENS_17StoredCredentialsE
   fun:_ZN5blink10PingLoader9loadImageEPNS_10LocalFrameERKNS_4KURLE
   fun:_ZN5blink15ResourceFetcher10fetchImageERNS_12FetchRequestE
   fun:_ZN5blink11ImageLoader19doUpdateFromElementEb
   fun:_ZN5blink11ImageLoader4Task3runEv
}
{
   bug_386418
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN4base8internal20PostTaskAndReplyImpl16PostTaskAndReplyERKN15tracked_objects8LocationERKNS_8CallbackIFvvEEESA_
   fun:_ZN4base10WorkerPool16PostTaskAndReplyERKN15tracked_objects8LocationERKNS_8CallbackIFvvEEES9_b
   fun:_ZN3net16HostResolverImpl16LoopbackProbeJob*
   fun:_ZN3net16HostResolverImplC*
}
{
   bug_387993
   Memcheck:Uninitialized
   fun:_ZN11SkBaseMutex7acquireEv
   fun:_ZN18SkAutoMutexAcquireC2EP11SkBaseMutex
   fun:_ZN18SkAutoMutexAcquireC1EP11SkBaseMutex
   fun:_ZN12SkGlyphCache10VisitCacheEP10SkTypefacePK12SkDescriptorPFbPKS_PvES7_
   fun:_ZN12SkGlyphCache11DetachCacheEP10SkTypefacePK12SkDescriptor
   fun:_ZL14DetachDescProcP10SkTypefacePK12SkDescriptorPv
   fun:_ZNK7SkPaint14descriptorProcEPK18SkDevicePropertiesPK8SkMatrixPFvP10SkTypefacePK12SkDescriptorPvESB_b
   fun:_ZNK7SkPaint11detachCacheEPK18SkDevicePropertiesPK8SkMatrixb
   fun:_ZN16SkAutoGlyphCacheC2ERK7SkPaintPK18SkDevicePropertiesPK8SkMatrix
   fun:_ZN16SkAutoGlyphCacheC1ERK7SkPaintPK18SkDevicePropertiesPK8SkMatrix
}
{
   bug_388013
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN5blinkL33createInjectedScriptHostV8WrapperEPNS_18InjectedScriptHostEPN2v87IsolateE
   fun:_ZN5blink21InjectedScriptManager20createInjectedScriptERKN3WTF6StringEPNS_11ScriptStateEi
   fun:_ZN5blink21InjectedScriptManager17injectedScriptForEPNS_11ScriptStateE
   fun:_ZN5blink22InspectorDebuggerAgent17currentCallFramesEv
   fun:_ZN5blink22InspectorDebuggerAgent8didPauseEPNS_11ScriptStateERKNS_11ScriptValueES5_RKN3WTF6VectorINS6_6StringELm0ENS6_16DefaultAllocatorEEE
   ...
   fun:_ZN2v88internal5Debug17CallEventCallbackENS_10DebugEventENS0_6HandleINS0_6ObjectEEES5_PNS_5Debug10ClientDataE
   fun:_ZN2v88internal5Debug17ProcessDebugEventENS_10DebugEventENS0_6HandleINS0_8JSObjectEEEb
   fun:_ZN2v88internal5Debug12OnDebugBreakENS0_6HandleINS0_6ObjectEEEb
}
{
   bug_388013_b
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN5blinkL33createInjectedScriptHostV8WrapperEPNS_18InjectedScriptHostEPN2v87IsolateE
   fun:_ZN5blink21InjectedScriptManager20createInjectedScriptERKN3WTF6StringEPNS_11ScriptStateEi
   fun:_ZN5blink21InjectedScriptManager17injectedScriptForEPNS_11ScriptStateE
   fun:_ZN5blink18WorkerRuntimeAgent21injectedScriptForEvalEPN3WTF6StringEPKi
   fun:_ZN5blink21InspectorRuntimeAgent8evaluateEPN3WTF6String*
   fun:_ZThn32_N5blink21InspectorRuntimeAgent8evaluateEPN3WTF6String*
   fun:_ZN5blink30InspectorBackendDispatcherImpl16Runtime_evaluateElPNS_10JSONObjectEPNS_9JSONArrayE
   fun:_ZN5blink30InspectorBackendDispatcherImpl8dispatchERKN3WTF6StringE
   fun:_ZN5blink25WorkerInspectorController27dispatchMessageFromFrontendERKN3WTF6StringE
   fun:_ZN5blinkL30dispatchOnInspectorBackendTaskEPNS_16ExecutionContextERKN3WTF6StringE
}
{
   bug_388668
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN20data_reduction_proxy69DataReductionProxyBypassStatsTest_isDataReductionProxyUnreachable_Test8TestBodyEv
}
{
   bug_392912
   Memcheck:Uninitialized
   fun:_ZNK8SkStroke10strokePathERK6SkPathPS0_
   fun:_ZNK11SkStrokeRec11applyToPathEP6SkPathRKS0_
   fun:_ZNK7SkPaint11getFillPathERK6SkPathPS0_PK6SkRectf
   fun:_ZNK6SkDraw8drawPathERK6SkPathRK7SkPaintPK8SkMatrixbbP9SkBlitter
   fun:_ZNK6SkDraw8drawPathERK6SkPathRK7SkPaintPK8SkMatrixb
   fun:_ZN14SkBitmapDevice8drawPathERK6SkDrawRK6SkPathRK7SkPaintPK8SkMatrixb
}
{
   bug_394558
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN32ProfileSyncComponentsFactoryMockC1Ev
}
{
   bug_394624
   Memcheck:Leak
   ...
   fun:_ZN3net24URLRequestJobFactoryImpl18SetProtocolHandlerERKSsPNS_20URLRequestJobFactory15ProtocolHandlerE
   ...
   fun:_ZN7content28ShellURLRequestContextGetter20GetURLRequestContextEv
   fun:_ZN7content21ChromeAppCacheService20InitializeOnIOThreadERKN4base8FilePathEPNS_15ResourceContextEPN3net23URLRequestContextGetterE13scoped_refptrIN5quota20SpecialStoragePolicyEE
}
{
   bug_396658
   Memcheck:Uninitialized
   ...
   fun:wk_png_write_find_filter
   fun:wk_png_write_row
}
{
   bug_397066_a
   Memcheck:Uninitialized
   ...
   fun:_ZN5blink13InlineFlowBox9addToLineEPNS_9InlineBoxE
   ...
   fun:_ZN5blink15RenderBlockFlow13constructLineERNS_11BidiRunListINS_7BidiRunEEERKNS_8LineInfoE
   fun:_ZN5blink15RenderBlockFlow27createLineBoxesFromBidiRunsEjRNS_11BidiRunListINS_7BidiRunEEERKNS_14InlineIteratorERNS_8LineInfoERNS_21VerticalPositionCacheEPS2_RN3WTF6VectorINS_15WordMeasurementELm64ENSD_16DefaultAllocatorEEE
   fun:_ZN5blink15RenderBlockFlow26layoutRunsAndFloatsInRangeERNS_15LineLayoutStateERNS_12BidiResolverINS_14InlineIteratorENS_7BidiRunEEERKS4_RKNS_10BidiStatusE
   fun:_ZN5blink15RenderBlockFlow19layoutRunsAndFloatsERNS_15LineLayoutStateE
   fun:_ZN5blink15RenderBlockFlow20layoutInlineChildrenEbRNS_10LayoutUnitES2_S1_
   ...
   fun:_ZN5blink15RenderBlockFlow11layoutBlockEb
}
{
   bug_397066_b
   Memcheck:Uninitialized
   ...
   fun:_ZN5blink13InlineFlowBox24computeLogicalBoxHeightsEPNS_13RootInlineBoxERNS_10LayoutUnitES4_RiS5_RbS6_bRN3WTF7HashMapIPKNS_13InlineTextBoxESt4pairINS7_6VectorIPKNS_14SimpleFontDataELm0ENS7_16DefaultAllocatorEEENS_13GlyphOverflowEENS7_7PtrHashISB_EENS7_10HashTraitsISB_EENSN_ISK_EESH_EENS_12FontBaselineERNS_21VerticalPositionCacheE
   fun:_ZN5blink13RootInlineBox26alignBoxesInBlockDirectionENS_10LayoutUnitERN3WTF7HashMapIPKNS_13InlineTextBoxESt4pairINS2_6VectorIPKNS_14SimpleFontDataELm0ENS2_16DefaultAllocatorEEENS_13GlyphOverflowEENS2_7PtrHashIS6_EENS2_10HashTraitsIS6_EENSI_ISF_EESC_EERNS_21VerticalPositionCacheE
   ...
   fun:_ZN5blink15RenderBlockFlow19layoutRunsAndFloatsERNS_15LineLayoutStateE
   fun:_ZN5blink15RenderBlockFlow20layoutInlineChildrenEbRNS_10LayoutUnitES2_S1_
   fun:_ZN5blink15RenderBlockFlow15layoutBlockFlowEbRNS_10LayoutUnitERNS_18SubtreeLayoutScopeE
   fun:_ZN5blink15RenderBlockFlow11layoutBlockEb
}
{
   bug_397066_c
   Memcheck:Uninitialized
   ...
   fun:_ZN5blink13InlineFlowBox26placeBoxesInBlockDirectionENS_10LayoutUnitES1_ibRS1_S2_S2_RbS2_S2_S3_S3_NS_12FontBaselineE
   fun:_ZN5blink13RootInlineBox26alignBoxesInBlockDirectionENS_10LayoutUnitERN3WTF7HashMapIPKNS_13InlineTextBoxESt4pairINS2_6VectorIPKNS_14SimpleFontDataELm0ENS2_16DefaultAllocatorEEENS_13GlyphOverflowEENS2_7PtrHashIS6_EENS2_10HashTraitsIS6_EENSI_ISF_EESC_EERNS_21VerticalPositionCacheE
   ...
   fun:_ZN5blink15RenderBlockFlow19layoutRunsAndFloatsERNS_15LineLayoutStateE
   fun:_ZN5blink15RenderBlockFlow20layoutInlineChildrenEbRNS_10LayoutUnitES2_S1_
   fun:_ZN5blink15RenderBlockFlow15layoutBlockFlowEbRNS_10LayoutUnitERNS_18SubtreeLayoutScopeE
   fun:_ZN5blink15RenderBlockFlow11layoutBlockEb
}
{
   bug_397066_d
   Memcheck:Uninitialized
   fun:_ZN5blink13InlineFlowBox45clearDescendantsHaveSameLineHeightAndBaselineEv
   fun:_ZN5blink13InlineFlowBox9addToLineEPNS_9InlineBoxE
   ...
   fun:_ZN5blink15RenderBlockFlow13constructLineERNS_11BidiRunListINS_7BidiRunEEERKNS_8LineInfoE
   fun:_ZN5blink15RenderBlockFlow27createLineBoxesFromBidiRuns*
}
{
   bug_397066_e
   Memcheck:Uninitialized
   fun:_ZN5blink13InlineFlowBox9addToLineEPNS_9InlineBox*
   fun:_ZN5blink15RenderBlockFlow*
   ...
   fun:_ZN5blink15RenderBlockFlow27createLineBoxesFromBidiRunsEjRNS*
   fun:_ZN5blink15RenderBlockFlow26layoutRunsAndFloatsInRangeERNS_15LineLayoutStateERNS_12BidiResolver*
   fun:_ZN5blink15RenderBlockFlow19layoutRunsAndFloatsERNS_15LineLayoutState*
}
{
   bug_397066_f
   Memcheck:Uninitialized
   fun:_ZNK5blink13InlineFlowBox35constrainToLineTopAndBottomIfNeededERNS_10LayoutRectE
   fun:_ZN5blink13InlineFlowBox28paintBoxDecorationBackgroundERNS_9PaintInfoERKNS_11LayoutPointE
   fun:_ZN5blink13InlineFlowBox5paintERNS_9PaintInfoERKNS_11LayoutPointENS_10LayoutUnitES6_
   fun:_ZN5blink13InlineFlowBox5paintERNS_9PaintInfoERKNS_11LayoutPointENS_10LayoutUnitES6_
   fun:_ZN5blink13RootInlineBox5paintERNS_9PaintInfoERKNS_11LayoutPointENS_10LayoutUnitES6_
   fun:_ZNK5blink17RenderLineBoxList5paintEPNS_20RenderBoxModelObjectERNS_9PaintInfoERKNS_11LayoutPointE
}
{
   bug_397075_a
   Memcheck:Uninitialized
   fun:_ZN2v88internal6Object11SetPropertyEPNS0_14LookupIteratorENS0_6HandleIS1_EENS0_10StrictModeENS1_14StoreFromKeyedE
   fun:_ZN2v88internal6Object11SetPropertyENS0_6HandleIS1_EENS2_INS0_4NameEEES3_NS0_10StrictModeENS1_14StoreFromKeyedE
   fun:_ZN2v88internal7Runtime17SetObjectPropertyEPNS0_7IsolateENS0_6HandleINS0_6ObjectEEES6_S6_NS0_10StrictModeE
   fun:_ZN2v86Object3SetENS_6HandleINS_5ValueEEES3_
   fun:_ZN18WebCoreTestSupport21injectInternalsObjectEN2v85LocalINS0_7ContextEEE
   fun:_ZN5blink17WebTestingSupport21injectInternalsObjectEPNS_13WebLocalFrameE
   fun:_ZN7content15BlinkTestRunner20DidClearWindowObjectEPN5blink13WebLocalFrameE
   fun:_ZN7content14RenderViewImpl20didClearWindowObjectEPN5blink13WebLocalFrameE
   fun:_ZN7content15RenderFrameImpl20didClearWindowObjectEPN5blink13WebLocalFrameE
   fun:_ZThn16_N7content15RenderFrameImpl20didClearWindowObjectEPN5blink13WebLocalFrameE
   fun:_ZN5blink21FrameLoaderClientImpl39dispatchDidClearWindowObjectInMainWorldEv
   fun:_ZN5blink11FrameLoader39dispatchDidClearWindowObjectInMainWorldEv
   fun:_ZN5blink16ScriptController11windowShellERNS_15DOMWrapperWorldE
   fun:_ZN5blink11toV8ContextEPNS_10LocalFrameERNS_15DOMWrapperWorldE
   fun:_ZNK5blink17WebLocalFrameImpl22mainWorldScriptContextEv
   fun:_ZN5blink17WebTestingSupport20resetInternalsObjectEPNS_13WebLocalFrameE
   fun:_ZN7content15BlinkTestRunner5ResetEv
   fun:_ZN7content26ShellContentRendererClient17RenderViewCreatedEPNS_10RenderViewE
   fun:_ZN7content14RenderViewImpl10InitializeEPNS_20RenderViewImplParamsE
   fun:_ZN7content14RenderViewImpl6CreateEibRKNS_19RendererPreferencesERKNS_14WebPreferencesEiiilRKSbItN4base20string16_char_traitsESaItEEbbibbiRKN5blink13WebScreenInfoE17AccessibilityMode
   fun:_ZN7content16RenderThreadImpl15OnCreateNewViewERK18ViewMsg_New_Params
}
{
   bug_397075_b
   Memcheck:Uninitialized
   fun:_ZN2v88internal6Object11SetPropertyEPNS0_14LookupIteratorENS0_6HandleIS1_EENS0_10StrictModeENS1_14StoreFromKeyedE
   fun:_ZN2v88internal6Object11SetPropertyENS0_6HandleIS1_EENS2_INS0_4NameEEES3_NS0_10StrictModeENS1_14StoreFromKeyedE
   ...
   fun:_ZN2v88internalL6InvokeEbNS0_6HandleINS0_10JSFunctionEEENS1_INS0_6ObjectEEEiPS5_
   fun:_ZN2v88internal9Execution4CallEPNS0_7IsolateENS0_6HandleINS0_6ObjectEEES6_iPS6_b
}
{
   bug_398349_a
   Memcheck:Uninitialized
   fun:_ZN2v88internal19JSObjectWalkVisitorINS0_29AllocationSiteCreationContextEE13StructureWalkENS0_6HandleINS0_8JSObjectEEE
   fun:_ZN2v88internal8JSObject8DeepWalkENS0_6HandleIS1_EEPNS0_29AllocationSiteCreationContextE
   fun:_ZN2v88internal27Runtime_CreateObjectLiteralEiPPNS0_6ObjectEPNS0_7IsolateE
}
{
   bug_398349_b
   Memcheck:Uninitialized
   fun:_ZN2v88internal19JSObjectWalkVisitorINS0_26AllocationSiteUsageContextEE13StructureWalkENS0_6HandleINS0_8JSObjectEEE
   fun:_ZN2v88internal8JSObject8DeepCopyENS0_6HandleIS1_EEPNS0_26AllocationSiteUsageContextENS1_13DeepCopyHintsE
   fun:_ZN2v88internal27Runtime_CreateObjectLiteralEiPPNS0_6ObjectEPNS0_7IsolateE
}
{
   bug_399853_a
   Memcheck:Uninitialized
   fun:_ZNK8SkStroke10strokePathERK6SkPathPS0_
   fun:_ZNK11SkStrokeRec11applyToPathEP6SkPathRKS0_
   fun:_ZNK7SkPaint11getFillPathERK6SkPathPS0_PK6SkRect
}
{
   bug_399853_b
   Memcheck:Uninitialized
   fun:_ZNK8SkStroke10strokePathERK6SkPathPS0_
   fun:_ZNK11SkStrokeRec11applyToPathEP6SkPathRKS0_
   fun:_ZN15SkScalerContext15internalGetPathERK7SkGlyphP6SkPathS4_P8SkMatrix
}
{
   bug_400547
   Memcheck:Uninitialized
   fun:_ZNK5blink22GraphicsLayerDebugInfo17appendOwnerNodeIdEPNS_10JSONObjectE
   fun:_ZNK5blink22GraphicsLayerDebugInfo19appendAsTraceFormatEPNS_9WebStringE
   fun:_ZNK7content15TracedDebugInfo19AppendAsTraceFormatEPSs
   fun:_ZNK2cc9LayerImpl11AsValueIntoEPN4base5debug11TracedValueE
   fun:_ZNK2cc*LayerImpl11AsValueIntoEPN4base5debug11TracedValueE
}
{
   bug_402257_a
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN10extensions11ApiTestBase15RegisterModulesEv
   fun:_ZN10extensions11ApiTestBase5SetUpEv
   fun:_ZN10extensions16DataReceiverTest5SetUpEv
}
{
   bug_402257_b
   Memcheck:Leak
   ...
   fun:_ZN10extensions12_GLOBAL__N_111TestNatives24GetObjectTemplateBuilderEPN2v87IsolateE
   fun:_ZN3gin13WrappableBase14GetWrapperImplEPN2v87IsolateEPNS_11WrapperInfoE
   fun:_ZN3gin9WrappableIN10extensions12_GLOBAL__N_111TestNativesEE10GetWrapperEPN2v87IsolateE
   fun:_ZN3gin12CreateHandleIN10extensions12_GLOBAL__N_111TestNativesEEENS_6HandleIT_EEPN2v87IsolateEPS5_
   fun:_ZN10extensions12_GLOBAL__N_111TestNatives6CreateEPN2v87IsolateERKN4base8CallbackIFvvEEE
   fun:_ZN10extensions11ApiTestBase7RunTestERKSsS2_
   fun:_ZN10extensions29DataReceiverTest_Receive_Test8TestBodyEv
}
{
   bug_402257_c
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN3gin13HandleWrapper6CreateEPN2v87IsolateEj
   fun:_ZN3gin9ConverterIN4mojo6HandleEvE4ToV8EPN2v87IsolateERKS2_
   fun:_ZN3gin11ConvertToV8IN4mojo6HandleEEEN2v86HandleINS3_5ValueEEEPNS3_7IsolateET_
   fun:_ZN3gin10Dictionary3SetIN4mojo6HandleEEEbRKSsT_
   fun:_ZN4mojo2js12_GLOBAL__N_114CreateDataPipeERKN3gin9ArgumentsE
}
{
   bug_403774
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN5blink18ModulesInitializer4initEv
   fun:_ZN5blink19initializeWithoutV8EPNS_8PlatformE
   fun:_ZN5blink10initializeEPNS_8PlatformE
   fun:_ZN7content25TestWebKitPlatformSupportC2Ev
   fun:_ZN7content25TestWebKitPlatformSupportC1Ev
   fun:_ZN7content17UnitTestTestSuiteC2EPN4base9TestSuiteE
   fun:_ZN7content17UnitTestTestSuiteC1EPN4base9TestSuiteE
}
{
   bug_403775
   Memcheck:Leak
   fun:_Zna*
   fun:_ZN28NotificationConversionHelper28GfxImageToNotificationBitmapEPKN3gfx5ImageEPN10extensions3api13notifications18NotificationBitmapE
   fun:_ZN28NotificationConversionHelper33NotificationToNotificationOptionsERK12NotificationPN10extensions3api13notifications19NotificationOptionsE
   fun:_ZN71NotificationConversionHelperTest_NotificationToNotificationOptions_Test8TestBodyEv
}
{
   bug_404182
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN8app_list4test12_GLOBAL__N_122AppListViewTestContext16RunStartPageTestEv
}
{
   bug_415092
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN4base22PosixDynamicThreadPool7AddTaskEPNS_11PendingTaskE
   fun:_ZN4base22PosixDynamicThreadPool8PostTaskERKN15tracked_objects8LocationERKNS_8CallbackIFvvEEE
   fun:_ZN4base12_GLOBAL__N_114WorkerPoolImpl8PostTaskERKN15tracked_objects8LocationERKNS_8CallbackIFvvEEEb
   fun:_ZN4base10WorkerPool8PostTaskERKN15tracked_objects8LocationERKNS_8CallbackIFvvEEEb
}
{
   bug_416729
   Memcheck:Unaddressable
   fun:_ZNK5blink6MemberINS_38PlatformSpeechSynthesisUtteranceClientEEcvPS1_Ev
   fun:_ZNK5blink32PlatformSpeechSynthesisUtterance6clientEv
   fun:_ZN5blink15SpeechSynthesis17didFinishSpeakingEPNS_32PlatformSpeechSynthesisUtteranceE
   ...
   fun:_ZN5blink29PlatformSpeechSynthesizerMock16speakingFinishedEPNS_5TimerIS0_EE
   fun:_ZN5blink5TimerINS_29PlatformSpeechSynthesizerMockEE5firedEv
   fun:_ZN5blink12ThreadTimers24sharedTimerFiredInternalEv
   fun:_ZN5blink12ThreadTimers16sharedTimerFiredEv
   ...
   fun:_ZN7content17BlinkPlatformImpl9DoTimeoutEv
}
{
   bug_417119
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN7storage27TaskRunnerBoundObserverListINS_18FileUpdateObserverEPS1_EaSERKS3_
   fun:_ZN7storage26FileSystemOperationContext20set_update_observersERKNS_27TaskRunnerBoundObserverListINS_18FileUpdateObserverEPS2_EE
   fun:_ZNK7storage32SandboxFileSystemBackendDelegate32CreateFileSystemOperationContextERKNS_13FileSystemURLEPNS_17FileSystemContextEPN4base4File5ErrorE
   fun:_ZNK7storage24SandboxFileSystemBackend25CreateFileSystemOperationERKNS_13FileSystemURLEPNS_17FileSystemContextEPN4base4File5ErrorE
   fun:_ZN7storage17FileSystemContext25CreateFileSystemOperationERKNS_13FileSystemURLEPN4base4File5ErrorE
}
{
   bug_417526
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN16sync_file_system13drive_backend14SyncEngineTest5SetUpEv
}
{
   bug_422485
   Memcheck:Overlap
   fun:memcpy@@GLIBC_2.14
   fun:_ZNK8SkBitmap12copyPixelsToEPvmmb
   fun:_ZN5blink19ImageFrameGenerator14decodeAndScaleERK11SkImageInfomPvm
   fun:_ZN5blink22DecodingImageGenerator11onGetPixelsERK11SkImageInfoPvmPjPi
}
{
   bug_424056a
   Memcheck:Leak
   fun:malloc
   fun:_ZN3WTF13CStringBuffer19createUninitializedEm
   fun:_ZN3WTF7CString16newUninitializedEmRPc
   fun:_ZN3WTF15TextCodecLatin112encodeCommonIhEENS_7CStringEPKT_mNS_19UnencodableHandlingE
   fun:_ZN3WTF15TextCodecLatin16encodeEPKhmNS_19UnencodableHandlingE
}
{
   bug_424056b
   Memcheck:Leak
   fun:malloc
   fun:_ZN3WTF13CStringBuffer19createUninitializedEm
   fun:_ZN3WTF7CString4initEPKcm
   fun:_ZN3WTF7CStringC1EPKcm
   fun:_ZN3WTF13TextCodecUTF812encodeCommonIhEENS_7CStringEPKT_m
   fun:_ZN3WTF13TextCodecUTF86encodeEPKhmNS_19UnencodableHandlingE
   fun:_ZNK3WTF12TextEncoding6encodeERKNS_6StringENS_19UnencodableHandlingE
}
{
   bug_424575
   Memcheck:Uninitialized
   fun:_ZN7content13NavigatorImpl23RecordNavigationMetricsERKNS_20LoadCommittedDetailsERK44FrameHostMsg_DidCommitProvisionalLoad_ParamsPNS_12SiteInstanceE
   fun:_ZN7content13NavigatorImpl11DidNavigateEPNS_19RenderFrameHostImplERK44FrameHostMsg_DidCommitProvisionalLoad_Params
   fun:_ZN7content19RenderFrameHostImpl26OnDidCommitProvisionalLoadERKN3IPC7MessageE
   fun:_ZN7content19TestRenderFrameHost26SendNavigateWithParametersEiRK4GURLN2ui14PageTransitionES3_iPKN4base8FilePathERKSt6vectorIS1_SaIS1_EE
   fun:_ZN7content19TestRenderFrameHost41SendNavigateWithTransitionAndResponseCodeEiRK4GURLN2ui14PageTransitionEi
   fun:_ZN7content19TestRenderFrameHost26SendNavigateWithTransitionEiRK4GURLN2ui14PageTransitionE
}
{
   bug_431209a
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN8remoting13ClipboardAuraC1E13scoped_refptrIN4base22SingleThreadTaskRunnerEE
   fun:_ZN8remoting17ClipboardAuraTest5SetUpEv
}
{
   bug_431209b
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN2ui9Clipboard6CreateEv
   fun:_ZN2ui9Clipboard19GetForCurrentThreadEv
   fun:_ZN2ui21ScopedClipboardWriterD1Ev
   fun:_ZN8remoting13ClipboardAura4Core20InjectClipboardEventERKNS_8protocol14ClipboardEventE
}
{
   bug_431213_a
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN3gin22CreateFunctionTemplateIF*LocalINS6_16FunctionTemplateEEEPNS6_7IsolateEN4base8CallbackIT_EEi
   fun:_ZN3gin12_GLOBAL__N_114CallbackTraitsIMN*CreateTemplateEPN2v87IsolateES6_
   fun:_ZN3gin21ObjectTemplateBuilder9SetMethodIMN*0_RKN4base16BasicStringPieceISsEERKT_
   fun:_ZN*24GetObjectTemplateBuilderEPN2v87IsolateE
}
{
   bug_431213_b
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN3gin22CreateFunctionTemplateIF*IsolateEN4base8CallbackIT_EEi
   fun:_ZN3gin12_GLOBAL__N_114CallbackTraitsIF*
   fun:_ZN3gin21ObjectTemplateBuilder9SetMethod*RKN4base16BasicStringPieceISsEERKT_
   fun:_ZN4mojo2js*GetModuleEPN2v87IsolateE
}
{
   bug_431213_c
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN3gin22CreateFunctionTemplateIF*IsolateEN4base8CallbackIT_EEi
   fun:_ZN3gin12_GLOBAL__N_114CallbackTraitsI*
   fun:_ZN3gin21ObjectTemplateBuilder9SetMethod*RKN4base16BasicStringPieceISsEERKT_
   fun:_ZN10extensions19TestServiceProvider24GetObjectTemplateBuilderEPN2v87IsolateE
}
{
   bug_431213_d
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN3gin22CreateFunctionTemplateIF*IsolateEN4base8CallbackIT_EEi
   fun:_ZN3gin12_GLOBAL__N_114CallbackTraitsI*
   fun:_ZN3gin21ObjectTemplateBuilder9SetMethod*RKN4base16BasicStringPieceISsEERKT_
   fun:_ZN10extensions12_GLOBAL__N_111TestNatives24GetObjectTemplateBuilderEPN2v87IsolateE
}
{
   bug_436110
   Memcheck:Param
   socketcall.sendto(msg)
   fun:send
   fun:_ZN4mojo8embedder20PlatformChannelWriteENS0_14PlatformHandleEPKvm
   fun:_ZN4mojo6system12_GLOBAL__N_115RawChannelPosix11WriteNoLockEPmS3_
   fun:_ZN4mojo6system12_GLOBAL__N_115RawChannelPosix29OnFileCanWriteWithoutBlockingEi
   fun:_ZThn112_N4mojo6system12_GLOBAL__N_115RawChannelPosix29OnFileCanWriteWithoutBlockingEi
   fun:_ZN4base19MessagePumpLibevent21FileDescriptorWatcher29OnFileCanWriteWithoutBlockingEiPS0_
   fun:_ZN4base19MessagePumpLibevent22OnLibeventNotificationEisPv
   fun:event_process_active
   fun:event_base_loop
   fun:_ZN4base19MessagePumpLibevent3RunEPNS_11MessagePump8DelegateE
   fun:_ZN4base11MessageLoop10RunHandlerEv
}
{
   bug_436110_a
   Memcheck:Param
   socketcall.sendto(msg)
   fun:send
   fun:_ZN4mojo8embedder20PlatformChannelWriteENS0_14PlatformHandleEPKvm
   fun:_ZN4mojo6system12_GLOBAL__N_115RawChannelPosix11WriteNoLockEPmS3_
   fun:_ZN4mojo6system10RawChannel12WriteMessageE10scoped_ptrINS0_16MessageInTransitEN4base14DefaultDeleterIS3_EEE
   fun:_ZN4mojo6system7Channel12WriteMessageE10scoped_ptrINS0_16MessageInTransitEN4base14DefaultDeleterIS3_EEE
   fun:_ZN4mojo6system15ChannelEndpoint18WriteMessageNoLockE10scoped_ptrINS0_16MessageInTransitEN4base14DefaultDeleterIS3_EEE
   fun:_ZN4mojo6system15ChannelEndpoint14EnqueueMessageE10scoped_ptrINS0_16MessageInTransitEN4base14DefaultDeleterIS3_EEE
   fun:_ZN4mojo6system24ProxyMessagePipeEndpoint14EnqueueMessageE10scoped_ptrINS0_16MessageInTransitEN4base14DefaultDeleterIS3_EEE
   fun:_ZN4mojo6system11MessagePipe14EnqueueMessageEj10scoped_ptrINS0_16MessageInTransitEN4base14DefaultDeleterIS3_EEEPSt6vectorINS0_19DispatcherTransportESaIS9_EE
   fun:_ZN4mojo6system11MessagePipe12WriteMessageEjNS0_11UserPointerIKvEEjPSt6vectorINS0_19DispatcherTransportESaIS6_EEj
   fun:_ZN4mojo6system21MessagePipeDispatcher22WriteMessageImplNoLockENS0_11UserPointerIKvEEjPSt6vectorINS0_19DispatcherTransportESaIS6_EEj
   fun:_ZN4mojo6system10Dispatcher12WriteMessageENS0_11UserPointerIKvEEjPSt6vectorINS0_19DispatcherTransportESaIS6_EEj
   fun:_ZN4mojo6system4Core12WriteMessageEjNS0_11UserPointerIKvEEjNS2_IKjEEjj
   fun:MojoWriteMessage
}
{
   bug_436110_b
   Memcheck:Param
   sendmsg(msg.msg_iov[0])
   obj:/lib/x86_64-linux-gnu/libpthread-2.15.so
   fun:_ZN4mojo8embedder33PlatformChannelSendmsgWithHandlesENS0_14PlatformHandleEP5iovecmPS1_m
   ...
   fun:MojoWriteMessage
}
{
   bug_436172
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN3IPC11SyncChannelC1EPNS_8ListenerERK13scoped_refptrIN4base22SingleThreadTaskRunnerEEPNS4_13WaitableEventE
   ...
   fun:_ZN7content28BrowserGpuChannelHostFactory16EstablishRequest12FinishOnMainEv
}
{
   bug_436172_b
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN3IPC7Channel6CreateERKNS_13ChannelHandleENS0_4ModeEPNS_8ListenerE
   fun:_ZN3IPC12_GLOBAL__N_122PlatformChannelFactory12BuildChannelEPNS_8ListenerE
   fun:_ZN3IPC12ChannelProxy7Context13CreateChannelE10scoped_ptrINS_14ChannelFactoryEN4base14DefaultDeleterIS3_EEE
   ...
   fun:_ZN7content28BrowserGpuChannelHostFactory16EstablishRequest12FinishOnMainEv
}
{
   bug_436172_c
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN3IPC12ChannelProxy7ContextC1EPNS_8ListenerERK13scoped_refptrIN4base22SingleThreadTaskRunnerEE
   fun:_ZN3IPC11SyncChannel11SyncContextC1EPNS_8ListenerERK13scoped_refptrIN4base22SingleThreadTaskRunnerEEPNS5_13WaitableEventE
   fun:_ZN3IPC11SyncChannelC1EPNS_8ListenerERK13scoped_refptrIN4base22SingleThreadTaskRunnerEEPNS4_13WaitableEventE
   fun:_ZN3IPC11SyncChannel6CreateEPNS_8ListenerERK13scoped_refptrIN4base22SingleThreadTaskRunnerEEPNS4_13WaitableEventE
   ...
   fun:_ZN7content28BrowserGpuChannelHostFactory16EstablishRequest12FinishOnMainEv
}
{
   bug_436172_d
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN7content14GpuChannelHost7ConnectERKN3IPC13ChannelHandleEPN4base13WaitableEventE
   fun:_ZN7content14GpuChannelHost6CreateEPNS_21GpuChannelHostFactoryERKN3gpu7GPUInfoERKN3IPC13ChannelHandleEPN4base13WaitableEventEPNS3_22GpuMemoryBufferManagerE
   fun:_ZN7content28BrowserGpuChannelHostFactory21GpuChannelEstablishedEv
   fun:_ZN7content28BrowserGpuChannelHostFactory16EstablishRequest12FinishOnMainEv
}
{
   Expected_leak_due_to_gpu_thread_leaked_by_lazy_instance
   Memcheck:Leak
   fun:calloc
   fun:pthread_setspecific
   ...
   fun:_ZN3gpu22InProcessCommandBuffer21InitializeOnGpuThreadERKNS0_27InitializeOnGpuThreadParamsE
}
{
   bug_441333
   Memcheck:Uninitialized
   fun:av_packet_unpack_dictionary
   fun:add_metadata_from_side_data
   fun:avcodec_decode_*
}
{
   bug_448700_a
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN10extensions11ApiTestBase15RegisterModulesEv
   fun:_ZN10extensions11ApiTestBase5SetUpEv
}
{
   bug_448700_b
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN10extensions12_GLOBAL__N_111TestNatives24GetObjectTemplateBuilderEPN2v87IsolateE
   fun:_ZN3gin13WrappableBase14GetWrapperImplEPN2v87IsolateEPNS_11WrapperInfoE
   fun:_ZN3gin9WrappableIN10extensions12_GLOBAL__N_111TestNativesEE10GetWrapperEPN2v87IsolateE
   fun:_ZN3gin12CreateHandleIN10extensions12_GLOBAL__N_111TestNativesEEENS_6HandleIT_EEPN2v87IsolateEPS5_
   fun:_ZN10extensions12_GLOBAL__N_111TestNatives6CreateEPN2v87IsolateERKN4base8CallbackIFvvEEE
   fun:_ZN10extensions11ApiTestBase7RunTestERKSsS2_
   fun:_ZN10extensions30MojoPrivateApiTest_Define_Test8TestBodyEv
}
{
   bug_449156_a
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN7leveldb2DB4OpenERKNS_7OptionsERKSsPPS0_
   fun:_ZN7storage21SandboxOriginDatabase4InitENS0_10InitOptionENS0_14RecoveryOptionE
   fun:_ZN7storage21SandboxOriginDatabase16GetPathForOriginERKSsPN4base8FilePathE
   fun:_ZN7storage32SandboxPrioritizedOriginDatabase16GetPathForOriginERKSsPN4base8FilePathE
   fun:_ZN7storage18ObfuscatedFileUtil21GetDirectoryForOriginERK4GURLbPN4base4File5ErrorE
   fun:_ZN7storage18ObfuscatedFileUtil28GetDirectoryForOriginAndTypeERK4GURLRKSsbPN4base4File5ErrorE
   fun:_ZN7storage12_GLOBAL__N_130OpenFileSystemOnFileTaskRunnerEPNS_18ObfuscatedFileUtilERK4GURLNS_14FileSystemTypeENS_18OpenFileSystemModeEPN4base4File5ErrorE
}
{
   bug_449156_b
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN7storage18ObfuscatedFileUtil8MarkUsedEv
   fun:_ZN7storage18ObfuscatedFileUtil20GetDirectoryDatabaseERKNS_13FileSystemURLEb
}
{
   bug_449175_a
   Memcheck:Leak
   fun:_Zna*
   fun:_ZN4mojo6system17UserPointerReaderIKjE4InitEPS2_mb
   fun:_ZN4mojo6system17UserPointerReaderIKjEC2ENS0_11UserPointerIS2_EEm
   fun:_ZN4mojo6system4Core8WaitManyENS0_11UserPointerIKjEES4_jmNS2_IjEENS2_I22MojoHandleSignalsStateEE
   fun:MojoWaitMany
   fun:_ZN4mojo8WaitManyI*
   fun:_ZN4mojo6common15MessagePumpMojo14DoInternalWorkERKNS1_8RunStateEb
   fun:_ZN4mojo6common15MessagePumpMojo9DoRunLoopEPNS1_8RunStateEPN4base11MessagePump8DelegateE
   fun:_ZN4mojo6common15MessagePumpMojo3RunEPN4base11MessagePump8DelegateE
   fun:_ZN4base11MessageLoop10RunHandlerEv
   fun:_ZN4base7RunLoop3RunEv
   fun:_ZN4base11MessageLoop3RunEv
   fun:_ZN4base6Thread3RunEPNS_11MessageLoopE
   fun:_ZN4base6Thread10ThreadMainEv
   fun:_ZN4base12_GLOBAL__N_110ThreadFuncEPv
}
{
   bug_449175_b
   Memcheck:Leak
   fun:calloc
   fun:pthread_setspecific
   fun:_ZN4base8internal19ThreadLocalPlatform14SetValueInSlotEjPv
   fun:_ZN4base18ThreadLocalPointerIN4mojo6common15MessagePumpMojoEE3SetEPS3_
   fun:_ZN4mojo6common15MessagePumpMojoC1Ev
   fun:_ZN4mojo6common15MessagePumpMojo6CreateEv
}
{
   bug_450228
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN9__gnu_cxx13new_allocatorISt13_Rb_tree_nodeISt4pairIKi10linked_ptrIN4base19SequencedWorkerPool6WorkerEEEEE8allocateEmPKv
   fun:_ZNSt8_Rb_treeIiSt4pairIKi10linked_ptrIN4base19SequencedWorkerPool6WorkerEEESt10_Select1stIS7_ESt4lessIiESaIS7_EE11_M_get_nodeEv
   fun:_ZNSt8_Rb_treeIiSt4pairIKi10linked_ptrIN4base19SequencedWorkerPool6WorkerEEESt10_Select1stIS7_ESt4lessIiESaIS7_EE14_M_create_nodeIJS0_IiS6_EEEEPSt13_Rb_tree_nodeIS7_EDpOT_
   fun:_ZNSt8_Rb_treeIiSt4pairIKi10linked_ptrIN4base19SequencedWorkerPool6WorkerEEESt10_Select1stIS7_ESt4lessIiESaIS7_EE10_M_insert_IS0_IiS6_EEESt17_Rb_tree_iteratorIS7_EPKSt18_Rb_tree_node_baseSK_OT_
   fun:_ZNSt8_Rb_treeIiSt4pairIKi10linked_ptrIN4base19SequencedWorkerPool6WorkerEEESt10_Select1stIS7_ESt4lessIiESaIS7_EE16_M_insert_uniqueIS0_IiS6_EEES0_ISt17_Rb_tree_iteratorIS7_EbEOT_
   fun:_ZNSt3mapIi10linked_ptrIN4base19SequencedWorkerPool6WorkerEESt4lessIiESaISt4pairIKiS4_EEE6insertIS7_IiS4_EvEES7_ISt17_Rb_tree_iteratorIS9_EbEOT_
   fun:_ZN4base19SequencedWorkerPool5Inner10ThreadLoopEPNS0_6WorkerE
   fun:_ZN4base19SequencedWorkerPool6Worker3RunEv
   fun:_ZN4base12SimpleThread10ThreadMainEv
   fun:_ZN4base12_GLOBAL__N_110ThreadFuncEPv
}
{
   bug_455732
   Memcheck:Leak
   fun:_Znw*
   ...
   fun:_ZN7content12_GLOBAL__N_120ApplicationSetupImpl24ExchangeServiceProvidersEN4mojo16InterfaceRequestINS2_15ServiceProviderEEENS2_12InterfacePtrIS4_EE
   fun:_ZN7content20ApplicationSetupStub6AcceptEPN4mojo7MessageE
   fun:_ZN4mojo8internal6Router21HandleIncomingMessageEPNS_7MessageE
   fun:_ZN4mojo8internal6Router26HandleIncomingMessageThunk6AcceptEPNS_7MessageE
   fun:_ZN7content32ApplicationSetupRequestValidator6AcceptEPN4mojo7MessageE
   fun:_ZN4mojo8internal22MessageHeaderValidator6AcceptEPNS_7MessageE
   fun:_ZN4mojo22ReadAndDispatchMessageENS_17MessagePipeHandleEPNS_15MessageReceiverEPb
   fun:_ZN4mojo8internal9Connector17ReadSingleMessageEPi
   fun:_ZN4mojo8internal9Connector24ReadAllAvailableMessagesEv
   fun:_ZN4mojo8internal9Connector13OnHandleReadyEi
   fun:_ZN4mojo8internal9Connector17CallOnHandleReadyEPvi
   fun:_ZN4mojo8internal12_GLOBAL__N_113OnHandleReadyEPNS_6common13HandleWatcherEPFvPviES5_i
}
{
   bug_457557
   Memcheck:Leak
   fun:calloc
   fun:pthread_setspecific
   fun:_ZN4base8internal19ThreadLocalPlatform14SetValueInSlotEjPv
   fun:_ZN4base18ThreadLocalPointerIvE3SetEPv
   fun:_ZN4base18ThreadLocalBoolean3SetEb
   fun:_ZN4base12_GLOBAL__N_112WorkerThread10ThreadMainEv
   fun:_ZN4base12_GLOBAL__N_110ThreadFuncEPv
}
{
   bug_476940
   Memcheck:Leak
   fun:malloc
   fun:_ZN3WTF9BitVector13OutOfLineBits6createEm
   fun:_ZN3WTF9BitVector15resizeOutOfLineEm
   fun:_ZN3WTF9BitVector10ensureSizeEm
   fun:_ZN3WTF9BitVectorC2Em
   fun:_ZN5blink10UseCounter9CountBitsC2Ev
   fun:_ZN5blink10UseCounterC1Ev
   fun:_ZN5blink4PageC1ERNS0_11PageClientsE
}
{
   bug_484456
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN7content26GpuProcessTransportFactory23CreatePerCompositorDataEPN2ui10CompositorE
   fun:_ZN7content26GpuProcessTransportFactory19CreateOutputSurfaceEN4base7WeakPtrIN2ui10CompositorEEE
   fun:_ZN2ui10Compositor23RequestNewOutputSurfaceEv
   fun:_ZN2cc13LayerTreeHost23RequestNewOutputSurfaceEv
   fun:_ZN2cc17SingleThreadProxy23RequestNewOutputSurfaceEv
}
{
   bug_484459
   Memcheck:Leak
   fun:_Znw*
   fun:_ZN7content17ResourceScheduler15OnClientCreatedEiibb
   fun:_ZN7content26ResourceDispatcherHostImpl23OnRenderViewHostCreatedEiibb
}
{
   bug_484882
   Memcheck:Uninitialized
   fun:_ZNK8SkStroke10strokePathERK6SkPathPS0_
   fun:_ZNK11SkStrokeRec11applyToPathEP6SkPathRKS0_
   fun:_ZNK7SkPaint11getFillPathERK6SkPathPS0_PK6SkRectf
   fun:_ZNK7SkPaint11getFillPathERK6SkPathPS0_
   fun:_ZNK5blink4Path18strokeBoundingRectERKNS_10StrokeDataE
   fun:_ZNK5blink14LayoutSVGShape26calculateStrokeBoundingBoxEv
   fun:_ZN5blink14LayoutSVGShape22updateShapeFromElementEv
}
{
  bug_487706
  Memcheck:Leak
  fun:calloc
  ...
  fun:ssl3_HandleClientHello
  fun:ssl3_HandleHandshakeMessage
  fun:ssl3_HandleHandshake
  fun:ssl3_HandleRecord
  fun:ssl3_GatherCompleteHandshake
  fun:SSL_ForceHandshake
  fun:_ZN3net18SSLServerSocketNSS11DoHandshakeEv
}
{
  buf_492821
  Memcheck:Uninitialized
  fun:_ZN5blink17CSSPropertyParser9validUnitEPNS_14CSSParserValueENS0_5UnitsENS_13CSSParserModeENS0_31ReleaseParsedCalcValueConditionE
  fun:_ZN5blink17CSSPropertyParser9validUnitEPNS_14CSSParserValueENS0_5UnitsENS0_31ReleaseParsedCalcValueConditionE
    fun:_ZN5blink17CSSPropertyParser18validWidthOrHeightEPNS_14CSSParserValueENS0_5UnitsE
    fun:_ZN5blink17CSSPropertyParser10parseValueENS_13CSSPropertyIDEb
    fun:_ZN5blink17CSSPropertyParser10parseValueENS_13CSSPropertyIDEbPNS_18CSSParserValueListERKNS_16CSSParserContextERN3WTF6VectorINS_11CSSPropertyELm256ENS7_16DefaultAllocatorEEENS_13StyleRuleBase4TypeE
    fun:_ZN5blink13CSSParserImpl23consumeDeclarationValueENS_19CSSParserTokenRangeENS_13CSSPropertyIDEbNS_13StyleRuleBase4TypeE
fun:_ZN5blink13CSSParserImpl18consumeDeclarationENS_19CSSParserTokenRangeENS_13StyleRuleBase4TypeE
}
