- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / first_run / upgrade_util.h
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 class CommandLine;
17
18 namespace upgrade_util {
19
20 // Launches Chrome again simulating a "user" launch. If Chrome could not be
21 // launched, returns false.
22 bool RelaunchChromeBrowser(const CommandLine& command_line);
23
24 #if defined(OS_WIN)
25
26 extern const char kRelaunchModeMetro[];
27 extern const char kRelaunchModeDesktop[];
28 extern const char kRelaunchModeDefault[];
29
30 enum RelaunchMode {
31   RELAUNCH_MODE_METRO = 0,
32   RELAUNCH_MODE_DESKTOP = 1,
33   // Default mode indicates caller is not sure which mode to launch.
34   RELAUNCH_MODE_DEFAULT = 2,
35 };
36
37 std::string RelaunchModeEnumToString(const RelaunchMode& relaunch_mode);
38
39 RelaunchMode RelaunchModeStringToEnum(const std::string& relaunch_mode);
40
41 // Like RelaunchChromeBrowser() but for Windows 8 it will read pref and restart
42 // chrome accordingly in desktop or metro mode.
43 bool RelaunchChromeWithMode(const CommandLine& command_line,
44                             const RelaunchMode& relaunch_mode);
45
46 #endif
47
48 #if !defined(OS_MACOSX)
49
50 void SetNewCommandLine(CommandLine* new_command_line);
51
52 // Launches a new instance of the browser if the current instance in persistent
53 // mode an upgrade is detected.
54 void RelaunchChromeBrowserWithNewCommandLineIfNeeded();
55
56 // Windows:
57 //  Checks if chrome_new.exe is present in the current instance's install.
58 // Linux:
59 //  Checks if the last modified time of chrome is newer than that of the current
60 //  running instance.
61 bool IsUpdatePendingRestart();
62
63 #endif  // !defined(OS_MACOSX)
64
65 }  // namespace upgrade_util
66
67 #endif  // !defined(OS_CHROMEOS)
68
69 #endif  // CHROME_BROWSER_FIRST_RUN_UPGRADE_UTIL_H_