| Index: remoting/client/jni/chromoting_jni_instance.cc
|
| diff --git a/remoting/client/jni/chromoting_jni_instance.cc b/remoting/client/jni/chromoting_jni_instance.cc
|
| index fcb4db332dbba13e7549317a654f05376da11889..8dc3b17928d4627e935b485da818ad0bcd866615 100644
|
| --- a/remoting/client/jni/chromoting_jni_instance.cc
|
| +++ b/remoting/client/jni/chromoting_jni_instance.cc
|
| @@ -7,7 +7,7 @@
|
| #include "base/bind.h"
|
| #include "base/logging.h"
|
| #include "remoting/client/audio_player.h"
|
| -#include "remoting/client/jni/chromoting_jni.h"
|
| +#include "remoting/client/jni/chromoting_jni_runtime.h"
|
| #include "remoting/protocol/libjingle_transport_factory.h"
|
|
|
| // TODO(solb) Move into location shared with client plugin.
|
| @@ -17,21 +17,21 @@ const bool CHAT_USE_TLS = true;
|
|
|
| namespace remoting {
|
|
|
| -ChromotingJniInstance::ChromotingJniInstance(const char* username,
|
| +ChromotingJniInstance::ChromotingJniInstance(ChromotingJniRuntime* jni_runtime,
|
| + const char* username,
|
| const char* auth_token,
|
| const char* host_jid,
|
| const char* host_id,
|
| - const char* host_pubkey) {
|
| - DCHECK(ChromotingJni::GetInstance()->
|
| - ui_task_runner()->BelongsToCurrentThread());
|
| -
|
| - username_ = username;
|
| - auth_token_ = auth_token;
|
| - host_jid_ = host_jid;
|
| - host_id_ = host_id;
|
| - host_pubkey_ = host_pubkey;
|
| -
|
| - ChromotingJni::GetInstance()->display_task_runner()->PostTask(
|
| + const char* host_pubkey)
|
| + : jni_runtime_(jni_runtime),
|
| + username_(username),
|
| + auth_token_(auth_token),
|
| + host_jid_(host_jid),
|
| + host_id_(host_id),
|
| + host_pubkey_(host_pubkey) {
|
| + DCHECK(jni_runtime_->ui_task_runner()->BelongsToCurrentThread());
|
| +
|
| + jni_runtime_->display_task_runner()->PostTask(
|
| FROM_HERE,
|
| base::Bind(&ChromotingJniInstance::ConnectToHostOnDisplayThread,
|
| this));
|
| @@ -40,9 +40,8 @@ ChromotingJniInstance::ChromotingJniInstance(const char* username,
|
| ChromotingJniInstance::~ChromotingJniInstance() {}
|
|
|
| void ChromotingJniInstance::Cleanup() {
|
| - if (!ChromotingJni::GetInstance()->
|
| - display_task_runner()->BelongsToCurrentThread()) {
|
| - ChromotingJni::GetInstance()->display_task_runner()->PostTask(
|
| + if (!jni_runtime_->display_task_runner()->BelongsToCurrentThread()) {
|
| + jni_runtime_->display_task_runner()->PostTask(
|
| FROM_HERE,
|
| base::Bind(&ChromotingJniInstance::Cleanup, this));
|
| return;
|
| @@ -54,32 +53,31 @@ void ChromotingJniInstance::Cleanup() {
|
| // The weak pointers must be invalidated on the same thread they were used.
|
| view_weak_factory_->InvalidateWeakPtrs();
|
|
|
| - ChromotingJni::GetInstance()->network_task_runner()->PostTask(FROM_HERE,
|
| + jni_runtime_->network_task_runner()->PostTask(
|
| + FROM_HERE,
|
| base::Bind(&ChromotingJniInstance::DisconnectFromHostOnNetworkThread,
|
| this));
|
| }
|
|
|
| void ChromotingJniInstance::ProvideSecret(const char* pin) {
|
| - DCHECK(ChromotingJni::GetInstance()->
|
| - ui_task_runner()->BelongsToCurrentThread());
|
| + DCHECK(jni_runtime_->ui_task_runner()->BelongsToCurrentThread());
|
| DCHECK(!pin_callback_.is_null());
|
|
|
| // We invoke the string constructor to ensure |pin| gets copied *before* the
|
| // asynchronous run, since Java might want it back as soon as we return.
|
| - ChromotingJni::GetInstance()->network_task_runner()->PostTask(FROM_HERE,
|
| - base::Bind(pin_callback_, pin));
|
| + jni_runtime_->network_task_runner()->PostTask(FROM_HERE,
|
| + base::Bind(pin_callback_, pin));
|
| }
|
|
|
| void ChromotingJniInstance::RedrawDesktop() {
|
| - if (!ChromotingJni::GetInstance()->
|
| - display_task_runner()->BelongsToCurrentThread()) {
|
| - ChromotingJni::GetInstance()->display_task_runner()->PostTask(
|
| + if (!jni_runtime_->display_task_runner()->BelongsToCurrentThread()) {
|
| + jni_runtime_->display_task_runner()->PostTask(
|
| FROM_HERE,
|
| base::Bind(&ChromotingJniInstance::RedrawDesktop, this));
|
| return;
|
| }
|
|
|
| - ChromotingJni::GetInstance()->RedrawCanvas();
|
| + jni_runtime_->RedrawCanvas();
|
| }
|
|
|
| void ChromotingJniInstance::PerformMouseAction(
|
| @@ -87,9 +85,8 @@ void ChromotingJniInstance::PerformMouseAction(
|
| int y,
|
| protocol::MouseEvent_MouseButton button,
|
| bool buttonDown) {
|
| - if(!ChromotingJni::GetInstance()->
|
| - network_task_runner()->BelongsToCurrentThread()) {
|
| - ChromotingJni::GetInstance()->network_task_runner()->PostTask(
|
| + if (!jni_runtime_->network_task_runner()->BelongsToCurrentThread()) {
|
| + jni_runtime_->network_task_runner()->PostTask(
|
| FROM_HERE,
|
| base::Bind(&ChromotingJniInstance::PerformMouseAction,
|
| this,
|
| @@ -113,10 +110,8 @@ void ChromotingJniInstance::PerformMouseAction(
|
| void ChromotingJniInstance::OnConnectionState(
|
| protocol::ConnectionToHost::State state,
|
| protocol::ErrorCode error) {
|
| - if (!ChromotingJni::GetInstance()->
|
| - ui_task_runner()->BelongsToCurrentThread()) {
|
| - ChromotingJni::GetInstance()->
|
| - ui_task_runner()->PostTask(
|
| + if (!jni_runtime_->ui_task_runner()->BelongsToCurrentThread()) {
|
| + jni_runtime_->ui_task_runner()->PostTask(
|
| FROM_HERE,
|
| base::Bind(&ChromotingJniInstance::OnConnectionState,
|
| this,
|
| @@ -125,7 +120,7 @@ void ChromotingJniInstance::OnConnectionState(
|
| return;
|
| }
|
|
|
| - ChromotingJni::GetInstance()->ReportConnectionStatus(state, error);
|
| + jni_runtime_->ReportConnectionStatus(state, error);
|
| }
|
|
|
| void ChromotingJniInstance::OnConnectionReady(bool ready) {
|
| @@ -164,25 +159,22 @@ void ChromotingJniInstance::SetCursorShape(
|
| }
|
|
|
| void ChromotingJniInstance::ConnectToHostOnDisplayThread() {
|
| - DCHECK(ChromotingJni::GetInstance()->
|
| - display_task_runner()->BelongsToCurrentThread());
|
| + DCHECK(jni_runtime_->display_task_runner()->BelongsToCurrentThread());
|
|
|
| - frame_consumer_ = new FrameConsumerProxy(
|
| - ChromotingJni::GetInstance()->display_task_runner());
|
| - view_.reset(new JniFrameConsumer());
|
| + frame_consumer_ = new FrameConsumerProxy(jni_runtime_->display_task_runner());
|
| + view_.reset(new JniFrameConsumer(jni_runtime_));
|
| view_weak_factory_.reset(new base::WeakPtrFactory<JniFrameConsumer>(
|
| view_.get()));
|
| frame_consumer_->Attach(view_weak_factory_->GetWeakPtr());
|
|
|
| - ChromotingJni::GetInstance()->network_task_runner()->PostTask(
|
| + jni_runtime_->network_task_runner()->PostTask(
|
| FROM_HERE,
|
| base::Bind(&ChromotingJniInstance::ConnectToHostOnNetworkThread,
|
| this));
|
| }
|
|
|
| void ChromotingJniInstance::ConnectToHostOnNetworkThread() {
|
| - DCHECK(ChromotingJni::GetInstance()->
|
| - network_task_runner()->BelongsToCurrentThread());
|
| + DCHECK(jni_runtime_->network_task_runner()->BelongsToCurrentThread());
|
|
|
| client_config_.reset(new ClientConfig());
|
| client_config_->host_jid = host_jid_;
|
| @@ -199,7 +191,7 @@ void ChromotingJniInstance::ConnectToHostOnNetworkThread() {
|
| protocol::AuthenticationMethod::FromString("spake2_plain"));
|
|
|
| client_context_.reset(new ClientContext(
|
| - ChromotingJni::GetInstance()->network_task_runner().get()));
|
| + jni_runtime_->network_task_runner().get()));
|
| client_context_->Start();
|
|
|
| connection_.reset(new protocol::ConnectionToHost(true));
|
| @@ -218,26 +210,24 @@ void ChromotingJniInstance::ConnectToHostOnNetworkThread() {
|
| signaling_config_->port = CHAT_PORT;
|
| signaling_config_->use_tls = CHAT_USE_TLS;
|
|
|
| - signaling_.reset(new XmppSignalStrategy(
|
| - ChromotingJni::GetInstance()->url_requester(),
|
| - username_,
|
| - auth_token_,
|
| - "oauth2",
|
| - *signaling_config_));
|
| + signaling_.reset(new XmppSignalStrategy(jni_runtime_->url_requester(),
|
| + username_,
|
| + auth_token_,
|
| + "oauth2",
|
| + *signaling_config_));
|
|
|
| network_settings_.reset(new NetworkSettings(
|
| NetworkSettings::NAT_TRAVERSAL_OUTGOING));
|
| scoped_ptr<protocol::TransportFactory> fact(
|
| protocol::LibjingleTransportFactory::Create(
|
| *network_settings_,
|
| - ChromotingJni::GetInstance()->url_requester()));
|
| + jni_runtime_->url_requester()));
|
|
|
| client_->Start(signaling_.get(), fact.Pass());
|
| }
|
|
|
| void ChromotingJniInstance::DisconnectFromHostOnNetworkThread() {
|
| - DCHECK(ChromotingJni::GetInstance()->
|
| - network_task_runner()->BelongsToCurrentThread());
|
| + DCHECK(jni_runtime_->network_task_runner()->BelongsToCurrentThread());
|
|
|
| username_ = "";
|
| auth_token_ = "";
|
| @@ -253,9 +243,8 @@ void ChromotingJniInstance::DisconnectFromHostOnNetworkThread() {
|
| void ChromotingJniInstance::FetchSecret(
|
| bool pairable,
|
| const protocol::SecretFetchedCallback& callback) {
|
| - if (!ChromotingJni::GetInstance()->
|
| - ui_task_runner()->BelongsToCurrentThread()) {
|
| - ChromotingJni::GetInstance()->ui_task_runner()->PostTask(
|
| + if (!jni_runtime_->ui_task_runner()->BelongsToCurrentThread()) {
|
| + jni_runtime_->ui_task_runner()->PostTask(
|
| FROM_HERE,
|
| base::Bind(&ChromotingJniInstance::FetchSecret,
|
| this,
|
| @@ -265,7 +254,7 @@ void ChromotingJniInstance::FetchSecret(
|
| }
|
|
|
| pin_callback_ = callback;
|
| - ChromotingJni::GetInstance()->DisplayAuthenticationPrompt();
|
| + jni_runtime_->DisplayAuthenticationPrompt();
|
| }
|
|
|
| } // namespace remoting
|
|
|