Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "remoting/host/it2me/it2me_native_messaging_host.h" | 5 #include "remoting/host/it2me/it2me_native_messaging_host.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 47 factory_(factory.Pass()), | 47 factory_(factory.Pass()), |
| 48 weak_factory_(this) { | 48 weak_factory_(this) { |
| 49 weak_ptr_ = weak_factory_.GetWeakPtr(); | 49 weak_ptr_ = weak_factory_.GetWeakPtr(); |
| 50 | 50 |
| 51 // Initialize the host context to manage the threads for the it2me host. | 51 // Initialize the host context to manage the threads for the it2me host. |
| 52 // The native messaging host, rather than the It2MeHost object, owns and | 52 // The native messaging host, rather than the It2MeHost object, owns and |
| 53 // maintains the lifetime of the host context. | 53 // maintains the lifetime of the host context. |
| 54 | 54 |
| 55 host_context_.reset(ChromotingHostContext::Create(task_runner).release()); | 55 host_context_.reset(ChromotingHostContext::Create(task_runner).release()); |
| 56 | 56 |
| 57 ServiceUrls* service_urls = ServiceUrls::GetInstance(); | 57 const ServiceUrls* const service_urls = ServiceUrls::GetInstance(); |
|
nadav
2014/02/19 16:21:53
That's probably too many consts.
Unless you really
weitao
2014/02/19 17:52:18
Done.
| |
| 58 bool xmpp_server_valid = | 58 const bool xmpp_server_valid = |
| 59 net::ParseHostAndPort(service_urls->xmpp_server_address(), | 59 net::ParseHostAndPort(service_urls->xmpp_server_address(), |
| 60 &xmpp_server_config_.host, | 60 &xmpp_server_config_.host, |
| 61 &xmpp_server_config_.port); | 61 &xmpp_server_config_.port); |
| 62 DCHECK(xmpp_server_valid); | 62 DCHECK(xmpp_server_valid); |
| 63 | 63 |
| 64 xmpp_server_config_.use_tls = service_urls->xmpp_server_use_tls(); | 64 xmpp_server_config_.use_tls = service_urls->xmpp_server_use_tls(); |
| 65 directory_bot_jid_ = service_urls->directory_bot_jid(); | 65 directory_bot_jid_ = service_urls->directory_bot_jid(); |
| 66 } | 66 } |
| 67 | 67 |
| 68 It2MeNativeMessagingHost::~It2MeNativeMessagingHost() { | 68 It2MeNativeMessagingHost::~It2MeNativeMessagingHost() { |
| 69 DCHECK(task_runner()->BelongsToCurrentThread()); | 69 DCHECK(task_runner()->BelongsToCurrentThread()); |
| 70 | 70 |
| 71 if (it2me_host_.get()) { | 71 if (it2me_host_.get()) { |
| 72 it2me_host_->Disconnect(); | 72 it2me_host_->Disconnect(); |
| 73 it2me_host_ = NULL; | 73 it2me_host_ = NULL; |
| 74 } | 74 } |
| 75 } | 75 } |
| 76 | 76 |
| 77 void It2MeNativeMessagingHost::Start(const base::Closure& quit_closure) { | 77 void It2MeNativeMessagingHost::Start(const base::Closure& quit_closure) const { |
| 78 DCHECK(task_runner()->BelongsToCurrentThread()); | 78 DCHECK(task_runner()->BelongsToCurrentThread()); |
| 79 | 79 |
| 80 channel_->Start( | 80 channel_->Start( |
| 81 base::Bind(&It2MeNativeMessagingHost::ProcessMessage, weak_ptr_), | 81 base::Bind(&It2MeNativeMessagingHost::ProcessMessage, weak_ptr_), |
| 82 quit_closure); | 82 quit_closure); |
| 83 } | 83 } |
| 84 | 84 |
| 85 void It2MeNativeMessagingHost::ProcessMessage( | 85 void It2MeNativeMessagingHost::ProcessMessage( |
| 86 scoped_ptr<base::DictionaryValue> message) { | 86 scoped_ptr<base::DictionaryValue> message) { |
| 87 DCHECK(task_runner()->BelongsToCurrentThread()); | 87 DCHECK(task_runner()->BelongsToCurrentThread()); |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 108 ProcessConnect(*message, response.Pass()); | 108 ProcessConnect(*message, response.Pass()); |
| 109 } else if (type == "disconnect") { | 109 } else if (type == "disconnect") { |
| 110 ProcessDisconnect(*message, response.Pass()); | 110 ProcessDisconnect(*message, response.Pass()); |
| 111 } else { | 111 } else { |
| 112 SendErrorAndExit(response.Pass(), "Unsupported request type: " + type); | 112 SendErrorAndExit(response.Pass(), "Unsupported request type: " + type); |
| 113 } | 113 } |
| 114 } | 114 } |
| 115 | 115 |
| 116 void It2MeNativeMessagingHost::ProcessHello( | 116 void It2MeNativeMessagingHost::ProcessHello( |
| 117 const base::DictionaryValue& message, | 117 const base::DictionaryValue& message, |
| 118 scoped_ptr<base::DictionaryValue> response) { | 118 scoped_ptr<base::DictionaryValue> response) const { |
| 119 DCHECK(task_runner()->BelongsToCurrentThread()); | 119 DCHECK(task_runner()->BelongsToCurrentThread()); |
| 120 | 120 |
| 121 response->SetString("version", STRINGIZE(VERSION)); | 121 response->SetString("version", STRINGIZE(VERSION)); |
| 122 | 122 |
| 123 // This list will be populated when new features are added. | 123 // This list will be populated when new features are added. |
| 124 scoped_ptr<base::ListValue> supported_features_list(new base::ListValue()); | 124 scoped_ptr<base::ListValue> supported_features_list(new base::ListValue()); |
| 125 response->Set("supportedFeatures", supported_features_list.release()); | 125 response->Set("supportedFeatures", supported_features_list.release()); |
| 126 | 126 |
| 127 channel_->SendMessage(response.Pass()); | 127 channel_->SendMessage(response.Pass()); |
| 128 } | 128 } |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 208 | 208 |
| 209 if (it2me_host_.get()) { | 209 if (it2me_host_.get()) { |
| 210 it2me_host_->Disconnect(); | 210 it2me_host_->Disconnect(); |
| 211 it2me_host_ = NULL; | 211 it2me_host_ = NULL; |
| 212 } | 212 } |
| 213 channel_->SendMessage(response.Pass()); | 213 channel_->SendMessage(response.Pass()); |
| 214 } | 214 } |
| 215 | 215 |
| 216 void It2MeNativeMessagingHost::SendErrorAndExit( | 216 void It2MeNativeMessagingHost::SendErrorAndExit( |
| 217 scoped_ptr<base::DictionaryValue> response, | 217 scoped_ptr<base::DictionaryValue> response, |
| 218 const std::string& description) { | 218 const std::string& description) const { |
| 219 DCHECK(task_runner()->BelongsToCurrentThread()); | 219 DCHECK(task_runner()->BelongsToCurrentThread()); |
| 220 | 220 |
| 221 LOG(ERROR) << description; | 221 LOG(ERROR) << description; |
| 222 | 222 |
| 223 response->SetString("type", "error"); | 223 response->SetString("type", "error"); |
| 224 response->SetString("description", description); | 224 response->SetString("description", description); |
| 225 channel_->SendMessage(response.Pass()); | 225 channel_->SendMessage(response.Pass()); |
| 226 | 226 |
| 227 // Trigger a host shutdown by sending a NULL message. | 227 // Trigger a host shutdown by sending a NULL message. |
| 228 channel_->SendMessage(scoped_ptr<base::DictionaryValue>()); | 228 channel_->SendMessage(scoped_ptr<base::DictionaryValue>()); |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 282 } | 282 } |
| 283 | 283 |
| 284 // Stores the client user's name for the web-app to query. | 284 // Stores the client user's name for the web-app to query. |
| 285 void It2MeNativeMessagingHost::OnClientAuthenticated( | 285 void It2MeNativeMessagingHost::OnClientAuthenticated( |
| 286 const std::string& client_username) { | 286 const std::string& client_username) { |
| 287 DCHECK(task_runner()->BelongsToCurrentThread()); | 287 DCHECK(task_runner()->BelongsToCurrentThread()); |
| 288 | 288 |
| 289 client_username_ = client_username; | 289 client_username_ = client_username; |
| 290 } | 290 } |
| 291 | 291 |
| 292 scoped_refptr<AutoThreadTaskRunner> It2MeNativeMessagingHost::task_runner() { | 292 scoped_refptr<AutoThreadTaskRunner> |
| 293 It2MeNativeMessagingHost::task_runner() const { | |
| 293 return host_context_->ui_task_runner(); | 294 return host_context_->ui_task_runner(); |
| 294 } | 295 } |
| 295 | 296 |
| 296 /* static */ | 297 /* static */ |
| 297 std::string It2MeNativeMessagingHost::HostStateToString( | 298 std::string It2MeNativeMessagingHost::HostStateToString( |
| 298 It2MeHostState host_state) { | 299 It2MeHostState host_state) { |
| 299 return ValueToName(kIt2MeHostStates, host_state); | 300 return ValueToName(kIt2MeHostStates, host_state); |
| 300 } | 301 } |
| 301 | 302 |
| 302 } // namespace remoting | 303 } // namespace remoting |
| 304 | |
| OLD | NEW |