OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 // This file defines functions that integrate Chrome in Windows shell. These | 5 // This file defines functions that integrate Chrome in Windows shell. These |
6 // functions can be used by Chrome as well as Chrome installer. All of the | 6 // functions can be used by Chrome as well as Chrome installer. All of the |
7 // work is done by the local functions defined in anonymous namespace in | 7 // work is done by the local functions defined in anonymous namespace in |
8 // this class. | 8 // this class. |
9 | 9 |
10 #include "chrome/installer/util/shell_util.h" | 10 #include "chrome/installer/util/shell_util.h" |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
194 // Checks if the current registry entry exists in HKLM registry and the value | 194 // Checks if the current registry entry exists in HKLM registry and the value |
195 // is same. | 195 // is same. |
196 bool ExistsInHKLM() const { | 196 bool ExistsInHKLM() const { |
197 RegKey key(HKEY_LOCAL_MACHINE, _key_path.c_str(), KEY_READ); | 197 RegKey key(HKEY_LOCAL_MACHINE, _key_path.c_str(), KEY_READ); |
198 bool found = false; | 198 bool found = false; |
199 if (_is_string) { | 199 if (_is_string) { |
200 std::wstring read_value; | 200 std::wstring read_value; |
201 found = (key.ReadValue(_name.c_str(), &read_value)) && | 201 found = (key.ReadValue(_name.c_str(), &read_value)) && |
202 (read_value.size() == _value.size()) && | 202 (read_value.size() == _value.size()) && |
203 (std::equal(_value.begin(), _value.end(), read_value.begin(), | 203 (std::equal(_value.begin(), _value.end(), read_value.begin(), |
204 CaseInsensitiveCompare<wchar_t>())); | 204 base::CaseInsensitiveCompare<wchar_t>())); |
205 } else { | 205 } else { |
206 DWORD read_value; | 206 DWORD read_value; |
207 found = key.ReadValueDW(_name.c_str(), &read_value) && | 207 found = key.ReadValueDW(_name.c_str(), &read_value) && |
208 read_value == _int_value; | 208 read_value == _int_value; |
209 } | 209 } |
210 key.Close(); | 210 key.Close(); |
211 return found; | 211 return found; |
212 } | 212 } |
213 | 213 |
214 // Checks if the current registry entry exists in HKLM registry | 214 // Checks if the current registry entry exists in HKLM registry |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
358 std::wstring registry_chrome_exe; | 358 std::wstring registry_chrome_exe; |
359 if (!key.ReadValue(L"", ®istry_chrome_exe) || | 359 if (!key.ReadValue(L"", ®istry_chrome_exe) || |
360 registry_chrome_exe.length() < 2) | 360 registry_chrome_exe.length() < 2) |
361 return false; | 361 return false; |
362 | 362 |
363 registry_chrome_exe = registry_chrome_exe.substr(1, | 363 registry_chrome_exe = registry_chrome_exe.substr(1, |
364 registry_chrome_exe.length() - 2); | 364 registry_chrome_exe.length() - 2); |
365 if ((registry_chrome_exe.size() == chrome_exe.size()) && | 365 if ((registry_chrome_exe.size() == chrome_exe.size()) && |
366 (std::equal(chrome_exe.begin(), chrome_exe.end(), | 366 (std::equal(chrome_exe.begin(), chrome_exe.end(), |
367 registry_chrome_exe.begin(), | 367 registry_chrome_exe.begin(), |
368 CaseInsensitiveCompare<wchar_t>()))) | 368 base::CaseInsensitiveCompare<wchar_t>()))) { |
369 return false; | 369 return false; |
| 370 } |
370 | 371 |
371 std::vector<std::wstring> v1, v2; | 372 std::vector<std::wstring> v1, v2; |
372 base::SplitString(registry_chrome_exe, L'\\', &v1); | 373 base::SplitString(registry_chrome_exe, L'\\', &v1); |
373 base::SplitString(chrome_exe, L'\\', &v2); | 374 base::SplitString(chrome_exe, L'\\', &v2); |
374 if (v1.size() == 0 || v2.size() == 0 || v1.size() != v2.size()) | 375 if (v1.size() == 0 || v2.size() == 0 || v1.size() != v2.size()) |
375 return false; | 376 return false; |
376 | 377 |
377 // Now check that only one of the values within two '\' chars differ. | 378 // Now check that only one of the values within two '\' chars differ. |
378 std::vector<std::wstring>::iterator itr1 = v1.begin(); | 379 std::vector<std::wstring>::iterator itr1 = v1.begin(); |
379 std::vector<std::wstring>::iterator itr2 = v2.begin(); | 380 std::vector<std::wstring>::iterator itr2 = v2.begin(); |
380 bool one_mismatch = false; | 381 bool one_mismatch = false; |
381 for ( ; itr1 < v1.end() && itr2 < v2.end(); ++itr1, ++itr2) { | 382 for ( ; itr1 < v1.end() && itr2 < v2.end(); ++itr1, ++itr2) { |
382 std::wstring s1 = *itr1; | 383 std::wstring s1 = *itr1; |
383 std::wstring s2 = *itr2; | 384 std::wstring s2 = *itr2; |
384 if ((s1.size() != s2.size()) || | 385 if ((s1.size() != s2.size()) || |
385 (!std::equal(s1.begin(), s1.end(), | 386 (!std::equal(s1.begin(), s1.end(), |
386 s2.begin(), CaseInsensitiveCompare<wchar_t>()))) { | 387 s2.begin(), base::CaseInsensitiveCompare<wchar_t>()))) { |
387 if (one_mismatch) | 388 if (one_mismatch) |
388 return false; | 389 return false; |
389 else | 390 else |
390 one_mismatch = true; | 391 one_mismatch = true; |
391 } | 392 } |
392 } | 393 } |
393 return true; | 394 return true; |
394 } | 395 } |
395 | 396 |
396 } // namespace | 397 } // namespace |
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
803 chrome_exe.c_str(), // target | 804 chrome_exe.c_str(), // target |
804 shortcut.c_str(), // shortcut | 805 shortcut.c_str(), // shortcut |
805 chrome_path.c_str(), // working dir | 806 chrome_path.c_str(), // working dir |
806 NULL, // arguments | 807 NULL, // arguments |
807 description.c_str(), // description | 808 description.c_str(), // description |
808 chrome_exe.c_str(), // icon file | 809 chrome_exe.c_str(), // icon file |
809 icon_index, // icon index | 810 icon_index, // icon index |
810 dist->GetBrowserAppId().c_str()); // app id | 811 dist->GetBrowserAppId().c_str()); // app id |
811 } | 812 } |
812 } | 813 } |
OLD | NEW |