Index: content/browser/media/android/media_session_browsertest.cc |
diff --git a/content/browser/media/android/media_session_browsertest.cc b/content/browser/media/android/media_session_browsertest.cc |
index 9707330afec853a1a947286fa2b5e678c57a7707..f977c1bd0007d584c51c69fe47ade6bee5f71309 100644 |
--- a/content/browser/media/android/media_session_browsertest.cc |
+++ b/content/browser/media/android/media_session_browsertest.cc |
@@ -154,9 +154,23 @@ class MediaSessionBrowserTest : public content::ContentBrowserTest { |
bool IsSuspended() { return media_session_->IsSuspended(); } |
- void ResumeSession() { media_session_->Resume(); } |
+ void UIResume() { |
+ media_session_->OnResumeInternal(content::MediaSession::SuspendType::UI); |
+ } |
+ |
+ void SystemResume() { |
+ media_session_->OnResumeInternal( |
+ content::MediaSession::SuspendType::SYSTEM); |
+ } |
- void SuspendSession() { media_session_->Suspend(); } |
+ void UISuspend() { |
+ media_session_->OnSuspendInternal(content::MediaSession::SuspendType::UI); |
+ } |
+ |
+ void SystemSuspend() { |
+ media_session_->OnSuspendInternal( |
+ content::MediaSession::SuspendType::SYSTEM); |
+ } |
MockWebContentsObserver* mock_web_contents_observer() { |
return mock_web_contents_observer_.get(); |
@@ -753,7 +767,7 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, |
new MockMediaSessionObserver); |
StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); |
- SuspendSession(); |
+ UISuspend(); |
EXPECT_TRUE(IsControllable()); |
EXPECT_TRUE(IsSuspended()); |
@@ -768,9 +782,67 @@ IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, |
new MockMediaSessionObserver); |
StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); |
- SuspendSession(); |
- ResumeSession(); |
+ UISuspend(); |
+ UIResume(); |
+ |
+ EXPECT_TRUE(IsControllable()); |
+ EXPECT_FALSE(IsSuspended()); |
+} |
+ |
+IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, |
+ DontResumeBySystemUISuspendedSessions) { |
+ scoped_ptr<MockMediaSessionObserver> media_session_observer( |
+ new MockMediaSessionObserver); |
+ StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); |
+ |
+ UISuspend(); |
+ EXPECT_TRUE(IsControllable()); |
+ EXPECT_TRUE(IsSuspended()); |
+ |
+ SystemResume(); |
+ EXPECT_TRUE(IsControllable()); |
+ EXPECT_TRUE(IsSuspended()); |
+} |
+ |
+IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, |
+ AllowUIResumeForSystemSuspend) { |
+ scoped_ptr<MockMediaSessionObserver> media_session_observer( |
+ new MockMediaSessionObserver); |
+ StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); |
+ |
+ SystemSuspend(); |
+ EXPECT_TRUE(IsControllable()); |
+ EXPECT_TRUE(IsSuspended()); |
+ |
+ UIResume(); |
+ EXPECT_TRUE(IsControllable()); |
+ EXPECT_FALSE(IsSuspended()); |
+} |
+ |
+IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ResumeSuspendFromUI) { |
+ scoped_ptr<MockMediaSessionObserver> media_session_observer( |
+ new MockMediaSessionObserver); |
+ StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); |
+ |
+ UISuspend(); |
+ EXPECT_TRUE(IsControllable()); |
+ EXPECT_TRUE(IsSuspended()); |
+ |
+ UIResume(); |
+ EXPECT_TRUE(IsControllable()); |
+ EXPECT_FALSE(IsSuspended()); |
+} |
+ |
+IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ResumeSuspendFromSystem) { |
+ scoped_ptr<MockMediaSessionObserver> media_session_observer( |
+ new MockMediaSessionObserver); |
+ StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); |
+ |
+ SystemSuspend(); |
+ EXPECT_TRUE(IsControllable()); |
+ EXPECT_TRUE(IsSuspended()); |
+ SystemResume(); |
EXPECT_TRUE(IsControllable()); |
EXPECT_FALSE(IsSuspended()); |
} |