summaryrefslogtreecommitdiffstats
path: root/content/browser/media
diff options
context:
space:
mode:
authormlamouri <mlamouri@chromium.org>2016-03-17 06:14:54 -0700
committerCommit bot <commit-bot@chromium.org>2016-03-17 13:15:58 +0000
commit2d1bfbd36ef0362b28661a09d25f63a7d06fa9f6 (patch)
tree48cae81a67f1897c11e372af50b16bee2e48b6cd /content/browser/media
parent8d689ca9b2db1f4a5629c50e5fc2f97e47795197 (diff)
downloadchromium_src-2d1bfbd36ef0362b28661a09d25f63a7d06fa9f6.zip
chromium_src-2d1bfbd36ef0362b28661a09d25f63a7d06fa9f6.tar.gz
chromium_src-2d1bfbd36ef0362b28661a09d25f63a7d06fa9f6.tar.bz2
Media Session API: use MediaMetadata in the browser process.
This is adding a Java counterpart to the content::MediaMetadata added in Java with a proxy to pass the object from C++ to Java. The MediaMetadata information are only used to replace the title from the media notification and set some Android metadata. Other UI changes will require UI review. BUG=497735,581728 Review URL: https://codereview.chromium.org/1458703003 Cr-Commit-Position: refs/heads/master@{#381697}
Diffstat (limited to 'content/browser/media')
-rw-r--r--content/browser/media/session/media_session.h8
-rw-r--r--content/browser/media/session/media_session_browsertest.cc90
2 files changed, 51 insertions, 47 deletions
diff --git a/content/browser/media/session/media_session.h b/content/browser/media/session/media_session.h
index 4fb5d42..2553c6d 100644
--- a/content/browser/media/session/media_session.h
+++ b/content/browser/media/session/media_session.h
@@ -13,6 +13,7 @@
#include "content/common/content_export.h"
#include "content/public/browser/web_contents_observer.h"
#include "content/public/browser/web_contents_user_data.h"
+#include "content/public/common/media_metadata.h"
class MediaSessionBrowserTest;
@@ -58,6 +59,11 @@ class MediaSession : public WebContentsObserver,
~MediaSession() override;
+ void setMetadata(const MediaMetadata& metadata) {
+ metadata_ = metadata;
+ }
+ const MediaMetadata& metadata() const { return metadata_; }
+
// Adds the given player to the current media session. Returns whether the
// player was successfully added. If it returns false, AddPlayer() should be
// called again later.
@@ -184,6 +190,8 @@ class MediaSession : public WebContentsObserver,
// multiply their volume with this multiplier to get the effective volume.
double volume_multiplier_;
+ MediaMetadata metadata_;
+
DISALLOW_COPY_AND_ASSIGN(MediaSession);
};
diff --git a/content/browser/media/session/media_session_browsertest.cc b/content/browser/media/session/media_session_browsertest.cc
index f75342d..c8388f7 100644
--- a/content/browser/media/session/media_session_browsertest.cc
+++ b/content/browser/media/session/media_session_browsertest.cc
@@ -48,8 +48,9 @@ class MockWebContentsObserver : public WebContentsObserver {
MockWebContentsObserver(WebContents* web_contents)
: WebContentsObserver(web_contents) {}
- MOCK_METHOD2(MediaSessionStateChanged,
- void(bool is_controllable, bool is_suspended));
+ MOCK_METHOD3(MediaSessionStateChanged,
+ void(bool is_controllable, bool is_suspended,
+ const content::MediaMetadata& metadata));
};
} // namespace
@@ -488,7 +489,7 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, MediaSessionType) {
IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsShowForContent) {
EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
+ MediaSessionStateChanged(true, false, testing::_));
scoped_ptr<MockMediaSessionObserver> media_session_observer(
new MockMediaSessionObserver);
@@ -502,7 +503,7 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsShowForContent) {
IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsNoShowForTransient) {
EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(false, false));
+ MediaSessionStateChanged(false, false, testing::_));
scoped_ptr<MockMediaSessionObserver> media_session_observer(
new MockMediaSessionObserver);
@@ -516,9 +517,9 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsNoShowForTransient) {
IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsHideWhenStopped) {
Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
+ MediaSessionStateChanged(true, false, testing::_));
EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(false, true))
+ MediaSessionStateChanged(false, true, testing::_))
.After(showControls);
scoped_ptr<MockMediaSessionObserver> media_session_observer(
@@ -534,7 +535,7 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsHideWhenStopped) {
IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsShownAcceptTransient) {
EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
+ MediaSessionStateChanged(true, false, testing::_));
scoped_ptr<MockMediaSessionObserver> media_session_observer(
new MockMediaSessionObserver);
@@ -550,10 +551,10 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsShownAcceptTransient) {
IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
ControlsShownAfterContentAdded) {
- Expectation dontShowControls = EXPECT_CALL(
- *mock_web_contents_observer(), MediaSessionStateChanged(false, false));
+ Expectation dontShowControls = EXPECT_CALL(*mock_web_contents_observer(),
+ MediaSessionStateChanged(false, false, testing::_));
EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false))
+ MediaSessionStateChanged(true, false, testing::_))
.After(dontShowControls);
scoped_ptr<MockMediaSessionObserver> media_session_observer(
@@ -571,7 +572,7 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
ControlsStayIfOnlyOnePlayerHasBeenPaused) {
EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
+ MediaSessionStateChanged(true, false, testing::_));
scoped_ptr<MockMediaSessionObserver> media_session_observer(
new MockMediaSessionObserver);
@@ -590,9 +591,9 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
ControlsHideWhenTheLastPlayerIsRemoved) {
Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
+ MediaSessionStateChanged(true, false, testing::_));
EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(false, true))
+ MediaSessionStateChanged(false, true, testing::_))
.After(showControls);
scoped_ptr<MockMediaSessionObserver> media_session_observer(
new MockMediaSessionObserver);
@@ -614,9 +615,9 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
ControlsHideWhenAllThePlayersAreRemoved) {
Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
+ MediaSessionStateChanged(true, false, testing::_));
EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(false, true))
+ MediaSessionStateChanged(false, true, testing::_))
.After(showControls);
scoped_ptr<MockMediaSessionObserver> media_session_observer(
@@ -634,9 +635,9 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
ControlsNotHideWhenTheLastPlayerIsPaused) {
Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
+ MediaSessionStateChanged(true, false, testing::_));
EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, true))
+ MediaSessionStateChanged(true, true, testing::_))
.After(showControls);
scoped_ptr<MockMediaSessionObserver> media_session_observer(
@@ -659,9 +660,9 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
SuspendTemporaryUpdatesControls) {
Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
+ MediaSessionStateChanged(true, false, testing::_));
EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, true))
+ MediaSessionStateChanged(true, true, testing::_))
.After(showControls);
scoped_ptr<MockMediaSessionObserver> media_session_observer(
@@ -677,12 +678,11 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsUpdatedWhenResumed) {
Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
+ MediaSessionStateChanged(true, false, testing::_));
Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, true))
- .After(showControls);
+ MediaSessionStateChanged(true, true, testing::_)).After(showControls);
EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false))
+ MediaSessionStateChanged(true, false, testing::_))
.After(pauseControls);
scoped_ptr<MockMediaSessionObserver> media_session_observer(
@@ -699,9 +699,9 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsUpdatedWhenResumed) {
IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
ControlsHideWhenSessionSuspendedPermanently) {
Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
+ MediaSessionStateChanged(true, false, testing::_));
EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(false, true))
+ MediaSessionStateChanged(false, true, testing::_))
.After(showControls);
scoped_ptr<MockMediaSessionObserver> media_session_observer(
@@ -718,12 +718,11 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
ConstrolsHideWhenSessionStops) {
Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
+ MediaSessionStateChanged(true, false, testing::_));
Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, true))
- .After(showControls);
+ MediaSessionStateChanged(true, true, testing::_)).After(showControls);
EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(false, true))
+ MediaSessionStateChanged(false, true, testing::_))
.After(pauseControls);
scoped_ptr<MockMediaSessionObserver> media_session_observer(
@@ -740,12 +739,11 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
ControlsHideWhenSessionChangesFromContentToTransient) {
Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
+ MediaSessionStateChanged(true, false, testing::_));
Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, true))
- .After(showControls);
+ MediaSessionStateChanged(true, true, testing::_)).After(showControls);
EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(false, false))
+ MediaSessionStateChanged(false, false, testing::_))
.After(pauseControls);
scoped_ptr<MockMediaSessionObserver> media_session_observer(
@@ -765,12 +763,11 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
ControlsUpdatedWhenNewPlayerResetsSession) {
Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
+ MediaSessionStateChanged(true, false, testing::_));
Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, true))
- .After(showControls);
+ MediaSessionStateChanged(true, true, testing::_)).After(showControls);
EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false))
+ MediaSessionStateChanged(true, false, testing::_))
.After(pauseControls);
scoped_ptr<MockMediaSessionObserver> media_session_observer(
@@ -789,12 +786,11 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
ControlsResumedWhenPlayerIsResumed) {
Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
+ MediaSessionStateChanged(true, false, testing::_));
Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, true))
- .After(showControls);
+ MediaSessionStateChanged(true, true, testing::_)).After(showControls);
EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false))
+ MediaSessionStateChanged(true, false, testing::_))
.After(pauseControls);
scoped_ptr<MockMediaSessionObserver> media_session_observer(
@@ -813,9 +809,10 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
ControlsUpdatedDueToResumeSessionAction) {
Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
+ MediaSessionStateChanged(true, false, testing::_));
EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, true)).After(showControls);
+ MediaSessionStateChanged(true, true, testing::_))
+ .After(showControls);
scoped_ptr<MockMediaSessionObserver> media_session_observer(
new MockMediaSessionObserver);
@@ -830,12 +827,11 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
ControlsUpdatedDueToSuspendSessionAction) {
Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false));
+ MediaSessionStateChanged(true, false, testing::_));
Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, true))
- .After(showControls);
+ MediaSessionStateChanged(true, true, testing::_)).After(showControls);
EXPECT_CALL(*mock_web_contents_observer(),
- MediaSessionStateChanged(true, false))
+ MediaSessionStateChanged(true, false, testing::_))
.After(pauseControls);
scoped_ptr<MockMediaSessionObserver> media_session_observer(