| 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/client/jni/chromoting_jni_instance.h" | 5 #include "remoting/client/jni/chromoting_jni_instance.h" |
| 6 | 6 |
| 7 #include <android/log.h> | 7 #include <android/log.h> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 28 matching lines...) Expand all Loading... |
| 39 | 39 |
| 40 } | 40 } |
| 41 | 41 |
| 42 ChromotingJniInstance::ChromotingJniInstance(ChromotingJniRuntime* jni_runtime, | 42 ChromotingJniInstance::ChromotingJniInstance(ChromotingJniRuntime* jni_runtime, |
| 43 const char* username, | 43 const char* username, |
| 44 const char* auth_token, | 44 const char* auth_token, |
| 45 const char* host_jid, | 45 const char* host_jid, |
| 46 const char* host_id, | 46 const char* host_id, |
| 47 const char* host_pubkey, | 47 const char* host_pubkey, |
| 48 const char* pairing_id, | 48 const char* pairing_id, |
| 49 const char* pairing_secret) | 49 const char* pairing_secret, |
| 50 const char* capabilities) |
| 50 : jni_runtime_(jni_runtime), | 51 : jni_runtime_(jni_runtime), |
| 51 host_id_(host_id), | 52 host_id_(host_id), |
| 52 host_jid_(host_jid), | 53 host_jid_(host_jid), |
| 53 create_pairing_(false), | 54 create_pairing_(false), |
| 54 stats_logging_enabled_(false), | 55 stats_logging_enabled_(false), |
| 56 capabilities_(capabilities), |
| 55 weak_factory_(this) { | 57 weak_factory_(this) { |
| 56 DCHECK(jni_runtime_->ui_task_runner()->BelongsToCurrentThread()); | 58 DCHECK(jni_runtime_->ui_task_runner()->BelongsToCurrentThread()); |
| 57 | 59 |
| 58 // Intialize XMPP config. | 60 // Intialize XMPP config. |
| 59 xmpp_config_.host = kXmppServer; | 61 xmpp_config_.host = kXmppServer; |
| 60 xmpp_config_.port = kXmppPort; | 62 xmpp_config_.port = kXmppPort; |
| 61 xmpp_config_.use_tls = kXmppUseTls; | 63 xmpp_config_.use_tls = kXmppUseTls; |
| 62 xmpp_config_.username = username; | 64 xmpp_config_.username = username; |
| 63 xmpp_config_.auth_token = auth_token; | 65 xmpp_config_.auth_token = auth_token; |
| 64 xmpp_config_.auth_service = "oauth2"; | 66 xmpp_config_.auth_service = "oauth2"; |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 243 FROM_HERE, | 245 FROM_HERE, |
| 244 base::Bind(&ChromotingJniInstance::SendTextEvent, this, text)); | 246 base::Bind(&ChromotingJniInstance::SendTextEvent, this, text)); |
| 245 return; | 247 return; |
| 246 } | 248 } |
| 247 | 249 |
| 248 protocol::TextEvent event; | 250 protocol::TextEvent event; |
| 249 event.set_text(text); | 251 event.set_text(text); |
| 250 client_->input_stub()->InjectTextEvent(event); | 252 client_->input_stub()->InjectTextEvent(event); |
| 251 } | 253 } |
| 252 | 254 |
| 255 void ChromotingJniInstance::SendClientMessage(const std::string& type, |
| 256 const std::string& data) { |
| 257 if (!jni_runtime_->network_task_runner()->BelongsToCurrentThread()) { |
| 258 jni_runtime_->network_task_runner()->PostTask( |
| 259 FROM_HERE, |
| 260 base::Bind( |
| 261 &ChromotingJniInstance::SendClientMessage, this, type, data)); |
| 262 return; |
| 263 } |
| 264 |
| 265 protocol::ExtensionMessage extension_message; |
| 266 extension_message.set_type(type); |
| 267 extension_message.set_data(data); |
| 268 client_->host_stub()->DeliverClientMessage(extension_message); |
| 269 } |
| 270 |
| 253 void ChromotingJniInstance::RecordPaintTime(int64 paint_time_ms) { | 271 void ChromotingJniInstance::RecordPaintTime(int64 paint_time_ms) { |
| 254 if (!jni_runtime_->network_task_runner()->BelongsToCurrentThread()) { | 272 if (!jni_runtime_->network_task_runner()->BelongsToCurrentThread()) { |
| 255 jni_runtime_->network_task_runner()->PostTask( | 273 jni_runtime_->network_task_runner()->PostTask( |
| 256 FROM_HERE, base::Bind(&ChromotingJniInstance::RecordPaintTime, this, | 274 FROM_HERE, base::Bind(&ChromotingJniInstance::RecordPaintTime, this, |
| 257 paint_time_ms)); | 275 paint_time_ms)); |
| 258 return; | 276 return; |
| 259 } | 277 } |
| 260 | 278 |
| 261 if (stats_logging_enabled_) | 279 if (stats_logging_enabled_) |
| 262 video_renderer_->GetStats()->video_paint_ms()->Record(paint_time_ms); | 280 video_renderer_->GetStats()->video_paint_ms()->Record(paint_time_ms); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 292 | 310 |
| 293 void ChromotingJniInstance::OnRouteChanged( | 311 void ChromotingJniInstance::OnRouteChanged( |
| 294 const std::string& channel_name, | 312 const std::string& channel_name, |
| 295 const protocol::TransportRoute& route) { | 313 const protocol::TransportRoute& route) { |
| 296 std::string message = "Channel " + channel_name + " using " + | 314 std::string message = "Channel " + channel_name + " using " + |
| 297 protocol::TransportRoute::GetTypeString(route.type) + " connection."; | 315 protocol::TransportRoute::GetTypeString(route.type) + " connection."; |
| 298 __android_log_print(ANDROID_LOG_INFO, "route", "%s", message.c_str()); | 316 __android_log_print(ANDROID_LOG_INFO, "route", "%s", message.c_str()); |
| 299 } | 317 } |
| 300 | 318 |
| 301 void ChromotingJniInstance::SetCapabilities(const std::string& capabilities) { | 319 void ChromotingJniInstance::SetCapabilities(const std::string& capabilities) { |
| 302 NOTIMPLEMENTED(); | 320 jni_runtime_->ui_task_runner()->PostTask( |
| 321 FROM_HERE, |
| 322 base::Bind(&ChromotingJniRuntime::SetCapabilities, |
| 323 base::Unretained(jni_runtime_), |
| 324 capabilities)); |
| 303 } | 325 } |
| 304 | 326 |
| 305 void ChromotingJniInstance::SetPairingResponse( | 327 void ChromotingJniInstance::SetPairingResponse( |
| 306 const protocol::PairingResponse& response) { | 328 const protocol::PairingResponse& response) { |
| 307 | 329 |
| 308 jni_runtime_->ui_task_runner()->PostTask( | 330 jni_runtime_->ui_task_runner()->PostTask( |
| 309 FROM_HERE, | 331 FROM_HERE, |
| 310 base::Bind(&ChromotingJniRuntime::CommitPairingCredentials, | 332 base::Bind(&ChromotingJniRuntime::CommitPairingCredentials, |
| 311 base::Unretained(jni_runtime_), | 333 base::Unretained(jni_runtime_), |
| 312 host_id_, response.client_id(), response.shared_secret())); | 334 host_id_, response.client_id(), response.shared_secret())); |
| 313 } | 335 } |
| 314 | 336 |
| 315 void ChromotingJniInstance::DeliverHostMessage( | 337 void ChromotingJniInstance::DeliverHostMessage( |
| 316 const protocol::ExtensionMessage& message) { | 338 const protocol::ExtensionMessage& message) { |
| 317 NOTIMPLEMENTED(); | 339 jni_runtime_->ui_task_runner()->PostTask( |
| 340 FROM_HERE, |
| 341 base::Bind(&ChromotingJniRuntime::HandleExtensionMessage, |
| 342 base::Unretained(jni_runtime_), |
| 343 message.type(), |
| 344 message.data())); |
| 318 } | 345 } |
| 319 | 346 |
| 320 protocol::ClipboardStub* ChromotingJniInstance::GetClipboardStub() { | 347 protocol::ClipboardStub* ChromotingJniInstance::GetClipboardStub() { |
| 321 return this; | 348 return this; |
| 322 } | 349 } |
| 323 | 350 |
| 324 protocol::CursorShapeStub* ChromotingJniInstance::GetCursorShapeStub() { | 351 protocol::CursorShapeStub* ChromotingJniInstance::GetCursorShapeStub() { |
| 325 return this; | 352 return this; |
| 326 } | 353 } |
| 327 | 354 |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 395 protocol::ChromiumPortAllocator::Create(jni_runtime_->url_requester(), | 422 protocol::ChromiumPortAllocator::Create(jni_runtime_->url_requester(), |
| 396 network_settings)); | 423 network_settings)); |
| 397 | 424 |
| 398 scoped_ptr<protocol::TransportFactory> transport_factory( | 425 scoped_ptr<protocol::TransportFactory> transport_factory( |
| 399 new protocol::LibjingleTransportFactory( | 426 new protocol::LibjingleTransportFactory( |
| 400 signaling_.get(), | 427 signaling_.get(), |
| 401 port_allocator.PassAs<cricket::HttpPortAllocatorBase>(), | 428 port_allocator.PassAs<cricket::HttpPortAllocatorBase>(), |
| 402 network_settings)); | 429 network_settings)); |
| 403 | 430 |
| 404 client_->Start(signaling_.get(), authenticator_.Pass(), | 431 client_->Start(signaling_.get(), authenticator_.Pass(), |
| 405 transport_factory.Pass(), host_jid_, std::string()); | 432 transport_factory.Pass(), host_jid_, capabilities_); |
| 406 } | 433 } |
| 407 | 434 |
| 408 void ChromotingJniInstance::DisconnectFromHostOnNetworkThread() { | 435 void ChromotingJniInstance::DisconnectFromHostOnNetworkThread() { |
| 409 DCHECK(jni_runtime_->network_task_runner()->BelongsToCurrentThread()); | 436 DCHECK(jni_runtime_->network_task_runner()->BelongsToCurrentThread()); |
| 410 | 437 |
| 411 host_id_.clear(); | 438 host_id_.clear(); |
| 412 | 439 |
| 413 stats_logging_enabled_ = false; | 440 stats_logging_enabled_ = false; |
| 414 | 441 |
| 415 // |client_| must be torn down before |signaling_|. | 442 // |client_| must be torn down before |signaling_|. |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 495 stats->round_trip_ms()->Average()); | 522 stats->round_trip_ms()->Average()); |
| 496 | 523 |
| 497 client_status_logger_->LogStatistics(stats); | 524 client_status_logger_->LogStatistics(stats); |
| 498 | 525 |
| 499 jni_runtime_->network_task_runner()->PostDelayedTask( | 526 jni_runtime_->network_task_runner()->PostDelayedTask( |
| 500 FROM_HERE, base::Bind(&ChromotingJniInstance::LogPerfStats, this), | 527 FROM_HERE, base::Bind(&ChromotingJniInstance::LogPerfStats, this), |
| 501 base::TimeDelta::FromMilliseconds(kPerfStatsIntervalMs)); | 528 base::TimeDelta::FromMilliseconds(kPerfStatsIntervalMs)); |
| 502 } | 529 } |
| 503 | 530 |
| 504 } // namespace remoting | 531 } // namespace remoting |
| OLD | NEW |