diff options
author | mlamouri <mlamouri@chromium.org> | 2016-03-17 06:14:54 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-17 13:15:58 +0000 |
commit | 2d1bfbd36ef0362b28661a09d25f63a7d06fa9f6 (patch) | |
tree | 48cae81a67f1897c11e372af50b16bee2e48b6cd /content/browser/media | |
parent | 8d689ca9b2db1f4a5629c50e5fc2f97e47795197 (diff) | |
download | chromium_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.h | 8 | ||||
-rw-r--r-- | content/browser/media/session/media_session_browsertest.cc | 90 |
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( |