[email protected] | 81585672 | 2011-04-13 17:19:19 | [diff] [blame] | 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_ | ||||
[email protected] | 81585672 | 2011-04-13 17:19:19 | [diff] [blame] | 7 | |
[email protected] | d9fcd263 | 2011-06-24 15:59:02 | [diff] [blame] | 8 | #include "build/build_config.h" |
9 | |||||
[email protected] | d51373d | 2013-10-31 15:22:00 | [diff] [blame] | 10 | #if defined(OS_WIN) |
11 | #include <string> | ||||
12 | #endif | ||||
13 | |||||
[email protected] | d9fcd263 | 2011-06-24 15:59:02 | [diff] [blame] | 14 | #if !defined(OS_CHROMEOS) |
15 | |||||
[email protected] | 2f3b1cc | 2014-03-17 23:07:15 | [diff] [blame] | 16 | namespace base { |
[email protected] | 81585672 | 2011-04-13 17:19:19 | [diff] [blame] | 17 | class CommandLine; |
[email protected] | 2f3b1cc | 2014-03-17 23:07:15 | [diff] [blame] | 18 | } |
[email protected] | 81585672 | 2011-04-13 17:19:19 | [diff] [blame] | 19 | |
[email protected] | 81585672 | 2011-04-13 17:19:19 | [diff] [blame] | 20 | namespace upgrade_util { |
21 | |||||
[email protected] | d9fcd263 | 2011-06-24 15:59:02 | [diff] [blame] | 22 | // Launches Chrome again simulating a "user" launch. If Chrome could not be |
23 | // launched, returns false. | ||||
[email protected] | 2f3b1cc | 2014-03-17 23:07:15 | [diff] [blame] | 24 | bool RelaunchChromeBrowser(const base::CommandLine& command_line); |
[email protected] | d9fcd263 | 2011-06-24 15:59:02 | [diff] [blame] | 25 | |
[email protected] | 770c6d8 | 2012-09-06 22:21:32 | [diff] [blame] | 26 | #if defined(OS_WIN) |
27 | |||||
[email protected] | d51373d | 2013-10-31 15:22:00 | [diff] [blame] | 28 | extern const char kRelaunchModeMetro[]; |
29 | extern const char kRelaunchModeDesktop[]; | ||||
30 | extern const char kRelaunchModeDefault[]; | ||||
31 | |||||
32 | enum 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 | |||||
39 | std::string RelaunchModeEnumToString(const RelaunchMode& relaunch_mode); | ||||
40 | |||||
41 | RelaunchMode 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. | ||||
[email protected] | 2f3b1cc | 2014-03-17 23:07:15 | [diff] [blame] | 45 | bool RelaunchChromeWithMode(const base::CommandLine& command_line, |
[email protected] | d51373d | 2013-10-31 15:22:00 | [diff] [blame] | 46 | const RelaunchMode& relaunch_mode); |
[email protected] | 770c6d8 | 2012-09-06 22:21:32 | [diff] [blame] | 47 | |
48 | #endif | ||||
49 | |||||
[email protected] | d9fcd263 | 2011-06-24 15:59:02 | [diff] [blame] | 50 | #if !defined(OS_MACOSX) |
51 | |||||
[email protected] | 2f3b1cc | 2014-03-17 23:07:15 | [diff] [blame] | 52 | void SetNewCommandLine(base::CommandLine* new_command_line); |
[email protected] | 81585672 | 2011-04-13 17:19:19 | [diff] [blame] | 53 | |
54 | // Launches a new instance of the browser if the current instance in persistent | ||||
55 | // mode an upgrade is detected. | ||||
56 | void RelaunchChromeBrowserWithNewCommandLineIfNeeded(); | ||||
57 | |||||
[email protected] | 81585672 | 2011-04-13 17:19:19 | [diff] [blame] | 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. | ||||
63 | bool IsUpdatePendingRestart(); | ||||
64 | |||||
[email protected] | d9fcd263 | 2011-06-24 15:59:02 | [diff] [blame] | 65 | #endif // !defined(OS_MACOSX) |
66 | |||||
[email protected] | 81585672 | 2011-04-13 17:19:19 | [diff] [blame] | 67 | } // namespace upgrade_util |
68 | |||||
[email protected] | d9fcd263 | 2011-06-24 15:59:02 | [diff] [blame] | 69 | #endif // !defined(OS_CHROMEOS) |
70 | |||||
[email protected] | 81585672 | 2011-04-13 17:19:19 | [diff] [blame] | 71 | #endif // CHROME_BROWSER_FIRST_RUN_UPGRADE_UTIL_H_ |