Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(99)

Side by Side Diff: chrome_frame/policy_settings.cc

Issue 18770009: Added a new policy setting as well as corrisponding registry key to allow GCF users the option to d… (Closed) Base URL: https://src.chromium.org/chrome/trunk/src/
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 EnumerateKeyValues(config_key.Handle(), 98 EnumerateKeyValues(config_key.Handle(),
99 ASCIIToWide(exclusion_list_name).c_str(), renderer_exclusion_list); 99 ASCIIToWide(exclusion_list_name).c_str(), renderer_exclusion_list);
100 100
101 DVLOG(1) << "Default renderer as specified via policy: " 101 DVLOG(1) << "Default renderer as specified via policy: "
102 << *default_renderer 102 << *default_renderer
103 << " exclusion list size: " << renderer_exclusion_list->size(); 103 << " exclusion list size: " << renderer_exclusion_list->size();
104 } 104 }
105 } 105 }
106 106
107 // static 107 // static
108 void PolicySettings::ReadMetadataCheckSettings(
109 PerformMetadataCheck* metadata_check) {
110 DCHECK(metadata_check);
111
112 *metadata_check = METADATA_CHECK_NOT_SPECIFIED;
113
114 base::win::RegKey config_key;
115 DWORD value = METADATA_CHECK_NOT_SPECIFIED;
116 std::wstring settings_value(
117 ASCIIToWide(policy::key::kChromeFrameMetadataCheckSettings));
118 for (int i = 0; i < arraysize(kRootKeys); ++i) {
119 if ((config_key.Open(kRootKeys[i], policy::kRegistryChromePolicyKey,
120 KEY_READ) == ERROR_SUCCESS) &&
121 (config_key.ReadValueDW(settings_value.c_str(),
122 &value) == ERROR_SUCCESS)) {
123 break;
124 }
125 }
126
127 DCHECK(value == METADATA_CHECK_NOT_SPECIFIED ||
128 value == METADATA_CHECK_NO ||
129 value == METADATA_CHECK_YES) <<
grt (UTC plus 2) 2013/08/01 19:22:57 move << to next line
130 "invalid metadata check setting: " << value;
131
132 if (value != METADATA_CHECK_NO && value != METADATA_CHECK_YES) {
133 DVLOG(1) << "metadata check not specified via policy";
134 } else {
135 *metadata_check = static_cast<PerformMetadataCheck>(value);
136 DVLOG(1) << "Metadata check as specified via policy: "
137 << *metadata_check;
138 }
139 }
140
141 // static
108 void PolicySettings::ReadContentTypeSetting( 142 void PolicySettings::ReadContentTypeSetting(
109 std::vector<std::wstring>* content_type_list) { 143 std::vector<std::wstring>* content_type_list) {
110 DCHECK(content_type_list); 144 DCHECK(content_type_list);
111 145
112 std::wstring sub_key(policy::kRegistryChromePolicyKey); 146 std::wstring sub_key(policy::kRegistryChromePolicyKey);
113 sub_key += L"\\"; 147 sub_key += L"\\";
114 sub_key += ASCIIToWide(policy::key::kChromeFrameContentTypes); 148 sub_key += ASCIIToWide(policy::key::kChromeFrameContentTypes);
115 149
116 content_type_list->clear(); 150 content_type_list->clear();
117 for (int i = 0; i < arraysize(kRootKeys) && content_type_list->empty(); 151 for (int i = 0; i < arraysize(kRootKeys) && content_type_list->empty();
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 (config_key.ReadValueDW(value_name_str.c_str(), 183 (config_key.ReadValueDW(value_name_str.c_str(),
150 &dword_value) == ERROR_SUCCESS)) { 184 &dword_value) == ERROR_SUCCESS)) {
151 *value = (dword_value != 0); 185 *value = (dword_value != 0);
152 break; 186 break;
153 } 187 }
154 } 188 }
155 } 189 }
156 190
157 void PolicySettings::RefreshFromRegistry() { 191 void PolicySettings::RefreshFromRegistry() {
158 RendererForUrl default_renderer; 192 RendererForUrl default_renderer;
193 PerformMetadataCheck metadata_check;
159 std::vector<std::wstring> renderer_exclusion_list; 194 std::vector<std::wstring> renderer_exclusion_list;
160 std::vector<std::wstring> content_type_list; 195 std::vector<std::wstring> content_type_list;
161 std::wstring application_locale; 196 std::wstring application_locale;
162 CommandLine additional_launch_parameters(CommandLine::NO_PROGRAM); 197 CommandLine additional_launch_parameters(CommandLine::NO_PROGRAM);
163 std::wstring additional_parameters_str; 198 std::wstring additional_parameters_str;
164 bool suppress_turndown_prompt = false; 199 bool suppress_turndown_prompt = false;
165 200
166 // Read the latest settings from the registry 201 // Read the latest settings from the registry
167 ReadUrlSettings(&default_renderer, &renderer_exclusion_list); 202 ReadUrlSettings(&default_renderer, &renderer_exclusion_list);
203 ReadMetadataCheckSettings(&metadata_check);
168 ReadContentTypeSetting(&content_type_list); 204 ReadContentTypeSetting(&content_type_list);
169 ReadStringSetting(policy::key::kApplicationLocaleValue, &application_locale); 205 ReadStringSetting(policy::key::kApplicationLocaleValue, &application_locale);
170 ReadStringSetting(policy::key::kAdditionalLaunchParameters, 206 ReadStringSetting(policy::key::kAdditionalLaunchParameters,
171 &additional_parameters_str); 207 &additional_parameters_str);
172 if (!additional_parameters_str.empty()) { 208 if (!additional_parameters_str.empty()) {
173 additional_parameters_str.insert(0, L"fake.exe "); 209 additional_parameters_str.insert(0, L"fake.exe ");
174 additional_launch_parameters.ParseFromString(additional_parameters_str); 210 additional_launch_parameters.ParseFromString(additional_parameters_str);
175 } 211 }
176 ReadBoolSetting(policy::key::kSuppressChromeFrameTurndownPrompt, 212 ReadBoolSetting(policy::key::kSuppressChromeFrameTurndownPrompt,
177 &suppress_turndown_prompt); 213 &suppress_turndown_prompt);
178 214
179 // Nofail swap in the new values. (Note: this is all that need be protected 215 // Nofail swap in the new values. (Note: this is all that need be protected
180 // under a mutex if/when this becomes thread safe.) 216 // under a mutex if/when this becomes thread safe.)
181 using std::swap; 217 using std::swap;
182 218
183 swap(default_renderer_, default_renderer); 219 swap(default_renderer_, default_renderer);
220 swap(metadata_check_, metadata_check);
184 swap(renderer_exclusion_list_, renderer_exclusion_list); 221 swap(renderer_exclusion_list_, renderer_exclusion_list);
185 swap(content_type_list_, content_type_list); 222 swap(content_type_list_, content_type_list);
186 swap(application_locale_, application_locale); 223 swap(application_locale_, application_locale);
187 swap(additional_launch_parameters_, additional_launch_parameters); 224 swap(additional_launch_parameters_, additional_launch_parameters);
188 swap(suppress_turndown_prompt_, suppress_turndown_prompt); 225 swap(suppress_turndown_prompt_, suppress_turndown_prompt);
189 } 226 }
190 227
191 // static 228 // static
192 PolicySettings* PolicySettings::GetInstance() { 229 PolicySettings* PolicySettings::GetInstance() {
193 return Singleton<PolicySettings>::get(); 230 return Singleton<PolicySettings>::get();
194 } 231 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698