[email protected] | 7688e3b | 2011-04-13 14:15:33 | [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 | |||||
[email protected] | 81585672 | 2011-04-13 17:19:19 | [diff] [blame] | 5 | #include "chrome/browser/first_run/upgrade_util.h" |
[email protected] | 7688e3b | 2011-04-13 14:15:33 | [diff] [blame] | 6 | |
7 | #include "base/base_paths.h" | ||||
8 | #include "base/command_line.h" | ||||
[email protected] | 7688e3b | 2011-04-13 14:15:33 | [diff] [blame] | 9 | #include "base/file_util.h" |
[email protected] | 5799981 | 2013-02-24 05:40:52 | [diff] [blame] | 10 | #include "base/files/file_path.h" |
[email protected] | 7688e3b | 2011-04-13 14:15:33 | [diff] [blame] | 11 | #include "base/logging.h" |
12 | #include "base/path_service.h" | ||||
13 | #include "base/platform_file.h" | ||||
14 | #include "base/process_util.h" | ||||
[email protected] | 3e08799 | 2011-04-14 22:28:12 | [diff] [blame] | 15 | #include "chrome/browser/first_run/upgrade_util_linux.h" |
[email protected] | 7688e3b | 2011-04-13 14:15:33 | [diff] [blame] | 16 | |
[email protected] | 81585672 | 2011-04-13 17:19:19 | [diff] [blame] | 17 | namespace { |
18 | |||||
[email protected] | 81585672 | 2011-04-13 17:19:19 | [diff] [blame] | 19 | double saved_last_modified_time_of_exe = 0; |
[email protected] | 7688e3b | 2011-04-13 14:15:33 | [diff] [blame] | 20 | |
[email protected] | 81585672 | 2011-04-13 17:19:19 | [diff] [blame] | 21 | } // namespace |
[email protected] | 7688e3b | 2011-04-13 14:15:33 | [diff] [blame] | 22 | |
[email protected] | 81585672 | 2011-04-13 17:19:19 | [diff] [blame] | 23 | namespace upgrade_util { |
24 | |||||
25 | bool RelaunchChromeBrowser(const CommandLine& command_line) { | ||||
[email protected] | e599218 | 2011-07-15 16:47:02 | [diff] [blame] | 26 | return base::LaunchProcess(command_line, base::LaunchOptions(), NULL); |
[email protected] | 7688e3b | 2011-04-13 14:15:33 | [diff] [blame] | 27 | } |
28 | |||||
[email protected] | 81585672 | 2011-04-13 17:19:19 | [diff] [blame] | 29 | bool IsUpdatePendingRestart() { |
30 | return saved_last_modified_time_of_exe != GetLastModifiedTimeOfExe(); | ||||
[email protected] | 7688e3b | 2011-04-13 14:15:33 | [diff] [blame] | 31 | } |
32 | |||||
[email protected] | 81585672 | 2011-04-13 17:19:19 | [diff] [blame] | 33 | void SaveLastModifiedTimeOfExe() { |
34 | saved_last_modified_time_of_exe = GetLastModifiedTimeOfExe(); | ||||
[email protected] | 7688e3b | 2011-04-13 14:15:33 | [diff] [blame] | 35 | } |
36 | |||||
[email protected] | 81585672 | 2011-04-13 17:19:19 | [diff] [blame] | 37 | double GetLastModifiedTimeOfExe() { |
[email protected] | 650b2d5 | 2013-02-10 03:41:45 | [diff] [blame] | 38 | base::FilePath exe_file_path; |
[email protected] | 7688e3b | 2011-04-13 14:15:33 | [diff] [blame] | 39 | if (!PathService::Get(base::FILE_EXE, &exe_file_path)) { |
[email protected] | 650b2d5 | 2013-02-10 03:41:45 | [diff] [blame] | 40 | LOG(WARNING) << "Failed to get base::FilePath object for FILE_EXE."; |
[email protected] | 81585672 | 2011-04-13 17:19:19 | [diff] [blame] | 41 | return saved_last_modified_time_of_exe; |
[email protected] | 7688e3b | 2011-04-13 14:15:33 | [diff] [blame] | 42 | } |
43 | base::PlatformFileInfo exe_file_info; | ||||
44 | if (!file_util::GetFileInfo(exe_file_path, &exe_file_info)) { | ||||
45 | LOG(WARNING) << "Failed to get FileInfo object for FILE_EXE - " | ||||
46 | << exe_file_path.value(); | ||||
[email protected] | 81585672 | 2011-04-13 17:19:19 | [diff] [blame] | 47 | return saved_last_modified_time_of_exe; |
[email protected] | 7688e3b | 2011-04-13 14:15:33 | [diff] [blame] | 48 | } |
49 | return exe_file_info.last_modified.ToDoubleT(); | ||||
50 | } | ||||
[email protected] | 81585672 | 2011-04-13 17:19:19 | [diff] [blame] | 51 | |
52 | } // namespace upgrade_util |