# This file contains suppressions for the Dr.Memory tool, see
# http://dev.chromium.org/developers/how-tos/using-drmemory
#
# This file contains suppressions for the DrMemory reports happening
# in the 'light' mode (a.k.a. drmemory_light) as well as in the 'full' mode.
# Please use suppressions_full.txt for all the reports that can happen only
# in the full mode (drmemory_full),

############################
# Known reports on the third party we have no control over.

# Reports from Sophos antivirus
UNADDRESSABLE ACCESS
name=Sophos UNADDR
...
sophos*.dll!*

UNINITIALIZED READ
name=Sophos UNINIT
...
sophos*.dll!*

LEAK
name=Sophos LEAK
...
sophos*.dll!*

# Reports from Micorosft RDP ActiveX control (mstscax.dll)

GDI USAGE ERROR
name=crbug.com/177832: mstscax.dll causes "GDI USAGE ERROR" errors.
...
mstscax.dll!*

UNADDRESSABLE ACCESS
name=crbug.com/177832: mstscax.dll causes "UNADDRESSABLE ACCESS" errors.
...
mstscax.dll!*

############################
# Suppress some false reports due to bugs in Dr.Memory like wrong analysis
# assumptions or unhandled syscalls

# Please note: the following suppressions were written in the abscense of
# private symbols so may need to be updated when we switch to auto-loading PDBs

UNADDRESSABLE ACCESS
name=https://github.com/DynamoRIO/drmemory/issues/12 UNADDR
...
SHELL32.dll!SHFileOperation*

UNADDRESSABLE ACCESS
name=https://github.com/DynamoRIO/drmemory/issues/40 UNADDR
...
WINSPOOL.DRV!*

INVALID HEAP ARGUMENT
name=https://github.com/DynamoRIO/drmemory/issues/40 INVALID HEAP
...
WINSPOOL.DRV!*

UNADDRESSABLE ACCESS
name=https://github.com/DynamoRIO/drmemory/issues/59
...
*!SetEnvironmentVariable*

UNADDRESSABLE ACCESS
name=https://github.com/DynamoRIO/drmemory/issues/68 (UNADDR 1)
...
MSWSOCK.dll!WSPStartup

UNADDRESSABLE ACCESS
name=https://github.com/DynamoRIO/drmemory/issues/68 (UNADDR 2)
...
ntdll.dll!RtlValidateUnicodeString

############################
# TODO(timurrrr): investigate these
UNADDRESSABLE ACCESS
name=TODO SHParseDisplayName
...
*!SHParseDisplayName

UNADDRESSABLE ACCESS
name=TODO GetCanonicalPathInfo
...
*!GetCanonicalPathInfo*

UNADDRESSABLE ACCESS
name=TODO CreateDC
...
GDI32.dll!CreateDC*

# This one looks interesting
INVALID HEAP ARGUMENT
name=TODO ExitProcess
...
KERNEL32.dll!ExitProcess

INVALID HEAP ARGUMENT
name=http://crbug.com/103365 (a)
ppapi_tests.dll!*
...
ppapi_tests.dll!*
*!base::internal::RunnableAdapter<*>::Run

INVALID HEAP ARGUMENT
name=http://crbug.com/103365 (b)
ppapi_tests.dll!*
...
ppapi_tests.dll!*
*!PP_RunCompletionCallback
...
*!base::internal::RunnableAdapter<*>::Run

INVALID HEAP ARGUMENT
name=http://crbug.com/107567 intentional mismatch in _DebugHeapDelete, no frame
*!std::numpunct<*>::_Tidy
*!std::numpunct<*>::~numpunct<*>

# TODO(rbultje): Investigate if code fix is required instead.
WARNING
name=http://crbug.com/223255 - prefetches in vp8
instruction=prefetch*
ffmpegsumo.dll!ff_prefetch_mmxext

############################
# Intentional errors in Chromium tests (ToolsSanityTests)
LEAK
name=sanity test 01 (memory leak)
base_unittests.exe!operator new
base_unittests.exe!operator new[]
base_unittests.exe!base::ToolsSanityTest_MemoryLeak_Test::TestBody

# "..." is needed due to https://github.com/DynamoRIO/drmemory/issues/666
UNADDRESSABLE ACCESS
name=sanity test 02 (malloc/read left)
base_unittests.exe!*ReadValueOutOfArrayBoundsLeft
...
base_unittests.exe!base::ToolsSanityTest_AccessesToMallocMemory_Test::TestBody

UNADDRESSABLE ACCESS
name=sanity test 03 (malloc/read right)
base_unittests.exe!*ReadValueOutOfArrayBoundsRight
base_unittests.exe!*MakeSomeErrors
base_unittests.exe!base::ToolsSanityTest_AccessesToMallocMemory_Test::TestBody

UNADDRESSABLE ACCESS
name=sanity test 04 (malloc/write left)
base_unittests.exe!*WriteValueOutOfArrayBoundsLeft
base_unittests.exe!*MakeSomeErrors
base_unittests.exe!base::ToolsSanityTest_AccessesToMallocMemory_Test::TestBody

UNADDRESSABLE ACCESS
name=sanity test 05 (malloc/write right)
base_unittests.exe!*WriteValueOutOfArrayBoundsRight
base_unittests.exe!*MakeSomeErrors
base_unittests.exe!base::ToolsSanityTest_AccessesToMallocMemory_Test::TestBody

# "..." is needed due to https://github.com/DynamoRIO/drmemory/issues/666
UNADDRESSABLE ACCESS
name=sanity test 06 (new/read left)
base_unittests.exe!*ReadValueOutOfArrayBoundsLeft
...
base_unittests.exe!base::ToolsSanityTest_AccessesToNewMemory_Test::TestBody

UNADDRESSABLE ACCESS
name=sanity test 07 (new/read right)
base_unittests.exe!*ReadValueOutOfArrayBoundsRight
base_unittests.exe!*MakeSomeErrors
base_unittests.exe!base::ToolsSanityTest_AccessesToNewMemory_Test::TestBody

UNADDRESSABLE ACCESS
name=sanity test 08 (new/write left)
base_unittests.exe!*WriteValueOutOfArrayBoundsLeft
base_unittests.exe!*MakeSomeErrors
base_unittests.exe!base::ToolsSanityTest_AccessesToNewMemory_Test::TestBody

UNADDRESSABLE ACCESS
name=sanity test 09 (new/write right)
base_unittests.exe!*WriteValueOutOfArrayBoundsRight
base_unittests.exe!*MakeSomeErrors
base_unittests.exe!base::ToolsSanityTest_AccessesToNewMemory_Test::TestBody

UNADDRESSABLE ACCESS
name=sanity test 10 (write after free)
base_unittests.exe!base::ToolsSanityTest_AccessesToMallocMemory_Test::TestBody

UNADDRESSABLE ACCESS
name=sanity test 11 (write after delete)
base_unittests.exe!base::ToolsSanityTest_AccessesToNewMemory_Test::TestBody

INVALID HEAP ARGUMENT
name=sanity test 12 (array deleted without [])
base_unittests.exe!base::ToolsSanityTest_ArrayDeletedWithoutBraces_Test::TestBody

INVALID HEAP ARGUMENT
name=sanity test 13 (single element deleted with [])
base_unittests.exe!base::ToolsSanityTest_SingleElementDeletedWithBraces_Test::TestBody

UNINITIALIZED READ
name=sanity test 14 (malloc/read uninit)
base_unittests.exe!*ReadUninitializedValue
...
base_unittests.exe!*MakeSomeErrors
base_unittests.exe!base::ToolsSanityTest_AccessesToMallocMemory_Test::TestBody

UNINITIALIZED READ
name=sanity test 15 (new/read uninit)
base_unittests.exe!*ReadUninitializedValue
...
base_unittests.exe!*MakeSomeErrors
base_unittests.exe!base::ToolsSanityTest_AccessesToNewMemory_Test::TestBody

UNADDRESSABLE ACCESS
name=AboutHandler::AboutCrash deliberate crash
# TODO(bruening): switch to annotation once have support for that
chrome.dll!AboutHandler::AboutCrash

UNADDRESSABLE ACCESS
name=NPAPITesterBase.NoHangIfInitCrashes deliberate crash
# function is small, little risk for false negative in rest of it
# TODO(bruening): switch to annotation once have support for that
npapi_test_plugin.dll!NPAPIClient::PluginClient::Initialize

# Deliberate NULL deref to crash the child process
UNADDRESSABLE ACCESS
name=CrashingChildProcess deliberate crash
*!CrashingChildProcess

UNADDRESSABLE ACCESS
name=::Crasher::Run deliberate crash
*!base::`anonymous namespace'::Crasher::Run

############################
# Benign issues in Chromium

WARNING
name=http://crbug.com/72463 - prefetches in generated MemCopy
instruction=prefetch*
<not in a module>
chrome.dll!v8::internal::CopyChars*

WARNING
name=prefetches in NVD3DUM.dll
instruction=prefetch*
NVD3DUM.dll!*

WARNING
name=prefetches in igdumd32.dll
instruction=prefetch*
igdumd32.dll!*

UNADDRESSABLE ACCESS
name=https://github.com/DynamoRIO/drmemory/issues/582 bizarre cl-generated read-beyond-TOS
instruction=mov    0xfffffffc(%esp) -> %eax
chrome.dll!blink::RenderStyle::resetBorder*

INVALID HEAP ARGUMENT
name=http://crbug.com/101717 (1)
*!sandbox::PolicyBase::~PolicyBase

INVALID HEAP ARGUMENT
name=http://crbug.com/101717 (2)
*!scoped_ptr<>::~scoped_ptr<>
*!sandbox::GetHandleName

INVALID HEAP ARGUMENT
name=http://crbug.com/101717 (3)
*!scoped_ptr<>::~scoped_ptr<>
*!sandbox::GetPathFromHandle

GDI USAGE ERROR
name=https://github.com/DynamoRIO/drmemory/issues/899 deleting bitmap which is probably safe
system call NtGdiDeleteObjectApp
*!skia::`anonymous namespace'::Bitmap::~Bitmap
*!skia::`anonymous namespace'::Bitmap::`scalar deleting destructor'

############################
# Real issues in Chromium

UNADDRESSABLE ACCESS
name=http://crbug.com/88213
*!base::win::ObjectWatcher::StopWatching
*!base::win::ObjectWatcher::WillDestroyCurrentMessageLoop
*!MessageLoop::~MessageLoop

UNADDRESSABLE ACCESS
name=http://crbug.com/96010
*!TestingProfile::FinishInit
*!TestingProfile::TestingProfile
*!BrowserAboutHandlerTest_WillHandleBrowserAboutURL_Test::TestBody

UNADDRESSABLE ACCESS
name=http://crbug.com/106522
npapi_test_plugin.dll!NPAPIClient::PluginTest::id
npapi_test_plugin.dll!NPAPIClient::ExecuteGetJavascriptUrlTest::TimerProc

GDI USAGE ERROR
name=http://crbug.com/109963 c
system call NtGdiDeleteObjectApp
GDI32.dll!DeleteDC
content.dll!*

GDI USAGE ERROR
name=http://crbug.com/109963 d
system call NtGdiDeleteObjectApp
GDI32.dll!DeleteDC
*!base::internal::RunnableAdapter*

# GDI usage errors in 3rd-party components
GDI USAGE ERROR
name=http://crbug.com/119552 a
system call NtGdiDeleteObjectApp
...
*!OmniboxViewWin::*

GDI USAGE ERROR
name=http://crbug.com/119552 b
system call Nt*
...
*!ATL::*

GDI USAGE ERROR
name=http://crbug.com/119552 c
# optional gdi32.dll frame followed by user32.dll
# TODO(bruening): once have
# https://github.com/DynamoRIO/drmemory/issues/846
# I would do "gdi32.dll!...\nuser32.dll!*"
*32.dll!*
...
shell32.dll!SHGetFileInfoW
*!IconLoader::ReadIcon

GDI USAGE ERROR
name=http://crbug.com/119552 d
system call NtGdiDeleteObjectApp
gdi32.dll!DeleteObject
riched20.dll!*
riched20.dll!*
riched20.dll!*

GDI USAGE ERROR
name=http://crbug.com/120157
# "ReleaseDC called from different thread than GetDC"
system call NtUserCallOneParam.RELEASEDC
*!*FontCache::CacheElement::~CacheElement

GDI USAGE ERROR
name=http://crbug.com/158090
# "DC created by one thread and used by another"
...
content.dll!content::*::FontCache::PreCacheFont
content.dll!content::FontCacheDispatcher::OnPreCacheFont
content.dll!DispatchToMethod<>

GDI USAGE ERROR
name=http://crbug.com/158090 c#4
# ReleaseDC for DC called from different thread than the thread that called GetDC
system call NtUserCallOneParam.RELEASEDC
ui.dll!gfx::ReadColorProfile
ui.dll!gfx::GetColorProfile
content.dll!content::RenderMessageFilter::OnGetMonitorColorProfile
content.dll!DispatchToMethod*

INVALID HEAP ARGUMENT
name=http://crbug.com/158350
# allocated with operator new[], freed with operator delete
*!*
*!*
*!*
*!*
*!*
content.dll!*
content.dll!*
content.dll!*
content.dll!*
content.dll!*
*!*
*!*
*!*
*!*
*!*
KERNEL32.dll!*
ntdll.dll!*
ntdll.dll!*

WARNING
name=Security test (new oveflow)
MSVCR100D.dll!operator new
*!operator new
*!operator new[]
*!`anonymous namespace'::SecurityTest_NewOverflow_Test::TestBody
*!testing::internal::HandleExceptionsInMethodIfSupported<>

WARNING
name=Security test (calloc overflow)
*!`anonymous namespace'::CallocReturnsNull
*!`anonymous namespace'::SecurityTest_CallocOverflow_Test::TestBody
*!testing::internal::HandleExceptionsInMethodIfSupported<>

GDI USAGE ERROR
name=http://crbug.com/234484
# "DC created by one thread and used by another"
...
*!chrome::`anonymous namespace'::SetOverlayIcon

INVALID HEAP ARGUMENT
name=http://crbug.com/262088
drmemorylib.dll!av_dup_packet
msvcrt.dll!wcsrchr
ntdll.dll!RtlIsCurrentThreadAttachExempt
ntdll.dll!LdrShutdownThread
ntdll.dll!RtlExitUserThread

GDI USAGE ERROR
name=http://crbug.com/266484
skia.dll!HDCOffscreen::draw
...
skia.dll!SkScalerContext::getImage
skia.dll!SkGlyphCache::findImage
skia.dll!D1G_RectClip
skia.dll!SkDraw::draw*

HANDLE LEAK
name=http://crbug.com/346842
system call NtGdiCreateDIBSection
*!CreateDIBSection
*!HDCOffscreen::draw
*!SkScalerContext_GDI::generateImage
*!SkScalerContext::getImage
*!SkGlyphCache::findImage
*!D1G*RectClip
*!SkDraw::drawPosText
*!SkBitmapDevice::drawPosText

HANDLE LEAK
name=http://crbug.com/346993
system call NtDuplicateObject
KERNELBASE.dll!DuplicateHandle
KERNEL32.dll!DuplicateHandle*
base.dll!base::`anonymous namespace'::ThreadFunc
KERNEL32.dll!BaseThreadInitThunk

UNADDRESSABLE ACCESS
name=http://crbug.com/42043-uninit
...
QuickTime.qts!*

GDI USAGE ERROR
name=http://crbug.com/42043-gdi
...
QuickTime.qts!*

UNADDRESSABLE ACCESS
name=IntentionalCrash
*!content::*::*Crash*
*!content::*::MaybeHandleDebugURL

HANDLE LEAK
name=http://crbug.com/371348
system call NtCreateSection
KERNELBASE.dll!CreateFileMappingW
*!base::SharedMemory::Create
*!base::SharedMemory::CreateAnonymous
*!content::ChildThreadImpl::AllocateSharedMemory
...
*!content::ChildSharedBitmapManager::AllocateSharedBitmap
*!cc::ResourceProvider::CreateBitmap

HANDLE LEAK
name=http://crbug.com/371357
system call NtCreateEvent
KERNELBASE.dll!CreateEventExW
KERNELBASE.dll!CreateEventW

HANDLE LEAK
name=http://crbug.com/371368
system call NtCreateNamedPipeFile
KERNELBASE.dll!CreateNamedPipeW
ipc.dll!IPC::ChannelWin::CreatePipe
ipc.dll!IPC::ChannelWin::ChannelWin

HANDLE LEAK
name=http://crbug.com/371942
system call NtCreateThreadEx
KERNELBASE.dll!CreateRemoteThreadEx
KERNEL32.dll!CreateThread

HANDLE LEAK
name=http://crbug.com/371946
system call NtUserWindowFromPoint
content.dll!content::LegacyRenderWidgetHostHWND::OnMouseLeave
content.dll!content::LegacyRenderWidgetHostHWND::_ProcessWindowMessage
content.dll!content::LegacyRenderWidgetHostHWND::ProcessWindowMessage
content.dll!ATL::CWindowImplBaseT<>::WindowProc
USER32.dll!gapfnScSendMessage
USER32.dll!GetThreadDesktop
USER32.dll!CharPrevW
USER32.dll!DispatchMessageW
base.dll!base::MessagePumpForUI::ProcessMessageHelper
base.dll!base::MessagePumpForUI::ProcessNextWindowsMessage

UNADDRESSABLE ACCESS
name=http://crbug.com/372177
NPCTRL.dll!DllGetClassObject
NPCTRL.dll!DllGetClassObject
NPCTRL.dll!DllGetClassObject
NPCTRL.dll!DllGetClassObject

HANDLE LEAK
name=http://crbug.com/373333
system call NtGdiCreateCompatibleDC
*!CreateCompatibleDC
*!SkScalerContext_GDI::SkScalerContext_GDI
*!LogFontTypeface::onCreateScalerContext
*!SkTypeface::createScalerContext
*!SkGlyphCache::VisitCache
...
*!SkPaint::descriptorProc
...
*!blink::RenderBlockFlow::layoutBlockFlow
*!blink::RenderBlockFlow::layoutBlock
*!blink::RenderBlock::layout

HANDLE LEAK
name=https://github.com/DynamoRIO/drmemory/issues/1545
system call NtGdiCreateCompatibleDC
GDI32.dll!CreateCompatibleDC
skia.dll!LogFontTypeface::onGetTableData

HANDLE LEAK
name=http://crbug.com/379000
system call NtCreate*
...
*!disk_cache::MappedFile::Init
*!disk_cache::BlockFiles::OpenBlockFile
*!disk_cache::BlockFiles::Init
*!disk_cache::BackendImpl::SyncInit
*!disk_cache::BackendIO::ExecuteBackendOperation
*!base::internal::Invoker<>::Run
*!base::MessageLoop::RunTask
*!base::MessageLoop::DeferOrRunPendingTask
*!base::MessageLoop::DoWork
*!base::MessagePumpForIO::DoRunLoop
*!base::MessagePumpWin::Run
*!base::MessageLoop::RunHandler
*!base::Thread::Run
*!content::BrowserThreadImpl::CacheThreadRun
*!content::BrowserThreadImpl::Run

GDI USAGE ERROR
name=379774
system call NtUserCallOneParam.RELEASEDC
USER32.dll!ReleaseDC
*!std::_Tree<>::_Erase
*!std::_Tree<>::erase
*!DefaultSingletonTraits<>::Delete
*!Singleton<>::OnExit
*!base::AtExitManager::ProcessCallbacksNow
*!base::AtExitManager::~AtExitManager
*!base::TestSuite::~TestSuite

UNADDRESSABLE ACCESS
name=http://crbug.com/382784
*!content::PepperMediaStreamAudioTrackHost::AudioSink::OnData
*!content::MediaStreamAudioSinkOwner::OnData
*!content::WebRtcLocalAudioTrack::Capture
*!content::WebRtcAudioCapturer::Capture
*!media::AudioInputDevice::AudioThreadCallback::Process
*!media::AudioDeviceThread::Thread::Run
*!media::AudioDeviceThread::Thread::ThreadMain

UNADDRESSABLE ACCESS
name=IntentionalCrashPluginTest.plugin_client.cc
npapi_test_plugin.dll!NP_Initialize
...
*!content::PluginLib::NP_Initialize
*!content::PluginThread::PluginThread
*!content::PluginMain

UNADDRESSABLE ACCESS
name=http://crbug.com/313788
*!InProcessBrowserTest::AddBlankTabAndShow
*!InProcessBrowserTest::CreateBrowser
*!*::RunTestOnMainThread
*!InProcessBrowserTest::RunTestOnMainThreadLoop
*!ChromeBrowserMainParts::PreMainMessageLoopRunImpl
*!ChromeBrowserMainParts::PreMainMessageLoopRun

# This suppression is deliberately general, as bugs reported in
# v8 generated code are difficult to track down. Xref Dr. Memory issue
# https://github.com/DynamoRIO/drmemory/issues/1582
UNADDRESSABLE ACCESS
name=https://github.com/DynamoRIO/drmemory/issues/1582
...
*!v8::internal::Invoke
*!v8::internal::Execution::Call
*!v8::Function::Call

HANDLE LEAK
name=http://crbug.com/387394
system call NtCreateTimer
KERNELBASE.dll!CreateWaitableTimerExW
KERNEL32.dll!CreateWaitableTimerW
*!rtc::Timing::Timing
...
*!content::RenderProcessHostImpl::CreateMessageFilters
*!content::RenderProcessHostImpl::Init
*!content::RenderViewHostImpl::CreateRenderView

UNADDRESSABLE ACCESS
name=https://github.com/DynamoRIO/dynamorio/issues/1443
dynamorio.dll!*

UNINITIALIZED READ
name=https://github.com/DynamoRIO/dynamorio/issues/1443 (another instance)
dynamorio.dll!*

UNADDRESSABLE ACCESS
name=http://crbug.com/400495
aura.dll!aura::Window::Contains
aura.dll!aura::WindowEventDispatcher::OnWindowHidden
aura.dll!aura::WindowEventDispatcher::OnPostNotifiedWindowDestroying
aura.dll!aura::Window::~Window

UNADDRESSABLE ACCESS
name=http://crbug.com/400511
content.dll!content::WebThreadBase::TaskObserverAdapter::WillProcessTask
base.dll!base::MessageLoop::RunTask
base.dll!base::Thread::StopSoon
base.dll!base::MessageLoop::DeferOrRunPendingTask

UNADDRESSABLE ACCESS
name=http://crbug.com/414675
blink_web.dll!blink::toCoreFrame
blink_web.dll!blink::RemoteFrameClient::firstChild
blink_web.dll!blink::WebRemoteFrameImpl::~WebRemoteFrameImpl
blink_web.dll!blink::WebRemoteFrameImpl::close
content.dll!content::RenderFrameProxy::~RenderFrameProxy

UNADDRESSABLE ACCESS
name=http://crbug.com/420311
blink_web.dll!blink::Frame::deprecatedLocalOwner
blink_web.dll!blink::Document::topDocument
blink_web.dll!blink::Document::axObjectCacheOwner
blink_web.dll!blink::Document::existingAXObjectCache
blink_web.dll!blink::FrameView::removeFromAXObjectCache
blink_web.dll!blink::FrameView::prepareForDetach
blink_web.dll!blink::LocalFrame::setView
blink_web.dll!blink::FrameTree::~FrameTree

UNADDRESSABLE ACCESS
name=http://crbug.com/432070
blink_web.dll!blink::Frame::detach
content.dll!content::RenderFrameProxy::OnDeleteProxy
content.dll!content::RenderFrameProxy::OnMessageReceived
content.dll!content::MessageRouter::RouteMessage

HANDLE LEAK
name=http://crbug.com/441785
system call NtCreateSection
*!CreateFileMappingW
*!base::SharedMemory::Create
*!base::SharedMemory::CreateAnonymous
*!content::ChildThread::AllocateSharedMemory
*!content::ChildSharedBitmapManager::AllocateSharedMemoryBitmap
*!content::ChildSharedBitmapManager::AllocateSharedBitmap
*!cc::ResourceProvider::CreateBitmap
*!cc::ResourceProvider::Create*Resource

HANDLE LEAK
name=http://crbug.com/449989
system call NtOpenProcess
KERNELBASE.dll!OpenProcess
base.dll!base::Process::OpenWithExtraPrivileges
content.dll!content::BrowserMessageFilter::Internal::OnChannelConnected

UNADDRESSABLE ACCESS
name=http://crbug.com/455060
*!content::FrameAccessibility::GetParent
*!content::RenderFrameHostImpl::AccessibilityGetParentFrame
*!content::BrowserAccessibilityManager::GetDelegateFromRootManager
*!content::BrowserAccessibilityManager::OnWindowBlurred
...
*!content::RenderWidgetHostViewAura::Destroy

INVALID HEAP ARGUMENT
name=http://crbug.com/455994
drmemorylib.dll!replace_operator_delete
*!IPC::Listener::`vector deleting destructor'
*!content::RenderFrameImpl::~RenderFrameImpl
*!content::RenderFrameImpl::`vector deleting destructor'
*!content::RenderViewImpl::~RenderViewImpl
*!content::RenderViewImpl::`vector deleting destructor'
*!scoped_refptr<>::Release
*!base::internal::BindState<>::`scalar deleting destructor'
*!scoped_refptr<>::Release
*!base::internal::CallbackBase::~CallbackBase
*!base::MessagePumpDefault::Run
*!base::MessageLoop::RunHandler
*!base::MessageLoop::Run
*!content::RendererMain
*!content::RunNamedProcessTypeMain
*!content::ContentMainRunnerImpl::Run
*!content::ContentMain
*!content::LaunchTests

UNINITIALIZED READ
name=http://crbug.com/463204
skia.dll!_ltod3
skia.dll!SkPaint::measure_text
skia.dll!SkPaint::measureText
content.dll!content::DoPreSandboxWarmupForTypeface
content.dll!content::`anonymous namespace'::WarmupDirectWrite

UNADDRESSABLE ACCESS
name=http://crbug.com/463261
...
blink_web.dll!blink::WebFrameWidgetImpl::selectionBounds
...
content.dll!content::RenderWidget::UpdateSelectionBounds
content.dll!content::RenderWidget::WillBeginCompositorFrame
cc.dll!base::internal::InvokeHelper<>::MakeItSo

UNADDRESSABLE ACCESS
name=http://crbug.com/476586
*!blink::WebFrameWidgetImpl::beginFrame
*!content::RenderWidgetCompositor::BeginMainFrame
*!cc::LayerTreeHost::BeginMainFrame
*!cc::ThreadProxy::BeginMainFrame
*!base::internal::InvokeHelper<>::MakeItSo

UNADDRESSABLE ACCESS
name=http://crbug.com/476586b
*!blink::PageWidgetDelegate::animate
*!blink::WebFrameWidgetImpl::beginFrame
*!content::RenderWidgetCompositor::BeginMainFrame
*!cc::LayerTreeHost::BeginMainFrame
*!cc::ThreadProxy::BeginMainFrame
*!base::internal::InvokeHelper<>::MakeItSo

UNADDRESSABLE ACCESS
name=http://crbug.com/483305
blink_web.dll!blink::WebFrameWidgetImpl::suppressInvalidations
blink_web.dll!blink::WebFrameWidgetImpl::setRootGraphicsLayer
blink_web.dll!blink::ChromeClientImpl::attachRootGraphicsLayer
blink_web.dll!blink::DeprecatedPaintLayerCompositor::detachRootLayer

UNADDRESSABLE ACCESS
name=http://crbug.com/483305b
blink_web.dll!blink::WebFrameWidgetImpl::setRootGraphicsLayer
blink_web.dll!blink::ChromeClientImpl::attachRootGraphicsLayer
blink_web.dll!blink::DeprecatedPaintLayerCompositor::detachRootLayer

UNADDRESSABLE ACCESS
name=http://crbug.com/484352
blink_web.dll!blink::WebFrameWidgetImpl::setIsAcceleratedCompositingActive
blink_web.dll!blink::WebFrameWidgetImpl::willCloseLayerTreeView
scheduler.dll!scheduler::TaskQueueManager::ProcessTaskFromWorkQueue

UNADDRESSABLE ACCESS
name=http://crbug.com/484352b
...
blink_web.dll!blink::WebFrameWidgetImpl::setRootGraphicsLayer
blink_web.dll!blink::ChromeClientImpl::attachRootGraphicsLayer
*.dll!blink::DeprecatedPaintLayerCompositor::detachRootLayer

HANDLE LEAK
name=http://crbug.com/487500
system call NtCreateEvent
ntdll.dll!RtlDosPathNameToNtPathName_U_WithStatus
ntdll.dll!RtlDosPathNameToNtPathName_U_WithStatus
ntdll.dll!RtlIntegerToUnicodeString

HANDLE LEAK
name=http://crbug.com/487500b
system call NtCreateEvent
ntdll.dll!RtlDosPathNameToNtPathName_U_WithStatus
ntdll.dll!RtlDosPathNameToNtPathName_U_WithStatus
ntdll.dll!RtlEncodePointer

UNADDRESSABLE ACCESS
name=http://crbug.com/508820
...
*!blink::FocusController::focusedOrMainFrame
*!content::RenderWidget::UpdateSelectionBounds
*!content::RenderWidget::WillBeginCompositorFrame
*!base::internal::InvokeHelper<>::MakeItSo
*!base::internal::Invoker<>::Run
*!base::debug::TaskAnnotator::RunTask

UNADDRESSABLE ACCESS
name=http://crbug.com/509508
*!blink::WebLocalFrameImpl::setFrameWidget
*!blink::WebFrameWidgetImpl::close
*!scheduler::TaskQueueManager::ProcessTaskFromWorkQueue
*!scheduler::TaskQueueManager::DoWork
*!base::internal::Invoker<>::Run
...
*!content::RendererMain
*!content::RunNamedProcessTypeMain
*!content::ContentMainRunnerImpl::Run
*!content::ContentMain
*!content::LaunchTests
*!main
