Index: chrome/installer/setup/setup_util.cc |
diff --git a/chrome/installer/setup/setup_util.cc b/chrome/installer/setup/setup_util.cc |
index 3fe4e1652f85ac0dbcf200beb17cbc549147247b..768ac1091b364a7e414f17cdebdff7a2ea671dfc 100644 |
--- a/chrome/installer/setup/setup_util.cc |
+++ b/chrome/installer/setup/setup_util.cc |
@@ -1,4 +1,4 @@ |
-// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
// |
@@ -138,74 +138,4 @@ bool DeleteFileFromTempProcess(const FilePath& path, |
return ok != FALSE; |
} |
-// Open |path| with minimal access to obtain information about it, returning |
-// true and populating |handle| on success. |
-// static |
-bool ProgramCompare::OpenForInfo(const FilePath& path, |
- base::win::ScopedHandle* handle) { |
- DCHECK(handle); |
- handle->Set(base::CreatePlatformFile(path, base::PLATFORM_FILE_OPEN, NULL, |
- NULL)); |
- return handle->IsValid(); |
-} |
- |
-// Populate |info| for |handle|, returning true on success. |
-// static |
-bool ProgramCompare::GetInfo(const base::win::ScopedHandle& handle, |
- BY_HANDLE_FILE_INFORMATION* info) { |
- DCHECK(handle.IsValid()); |
- return GetFileInformationByHandle( |
- const_cast<base::win::ScopedHandle&>(handle), info) != 0; |
-} |
- |
-ProgramCompare::ProgramCompare(const FilePath& path_to_match) |
- : path_to_match_(path_to_match), |
- file_handle_(base::kInvalidPlatformFileValue), |
- file_info_() { |
- DCHECK(!path_to_match_.empty()); |
- if (!OpenForInfo(path_to_match_, &file_handle_)) { |
- PLOG(WARNING) << "Failed opening " << path_to_match_.value() |
- << "; falling back to path string comparisons."; |
- } else if (!GetInfo(file_handle_, &file_info_)) { |
- PLOG(WARNING) << "Failed getting information for " |
- << path_to_match_.value() |
- << "; falling back to path string comparisons."; |
- file_handle_.Close(); |
- } |
-} |
- |
-ProgramCompare::~ProgramCompare() { |
-} |
- |
-bool ProgramCompare::Evaluate(const std::wstring& value) const { |
- // Suss out the exe portion of the value, which is expected to be a command |
- // line kinda (or exactly) like: |
- // "c:\foo\bar\chrome.exe" -- "%1" |
- FilePath program(CommandLine::FromString(value).GetProgram()); |
- if (program.empty()) { |
- LOG(WARNING) << "Failed to parse an executable name from command line: \"" |
- << value << "\""; |
- return false; |
- } |
- |
- // Try the simple thing first: do the paths happen to match? |
- if (FilePath::CompareEqualIgnoreCase(path_to_match_.value(), program.value())) |
- return true; |
- |
- // If the paths don't match and we couldn't open the expected file, we've done |
- // our best. |
- if (!file_handle_.IsValid()) |
- return false; |
- |
- // Open the program and see if it references the expected file. |
- base::win::ScopedHandle handle; |
- BY_HANDLE_FILE_INFORMATION info = {}; |
- |
- return (OpenForInfo(program, &handle) && |
- GetInfo(handle, &info) && |
- info.dwVolumeSerialNumber == file_info_.dwVolumeSerialNumber && |
- info.nFileIndexHigh == file_info_.nFileIndexHigh && |
- info.nFileIndexLow == file_info_.nFileIndexLow); |
-} |
- |
} // namespace installer |