OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <shlobj.h> | 5 #include <shlobj.h> |
6 #include <wtsapi32.h> | 6 #include <wtsapi32.h> |
7 #pragma comment(lib, "wtsapi32.lib") | 7 #pragma comment(lib, "wtsapi32.lib") |
8 | 8 |
9 #include "chrome/browser/policy/policy_path_parser.h" | 9 #include "chrome/browser/policy/policy_path_parser.h" |
10 | 10 |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 if (result.length() == 0) | 70 if (result.length() == 0) |
71 return result; | 71 return result; |
72 // Sanitize quotes in case of any around the whole string. | 72 // Sanitize quotes in case of any around the whole string. |
73 if (result.length() > 1 && | 73 if (result.length() > 1 && |
74 ((result[0] == L'"' && result[result.length() - 1] == L'"') || | 74 ((result[0] == L'"' && result[result.length() - 1] == L'"') || |
75 (result[0] == L'\'' && result[result.length() - 1] == L'\''))) { | 75 (result[0] == L'\'' && result[result.length() - 1] == L'\''))) { |
76 // Strip first and last char which should be matching quotes now. | 76 // Strip first and last char which should be matching quotes now. |
77 result = result.substr(1, result.length() - 2); | 77 result = result.substr(1, result.length() - 2); |
78 } | 78 } |
79 // First translate all path variables we recognize. | 79 // First translate all path variables we recognize. |
80 for (int i = 0; i < arraysize(win_folder_mapping); ++i) { | 80 for (size_t i = 0; i < arraysize(win_folder_mapping); ++i) { |
81 size_t position = result.find(win_folder_mapping[i].name); | 81 size_t position = result.find(win_folder_mapping[i].name); |
82 if (position != std::wstring::npos) { | 82 if (position != std::wstring::npos) { |
83 WCHAR path[MAX_PATH]; | 83 WCHAR path[MAX_PATH]; |
84 ::SHGetSpecialFolderPath(0, path, win_folder_mapping[i].id, false); | 84 ::SHGetSpecialFolderPath(0, path, win_folder_mapping[i].id, false); |
85 std::wstring path_string(path); | 85 std::wstring path_string(path); |
86 result.replace(position, wcslen(win_folder_mapping[i].name), path_string); | 86 result.replace(position, wcslen(win_folder_mapping[i].name), path_string); |
87 } | 87 } |
88 } | 88 } |
89 // Next translate other windows specific variables. | 89 // Next translate other windows specific variables. |
90 size_t position = result.find(kUserNamePolicyVarName); | 90 size_t position = result.find(kUserNamePolicyVarName); |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
145 void CheckUserDataDirPolicy(base::FilePath* user_data_dir) { | 145 void CheckUserDataDirPolicy(base::FilePath* user_data_dir) { |
146 DCHECK(user_data_dir); | 146 DCHECK(user_data_dir); |
147 // Policy from the HKLM hive has precedence over HKCU. | 147 // Policy from the HKLM hive has precedence over HKCU. |
148 if (!LoadUserDataDirPolicyFromRegistry(HKEY_LOCAL_MACHINE, user_data_dir)) | 148 if (!LoadUserDataDirPolicyFromRegistry(HKEY_LOCAL_MACHINE, user_data_dir)) |
149 LoadUserDataDirPolicyFromRegistry(HKEY_CURRENT_USER, user_data_dir); | 149 LoadUserDataDirPolicyFromRegistry(HKEY_CURRENT_USER, user_data_dir); |
150 } | 150 } |
151 | 151 |
152 } // namespace path_parser | 152 } // namespace path_parser |
153 | 153 |
154 } // namespace policy | 154 } // namespace policy |
OLD | NEW |