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 |