# This file contains known patterns of crash signatures. One pattern per line.
#
# A crash signature is the concatenation of the top N functions, delimited by
# '___', in chrome.dll on the crash stack. All characters are lower case.
#
# We use crash signature patterns as our list of known crashes. A crash
# signature pattern is a string that can be used to identify a known crash. We
# use the notion of patterns because crashes with the same root cause can often
# differ somewhat in their crash stacks. A pattern is intended to be a
# generalized, yet still identifying, form of a particular crash. Usually a
# pattern will contain part of a crash signature, for example a prefix, but it
# can be more sophisticated, such as a regular expression. See below for more
# details.
#
# The format of known crashes in this file is as follows:
#   TYPE : PATTERN
#
# PATTERN: A crash signature pattern is a potentially identifying string that
#          can be used to match a crash signature.
# TYPE: The type of the pattern, indicates how the pattern should be matched
#       against crash signatures. Possible options are:
#           PREFIX: Match any signature beginning with this pattern.
#           SUBSTRING: Match any signature containing this pattern.
#           REGEX: Use this pattern as a regex to match against signatures.
#       If the type is not listed, it defaults to PREFIX.

# about:crash is a test page.
PREFIX : abouthandler::aboutcrash

# Any crash due to out of memory is ignored.
PREFIX : `anonymous namespace'::onnomemory

# It is too broad to exclude all purecall related crashes. Thus here we filter
# any purecall crash immediately after runtask.
SUBSTRING : purecall___messageloop::runtask
REGEX : purecall___[^_]*___messageloop::runtask
REGEX : `anonymous namespace'::purecall$

# Ditto for InvalidParameter.  Unfortunately, we see a crash where that call
# is the only one on the stack, so ignore that instance
REGEX : `anonymous namespace'::invalidparameter$

# 47207
PREFIX : messageloop::runtask___messageloop::deferorrunpendingtask___messageloop::dodelayedwork___base::messagepumpforio::dorunloop___base::messagepumpwin::run___messageloop::runinternal___messageloop::run___base::thread::run___base::thread::threadmain___`anonymous namespace'::threadfunc
PREFIX : messageloop::runtask___messageloop::dodelayedwork___base::messagepumpforio::dorunloop___base::messagepumpwin::run___messageloop::runinternal___messageloop::run___base::thread::run___base::thread::threadmain___`anonymous namespace'::threadfunc

# 48712
PREFIX : npapi::plugininstance::npp_newstream

# 49271
PREFIX : messageloop::posttask_helper___messageloop::posttask___disk_cache::inflightio::oniocomplete___disk_cache::backendio::executebackendoperation___messageloop::runtask___messageloop::dowork___base::messagepumpforio::dorunloop___base::messagepumpwin::run___messageloop::runinternal___messageloop::run___base::thread::run___base::thread::threadmain___`anonymous namespace'::threadfunc

# 49384
PREFIX : anonymous namespace'::cachecreator::docallback___`anonymous namespace'::cachecreator::oniocomplete___disk_cache::inflightbackendio::onoperationcomplete___disk_cache::inflightio::invokecallback___disk_cache::backgroundio::oniosignalled___messageloop::runtask___messageloop::dowork___base::messagepumpforio::dorunloop___base::messagepumpwin::run___messageloop::runinternal___messageloop::run___base::thread::run___base::thread::threadmain___`anonymous namespace'::threadfunc

# 49409
PREFIX : std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign___fieldtriallist::statestostring___browserrenderprocesshost::appendrenderercommandline___browserrenderprocesshost::init___renderviewhost::createrenderview___tabcontents::createrenderviewforrendermanager___renderviewhostmanager::initrenderview___renderviewhostmanager::creatependingrenderview___renderviewhostmanager::updaterendererstatefornavigate___renderviewhostmanager::navigate___tabcontents::navigatetopendingentry___navigationcontroller::navigatetopendingentry___navigationcontroller::loadentry___navigationcontroller::loadurl___browser::openurlatindex___browser::openurlfromtab___browser::openurl___automationprovider::navigatetourlblockuntilnavigationscomplete___automationprovider::navigatetourl___ipc

# 39356
PREFIX : renderwidgethost::onmsgupdaterect___ipc::messagewithtuple<tuple1<viewhostmsg_updaterect_params> >::dispatch<renderwidgethost,void (__thiscall renderwidgethost::*)(viewhostmsg_updaterect_params const &)>___renderwidgethost::onmessagereceived___renderviewhost::onmessagereceived___browserrenderprocesshost::onmessagereceived___renderwidgethelper::updatemsgproxy::run___messageloop::runtask___messageloop::dowork___base::messagepumpforui::dorunloop___base::messagepumpwin::runwithdispatcher___messageloop::runinternal___messageloopforui::run___`anonymous namespace'::runuimessageloop___browsermain___chromemain___maindllloader::launch___wwinmain_____tmaincrtstartup

# 52346
PREFIX : tabcontentsview::deactivate___renderwidgethost::onmessagereceived___renderviewhost::onmessagereceived___browserrenderprocesshost::onmessagereceived

# 53076
PREFIX : tabcontentsview::activate___renderwidgethost::onmessagereceived___renderviewhost::onmessagereceived___browserrenderprocesshost::onmessagereceived

# 54115
PREFIX : ipc::sendtask::run___messageloop::runtask___messageloop::dowork___base::messagepumpforio::dorunloop___base::messagepumpwin::run___messageloop::runinternal___messageloop::run___base::thread::run___base::thread::threadmain___`anonymous namespace'::threadfunc

# 56749
PREFIX : executebrowsercommandobserver::observe___notificationservice::notify
PREFIX : `anonymous namespace'::purecall____purecall___executebrowsercommandobserver::observe___notificationservice::notify
PREFIX : `anonymous namespace'::invalidparameter____purecall___executebrowsercommandobserver::observe___notificationservice::notify

# 56750
PREFIX : browserclosednotificationobserver::observe___notificationservice::notify
PREFIX : `anonymous namespace'::purecall____purecall___browserclosednotificationobserver::observe___notificationservice::notify
PREFIX : `anonymous namespace'::invalidparameter____purecall___browserclosednotificationobserver::observe___notificationservice::notify

# 57041
PREFIX : `anonymous namespace'::purecall____purecall___`anonymous namespace'::do_malloc___base::internal::threadlocalplatform::getvaluefromslot___notificationservice::currentPREFIX: `anonymous namespace'::invalidparameter____purecall___`anonymous namespace'::do_malloc___base::internal::threadlocalplatform::getvaluefromslot___notificationservice::current
PREFIX : `anonymous namespace'::purecall____purecall___`anonymous namespace'::do_free_with_callback___notificationservice::notify___browserlist::removebrowser___browser::~browser
PREFIX : `anonymous namespace'::invalidparameter____purecall___`anonymous namespace'::do_free_with_callback___notificationservice::notify___browserlist::removebrowser___browser::~browser
PREFIX : `anonymous namespace'::invalidparameter____purecall___notificationservice::notify___browserlist::removebrowser___browser::~browser___browse
PREFIX : `anonymous namespace'::invalidparameter____purecall___notificationservice::current___views::widgetwin::onwndproc___gfx::windowimpl::wndproc___renderviewhost::onmessagereceived

# 57185
PREFIX : `anonymous namespace'::purecall____purecall___lockimpl::unlock___`anonymous namespace'::rolloverprotectednow___lockimpl::lock___conditionvariable::signal___watchdog::armsometimedeltaago___`anonymous namespace'::jankobserverhelper::startprocessingtimers___`anonymous namespace'::uijankobserver::willprocesstask
PREFIX : `anonymous namespace'::invalidparameter____purecall___lockimpl::unlock___`anonymous namespace'::rolloverprotectednow___lockimpl::lock___conditionvariable::signal___watchdog::armsometimedeltaago___`anonymous namespace'::jankobserverhelper::startprocessingtimers___`anonymous namespace'::uijankobserver::willprocesstask

# 57368
PREFIX : appmodaldialog::closemodaldialog___javascriptappmodaldialog::observe___notificationservice::notify___tabcontents::~tabcontents

# 57157
PREFIX : browserview::gettoolbarview___webcore::videolayerchromium::~videolayerchromium

# 58097
PREFIX : `anonymous namespace'::purecall____purecall___notificationservice::notify___browserlist::removebrowser___browser::~browser___browser::`scalar deleting destructor'___browserview::~browserview

# 59329
# (SUBSTRING rather than PREFIX since sometimes dies in purecall).
SUBSTRING : pluginprocesshost::replytorenderer___pluginprocesshost::onchannelcreated___ipc::messagewithtuple<tuple1<ipc::channelhandle> >::dispatch<pluginprocesshost,void (__thiscall pluginprocesshost::*)(ipc::channelhandle const &)>

# 59345
PREFIX : windowdragresponsetask::run___messageloop::runtask

# 31936
PREFIX : webcore::uniscribehelpertextrun::uniscribehelpertextrun___webcore::font::floatwidthforcomplextext___webcore::font::floatwidth___webcore::renderimage::setimagesizeforalttext

# 61593
PREFIX : webcore::font::glyphdataforcharacter___webcore::widthiterator::advance___webcore::font::floatwidthforsimpletext___webcore::font::floatwidth___webcore::renderimage::setimagesizeforalttext___webcore::renderimage::imagechanged

# 61800
PREFIX : icu_4_2::unicodestring::toutf8___normalizetext___detectlanguageofunicodetext___determinetextlanguage___renderview::capturepageinfo

# 63009
SUBSTRING : chromemain___relaunchchromebrowserwithnewcommandlineifneeded___delayedlowertoken___delayedlowertoken___relaunchchromebrowserwithnewcommandlineifneeded___delayedlowertoken___delayedlowertoken___delayedlowertoken___delayedlowertoken

# 63644
PREFIX : resourcemessagefilter::ongotplugininfo

# 63659
PREFIX : hungwindowdetector::checkchildwindow___hungwindowdetector::childwndenumproc___hungwindowdetector::ontick___workerthreadticker::timertask::run

# 72832
PREFIX : webcore::renderblock::marginbeforeforchild___webcore::renderblock::addoverflowfromfloats___webcore::renderblock::computeoverflow___webcore::renderblock::layoutblock___webcore::renderblock::layout___webcore::renderblock::layoutpositionedobjects___webcore::renderblock::layoutblock___webcore::renderblock::layout___webcore::renderblock::layoutblockchild___webcore::renderblock::layoutblockchildren___webcore::renderblock::layoutblock___webcore::renderblock::layout___webcore::frameview::layout___webcore::document::updatelayout___webcore::document::updatelayoutignorependingstylesheets___webcore::element::offsetwidth___webcore::elementinternal::offsetwidthattrgetter

# 73575
PREFIX: webkit::webnode::document___autofill::formmanager::resetframe___renderview::willclose___webkit::frameloaderclientimpl::dispatchwillclose___webcore::frameloader::closeolddatasources___webcore::frameloader::commitprovisionalload___webcore::documentloader::commitload___webcore::documentloader::receiveddata___webcore::mainresourceloader::adddata___webcore::resourceloader::didreceivedata___webcore::mainresourceloader::didreceivedata___webcore::resourceloader::didreceivedata___webcore::resourcehandleinternal::didreceivedata___webkit_glue::weburlloaderimpl::context::onreceiveddata___resourcedispatcher::onreceiveddata___ipc::messagewithtuple<tuple3<int,void *,int> >::dispatch<resourcedispatcher,resourcedispatcher,int,void *,int>___resourcedispatcher::dispatchmessagew___resourcedispatcher::onmessagereceived___childthread::onmessagereceived___runnablemethod<spellcheckhost,void (__thiscall spellcheckhost::*)(std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &),tuple1<std::basic_string<char,std::char_traits<char>,std::allocator<char> > > >::run___messageloop::runtask___messageloop::dowork___base::messagepumpdefault::run___messageloop::runinternal___messageloop::run___renderermain___`anonymous namespace'::runnamedprocesstypemain___chromemain___maindllloader::launch___wwinmain_____tmaincrtstartup

# 74607
PREFIX: webcore::renderstyle::getshadowverticalextent___webcore::inlineflowbox::addtextboxvisualoverflow___webcore::inlineflowbox::computeoverflow___webcore::renderblock::layoutinlinechildren___webcore::renderblock::layoutblock___webcore::renderblock::layout___webcore::renderblock::layoutblockchild___webcore::renderblock::layoutblockchildren___webcore::renderblock::layoutblock___webcore::renderblock::layout___webcore::renderblock::layoutblockchild___webcore::renderblock::layoutblockchildren___webcore::renderblock::layoutblock___webcore::renderblock::layout___webcore::renderblock::layoutblockchild___webcore::renderblock::layoutblockchildren___webcore::renderblock::layoutblock___webcore::renderblock::layout___webcore::renderblock::layoutpositionedobjects___webcore::renderblock::layoutblock___webcore::renderblock::layout___webcore::renderblock::layoutblockchild___webcore::renderblock::layoutblockchildren___webcore::renderblock::layoutblock___webcore::renderblock::layout___webcore::renderblock::layoutblockchild___webcore::renderblock::layoutblockchildren___webcore::renderblock::layoutblock___webcore::renderblock::layout___webcore::renderblock::layoutblockchild___webcore::renderblock::layoutblockchildren___webcore::renderblock::layoutblock___webcore::renderblock::layout___webcore::renderblock::layoutblockchild___webcore::renderblock::layoutblockchildren___webcore::renderblock::layoutblock___webcore::rendertablecell::layout___webcore::rendertablerow::layout___webcore::rendertablesection::layout___webcore::rendertable::layout___webcore::renderblock::layoutblockchild___webcore::renderblock::layoutblockchildren___webcore::renderblock::layoutblock___webcore::renderblock::layout___webcore::renderblock::layoutblockchild___webcore::renderblock::layoutblockchildren___webcore::renderblock::layoutblock___webcore::renderblock::layout___webcore::renderblock::layoutblockchild___webcore::renderblock::layoutblockchildren___webcore::renderblock::layoutblock___webcore::renderblock::layout___webcore::renderview::layout___webcore::frameview::layout___webcore::frameview::updatelayoutandstyleifneededrecursive___renderwidget::dodeferredupdate___renderwidget::onupdaterectack___ipc::message::dispatch<renderview,renderview>___renderwidget::onmessagereceived___renderview::onmessagereceived___messagerouter::routemessage___messagerouter::onmessagereceived___childthread::onmessagereceived___runnablemethod<cancelablerequest<callbackrunner<tuple3<int,scoped_refptr<history::mostvisitedthumbnails>,bool> > >,void (__thiscall cancelablerequest<callbackrunner<tuple3<int,scoped_refptr<history::mostvisitedthumbnails>,bool> > >::*)(tuple3<int,scoped_refptr<history::mostvisitedthumbnails>,bool> const &),tuple1<tuple3<int,scoped_refptr<history::mostvisitedthumbnails>,bool> > >::run___messageloop::runtask___messageloop::dowork___base::messagepumpdefault::run___messageloop::runinternal___messageloop::run___renderermain___`anonymous namespace'::runnamedprocesstypemain___chromemain___maindllloader::launch___wwinmain_____tmaincrtstartup

# 75352
PREFIX: webcore::reportfatalerrorinv8___v8::internal::v8::fatalprocessoutofmemory___v8::internal::setelement___v8::internal::runtime::setobjectproperty___v8::internal::runtime_setproperty___v8::internal::invoke___v8::internal::execution::call___v8::script::run___webcore::v8proxy::runscript___webcore::v8proxy::evaluate___webcore::scriptcontroller::evaluate___webcore::scriptelement::executescript___webcore::scriptelement::preparescript___webcore::htmlscriptrunner::runscript___webcore::htmlscriptrunner::execute___webcore::htmldocumentparser::runscriptsforpausedtreebuilder___webcore::htmldocumentparser::cantakenexttoken___webcore::htmldocumentparser::pumptokenizer___webcore::htmldocumentparser::resumeparsingafterscriptexecution___webcore::htmldocumentparser::notifyfinished___webcore::cachedscript::checknotify___webcore::cachedscript::data___webcore::cachedresourcerequest::didfinishloading___webcore::subresourceloader::didfinishloading___webcore::resourceloader::didfinishloading___webcore::resourcehandleinternal::didfinishloading___webkit_glue::weburlloaderimpl::context::oncompletedrequest___resourcedispatcher::onrequestcomplete___ipc::messagewithtuple<tuple4<int,net::urlrequeststatus,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,base::time> >::dispatch<resourcedispatcher,resourcedispatcher,void (__thiscall resourcedispatcher::*)(int,net::urlrequeststatus const &,std::basic_string<char,std::char_traits<char>,std::allocator<char> > const &,base::time const &)>___resourcedispatcher::dispatchmessagew___resourcedispatcher::onmessagereceived___childthread::onmessagereceived___runnablemethod<cancelablerequest<callbackrunner<tuple2<int,std::vector<history::mostvisitedurl,std::allocator<history::mostvisitedurl> > > > >,void (__thiscall cancelablerequest<callbackrunner<tuple2<int,std::vector<history::mostvisitedurl,std::allocator<history::mostvisitedurl> > > > >::*)(tuple2<int,std::vector<history::mostvisitedurl,std::allocator<history::mostvisitedurl> > > const &),tuple1<tuple2<int,std::vector<history::mostvisitedurl,std::allocator<history::mostvisitedurl> > > > >::run___messageloop::runtask___messageloop::dowork___base::messagepumpdefault::run___messageloop::runinternal___messageloop::run___renderermain___`anonymous namespace'::runnamedprocesstypemain___chromemain___maindllloader::launch___wwinmain_____tmaincrtstartup

# 75368
PREFIX: skpixelref::unlockpixels___skbitmap::freepixels___webcore::framedata::clear___wtf::vector<webcore::framedata,0>::shrink___webcore::bitmapimage::~bitmapimage___webcore::bitmapimage::`scalar deleting destructor'___webcore::cachedimage::~cachedimage___webcore::cachedimage::`scalar deleting destructor'

# 75459
PREFIX: webcore::inlinebox::logicalheight___webcore::inlineflowbox::maxyvisualoverflow___webcore::renderlineboxlist::anylineintersectsrect___webcore::renderlineboxlist::paint___webcore::renderblock::paintcontents___webcore::renderblock::paintobject

# 75490
PREFIX: webcore::font::operator==___webcore::styleinheriteddata::operator==___webcore::dataref<webcore::styleinheriteddata>::operator==___webcore::renderstyle::operator==___webcore::node::diff___webcore::element::recalcstyle

# 75582
PREFIX : skclipstack::restore___skcanvas::internalrestore___webkit::webframeimpl::paintwithcontext

# 76029
PREFIX: webcore::rendertable::cellafter___webcore::rendertablecell::collapsedendborder___webcore::rendertablecell::borderhalfend___webcore::rendertablecell::borderright___webcore::renderbox::clientwidth___webcore::renderbox::contentlogicalwidth___webcore::renderblock::layoutblock

# 76030
PREFIX: webcore::renderblock::marginbeforeforchild___webcore::renderblock::addoverflowfromfloats___webcore::renderblock::computeoverflow___webcore::renderblock::layoutblock

# 76031
PREFIX: webcore::renderlineboxlist::deletelineboxes___webcore::renderblock::layoutinlinechildren___webcore::renderblock::layoutblock

# 76955
PREFIX: webcore::renderobject::destroy___webcore::renderobjectchildlist::destroyleftoverchildren___webcore::renderblock::destroy

# 77176
PREFIX: webcore::implicitanimation::~implicitanimation___webcore::implicitanimation::`scalar deleting destructor'___wtf::hashtable<wtf::refptr<webcore::animationbase>,wtf::refptr<webcore::animationbase>,wtf::identityextractor<wtf::refptr<webcore::animationbase> >,wtf::ptrhash<wtf::refptr<webcore::animationbase> >,wtf::hashtraits<wtf::refptr<webcore::animationbase> >,wtf::hashtraits<wtf::refptr<webcore::animationbase> > >::deallocatetable

# 21054
REGEX : ^deletetask.*::run___messageloop::runtask___messageloop::dowork

# 84178
PREFIX: `anonymous namespace'::establishchannelcallback::send___`anonymous namespace'::establishchannelcallback::runwithparams___gpuprocesshost::sendoutstandingreplies

# 87593
PREFIX: webcore::cachedresource::stoploading___webcore::cachedresourcerequest::didfail___webcore::subresourceloader::didfail___webcore::resourceloader::didfail___webcore::resourcehandleinternal::didfail___webkit_glue::weburlloaderimpl::context::oncompletedrequest___resourcedispatcher::onrequestcomplete

# 88061
PREFIX: `anonymous namespace'::invalidparameter____purecall___windowdragresponsetask::run___`anonymous namespace'::taskclosureadapter::run___messageloop::runtask

# 89570
REGEX: base::internal::invokerstorage1.*___browsermainparts::~browsermainparts

# 89697
PREFIX: `anonymous namespace'::purecall____purecall___renderviewhost::onmessagereceived___browserrenderprocesshost::onchannelerror___`anonymous namespace'::taskclosureadapter::run___messageloop::runtask

# 90200
SUBSTRING: resourcedispatcherhost::cancelrequestsforcontext___base::internal::invoker2<0,base::internal::invokerstorage2<void (__thiscall resourcedispatcherhost::*)(content::resourcecontext const *),base::internal::unretainedwrapper<resourcedispatcherhost>,profileiodata::resourcecontext *>,void (__thiscall resourcedispatcherhost::*)(content::resourcecontext const *)>::doinvoke

# 90393
PREFIX: webkit_glue::datasourceinitdone___base::internal::invoker3<0,base::internal::invokerstorage3<void (__cdecl*)(callbackrunner<tuple1<webkit_glue::webdatasource *> > *,base::callback<void __cdecl(enum media::pipelinestatus,media::datasource *)> const &,scoped_refptr<webkit_glue::webdatasource> const &,enum media::pipelinestatus),callbackrunner<tuple1<webkit_glue::webdatasource *> > *,base::callback<void __cdecl(enum media::pipelinestatus,media::datasource *)>,scoped_refptr<webkit_glue::webdatasource> >,void (__cdecl*)(callbackrunner<tuple1<webkit_glue::webdatasource *> > *,base::callback<void __cdecl(enum media::pipelinestatus,media::datasource *)> const &,scoped_refptr<webkit_glue::webdatasource> const &,enum media::pipelinestatus)>::doinvoke___webkit_glue::buffereddatasource::doneinitialization_locked___webkit_glue::buffereddatasource::httpinitialstartcallback

# 90577
PREFIX: messageloop::calculatedelayedruntime___messageloop::posttask___media::pipelineimpl::ondemuxerbuilt

# 90579
PREFIX: messageloop::calculatedelayedruntime___messageloop::posttask___media::ffmpegdemuxer::initialize

# 89679
# 90796
REGEX: (^|`anonymous namespace'::purecall____purecall___)renderviewhost::onmessagereceived___browserrenderprocesshost::onchannelerror___(`anonymous namespace'|base::subtle)::taskclosureadapter::run___messageloop::runtask___messageloop::dowork___base::messagepumpforui::dorunloop___base::messagepumpwin::runwithdispatcher___messageloop::runinternal___messageloopforui::run___`anonymous namespace'::runuimessageloop___browsermain___`anonymous namespace'::runnamedprocesstypemain___chromemain___maindllloader::launch___wwinmain_____tmaincrtstartup

# 93459
PREFIX: webcore::htmlsourcetracker::sourcefortoken___webcore::htmldocumentparser::sourcefortoken___webcore::xssauditor::eraseattributeifinjected___webcore

# 93971
PREFIX: chromeurlrequestcontextgetter::geturlrequestcontext___`anonymous namespace'::rendererurlrequestcontextselector::getrequestcontext___resourcedispatcherhost::ondidloadresourcefrommemorycache

# 93974
PREFIX: `anonymous namespace'::purecall____purecall___content::resourcecontext::request_context___resourcedispatcherhost::beginrequest___resourcedispatcherhost::onrequestresource

# 95069
PREFIX: `anonymous namespace'::invalidparameter____purecall___memcpy_s___std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign___gurl::gurl___`anonymous namespace'::do_malloc___malloc___scoped_refptr<resourcehandler>::operator=___resourcedispatcherhost::beginrequest___resourcehostmsg_requestresource::dispatch<resourcedispatcherhost,resourcedispatcherhost,int,resourcehostmsg_request const &>

# 95289
PREFIX: net::networkdelegate::notifycompleted___net::urlrequest::docancel___net::urlrequest::~urlrequest___stldeletevalues<std::map<globalrequestid,net::urlrequest *,std::less<globalrequestid>,std::allocator<std::pair<globalrequestid const ,net::urlrequest *> > > >___resourcedispatcherhost::onshutdown

# 95506
PREFIX: base::debug::breakdebugger___`anonymous namespace'::silentruntimeasserthandler___logging::logmessage::~logmessage___`anonymous namespace'::shutdownwatchdogthread::alarm___base::watchdog::threaddelegate::threadmain

# 95951
PREFIX: net::sdchmanager::getavaildictionarylist___net::urlrequesthttpjob::addextraheaders___net::urlrequesthttpjob::start___net::urlrequest::startjob___net::urlrequest::start___urlfetcher::core::startoniothread

# 95953
REGEX: std::_tree<std::_tmap_traits<std::basic_string.*,remoting::javascriptiqrequest *,std::less.*,remoting::javascriptiqrequest *> >,0> >::_lbound___std::_tree<std::_tmap_traits.*basic_string.*,extensioncontentsettingsstore::extensionentry *,std::less.*,extensioncontentsettingsstore::extensionentry *> >,0> >::find___net::sdchmanager::isinsupporteddomain___net::urlrequesthttpjob::addextraheaders

# 95954
PREFIX: net::sdchmanager::isinsupporteddomain___net::urlrequesthttpjob::addextraheaders___net::urlrequesthttpjob::start___net::urlrequest::startjob___net::urlrequest::start___urlfetcher::core::startoniothread
