| 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 // chrome_tab.cc : Implementation of DLL Exports. | 5 // chrome_tab.cc : Implementation of DLL Exports. |
| 6 | 6 |
| 7 // Include without path to make GYP build see it. | 7 // Include without path to make GYP build see it. |
| 8 #include "chrome_tab.h" // NOLINT | 8 #include "chrome_tab.h" // NOLINT |
| 9 | 9 |
| 10 #include <atlsecurity.h> | 10 #include <atlsecurity.h> |
| (...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 429 // To delete the user agent, set value to NULL. | 429 // To delete the user agent, set value to NULL. |
| 430 // The is_system parameter indicates whether this is a per machine or a per | 430 // The is_system parameter indicates whether this is a per machine or a per |
| 431 // user installation. | 431 // user installation. |
| 432 HRESULT SetChromeFrameUA(bool is_system, const wchar_t* value) { | 432 HRESULT SetChromeFrameUA(bool is_system, const wchar_t* value) { |
| 433 HRESULT hr = E_FAIL; | 433 HRESULT hr = E_FAIL; |
| 434 HKEY parent_hive = is_system ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER; | 434 HKEY parent_hive = is_system ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER; |
| 435 | 435 |
| 436 RegKey ua_key; | 436 RegKey ua_key; |
| 437 if (ua_key.Create(parent_hive, kPostPlatformUAKey, KEY_READ | KEY_WRITE)) { | 437 if (ua_key.Create(parent_hive, kPostPlatformUAKey, KEY_READ | KEY_WRITE)) { |
| 438 // Make sure that we unregister ChromeFrame UA strings registered previously | 438 // Make sure that we unregister ChromeFrame UA strings registered previously |
| 439 wchar_t name[MAX_PATH + 1] = {}; | 439 wchar_t value_name[MAX_PATH + 1] = {}; |
| 440 wchar_t value[MAX_PATH + 1] = {}; | 440 wchar_t value_data[MAX_PATH + 1] = {}; |
| 441 | 441 |
| 442 DWORD value_index = 0; | 442 DWORD value_index = 0; |
| 443 while (value_index < ua_key.ValueCount()) { | 443 while (value_index < ua_key.ValueCount()) { |
| 444 DWORD name_size = arraysize(name); | 444 DWORD name_size = arraysize(value_name); |
| 445 DWORD value_size = arraysize(value); | 445 DWORD value_size = arraysize(value_data); |
| 446 DWORD type = 0; | 446 DWORD type = 0; |
| 447 LRESULT ret = ::RegEnumValue(ua_key.Handle(), value_index, name, | 447 LRESULT ret = ::RegEnumValue(ua_key.Handle(), value_index, value_name, |
| 448 &name_size, NULL, &type, | 448 &name_size, NULL, &type, |
| 449 reinterpret_cast<BYTE*>(value), | 449 reinterpret_cast<BYTE*>(value_data), |
| 450 &value_size); | 450 &value_size); |
| 451 if (ret == ERROR_SUCCESS) { | 451 if (ret == ERROR_SUCCESS) { |
| 452 if (StartsWith(name, kChromeFramePrefix, false)) { | 452 if (StartsWith(value_name, kChromeFramePrefix, false)) { |
| 453 ua_key.DeleteValue(name); | 453 ua_key.DeleteValue(value_name); |
| 454 } else { | 454 } else { |
| 455 ++value_index; | 455 ++value_index; |
| 456 } | 456 } |
| 457 } else { | 457 } else { |
| 458 break; | 458 break; |
| 459 } | 459 } |
| 460 } | 460 } |
| 461 | 461 |
| 462 std::wstring chrome_frame_ua_value_name = kChromeFramePrefix; | 462 std::wstring chrome_frame_ua_value_name = kChromeFramePrefix; |
| 463 chrome_frame_ua_value_name += GetCurrentModuleVersion(); | 463 chrome_frame_ua_value_name += GetCurrentModuleVersion(); |
| (...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 810 sd.GetDacl(&new_dacl); | 810 sd.GetDacl(&new_dacl); |
| 811 new_dacl.AddAllowedAce(token_.GetUser(), GENERIC_WRITE | GENERIC_READ); | 811 new_dacl.AddAllowedAce(token_.GetUser(), GENERIC_WRITE | GENERIC_READ); |
| 812 if (AtlSetDacl(object_name.c_str(), SE_REGISTRY_KEY, new_dacl)) { | 812 if (AtlSetDacl(object_name.c_str(), SE_REGISTRY_KEY, new_dacl)) { |
| 813 result = SetOrDeleteMimeHandlerKey(enable, HKEY_LOCAL_MACHINE); | 813 result = SetOrDeleteMimeHandlerKey(enable, HKEY_LOCAL_MACHINE); |
| 814 } | 814 } |
| 815 } | 815 } |
| 816 | 816 |
| 817 backup.RestoreSecurity(object_name.c_str()); | 817 backup.RestoreSecurity(object_name.c_str()); |
| 818 return result; | 818 return result; |
| 819 } | 819 } |
| OLD | NEW |