summaryrefslogtreecommitdiffstats
path: root/base
diff options
context:
space:
mode:
authorabodenha@chromium.org <abodenha@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-25 18:03:12 +0000
committerabodenha@chromium.org <abodenha@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-25 18:03:12 +0000
commit9759ffc1dc10e904d1819612307adadccf6cfd1f (patch)
tree10095efda6686734efe6939c64be163e5abd32c4 /base
parent0a87625cee1d5839674646c447753f64d0bf66f4 (diff)
downloadchromium_src-9759ffc1dc10e904d1819612307adadccf6cfd1f.zip
chromium_src-9759ffc1dc10e904d1819612307adadccf6cfd1f.tar.gz
chromium_src-9759ffc1dc10e904d1819612307adadccf6cfd1f.tar.bz2
Extend PathService::Get to be able to return the X86 program files path.
Cloud print's virtual driver needs this to be able to find the Chrome install directory. Since the port monitor is a 64 bit DLL on 64 bit Windows it needs to request the X86 folder explicitly. BUG= TEST= Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=82567 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=82686 Review URL: http://codereview.chromium.org/6873159 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@82891 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base')
-rw-r--r--base/base_paths_win.cc12
-rw-r--r--base/base_paths_win.h5
2 files changed, 14 insertions, 3 deletions
diff --git a/base/base_paths_win.cc b/base/base_paths_win.cc
index 25271e4..b29a991 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.
@@ -49,6 +49,16 @@ bool PathProviderWin(int key, FilePath* result) {
GetSystemDirectory(system_buffer, MAX_PATH);
cur = FilePath(system_buffer);
break;
+ case base::DIR_PROGRAM_FILESX86:
+ if (base::win::OSInfo::GetInstance()->architecture() !=
+ base::win::OSInfo::X86_ARCHITECTURE) {
+ if (FAILED(SHGetFolderPath(NULL, CSIDL_PROGRAM_FILESX86, NULL,
+ SHGFP_TYPE_CURRENT, system_buffer)))
+ return false;
+ cur = FilePath(system_buffer);
+ break;
+ }
+ // Fall through to base::DIR_PROGRAM_FILES if we're on an X86 machine.
case base::DIR_PROGRAM_FILES:
if (FAILED(SHGetFolderPath(NULL, CSIDL_PROGRAM_FILES, 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\