Bug Fix: Notify media element remoting ended when player is destroyed.

When WebMediaPlayer is destroyed while remoting, it should notify the
HTMLMediaElement that remoting was ended and the remoting UI should be
hidden.

Bug: 747632
Change-Id: Ie1e8189403e496c187a55c860f3e54b6bd1d9ab7
Reviewed-on: https://chromium-review.googlesource.com/581950
Commit-Queue: Xiangjun Zhang <[email protected]>
Reviewed-by: Yuri Wiitala <[email protected]>
Cr-Commit-Position: refs/heads/master@{#489084}
diff --git a/media/remoting/renderer_controller.cc b/media/remoting/renderer_controller.cc
index 50b1f1f2..f9a79e5 100644
--- a/media/remoting/renderer_controller.cc
+++ b/media/remoting/renderer_controller.cc
@@ -26,6 +26,10 @@
 
 RendererController::~RendererController() {
   DCHECK(thread_checker_.CalledOnValidThread());
+  if (remote_rendering_started_) {
+    DCHECK(client_);
+    client_->SwitchRenderer(false);
+  }
   metrics_recorder_.WillStopSession(MEDIA_ELEMENT_DESTROYED);
   session_->RemoveClient(this);
 }
diff --git a/media/remoting/renderer_controller_unittest.cc b/media/remoting/renderer_controller_unittest.cc
index 3166273c..1ebfc0a 100644
--- a/media/remoting/renderer_controller_unittest.cc
+++ b/media/remoting/renderer_controller_unittest.cc
@@ -57,7 +57,7 @@
 
   // MediaObserverClient implementation.
   void SwitchRenderer(bool disable_pipeline_auto_suspend) override {
-    is_rendering_remotely_ = controller_->remote_rendering_started();
+    is_rendering_remotely_ = disable_pipeline_auto_suspend;
     disable_pipeline_suspend_ = disable_pipeline_auto_suspend;
   }