From 3cdacd4e6a2ca4c305c591dac8176828ae2e2b62 Mon Sep 17 00:00:00 2001 From: "prasadt@chromium.org" Date: Fri, 30 Apr 2010 18:55:53 +0000 Subject: r46025 reverted r46023 which caused a build break on chromeos. This change reverts r46025 and fixes the build break which is just a one line change in chrome/browser/first_run_gtk.cc to move the definition of Upgrade::new_command_line_ to be inside a #if. Details on the change and code review feedback for the original CL can be found at http://codereview.chromium.org/1633021. BUG=40975 TEST=none Review URL: http://codereview.chromium.org/1691022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46103 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/browser_main.cc | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'chrome/browser/browser_main.cc') diff --git a/chrome/browser/browser_main.cc b/chrome/browser/browser_main.cc index 790502f..179201d 100644 --- a/chrome/browser/browser_main.cc +++ b/chrome/browser/browser_main.cc @@ -618,6 +618,19 @@ OSStatus KeychainCallback(SecKeychainEvent keychain_event, } // namespace +#if defined(OS_WIN) +#define DLLEXPORT __declspec(dllexport) + +// We use extern C for the prototype DLLEXPORT to avoid C++ name mangling. +extern "C" { +DLLEXPORT void __cdecl RelaunchChromeBrowserWithNewCommandLineIfNeeded(); +} + +DLLEXPORT void __cdecl RelaunchChromeBrowserWithNewCommandLineIfNeeded() { + Upgrade::RelaunchChromeBrowserWithNewCommandLineIfNeeded(); +} +#endif + // Main routine for running as the Browser process. int BrowserMain(const MainFunctionParams& parameters) { const CommandLine& parsed_command_line = parameters.command_line_; @@ -1177,7 +1190,7 @@ int BrowserMain(const MainFunctionParams& parameters) { // the main message loop. if (browser_init.Start(parsed_command_line, std::wstring(), profile, &result_code)) { -#if defined(OS_WIN) +#if (defined(OS_WIN) || defined(OS_LINUX)) && !defined(OS_CHROMEOS) // Initialize autoupdate timer. Timer callback costs basically nothing // when browser is not in persistent mode, so it's OK to let it ride on // the main thread. This needs to be done here because we don't want @@ -1185,6 +1198,14 @@ int BrowserMain(const MainFunctionParams& parameters) { g_browser_process->StartAutoupdateTimer(); #endif +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) + // On Linux, the running exe will be updated if an upgrade becomes + // available while the browser is running. We need to save the last + // modified time of the exe, so we can compare to determine if there is + // an upgrade while the browser is kept alive by a persistent extension. + Upgrade::SaveLastModifiedTimeOfExe(); +#endif + // Record now as the last succesful chrome start. GoogleUpdateSettings::SetLastRunTime(); // Call Recycle() here as late as possible, before going into the loop -- cgit v1.1