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 |