Home | History | Annotate | Download | only in first_run
      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