Add render-side manager for MediaSession

RendererMediaSessionManager is responsible for storing all
user-created media sessions and keeping track for id allocation for
those.

BUG=497735

Review URL: https://codereview.chromium.org/1436243002

Cr-Commit-Position: refs/heads/master@{#361973}
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h
index 80cafda..c6d10b2 100644
--- a/content/renderer/render_frame_impl.h
+++ b/content/renderer/render_frame_impl.h
@@ -118,6 +118,7 @@
 class RendererAccessibility;
 class RendererCdmManager;
 class RendererMediaPlayerManager;
+class RendererMediaSessionManager;
 class RendererPpapiHost;
 class RenderFrameObserver;
 class RenderViewImpl;
@@ -878,6 +879,8 @@
       const media::WebMediaPlayerParams& params);
 
   RendererMediaPlayerManager* GetMediaPlayerManager();
+
+  RendererMediaSessionManager* GetMediaSessionManager();
 #endif
 
   bool AreSecureCodecsSupported();
@@ -1015,10 +1018,12 @@
   MidiDispatcher* midi_dispatcher_;
 
 #if defined(OS_ANDROID)
-  // Manages all media players in this render frame for communicating with the
-  // real media player in the browser process. It's okay to use a raw pointer
-  // since it's a RenderFrameObserver.
+  // Manages all media players and sessions in this render frame for
+  // communicating with the real media player and sessions in the
+  // browser process. It's okay to use raw pointers since they're both
+  // RenderFrameObservers.
   RendererMediaPlayerManager* media_player_manager_;
+  RendererMediaSessionManager* media_session_manager_;
 #endif
 
 #if defined(ENABLE_BROWSER_CDMS)