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

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

Issue 820133002: Reusing names of policy keys from policy_constants.h (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebasing... Created 5 years, 11 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 // This file implements a standalone host process for Me2Me. 5 // This file implements a standalone host process for Me2Me.
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/at_exit.h" 9 #include "base/at_exit.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 12 matching lines...) Expand all
23 #include "build/build_config.h" 23 #include "build/build_config.h"
24 #include "crypto/nss_util.h" 24 #include "crypto/nss_util.h"
25 #include "ipc/ipc_channel.h" 25 #include "ipc/ipc_channel.h"
26 #include "ipc/ipc_channel_proxy.h" 26 #include "ipc/ipc_channel_proxy.h"
27 #include "ipc/ipc_listener.h" 27 #include "ipc/ipc_listener.h"
28 #include "media/base/media.h" 28 #include "media/base/media.h"
29 #include "net/base/network_change_notifier.h" 29 #include "net/base/network_change_notifier.h"
30 #include "net/socket/client_socket_factory.h" 30 #include "net/socket/client_socket_factory.h"
31 #include "net/socket/ssl_server_socket.h" 31 #include "net/socket/ssl_server_socket.h"
32 #include "net/url_request/url_fetcher.h" 32 #include "net/url_request/url_fetcher.h"
33 #include "policy/policy_constants.h"
33 #include "remoting/base/auto_thread_task_runner.h" 34 #include "remoting/base/auto_thread_task_runner.h"
34 #include "remoting/base/breakpad.h" 35 #include "remoting/base/breakpad.h"
35 #include "remoting/base/constants.h" 36 #include "remoting/base/constants.h"
36 #include "remoting/base/logging.h" 37 #include "remoting/base/logging.h"
37 #include "remoting/base/rsa_key_pair.h" 38 #include "remoting/base/rsa_key_pair.h"
38 #include "remoting/base/service_urls.h" 39 #include "remoting/base/service_urls.h"
39 #include "remoting/base/util.h" 40 #include "remoting/base/util.h"
40 #include "remoting/host/branding.h" 41 #include "remoting/host/branding.h"
41 #include "remoting/host/chromoting_host.h" 42 #include "remoting/host/chromoting_host.h"
42 #include "remoting/host/chromoting_host_context.h" 43 #include "remoting/host/chromoting_host_context.h"
(...skipping 930 matching lines...) Expand 10 before | Expand all | Expand 10 after
973 LOG(ERROR) << "The host domain does not match the policy."; 974 LOG(ERROR) << "The host domain does not match the policy.";
974 ShutdownHost(kInvalidHostDomainExitCode); 975 ShutdownHost(kInvalidHostDomainExitCode);
975 } 976 }
976 } 977 }
977 } 978 }
978 979
979 bool HostProcess::OnHostDomainPolicyUpdate(base::DictionaryValue* policies) { 980 bool HostProcess::OnHostDomainPolicyUpdate(base::DictionaryValue* policies) {
980 // Returns true if the host has to be restarted after this policy update. 981 // Returns true if the host has to be restarted after this policy update.
981 DCHECK(context_->network_task_runner()->BelongsToCurrentThread()); 982 DCHECK(context_->network_task_runner()->BelongsToCurrentThread());
982 983
983 if (!policies->GetString(policy_hack::PolicyWatcher::kHostDomainPolicyName, 984 if (!policies->GetString(policy::key::kRemoteAccessHostDomain,
984 &host_domain_)) { 985 &host_domain_)) {
985 return false; 986 return false;
986 } 987 }
987 988
988 ApplyHostDomainPolicy(); 989 ApplyHostDomainPolicy();
989 return false; 990 return false;
990 } 991 }
991 992
992 void HostProcess::ApplyUsernamePolicy() { 993 void HostProcess::ApplyUsernamePolicy() {
993 if (host_username_match_required_) { 994 if (host_username_match_required_) {
994 HOST_LOG << "Policy requires host username match."; 995 HOST_LOG << "Policy requires host username match.";
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1029 } 1030 }
1030 } else { 1031 } else {
1031 HOST_LOG << "Policy does not require host username match."; 1032 HOST_LOG << "Policy does not require host username match.";
1032 } 1033 }
1033 } 1034 }
1034 1035
1035 bool HostProcess::OnUsernamePolicyUpdate(base::DictionaryValue* policies) { 1036 bool HostProcess::OnUsernamePolicyUpdate(base::DictionaryValue* policies) {
1036 // Returns false: never restart the host after this policy update. 1037 // Returns false: never restart the host after this policy update.
1037 DCHECK(context_->network_task_runner()->BelongsToCurrentThread()); 1038 DCHECK(context_->network_task_runner()->BelongsToCurrentThread());
1038 1039
1039 if (!policies->GetBoolean( 1040 if (!policies->GetBoolean(policy::key::kRemoteAccessHostMatchUsername,
1040 policy_hack::PolicyWatcher::kHostMatchUsernamePolicyName, 1041 &host_username_match_required_)) {
1041 &host_username_match_required_)) {
1042 return false; 1042 return false;
1043 } 1043 }
1044 1044
1045 ApplyUsernamePolicy(); 1045 ApplyUsernamePolicy();
1046 return false; 1046 return false;
1047 } 1047 }
1048 1048
1049 bool HostProcess::OnNatPolicyUpdate(base::DictionaryValue* policies) { 1049 bool HostProcess::OnNatPolicyUpdate(base::DictionaryValue* policies) {
1050 // Returns true if the host has to be restarted after this policy update. 1050 // Returns true if the host has to be restarted after this policy update.
1051 DCHECK(context_->network_task_runner()->BelongsToCurrentThread()); 1051 DCHECK(context_->network_task_runner()->BelongsToCurrentThread());
1052 1052
1053 if (!policies->GetBoolean(policy_hack::PolicyWatcher::kNatPolicyName, 1053 if (!policies->GetBoolean(policy::key::kRemoteAccessHostFirewallTraversal,
1054 &allow_nat_traversal_)) { 1054 &allow_nat_traversal_)) {
1055 return false; 1055 return false;
1056 } 1056 }
1057 1057
1058 if (allow_nat_traversal_) { 1058 if (allow_nat_traversal_) {
1059 HOST_LOG << "Policy enables NAT traversal."; 1059 HOST_LOG << "Policy enables NAT traversal.";
1060 } else { 1060 } else {
1061 HOST_LOG << "Policy disables NAT traversal."; 1061 HOST_LOG << "Policy disables NAT traversal.";
1062 } 1062 }
1063 return true; 1063 return true;
1064 } 1064 }
1065 1065
1066 bool HostProcess::OnRelayPolicyUpdate(base::DictionaryValue* policies) { 1066 bool HostProcess::OnRelayPolicyUpdate(base::DictionaryValue* policies) {
1067 // Returns true if the host has to be restarted after this policy update. 1067 // Returns true if the host has to be restarted after this policy update.
1068 DCHECK(context_->network_task_runner()->BelongsToCurrentThread()); 1068 DCHECK(context_->network_task_runner()->BelongsToCurrentThread());
1069 1069
1070 if (!policies->GetBoolean(policy_hack::PolicyWatcher::kRelayPolicyName, 1070 if (!policies->GetBoolean(
1071 &allow_relay_)) { 1071 policy::key::kRemoteAccessHostAllowRelayedConnection,
1072 &allow_relay_)) {
1072 return false; 1073 return false;
1073 } 1074 }
1074 1075
1075 if (allow_relay_) { 1076 if (allow_relay_) {
1076 HOST_LOG << "Policy enables use of relay server."; 1077 HOST_LOG << "Policy enables use of relay server.";
1077 } else { 1078 } else {
1078 HOST_LOG << "Policy disables use of relay server."; 1079 HOST_LOG << "Policy disables use of relay server.";
1079 } 1080 }
1080 return true; 1081 return true;
1081 } 1082 }
1082 1083
1083 bool HostProcess::OnUdpPortPolicyUpdate(base::DictionaryValue* policies) { 1084 bool HostProcess::OnUdpPortPolicyUpdate(base::DictionaryValue* policies) {
1084 // Returns true if the host has to be restarted after this policy update. 1085 // Returns true if the host has to be restarted after this policy update.
1085 DCHECK(context_->network_task_runner()->BelongsToCurrentThread()); 1086 DCHECK(context_->network_task_runner()->BelongsToCurrentThread());
1086 1087
1087 std::string udp_port_range; 1088 std::string udp_port_range;
1088 if (!policies->GetString(policy_hack::PolicyWatcher::kUdpPortRangePolicyName, 1089 if (!policies->GetString(policy::key::kRemoteAccessHostUdpPortRange,
1089 &udp_port_range)) { 1090 &udp_port_range)) {
1090 return false; 1091 return false;
1091 } 1092 }
1092 1093
1093 // Use default values if policy setting is empty or invalid. 1094 // Use default values if policy setting is empty or invalid.
1094 uint16 min_udp_port = 0; 1095 uint16 min_udp_port = 0;
1095 uint16 max_udp_port = 0; 1096 uint16 max_udp_port = 0;
1096 if (!udp_port_range.empty() && 1097 if (!udp_port_range.empty() &&
1097 !NetworkSettings::ParsePortRange(udp_port_range, &min_udp_port, 1098 !NetworkSettings::ParsePortRange(udp_port_range, &min_udp_port,
1098 &max_udp_port)) { 1099 &max_udp_port)) {
(...skipping 12 matching lines...) Expand all
1111 max_udp_port_ = max_udp_port; 1112 max_udp_port_ = max_udp_port;
1112 return true; 1113 return true;
1113 } 1114 }
1114 return false; 1115 return false;
1115 } 1116 }
1116 1117
1117 bool HostProcess::OnCurtainPolicyUpdate(base::DictionaryValue* policies) { 1118 bool HostProcess::OnCurtainPolicyUpdate(base::DictionaryValue* policies) {
1118 // Returns true if the host has to be restarted after this policy update. 1119 // Returns true if the host has to be restarted after this policy update.
1119 DCHECK(context_->network_task_runner()->BelongsToCurrentThread()); 1120 DCHECK(context_->network_task_runner()->BelongsToCurrentThread());
1120 1121
1121 if (!policies->GetBoolean( 1122 if (!policies->GetBoolean(policy::key::kRemoteAccessHostRequireCurtain,
1122 policy_hack::PolicyWatcher::kHostRequireCurtainPolicyName, 1123 &curtain_required_)) {
1123 &curtain_required_)) {
1124 return false; 1124 return false;
1125 } 1125 }
1126 1126
1127 #if defined(OS_MACOSX) 1127 #if defined(OS_MACOSX)
1128 if (curtain_required_) { 1128 if (curtain_required_) {
1129 // When curtain mode is in effect on Mac, the host process runs in the 1129 // When curtain mode is in effect on Mac, the host process runs in the
1130 // user's switched-out session, but launchd will also run an instance at 1130 // user's switched-out session, but launchd will also run an instance at
1131 // the console login screen. Even if no user is currently logged-on, we 1131 // the console login screen. Even if no user is currently logged-on, we
1132 // can't support remote-access to the login screen because the current host 1132 // can't support remote-access to the login screen because the current host
1133 // process model disconnects the client during login, which would leave 1133 // process model disconnects the client during login, which would leave
(...skipping 19 matching lines...) Expand all
1153 if (host_) 1153 if (host_)
1154 host_->SetEnableCurtaining(curtain_required_); 1154 host_->SetEnableCurtaining(curtain_required_);
1155 return false; 1155 return false;
1156 } 1156 }
1157 1157
1158 bool HostProcess::OnHostTalkGadgetPrefixPolicyUpdate( 1158 bool HostProcess::OnHostTalkGadgetPrefixPolicyUpdate(
1159 base::DictionaryValue* policies) { 1159 base::DictionaryValue* policies) {
1160 // Returns true if the host has to be restarted after this policy update. 1160 // Returns true if the host has to be restarted after this policy update.
1161 DCHECK(context_->network_task_runner()->BelongsToCurrentThread()); 1161 DCHECK(context_->network_task_runner()->BelongsToCurrentThread());
1162 1162
1163 if (!policies->GetString( 1163 if (!policies->GetString(policy::key::kRemoteAccessHostTalkGadgetPrefix,
1164 policy_hack::PolicyWatcher::kHostTalkGadgetPrefixPolicyName, 1164 &talkgadget_prefix_)) {
1165 &talkgadget_prefix_)) {
1166 return false; 1165 return false;
1167 } 1166 }
1168 1167
1169 HOST_LOG << "Policy sets talkgadget prefix: " << talkgadget_prefix_; 1168 HOST_LOG << "Policy sets talkgadget prefix: " << talkgadget_prefix_;
1170 return true; 1169 return true;
1171 } 1170 }
1172 1171
1173 bool HostProcess::OnHostTokenUrlPolicyUpdate(base::DictionaryValue* policies) { 1172 bool HostProcess::OnHostTokenUrlPolicyUpdate(base::DictionaryValue* policies) {
1174 // Returns true if the host has to be restarted after this policy update. 1173 // Returns true if the host has to be restarted after this policy update.
1175 DCHECK(context_->network_task_runner()->BelongsToCurrentThread()); 1174 DCHECK(context_->network_task_runner()->BelongsToCurrentThread());
1176 1175
1177 bool token_policy_changed = false; 1176 bool token_policy_changed = false;
1178 std::string token_url_string; 1177 std::string token_url_string;
1179 if (policies->GetString( 1178 if (policies->GetString(policy::key::kRemoteAccessHostTokenUrl,
1180 policy_hack::PolicyWatcher::kHostTokenUrlPolicyName, 1179 &token_url_string)) {
1181 &token_url_string)) {
1182 token_policy_changed = true; 1180 token_policy_changed = true;
1183 third_party_auth_config_.token_url = GURL(token_url_string); 1181 third_party_auth_config_.token_url = GURL(token_url_string);
1184 } 1182 }
1185 std::string token_validation_url_string; 1183 std::string token_validation_url_string;
1186 if (policies->GetString( 1184 if (policies->GetString(policy::key::kRemoteAccessHostTokenValidationUrl,
1187 policy_hack::PolicyWatcher::kHostTokenValidationUrlPolicyName, 1185 &token_validation_url_string)) {
1188 &token_validation_url_string)) {
1189 token_policy_changed = true; 1186 token_policy_changed = true;
1190 third_party_auth_config_.token_validation_url = 1187 third_party_auth_config_.token_validation_url =
1191 GURL(token_validation_url_string); 1188 GURL(token_validation_url_string);
1192 } 1189 }
1193 if (policies->GetString( 1190 if (policies->GetString(
1194 policy_hack::PolicyWatcher::kHostTokenValidationCertIssuerPolicyName, 1191 policy::key::kRemoteAccessHostTokenValidationCertificateIssuer,
1195 &third_party_auth_config_.token_validation_cert_issuer)) { 1192 &third_party_auth_config_.token_validation_cert_issuer)) {
1196 token_policy_changed = true; 1193 token_policy_changed = true;
1197 } 1194 }
1198 1195
1199 if (token_policy_changed) { 1196 if (token_policy_changed) {
1200 HOST_LOG << "Policy sets third-party token URLs: " 1197 HOST_LOG << "Policy sets third-party token URLs: "
1201 << "TokenUrl: " 1198 << "TokenUrl: "
1202 << third_party_auth_config_.token_url << ", " 1199 << third_party_auth_config_.token_url << ", "
1203 << "TokenValidationUrl: " 1200 << "TokenValidationUrl: "
1204 << third_party_auth_config_.token_validation_url << ", " 1201 << third_party_auth_config_.token_validation_url << ", "
1205 << "TokenValidationCertificateIssuer: " 1202 << "TokenValidationCertificateIssuer: "
1206 << third_party_auth_config_.token_validation_cert_issuer; 1203 << third_party_auth_config_.token_validation_cert_issuer;
1207 } 1204 }
1208 return token_policy_changed; 1205 return token_policy_changed;
1209 } 1206 }
1210 1207
1211 bool HostProcess::OnPairingPolicyUpdate(base::DictionaryValue* policies) { 1208 bool HostProcess::OnPairingPolicyUpdate(base::DictionaryValue* policies) {
1212 DCHECK(context_->network_task_runner()->BelongsToCurrentThread()); 1209 DCHECK(context_->network_task_runner()->BelongsToCurrentThread());
1213 1210
1214 if (!policies->GetBoolean( 1211 if (!policies->GetBoolean(policy::key::kRemoteAccessHostAllowClientPairing,
1215 policy_hack::PolicyWatcher::kHostAllowClientPairing, 1212 &allow_pairing_)) {
1216 &allow_pairing_)) {
1217 return false; 1213 return false;
1218 } 1214 }
1219 1215
1220 if (allow_pairing_) { 1216 if (allow_pairing_) {
1221 HOST_LOG << "Policy enables client pairing."; 1217 HOST_LOG << "Policy enables client pairing.";
1222 } else { 1218 } else {
1223 HOST_LOG << "Policy disables client pairing."; 1219 HOST_LOG << "Policy disables client pairing.";
1224 } 1220 }
1225 return true; 1221 return true;
1226 } 1222 }
1227 1223
1228 bool HostProcess::OnGnubbyAuthPolicyUpdate(base::DictionaryValue* policies) { 1224 bool HostProcess::OnGnubbyAuthPolicyUpdate(base::DictionaryValue* policies) {
1229 DCHECK(context_->network_task_runner()->BelongsToCurrentThread()); 1225 DCHECK(context_->network_task_runner()->BelongsToCurrentThread());
1230 1226
1231 if (!policies->GetBoolean( 1227 if (!policies->GetBoolean(policy::key::kRemoteAccessHostAllowGnubbyAuth,
1232 policy_hack::PolicyWatcher::kHostAllowGnubbyAuthPolicyName, 1228 &enable_gnubby_auth_)) {
1233 &enable_gnubby_auth_)) {
1234 return false; 1229 return false;
1235 } 1230 }
1236 1231
1237 if (enable_gnubby_auth_) { 1232 if (enable_gnubby_auth_) {
1238 HOST_LOG << "Policy enables gnubby auth."; 1233 HOST_LOG << "Policy enables gnubby auth.";
1239 } else { 1234 } else {
1240 HOST_LOG << "Policy disables gnubby auth."; 1235 HOST_LOG << "Policy disables gnubby auth.";
1241 } 1236 }
1242 1237
1243 if (desktop_environment_factory_) 1238 if (desktop_environment_factory_)
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
1503 base::TimeDelta::FromSeconds(kShutdownTimeoutSeconds)); 1498 base::TimeDelta::FromSeconds(kShutdownTimeoutSeconds));
1504 new HostProcess(context.Pass(), &exit_code, &shutdown_watchdog); 1499 new HostProcess(context.Pass(), &exit_code, &shutdown_watchdog);
1505 1500
1506 // Run the main (also UI) message loop until the host no longer needs it. 1501 // Run the main (also UI) message loop until the host no longer needs it.
1507 message_loop.Run(); 1502 message_loop.Run();
1508 1503
1509 return exit_code; 1504 return exit_code;
1510 } 1505 }
1511 1506
1512 } // namespace remoting 1507 } // namespace remoting
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698