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

Side by Side Diff: remoting/host/policy_watcher.cc

Issue 2252243002: Adding a policy for using the uiAccess enabled It2Me binary on Windows (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 // Most of this code is copied from: 5 // Most of this code is copied from:
6 // src/chrome/browser/policy/asynchronous_policy_loader.{h,cc} 6 // src/chrome/browser/policy/asynchronous_policy_loader.{h,cc}
7 7
8 #include "remoting/host/policy_watcher.h" 8 #include "remoting/host/policy_watcher.h"
9 9
10 #include <utility> 10 #include <utility>
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 // policies (expecting perf and maintanability improvement, but no functional 78 // policies (expecting perf and maintanability improvement, but no functional
79 // impact). 79 // impact).
80 policy::Schema schema = policy::Schema::Wrap(policy::GetChromeSchemaData()); 80 policy::Schema schema = policy::Schema::Wrap(policy::GetChromeSchemaData());
81 81
82 std::unique_ptr<policy::SchemaRegistry> schema_registry( 82 std::unique_ptr<policy::SchemaRegistry> schema_registry(
83 new policy::SchemaRegistry()); 83 new policy::SchemaRegistry());
84 schema_registry->RegisterComponent(GetPolicyNamespace(), schema); 84 schema_registry->RegisterComponent(GetPolicyNamespace(), schema);
85 return schema_registry; 85 return schema_registry;
86 } 86 }
87 87
88 void RetrievePoliciesByNamePrefix(const policy::PolicyMap& current_policies,
89 const std::string& policy_name_prefix,
90 base::DictionaryValue* policy_dict) {
91 for (const auto& policy_entry : current_policies) {
92 const std::string& key = policy_entry.first;
93 const base::Value* value = policy_entry.second.value.get();
94
95 if (key.find(policy_name_prefix) != std::string::npos) {
96 policy_dict->Set(key, value->CreateDeepCopy());
97 }
98 }
99 }
100
88 std::unique_ptr<base::DictionaryValue> CopyChromotingPoliciesIntoDictionary( 101 std::unique_ptr<base::DictionaryValue> CopyChromotingPoliciesIntoDictionary(
89 const policy::PolicyMap& current) { 102 const policy::PolicyMap& current) {
90 const char kPolicyNameSubstring[] = "RemoteAccessHost"; 103 const char kRemoteAccessHostPolicyNamePrefix[] = "RemoteAccessHost";
104 const char kRemoteAssistanceHostPolicyNamePrefix[] = "RemoteAssistanceHost";
91 std::unique_ptr<base::DictionaryValue> policy_dict( 105 std::unique_ptr<base::DictionaryValue> policy_dict(
92 new base::DictionaryValue()); 106 new base::DictionaryValue());
93 for (const auto& entry : current) {
94 const std::string& key = entry.first;
95 const base::Value* value = entry.second.value.get();
96 107
97 // Copying only Chromoting-specific policies helps avoid false alarms 108 // Copying only Chromoting-specific policies helps avoid false alarms raised
98 // raised by NormalizePolicies below (such alarms shutdown the host). 109 // by NormalizePolicies below (such alarms shutdown the host).
99 // TODO(lukasza): Removing this somewhat brittle filtering will be possible 110 // TODO(lukasza): Removing this somewhat brittle filtering will be possible
100 // after having separate, Chromoting-specific schema. 111 // after having separate, Chromoting-specific schema.
101 if (key.find(kPolicyNameSubstring) != std::string::npos) { 112 RetrievePoliciesByNamePrefix(current, kRemoteAccessHostPolicyNamePrefix,
102 policy_dict->Set(key, value->CreateDeepCopy()); 113 policy_dict.get());
103 } 114 RetrievePoliciesByNamePrefix(current, kRemoteAssistanceHostPolicyNamePrefix,
104 } 115 policy_dict.get());
105 116
106 return policy_dict; 117 return policy_dict;
107 } 118 }
108 119
109 // Takes a dictionary containing only 1) recognized policy names and 2) 120 // Takes a dictionary containing only 1) recognized policy names and 2)
110 // well-typed policy values and further verifies policy contents. 121 // well-typed policy values and further verifies policy contents.
111 bool VerifyWellformedness(const base::DictionaryValue& changed_policies) { 122 bool VerifyWellformedness(const base::DictionaryValue& changed_policies) {
112 // Verify ThirdPartyAuthConfig policy. 123 // Verify ThirdPartyAuthConfig policy.
113 ThirdPartyAuthConfig not_used; 124 ThirdPartyAuthConfig not_used;
114 switch (ThirdPartyAuthConfig::Parse(changed_policies, &not_used)) { 125 switch (ThirdPartyAuthConfig::Parse(changed_policies, &not_used)) {
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 default_values_->SetString(key::kRemoteAccessHostTokenUrl, std::string()); 199 default_values_->SetString(key::kRemoteAccessHostTokenUrl, std::string());
189 default_values_->SetString(key::kRemoteAccessHostTokenValidationUrl, 200 default_values_->SetString(key::kRemoteAccessHostTokenValidationUrl,
190 std::string()); 201 std::string());
191 default_values_->SetString( 202 default_values_->SetString(
192 key::kRemoteAccessHostTokenValidationCertificateIssuer, std::string()); 203 key::kRemoteAccessHostTokenValidationCertificateIssuer, std::string());
193 default_values_->SetBoolean(key::kRemoteAccessHostAllowClientPairing, true); 204 default_values_->SetBoolean(key::kRemoteAccessHostAllowClientPairing, true);
194 default_values_->SetBoolean(key::kRemoteAccessHostAllowGnubbyAuth, true); 205 default_values_->SetBoolean(key::kRemoteAccessHostAllowGnubbyAuth, true);
195 default_values_->SetBoolean(key::kRemoteAccessHostAllowRelayedConnection, 206 default_values_->SetBoolean(key::kRemoteAccessHostAllowRelayedConnection,
196 true); 207 true);
197 default_values_->SetString(key::kRemoteAccessHostUdpPortRange, ""); 208 default_values_->SetString(key::kRemoteAccessHostUdpPortRange, "");
209 default_values_->SetBoolean(key::kRemoteAssistanceHostAllowUiAccess, false);
198 } 210 }
199 211
200 PolicyWatcher::~PolicyWatcher() { 212 PolicyWatcher::~PolicyWatcher() {
201 // Stop observing |policy_service_| if StartWatching() has been called. 213 // Stop observing |policy_service_| if StartWatching() has been called.
202 if (!policy_updated_callback_.is_null()) { 214 if (!policy_updated_callback_.is_null()) {
203 policy_service_->RemoveObserver(policy::POLICY_DOMAIN_CHROME, this); 215 policy_service_->RemoveObserver(policy::POLICY_DOMAIN_CHROME, this);
204 } 216 }
205 217
206 if (owned_policy_provider_) { 218 if (owned_policy_provider_) {
207 owned_policy_provider_->Shutdown(); 219 owned_policy_provider_->Shutdown();
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 CreateSchemaRegistry())); 394 CreateSchemaRegistry()));
383 #else 395 #else
384 #error OS that is not yet supported by PolicyWatcher code. 396 #error OS that is not yet supported by PolicyWatcher code.
385 #endif 397 #endif
386 398
387 return PolicyWatcher::CreateFromPolicyLoader(std::move(policy_loader)); 399 return PolicyWatcher::CreateFromPolicyLoader(std::move(policy_loader));
388 #endif // !(OS_CHROMEOS) 400 #endif // !(OS_CHROMEOS)
389 } 401 }
390 402
391 } // namespace remoting 403 } // namespace remoting
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698