summaryrefslogtreecommitdiffstats
path: root/chrome/browser/browser_main.cc
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-15 22:05:09 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-15 22:05:09 +0000
commitb443cb04e44619ae051f85389d3fae5ff9258d5d (patch)
tree0b8c463848d9219019f3084432553a03b2245312 /chrome/browser/browser_main.cc
parentaa7abac6c537c33cf40bda1d6a910ba6e4fb98e9 (diff)
downloadchromium_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.cc2
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();