summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--base/base_paths_win.cc8
-rw-r--r--base/base_paths_win.h5
-rw-r--r--cloud_print/virtual_driver/win/port_monitor/port_monitor.cc11
3 files changed, 11 insertions, 13 deletions
diff --git a/base/base_paths_win.cc b/base/base_paths_win.cc
index 25271e4..343a101 100644
--- a/base/base_paths_win.cc
+++ b/base/base_paths_win.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 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.
@@ -55,6 +55,12 @@ bool PathProviderWin(int key, FilePath* result) {
return false;
cur = FilePath(system_buffer);
break;
+ case base::DIR_PROGRAM_FILESX86:
+ if (FAILED(SHGetFolderPath(NULL, CSIDL_PROGRAM_FILESX86, NULL,
+ SHGFP_TYPE_CURRENT, system_buffer)))
+ return false;
+ cur = FilePath(system_buffer);
+ break;
case base::DIR_IE_INTERNET_CACHE:
if (FAILED(SHGetFolderPath(NULL, CSIDL_INTERNET_CACHE, NULL,
SHGFP_TYPE_CURRENT, system_buffer)))
diff --git a/base/base_paths_win.h b/base/base_paths_win.h
index 9e2db36..02b1f49 100644
--- a/base/base_paths_win.h
+++ b/base/base_paths_win.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 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.
@@ -17,7 +17,8 @@ enum {
DIR_WINDOWS, // Windows directory, usually "c:\windows"
DIR_SYSTEM, // Usually c:\windows\system32"
- DIR_PROGRAM_FILES, // Usually c:\program files
+ DIR_PROGRAM_FILES, // Usually c:\program files
+ DIR_PROGRAM_FILESX86, // Usually c:\program files or c:\program files (x86)
DIR_IE_INTERNET_CACHE, // Temporary Internet Files directory.
DIR_COMMON_START_MENU, // Usually "C:\Documents and Settings\All Users\
diff --git a/cloud_print/virtual_driver/win/port_monitor/port_monitor.cc b/cloud_print/virtual_driver/win/port_monitor/port_monitor.cc
index 5141f99..cd54d2a 100644
--- a/cloud_print/virtual_driver/win/port_monitor/port_monitor.cc
+++ b/cloud_print/virtual_driver/win/port_monitor/port_monitor.cc
@@ -271,16 +271,7 @@ bool GetChromeExePath(FilePath* chrome_path) {
// Chrome doesn't appear to be installed per user.
// Now check %programfiles(x86)%\google\chrome\application
- // TODO(abodenha@chromium.org) Extend PathService::Get to be able to
- // return the X86 program files path. At a minimum, use SHGetKnownFolderPath
- // instead.
- wchar_t system_buffer[MAX_PATH] = L"";
- SHGetFolderPath(NULL,
- CSIDL_PROGRAM_FILESX86,
- NULL,
- SHGFP_TYPE_CURRENT,
- system_buffer);
- path = FilePath(system_buffer);
+ PathService::Get(base::DIR_PROGRAM_FILESX86, &path);
path = path.Append(kChromeExePath);
if (file_util::PathExists(path)) {
*chrome_path = FilePath(path.value());