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

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 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 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 SkipMetadataCheck* skip_metadata_check) {
110 DCHECK(skip_metadata_check);
111
112 *skip_metadata_check = SKIP_METADATA_CHECK_NOT_SPECIFIED;
113
114 base::win::RegKey config_key;
115 DWORD value = SKIP_METADATA_CHECK_NOT_SPECIFIED;
116 std::wstring settings_value(
117 ASCIIToWide(policy::key::kSkipMetadataCheck));
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 == SKIP_METADATA_CHECK_NOT_SPECIFIED ||
128 value == SKIP_METADATA_CHECK_NO ||
129 value == SKIP_METADATA_CHECK_YES)
130 << "invalid skip metadata check setting: " << value;
131
132 if (value != SKIP_METADATA_CHECK_NO && value != SKIP_METADATA_CHECK_YES) {
133 DVLOG(1) << "metadata check not specified via policy";
134 } else {
135 *skip_metadata_check = static_cast<SkipMetadataCheck>(value);
136 DVLOG(1) << "SkipMetadata check as specified via policy: "
137 << *skip_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 SkipMetadataCheck skip_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(&skip_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(skip_metadata_check_, skip_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