Fix flaky memory leak in RemoteAudioSource

Bug: webrtc:8405
Change-Id: Ie7c89214323678c6ea34e344bb1a5a33ad46b3f0
Reviewed-on: https://webrtc-review.googlesource.com/13401
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20362}
diff --git a/pc/remoteaudiosource.h b/pc/remoteaudiosource.h
index 3759d6f..d35fb04 100644
--- a/pc/remoteaudiosource.h
+++ b/pc/remoteaudiosource.h
@@ -18,6 +18,7 @@
 #include "api/notifier.h"
 #include "pc/channel.h"
 #include "rtc_base/criticalsection.h"
+#include "rtc_base/messagehandler.h"
 
 namespace rtc {
 struct Message;
@@ -27,7 +28,8 @@
 namespace webrtc {
 
 // This class implements the audio source used by the remote audio track.
-class RemoteAudioSource : public Notifier<AudioSourceInterface> {
+class RemoteAudioSource : public Notifier<AudioSourceInterface>,
+                          rtc::MessageHandler {
  public:
   // Creates an instance of RemoteAudioSource.
   static rtc::scoped_refptr<RemoteAudioSource> Create(
@@ -61,8 +63,7 @@
   void OnData(const AudioSinkInterface::Data& audio);
   void OnAudioChannelGone();
 
-  class MessageHandler;
-  void OnMessage(rtc::Message* msg);
+  void OnMessage(rtc::Message* msg) override;
 
   AudioObserverList audio_observers_;
   rtc::CriticalSection sink_lock_;