Chromium Code Reviews| Index: remoting/host/it2me/it2me_native_messaging_host.cc |
| diff --git a/remoting/host/it2me/it2me_native_messaging_host.cc b/remoting/host/it2me/it2me_native_messaging_host.cc |
| index 9580d3d555249d70943723bdbeb25d8f6098a31c..e1079ca4b39d063d77e2d5f4e61cdbfda3fdeebb 100644 |
| --- a/remoting/host/it2me/it2me_native_messaging_host.cc |
| +++ b/remoting/host/it2me/it2me_native_messaging_host.cc |
| @@ -83,15 +83,13 @@ void OnPolicyError() { |
| It2MeNativeMessagingHost::It2MeNativeMessagingHost( |
| bool needs_elevation, |
| - policy::PolicyService* policy_service, |
| + std::unique_ptr<PolicyWatcher> policy_watcher, |
| std::unique_ptr<ChromotingHostContext> context, |
| std::unique_ptr<It2MeHostFactory> factory) |
| : needs_elevation_(needs_elevation), |
| host_context_(std::move(context)), |
| factory_(std::move(factory)), |
| - policy_service_(policy_service), |
| - policy_watcher_(PolicyWatcher::Create(policy_service_, |
| - host_context_->file_task_runner())), |
| + policy_watcher_(std::move(policy_watcher)), |
| weak_factory_(this) { |
| weak_ptr_ = weak_factory_.GetWeakPtr(); |
| @@ -317,9 +315,10 @@ void It2MeNativeMessagingHost::ProcessConnect( |
| #endif // !defined(NDEBUG) |
| // Create the It2Me host and start connecting. |
| - it2me_host_ = factory_->CreateIt2MeHost( |
| - host_context_->Copy(), policy_service_, weak_ptr_, |
| - std::move(signal_strategy), username, directory_bot_jid); |
| + it2me_host_ = factory_->CreateIt2MeHost(host_context_->Copy(), weak_ptr_, |
| + std::move(signal_strategy), username, |
| + directory_bot_jid); |
| + it2me_host_->OnPolicyUpdate(policy_watcher_->GetCurrentPolicies()); |
| it2me_host_->Connect(); |
| SendMessageToClient(std::move(response)); |
| @@ -469,30 +468,33 @@ std::string It2MeNativeMessagingHost::HostStateToString( |
| void It2MeNativeMessagingHost::OnPolicyUpdate( |
| std::unique_ptr<base::DictionaryValue> policies) { |
| - if (policy_received_) { |
| - // Don't dynamically change how the host operates since we don't have a good |
| - // way to communicate changes to the user. |
| - return; |
| - } |
| - |
| - bool allow_elevated_host = false; |
| - if (!policies->GetBoolean( |
| - policy::key::kRemoteAccessHostAllowUiAccessForRemoteAssistance, |
| - &allow_elevated_host)) { |
| - LOG(WARNING) << "Failed to retrieve elevated host policy value."; |
| - } |
| + // Don't dynamically change the elevation status since we don't have a good |
| + // way to communicate changes to the user. |
| + if (!policy_received_) { |
| + bool allow_elevated_host = false; |
| + if (!policies->GetBoolean( |
| + policy::key::kRemoteAccessHostAllowUiAccessForRemoteAssistance, |
| + &allow_elevated_host)) { |
| + LOG(WARNING) << "Failed to retrieve elevated host policy value."; |
| + } |
| #if defined(OS_WIN) |
| - LOG(INFO) << "Allow UiAccess for Remote Assistance: " << allow_elevated_host; |
| + LOG(INFO) << "Allow UiAccess for Remote Assistance: " |
| + << allow_elevated_host; |
| #endif // defined(OS_WIN) |
| - policy_received_ = true; |
| + policy_received_ = true; |
| - // If |allow_elevated_host| is false, then we will fall back to using a host |
| - // running in the current context regardless of the elevation request. This |
| - // may not be ideal, but is still functional. |
| - needs_elevation_ = needs_elevation_ && allow_elevated_host; |
| - if (!pending_connect_.is_null()) { |
| - base::ResetAndReturn(&pending_connect_).Run(); |
| + // If |allow_elevated_host| is false, then we will fall back to using a host |
| + // running in the current context regardless of the elevation request. This |
| + // may not be ideal, but is still functional. |
| + needs_elevation_ = needs_elevation_ && allow_elevated_host; |
| + if (!pending_connect_.is_null()) { |
|
joedow
2017/05/05 14:42:15
nit: the style for this has changed, the preferred
Jamie
2017/05/05 16:49:05
Done, here and above.
|
| + base::ResetAndReturn(&pending_connect_).Run(); |
| + } |
| + } |
| + |
| + if (it2me_host_.get()) { |
| + it2me_host_->OnPolicyUpdate(std::move(policies)); |
| } |
| } |