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.
5 #include "chrome/browser/first_run/upgrade_util.h"
7 #include "base/base_paths.h"
8 #include "base/command_line.h"
9 #include "base/file_util.h"
10 #include "base/files/file_path.h"
11 #include "base/logging.h"
12 #include "base/path_service.h"
13 #include "base/platform_file.h"
14 #include "base/process/launch.h"
15 #include "chrome/browser/first_run/upgrade_util_linux.h"
19 double saved_last_modified_time_of_exe
= 0;
23 namespace upgrade_util
{
25 bool RelaunchChromeBrowser(const CommandLine
& command_line
) {
26 return base::LaunchProcess(command_line
, base::LaunchOptions(), NULL
);
29 bool IsUpdatePendingRestart() {
30 return saved_last_modified_time_of_exe
!= GetLastModifiedTimeOfExe();
33 void SaveLastModifiedTimeOfExe() {
34 saved_last_modified_time_of_exe
= GetLastModifiedTimeOfExe();
37 double GetLastModifiedTimeOfExe() {
38 base::FilePath exe_file_path
;
39 if (!PathService::Get(base::FILE_EXE
, &exe_file_path
)) {
40 LOG(WARNING
) << "Failed to get base::FilePath object for FILE_EXE.";
41 return saved_last_modified_time_of_exe
;
43 base::File::Info exe_file_info
;
44 if (!base::GetFileInfo(exe_file_path
, &exe_file_info
)) {
45 LOG(WARNING
) << "Failed to get FileInfo object for FILE_EXE - "
46 << exe_file_path
.value();
47 return saved_last_modified_time_of_exe
;
49 return exe_file_info
.last_modified
.ToDoubleT();
52 } // namespace upgrade_util