diff options
author | cpu@chromium.org <cpu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-23 01:43:04 +0000 |
---|---|---|
committer | cpu@chromium.org <cpu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-23 01:43:04 +0000 |
commit | 28de7d94b52d84165475ca2b6d98d556b0feaffb (patch) | |
tree | 5d986190ce73e6408debcc08465a83c5354788f0 /chrome/browser/browser_main.cc | |
parent | 9d391c62e127172e069f17619a7e9b07328fae56 (diff) | |
download | chromium_src-28de7d94b52d84165475ca2b6d98d556b0feaffb.zip chromium_src-28de7d94b52d84165475ca2b6d98d556b0feaffb.tar.gz chromium_src-28de7d94b52d84165475ca2b6d98d556b0feaffb.tar.bz2 |
Fix for crash on early return from browser_main.cc
BrowserImpl dtor assumes full construction of all sub-objects, this is not true
at least in one case (the try chrome again toast). See bug for more details
- Added a UI test to detect these shenaningans in all platforms
- had to hack ui_tests a bit, I hope is palatable
BUG=34799
TEST= UI test included
Review URL: http://codereview.chromium.org/571017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39690 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/browser_main.cc')
-rw-r--r-- | chrome/browser/browser_main.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/chrome/browser/browser_main.cc b/chrome/browser/browser_main.cc index 57dd2d9..ccb90c1 100644 --- a/chrome/browser/browser_main.cc +++ b/chrome/browser/browser_main.cc @@ -611,19 +611,21 @@ int BrowserMain(const MainFunctionParams& parameters) { gtk_util::SetDefaultWindowIcon(); #endif -#if defined(OS_WIN) - // This is experimental code. See first_run_win.cc for more info. std::string try_chrome = parsed_command_line.GetSwitchValueASCII(switches::kTryChromeAgain); if (!try_chrome.empty()) { +#if defined(OS_WIN) Upgrade::TryResult answer = Upgrade::ShowTryChromeDialog(StringToInt(try_chrome)); if (answer == Upgrade::TD_NOT_NOW) return ResultCodes::NORMAL_EXIT_CANCEL; if (answer == Upgrade::TD_UNINSTALL_CHROME) return ResultCodes::NORMAL_EXIT_EXP2; +#else + // We don't support retention experiments on Mac or Linux. + return ResultCodes::NORMAL_EXIT; +#endif // defined(OS_WIN) } -#endif // OS_WIN BrowserInit browser_init; |