| 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 0fa4397bb021f6f7378eed21b2edf72a120f30d8..33b5c237da383a7b6c70e6f96387561310c76036 100644
|
| --- a/remoting/client/jni/chromoting_jni_instance.cc
|
| +++ b/remoting/client/jni/chromoting_jni_instance.cc
|
| @@ -50,14 +50,7 @@ void ChromotingJniInstance::Cleanup() {
|
| host_pubkey_ = "";
|
|
|
| // |client_| must be torn down before |signaling_|.
|
| - pin_callback_.Reset();
|
| client_.reset();
|
| - connection_.reset();
|
| - client_context_.reset();
|
| - client_config_.reset();
|
| - signaling_.reset();
|
| - signaling_config_.reset();
|
| - network_settings_.reset();
|
| }
|
|
|
| void ChromotingJniInstance::ProvideSecret(const char* pin) {
|
| @@ -71,6 +64,19 @@ void ChromotingJniInstance::ProvideSecret(const char* pin) {
|
| base::Bind(pin_callback_, pin));
|
| }
|
|
|
| +void ChromotingJniInstance::RedrawGraphics() {
|
| + if (!ChromotingJni::GetInstance()->
|
| + display_task_runner()->BelongsToCurrentThread()) {
|
| + ChromotingJni::GetInstance()->display_task_runner()->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&ChromotingJniInstance::RedrawGraphics,
|
| + this));
|
| + return;
|
| + }
|
| +
|
| + ChromotingJni::GetInstance()->RedrawCanvas();
|
| +}
|
| +
|
| void ChromotingJniInstance::OnConnectionState(
|
| protocol::ConnectionToHost::State state,
|
| protocol::ErrorCode error) {
|
| @@ -120,11 +126,10 @@ void ChromotingJniInstance::ConnectToHostOnDisplayThread() {
|
| DCHECK(ChromotingJni::GetInstance()->
|
| display_task_runner()->BelongsToCurrentThread());
|
|
|
| - if (!frame_consumer_.get()) {
|
| - frame_consumer_ = new FrameConsumerProxy(
|
| - ChromotingJni::GetInstance()->display_task_runner());
|
| - // TODO(solb) Instantiate some FrameConsumer implementation and attach it.
|
| - }
|
| + frame_consumer_ = new FrameConsumerProxy(
|
| + ChromotingJni::GetInstance()->display_task_runner());
|
| + view_.reset(new FrameConsumerImpl());
|
| + frame_consumer_->Attach(view_->AsWeakPtr());
|
|
|
| ChromotingJni::GetInstance()->network_task_runner()->PostTask(
|
| FROM_HERE,
|
| @@ -164,6 +169,8 @@ void ChromotingJniInstance::ConnectToHostOnNetworkThread() {
|
| frame_consumer_,
|
| scoped_ptr<AudioPlayer>()));
|
|
|
| + view_->set_frame_producer(client_->GetFrameProducer());
|
| +
|
| signaling_config_.reset(new XmppSignalStrategy::XmppServerConfig());
|
| signaling_config_->host = CHAT_SERVER;
|
| signaling_config_->port = CHAT_PORT;
|
|
|