| Index: remoting/client/plugin/chromoting_instance.cc | 
| diff --git a/remoting/client/plugin/chromoting_instance.cc b/remoting/client/plugin/chromoting_instance.cc | 
| index 90db58344b3f2324574d56baa893dca5d9181a33..9a961d928e9dc2c2ed69f65797ae07430f4dc8d6 100644 | 
| --- a/remoting/client/plugin/chromoting_instance.cc | 
| +++ b/remoting/client/plugin/chromoting_instance.cc | 
| @@ -658,9 +658,12 @@ void ChromotingInstance::HandleConnect(const base::DictionaryValue& data) { | 
| if (!plugin_view_.is_null()) | 
| video_renderer_->OnViewChanged(plugin_view_); | 
|  | 
| -  client_.reset( | 
| -      new ChromotingClient(&context_, this, video_renderer_.get(), | 
| -                           base::WrapUnique(new PepperAudioPlayer(this)))); | 
| +  if (!audio_player_) { | 
| +    audio_player_.reset(new PepperAudioPlayer(this)); | 
| +  } | 
| + | 
| +  client_.reset(new ChromotingClient(&context_, this, video_renderer_.get(), | 
| +                                     audio_player_->GetWeakPtr())); | 
|  | 
| // Setup the signal strategy. | 
| signal_strategy_.reset(new DelegatingSignalStrategy( | 
| @@ -973,6 +976,7 @@ void ChromotingInstance::Disconnect() { | 
| mouse_input_filter_.set_input_stub(nullptr); | 
| client_.reset(); | 
| video_renderer_.reset(); | 
| +  audio_player_.reset(); | 
| stats_update_timer_.Stop(); | 
| } | 
|  | 
| @@ -1058,7 +1062,7 @@ bool ChromotingInstance::LogToUI(int severity, const char* file, int line, | 
| size_t message_start, | 
| const std::string& str) { | 
| PP_LogLevel log_level = PP_LOGLEVEL_ERROR; | 
| -  switch(severity) { | 
| +  switch (severity) { | 
| case logging::LOG_INFO: | 
| log_level = PP_LOGLEVEL_TIP; | 
| break; | 
|  |