1// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_FIRST_RUN_UPGRADE_UTIL_H_ 6#define CHROME_BROWSER_FIRST_RUN_UPGRADE_UTIL_H_ 7 8#include "build/build_config.h" 9 10#if defined(OS_WIN) 11#include <string> 12#endif 13 14#if !defined(OS_CHROMEOS) 15 16namespace base { 17class CommandLine; 18} 19 20namespace upgrade_util { 21 22// Launches Chrome again simulating a "user" launch. If Chrome could not be 23// launched, returns false. 24bool RelaunchChromeBrowser(const base::CommandLine& command_line); 25 26#if defined(OS_WIN) 27 28extern const char kRelaunchModeMetro[]; 29extern const char kRelaunchModeDesktop[]; 30extern const char kRelaunchModeDefault[]; 31 32enum RelaunchMode { 33 RELAUNCH_MODE_METRO = 0, 34 RELAUNCH_MODE_DESKTOP = 1, 35 // Default mode indicates caller is not sure which mode to launch. 36 RELAUNCH_MODE_DEFAULT = 2, 37}; 38 39std::string RelaunchModeEnumToString(const RelaunchMode& relaunch_mode); 40 41RelaunchMode RelaunchModeStringToEnum(const std::string& relaunch_mode); 42 43// Like RelaunchChromeBrowser() but for Windows 8 it will read pref and restart 44// chrome accordingly in desktop or metro mode. 45bool RelaunchChromeWithMode(const base::CommandLine& command_line, 46 const RelaunchMode& relaunch_mode); 47 48#endif 49 50#if !defined(OS_MACOSX) 51 52void SetNewCommandLine(base::CommandLine* new_command_line); 53 54// Launches a new instance of the browser if the current instance in persistent 55// mode an upgrade is detected. 56void RelaunchChromeBrowserWithNewCommandLineIfNeeded(); 57 58// Windows: 59// Checks if chrome_new.exe is present in the current instance's install. 60// Linux: 61// Checks if the last modified time of chrome is newer than that of the current 62// running instance. 63bool IsUpdatePendingRestart(); 64 65#endif // !defined(OS_MACOSX) 66 67} // namespace upgrade_util 68 69#endif // !defined(OS_CHROMEOS) 70 71#endif // CHROME_BROWSER_FIRST_RUN_UPGRADE_UTIL_H_ 72