// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_FIRST_RUN_UPGRADE_UTIL_H_ #define CHROME_BROWSER_FIRST_RUN_UPGRADE_UTIL_H_ #include "build/build_config.h" #if defined(OS_WIN) #include #endif #if !defined(OS_CHROMEOS) namespace base { class CommandLine; } namespace upgrade_util { // Launches Chrome again simulating a "user" launch. If Chrome could not be // launched, returns false. bool RelaunchChromeBrowser(const base::CommandLine& command_line); #if defined(OS_WIN) extern const char kRelaunchModeMetro[]; extern const char kRelaunchModeDesktop[]; extern const char kRelaunchModeDefault[]; enum RelaunchMode { RELAUNCH_MODE_METRO = 0, RELAUNCH_MODE_DESKTOP = 1, // Default mode indicates caller is not sure which mode to launch. RELAUNCH_MODE_DEFAULT = 2, }; std::string RelaunchModeEnumToString(const RelaunchMode& relaunch_mode); RelaunchMode RelaunchModeStringToEnum(const std::string& relaunch_mode); // Like RelaunchChromeBrowser() but for Windows 8 it will read pref and restart // chrome accordingly in desktop or metro mode. bool RelaunchChromeWithMode(const base::CommandLine& command_line, const RelaunchMode& relaunch_mode); #endif #if !defined(OS_MACOSX) void SetNewCommandLine(base::CommandLine* new_command_line); // Launches a new instance of the browser if the current instance in persistent // mode an upgrade is detected. void RelaunchChromeBrowserWithNewCommandLineIfNeeded(); // Windows: // Checks if chrome_new.exe is present in the current instance's install. // Linux: // Checks if the last modified time of chrome is newer than that of the current // running instance. bool IsUpdatePendingRestart(); #endif // !defined(OS_MACOSX) } // namespace upgrade_util #endif // !defined(OS_CHROMEOS) #endif // CHROME_BROWSER_FIRST_RUN_UPGRADE_UTIL_H_