| 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 #include "chrome_frame/policy_settings.h" | 5 #include "chrome_frame/policy_settings.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 65 std::vector<std::wstring>* renderer_exclusion_list) { | 65 std::vector<std::wstring>* renderer_exclusion_list) { |
| 66 DCHECK(default_renderer); | 66 DCHECK(default_renderer); |
| 67 DCHECK(renderer_exclusion_list); | 67 DCHECK(renderer_exclusion_list); |
| 68 | 68 |
| 69 *default_renderer = RENDERER_NOT_SPECIFIED; | 69 *default_renderer = RENDERER_NOT_SPECIFIED; |
| 70 renderer_exclusion_list->clear(); | 70 renderer_exclusion_list->clear(); |
| 71 | 71 |
| 72 base::win::RegKey config_key; | 72 base::win::RegKey config_key; |
| 73 DWORD value = RENDERER_NOT_SPECIFIED; | 73 DWORD value = RENDERER_NOT_SPECIFIED; |
| 74 std::wstring settings_value( | 74 std::wstring settings_value( |
| 75 ASCIIToWide(policy::key::kChromeFrameRendererSettings)); | 75 base::ASCIIToWide(policy::key::kChromeFrameRendererSettings)); |
| 76 for (int i = 0; i < arraysize(kRootKeys); ++i) { | 76 for (int i = 0; i < arraysize(kRootKeys); ++i) { |
| 77 if ((config_key.Open(kRootKeys[i], policy::kRegistryChromePolicyKey, | 77 if ((config_key.Open(kRootKeys[i], policy::kRegistryChromePolicyKey, |
| 78 KEY_READ) == ERROR_SUCCESS) && | 78 KEY_READ) == ERROR_SUCCESS) && |
| 79 (config_key.ReadValueDW(settings_value.c_str(), | 79 (config_key.ReadValueDW(settings_value.c_str(), |
| 80 &value) == ERROR_SUCCESS)) { | 80 &value) == ERROR_SUCCESS)) { |
| 81 break; | 81 break; |
| 82 } | 82 } |
| 83 } | 83 } |
| 84 | 84 |
| 85 DCHECK(value == RENDERER_NOT_SPECIFIED || | 85 DCHECK(value == RENDERER_NOT_SPECIFIED || |
| 86 value == RENDER_IN_HOST || | 86 value == RENDER_IN_HOST || |
| 87 value == RENDER_IN_CHROME_FRAME) | 87 value == RENDER_IN_CHROME_FRAME) |
| 88 << "invalid default renderer setting: " << value; | 88 << "invalid default renderer setting: " << value; |
| 89 | 89 |
| 90 if (value != RENDER_IN_HOST && value != RENDER_IN_CHROME_FRAME) { | 90 if (value != RENDER_IN_HOST && value != RENDER_IN_CHROME_FRAME) { |
| 91 DVLOG(1) << "default renderer not specified via policy"; | 91 DVLOG(1) << "default renderer not specified via policy"; |
| 92 } else { | 92 } else { |
| 93 *default_renderer = static_cast<RendererForUrl>(value); | 93 *default_renderer = static_cast<RendererForUrl>(value); |
| 94 const char* exclusion_list_name = (*default_renderer == RENDER_IN_HOST) ? | 94 const char* exclusion_list_name = (*default_renderer == RENDER_IN_HOST) ? |
| 95 policy::key::kRenderInChromeFrameList : | 95 policy::key::kRenderInChromeFrameList : |
| 96 policy::key::kRenderInHostList; | 96 policy::key::kRenderInHostList; |
| 97 | 97 |
| 98 EnumerateKeyValues(config_key.Handle(), | 98 EnumerateKeyValues(config_key.Handle(), |
| 99 ASCIIToWide(exclusion_list_name).c_str(), renderer_exclusion_list); | 99 base::ASCIIToWide(exclusion_list_name).c_str(), |
| 100 renderer_exclusion_list); |
| 100 | 101 |
| 101 DVLOG(1) << "Default renderer as specified via policy: " | 102 DVLOG(1) << "Default renderer as specified via policy: " |
| 102 << *default_renderer | 103 << *default_renderer |
| 103 << " exclusion list size: " << renderer_exclusion_list->size(); | 104 << " exclusion list size: " << renderer_exclusion_list->size(); |
| 104 } | 105 } |
| 105 } | 106 } |
| 106 | 107 |
| 107 // static | 108 // static |
| 108 void PolicySettings::ReadMetadataCheckSettings( | 109 void PolicySettings::ReadMetadataCheckSettings( |
| 109 SkipMetadataCheck* skip_metadata_check) { | 110 SkipMetadataCheck* skip_metadata_check) { |
| 110 DCHECK(skip_metadata_check); | 111 DCHECK(skip_metadata_check); |
| 111 | 112 |
| 112 *skip_metadata_check = SKIP_METADATA_CHECK_NOT_SPECIFIED; | 113 *skip_metadata_check = SKIP_METADATA_CHECK_NOT_SPECIFIED; |
| 113 | 114 |
| 114 base::win::RegKey config_key; | 115 base::win::RegKey config_key; |
| 115 DWORD value = SKIP_METADATA_CHECK_NOT_SPECIFIED; | 116 DWORD value = SKIP_METADATA_CHECK_NOT_SPECIFIED; |
| 116 base::string16 settings_value(ASCIIToWide(policy::key::kSkipMetadataCheck)); | 117 base::string16 settings_value( |
| 118 base::ASCIIToWide(policy::key::kSkipMetadataCheck)); |
| 117 for (int i = 0; i < arraysize(kRootKeys); ++i) { | 119 for (int i = 0; i < arraysize(kRootKeys); ++i) { |
| 118 if ((config_key.Open(kRootKeys[i], policy::kRegistryChromePolicyKey, | 120 if ((config_key.Open(kRootKeys[i], policy::kRegistryChromePolicyKey, |
| 119 KEY_READ) == ERROR_SUCCESS) && | 121 KEY_READ) == ERROR_SUCCESS) && |
| 120 (config_key.ReadValueDW(settings_value.c_str(), | 122 (config_key.ReadValueDW(settings_value.c_str(), |
| 121 &value) == ERROR_SUCCESS)) { | 123 &value) == ERROR_SUCCESS)) { |
| 122 break; | 124 break; |
| 123 } | 125 } |
| 124 } | 126 } |
| 125 | 127 |
| 126 DCHECK(value == SKIP_METADATA_CHECK_NOT_SPECIFIED || | 128 DCHECK(value == SKIP_METADATA_CHECK_NOT_SPECIFIED || |
| (...skipping 10 matching lines...) Expand all Loading... |
| 137 } | 139 } |
| 138 } | 140 } |
| 139 | 141 |
| 140 // static | 142 // static |
| 141 void PolicySettings::ReadContentTypeSetting( | 143 void PolicySettings::ReadContentTypeSetting( |
| 142 std::vector<std::wstring>* content_type_list) { | 144 std::vector<std::wstring>* content_type_list) { |
| 143 DCHECK(content_type_list); | 145 DCHECK(content_type_list); |
| 144 | 146 |
| 145 std::wstring sub_key(policy::kRegistryChromePolicyKey); | 147 std::wstring sub_key(policy::kRegistryChromePolicyKey); |
| 146 sub_key += L"\\"; | 148 sub_key += L"\\"; |
| 147 sub_key += ASCIIToWide(policy::key::kChromeFrameContentTypes); | 149 sub_key += base::ASCIIToWide(policy::key::kChromeFrameContentTypes); |
| 148 | 150 |
| 149 content_type_list->clear(); | 151 content_type_list->clear(); |
| 150 for (int i = 0; i < arraysize(kRootKeys) && content_type_list->empty(); | 152 for (int i = 0; i < arraysize(kRootKeys) && content_type_list->empty(); |
| 151 ++i) { | 153 ++i) { |
| 152 EnumerateKeyValues(kRootKeys[i], sub_key.c_str(), content_type_list); | 154 EnumerateKeyValues(kRootKeys[i], sub_key.c_str(), content_type_list); |
| 153 } | 155 } |
| 154 } | 156 } |
| 155 | 157 |
| 156 // static | 158 // static |
| 157 void PolicySettings::ReadStringSetting(const char* value_name, | 159 void PolicySettings::ReadStringSetting(const char* value_name, |
| 158 std::wstring* value) { | 160 std::wstring* value) { |
| 159 DCHECK(value); | 161 DCHECK(value); |
| 160 value->clear(); | 162 value->clear(); |
| 161 base::win::RegKey config_key; | 163 base::win::RegKey config_key; |
| 162 std::wstring value_name_str(ASCIIToWide(value_name)); | 164 std::wstring value_name_str(base::ASCIIToWide(value_name)); |
| 163 for (int i = 0; i < arraysize(kRootKeys); ++i) { | 165 for (int i = 0; i < arraysize(kRootKeys); ++i) { |
| 164 if ((config_key.Open(kRootKeys[i], policy::kRegistryChromePolicyKey, | 166 if ((config_key.Open(kRootKeys[i], policy::kRegistryChromePolicyKey, |
| 165 KEY_READ) == ERROR_SUCCESS) && | 167 KEY_READ) == ERROR_SUCCESS) && |
| 166 (config_key.ReadValue(value_name_str.c_str(), | 168 (config_key.ReadValue(value_name_str.c_str(), |
| 167 value) == ERROR_SUCCESS)) { | 169 value) == ERROR_SUCCESS)) { |
| 168 break; | 170 break; |
| 169 } | 171 } |
| 170 } | 172 } |
| 171 } | 173 } |
| 172 | 174 |
| 173 // static | 175 // static |
| 174 void PolicySettings::ReadBoolSetting(const char* value_name, bool* value) { | 176 void PolicySettings::ReadBoolSetting(const char* value_name, bool* value) { |
| 175 DCHECK(value); | 177 DCHECK(value); |
| 176 base::win::RegKey config_key; | 178 base::win::RegKey config_key; |
| 177 base::string16 value_name_str(ASCIIToWide(value_name)); | 179 base::string16 value_name_str(base::ASCIIToWide(value_name)); |
| 178 DWORD dword_value = 0; | 180 DWORD dword_value = 0; |
| 179 for (int i = 0; i < arraysize(kRootKeys); ++i) { | 181 for (int i = 0; i < arraysize(kRootKeys); ++i) { |
| 180 if ((config_key.Open(kRootKeys[i], policy::kRegistryChromePolicyKey, | 182 if ((config_key.Open(kRootKeys[i], policy::kRegistryChromePolicyKey, |
| 181 KEY_QUERY_VALUE) == ERROR_SUCCESS) && | 183 KEY_QUERY_VALUE) == ERROR_SUCCESS) && |
| 182 (config_key.ReadValueDW(value_name_str.c_str(), | 184 (config_key.ReadValueDW(value_name_str.c_str(), |
| 183 &dword_value) == ERROR_SUCCESS)) { | 185 &dword_value) == ERROR_SUCCESS)) { |
| 184 *value = (dword_value != 0); | 186 *value = (dword_value != 0); |
| 185 break; | 187 break; |
| 186 } | 188 } |
| 187 } | 189 } |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 221 swap(content_type_list_, content_type_list); | 223 swap(content_type_list_, content_type_list); |
| 222 swap(application_locale_, application_locale); | 224 swap(application_locale_, application_locale); |
| 223 swap(additional_launch_parameters_, additional_launch_parameters); | 225 swap(additional_launch_parameters_, additional_launch_parameters); |
| 224 swap(suppress_turndown_prompt_, suppress_turndown_prompt); | 226 swap(suppress_turndown_prompt_, suppress_turndown_prompt); |
| 225 } | 227 } |
| 226 | 228 |
| 227 // static | 229 // static |
| 228 PolicySettings* PolicySettings::GetInstance() { | 230 PolicySettings* PolicySettings::GetInstance() { |
| 229 return Singleton<PolicySettings>::get(); | 231 return Singleton<PolicySettings>::get(); |
| 230 } | 232 } |
| OLD | NEW |