• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
16 namespace base {
17 class CommandLine;
18 }
19 
20 namespace upgrade_util {
21 
22 // Launches Chrome again simulating a "user" launch. If Chrome could not be
23 // launched, returns false.
24 bool RelaunchChromeBrowser(const base::CommandLine& command_line);
25 
26 #if defined(OS_WIN)
27 
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.
45 bool RelaunchChromeWithMode(const base::CommandLine& command_line,
46                             const RelaunchMode& relaunch_mode);
47 
48 #endif
49 
50 #if !defined(OS_MACOSX)
51 
52 void 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.
56 void 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.
63 bool 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