diff options
author | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-15 22:05:09 +0000 |
---|---|---|
committer | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-15 22:05:09 +0000 |
commit | b443cb04e44619ae051f85389d3fae5ff9258d5d (patch) | |
tree | 0b8c463848d9219019f3084432553a03b2245312 /chrome/browser/browser_main.cc | |
parent | aa7abac6c537c33cf40bda1d6a910ba6e4fb98e9 (diff) | |
download | chromium_src-b443cb04e44619ae051f85389d3fae5ff9258d5d.zip chromium_src-b443cb04e44619ae051f85389d3fae5ff9258d5d.tar.gz chromium_src-b443cb04e44619ae051f85389d3fae5ff9258d5d.tar.bz2 |
Speculative fix for a chrome browser crash which occurs with ChromeFrame. Based on the crash dump, the crash
occurs when the external tab container is being destroyed which in turn takes down the automation provider
and the channel, etc. All this occurs in the context of OleUninitialize, which executes after BrowserMain
returns, i.e. the message loop is now invalid, thus causing a crash while attempting to post a task to it.
Based on this call stack it looks like it happens due to the enable-renderer-accessisibility flag.
Fix is to move the OleInitialize/OleUnitialize calls to Platform::WillInitializeMainMessageLoop and
Platform::DidEndMainMessageLoop. The Platform::DidEndMainMessageLoop function now executes as a task which
is posted to the message loop prior to quitting it. This would ensure that the cleanup happens correctly.
Fixes http://code.google.com/p/chromium/issues/detail?id=30383
Bug=30383
Review URL: http://codereview.chromium.org/501011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34611 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/browser_main.cc')
-rw-r--r-- | chrome/browser/browser_main.cc | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/chrome/browser/browser_main.cc b/chrome/browser/browser_main.cc index b93b7ff..e8bceff 100644 --- a/chrome/browser/browser_main.cc +++ b/chrome/browser/browser_main.cc @@ -979,8 +979,6 @@ int BrowserMain(const MainFunctionParams& parameters) { process_singleton.Cleanup(); - Platform::DidEndMainMessageLoop(); - if (metrics) metrics->Stop(); |