OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 1635 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1646 base::string16 client_path; | 1646 base::string16 client_path; |
1647 RegKey key; | 1647 RegKey key; |
1648 base::string16 name; | 1648 base::string16 name; |
1649 base::string16 command; | 1649 base::string16 command; |
1650 | 1650 |
1651 // HKCU has precedence over HKLM for these registrations: http://goo.gl/xjczJ. | 1651 // HKCU has precedence over HKLM for these registrations: http://goo.gl/xjczJ. |
1652 // Look in HKCU second to override any identical values found in HKLM. | 1652 // Look in HKCU second to override any identical values found in HKLM. |
1653 const HKEY roots[] = { HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER }; | 1653 const HKEY roots[] = { HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER }; |
1654 for (int i = 0; i < arraysize(roots); ++i) { | 1654 for (int i = 0; i < arraysize(roots); ++i) { |
1655 const HKEY root = roots[i]; | 1655 const HKEY root = roots[i]; |
1656 for (base::win::RegistryKeyIterator iter(root, base_key.c_str()); | 1656 for (base::win::RegistryKeyIterator iter(root, base_key.c_str(), 0); |
1657 iter.Valid(); ++iter) { | 1657 iter.Valid(); |
| 1658 ++iter) { |
1658 client_path.assign(base_key).append(1, L'\\').append(iter.Name()); | 1659 client_path.assign(base_key).append(1, L'\\').append(iter.Name()); |
1659 // Read the browser's name (localized according to install language). | 1660 // Read the browser's name (localized according to install language). |
1660 if (key.Open(root, client_path.c_str(), | 1661 if (key.Open(root, client_path.c_str(), |
1661 KEY_QUERY_VALUE) != ERROR_SUCCESS || | 1662 KEY_QUERY_VALUE) != ERROR_SUCCESS || |
1662 key.ReadValue(NULL, &name) != ERROR_SUCCESS || | 1663 key.ReadValue(NULL, &name) != ERROR_SUCCESS || |
1663 name.empty() || | 1664 name.empty() || |
1664 name.find(dist->GetBaseAppName()) != base::string16::npos) { | 1665 name.find(dist->GetBaseAppName()) != base::string16::npos) { |
1665 continue; | 1666 continue; |
1666 } | 1667 } |
1667 // Read the browser's reinstall command. | 1668 // Read the browser's reinstall command. |
(...skipping 617 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2285 // are any left...). | 2286 // are any left...). |
2286 if (free_bits >= 8 && next_byte_index < size) { | 2287 if (free_bits >= 8 && next_byte_index < size) { |
2287 free_bits -= 8; | 2288 free_bits -= 8; |
2288 bit_stream += bytes[next_byte_index++] << free_bits; | 2289 bit_stream += bytes[next_byte_index++] << free_bits; |
2289 } | 2290 } |
2290 } | 2291 } |
2291 | 2292 |
2292 DCHECK_EQ(ret.length(), encoded_length); | 2293 DCHECK_EQ(ret.length(), encoded_length); |
2293 return ret; | 2294 return ret; |
2294 } | 2295 } |
OLD | NEW |