Decouple MediaSession messages from WebContents
This CL separates MediaSession messages from WebContents. It includes
the following changes:
* Abstract MediaSession interface and put it into
content/public/browser.
* Move WebContents.[Resume|Suspend|Stop]MediaSession to the
MediaSession interface.
* Add MediaSessionObserver to content/public/browser.
* Move WebContentsObserver.MediaSession* to the MediaSessionObserver
interface.
* Add MediaSession content/public API in Java.
* Move MediaSession* in the Java WebContent API to MediaSession.
* Let clients use the new MediaSession content API.
The overall structral change is described in:
https://docs.google.com/a/chromium.org/document/d/1PfiCtOidmNrwsXcnpN7tCa_IkeHb5SJ73d5nwzxZYV8/edit?usp=sharing
BUG=658678
Review-Url: https://codereview.chromium.org/2453623003
Cr-Commit-Position: refs/heads/master@{#428976}
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index b7cae66..a5f3390a 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -860,12 +860,14 @@
"media/session/audio_focus_manager.h",
"media/session/media_metadata_sanitizer.cc",
"media/session/media_metadata_sanitizer.h",
- "media/session/media_session.cc",
- "media/session/media_session.h",
+ "media/session/media_session_android.cc",
+ "media/session/media_session_android.h",
"media/session/media_session_controller.cc",
"media/session/media_session_controller.h",
"media/session/media_session_controllers_manager.cc",
"media/session/media_session_controllers_manager.h",
+ "media/session/media_session_impl.cc",
+ "media/session/media_session_impl.h",
"media/session/media_session_player_observer.h",
"media/session/media_session_service_impl.cc",
"media/session/media_session_service_impl.h",