| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/browser/media/android/media_session.h" | 5 #include "content/browser/media/android/media_session.h" |
| 6 | 6 |
| 7 #include <list> | 7 #include <list> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "content/browser/media/android/media_session_observer.h" | 10 #include "content/browser/media/android/media_session_observer.h" |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 147 bool HasAudioFocus() { return media_session_->IsActiveForTest(); } | 147 bool HasAudioFocus() { return media_session_->IsActiveForTest(); } |
| 148 | 148 |
| 149 MediaSession::Type GetSessionType() { | 149 MediaSession::Type GetSessionType() { |
| 150 return media_session_->audio_focus_type_for_test(); | 150 return media_session_->audio_focus_type_for_test(); |
| 151 } | 151 } |
| 152 | 152 |
| 153 bool IsControllable() { return media_session_->IsControllable(); } | 153 bool IsControllable() { return media_session_->IsControllable(); } |
| 154 | 154 |
| 155 bool IsSuspended() { return media_session_->IsSuspended(); } | 155 bool IsSuspended() { return media_session_->IsSuspended(); } |
| 156 | 156 |
| 157 void ResumeSession() { media_session_->Resume(); } | 157 void UIResume() { |
| 158 media_session_->OnResumeInternal(content::MediaSession::SuspendType::UI); |
| 159 } |
| 158 | 160 |
| 159 void SuspendSession() { media_session_->Suspend(); } | 161 void SystemResume() { |
| 162 media_session_->OnResumeInternal( |
| 163 content::MediaSession::SuspendType::SYSTEM); |
| 164 } |
| 165 |
| 166 void UISuspend() { |
| 167 media_session_->OnSuspendInternal(content::MediaSession::SuspendType::UI); |
| 168 } |
| 169 |
| 170 void SystemSuspend() { |
| 171 media_session_->OnSuspendInternal( |
| 172 content::MediaSession::SuspendType::SYSTEM); |
| 173 } |
| 160 | 174 |
| 161 MockWebContentsObserver* mock_web_contents_observer() { | 175 MockWebContentsObserver* mock_web_contents_observer() { |
| 162 return mock_web_contents_observer_.get(); | 176 return mock_web_contents_observer_.get(); |
| 163 } | 177 } |
| 164 | 178 |
| 165 protected: | 179 protected: |
| 166 MediaSession* media_session_; | 180 MediaSession* media_session_; |
| 167 scoped_ptr<MockWebContentsObserver> mock_web_contents_observer_; | 181 scoped_ptr<MockWebContentsObserver> mock_web_contents_observer_; |
| 168 | 182 |
| 169 DISALLOW_COPY_AND_ASSIGN(MediaSessionBrowserTest); | 183 DISALLOW_COPY_AND_ASSIGN(MediaSessionBrowserTest); |
| (...skipping 576 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 746 | 760 |
| 747 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, | 761 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, |
| 748 ControlsNotUpdatedDueToResumeSessionAction) { | 762 ControlsNotUpdatedDueToResumeSessionAction) { |
| 749 EXPECT_CALL(*mock_web_contents_observer(), | 763 EXPECT_CALL(*mock_web_contents_observer(), |
| 750 MediaSessionStateChanged(true, false)); | 764 MediaSessionStateChanged(true, false)); |
| 751 | 765 |
| 752 scoped_ptr<MockMediaSessionObserver> media_session_observer( | 766 scoped_ptr<MockMediaSessionObserver> media_session_observer( |
| 753 new MockMediaSessionObserver); | 767 new MockMediaSessionObserver); |
| 754 | 768 |
| 755 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); | 769 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); |
| 756 SuspendSession(); | 770 UISuspend(); |
| 757 | 771 |
| 758 EXPECT_TRUE(IsControllable()); | 772 EXPECT_TRUE(IsControllable()); |
| 759 EXPECT_TRUE(IsSuspended()); | 773 EXPECT_TRUE(IsSuspended()); |
| 760 } | 774 } |
| 761 | 775 |
| 762 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, | 776 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, |
| 763 ControlsNotUpdatedDueToSuspendSessionAction) { | 777 ControlsNotUpdatedDueToSuspendSessionAction) { |
| 764 EXPECT_CALL(*mock_web_contents_observer(), | 778 EXPECT_CALL(*mock_web_contents_observer(), |
| 765 MediaSessionStateChanged(true, false)); | 779 MediaSessionStateChanged(true, false)); |
| 766 | 780 |
| 767 scoped_ptr<MockMediaSessionObserver> media_session_observer( | 781 scoped_ptr<MockMediaSessionObserver> media_session_observer( |
| 768 new MockMediaSessionObserver); | 782 new MockMediaSessionObserver); |
| 769 | 783 |
| 770 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); | 784 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); |
| 771 SuspendSession(); | 785 UISuspend(); |
| 772 ResumeSession(); | 786 UIResume(); |
| 773 | 787 |
| 774 EXPECT_TRUE(IsControllable()); | 788 EXPECT_TRUE(IsControllable()); |
| 775 EXPECT_FALSE(IsSuspended()); | 789 EXPECT_FALSE(IsSuspended()); |
| 776 } | 790 } |
| 791 |
| 792 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, |
| 793 DontResumeBySystemUISuspendedSessions) { |
| 794 scoped_ptr<MockMediaSessionObserver> media_session_observer( |
| 795 new MockMediaSessionObserver); |
| 796 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); |
| 797 |
| 798 UISuspend(); |
| 799 EXPECT_TRUE(IsControllable()); |
| 800 EXPECT_TRUE(IsSuspended()); |
| 801 |
| 802 SystemResume(); |
| 803 EXPECT_TRUE(IsControllable()); |
| 804 EXPECT_TRUE(IsSuspended()); |
| 805 } |
| 806 |
| 807 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, |
| 808 AllowUIResumeForSystemSuspend) { |
| 809 scoped_ptr<MockMediaSessionObserver> media_session_observer( |
| 810 new MockMediaSessionObserver); |
| 811 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); |
| 812 |
| 813 SystemSuspend(); |
| 814 EXPECT_TRUE(IsControllable()); |
| 815 EXPECT_TRUE(IsSuspended()); |
| 816 |
| 817 UIResume(); |
| 818 EXPECT_TRUE(IsControllable()); |
| 819 EXPECT_FALSE(IsSuspended()); |
| 820 } |
| 821 |
| 822 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ResumeSuspendFromUI) { |
| 823 scoped_ptr<MockMediaSessionObserver> media_session_observer( |
| 824 new MockMediaSessionObserver); |
| 825 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); |
| 826 |
| 827 UISuspend(); |
| 828 EXPECT_TRUE(IsControllable()); |
| 829 EXPECT_TRUE(IsSuspended()); |
| 830 |
| 831 UIResume(); |
| 832 EXPECT_TRUE(IsControllable()); |
| 833 EXPECT_FALSE(IsSuspended()); |
| 834 } |
| 835 |
| 836 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ResumeSuspendFromSystem) { |
| 837 scoped_ptr<MockMediaSessionObserver> media_session_observer( |
| 838 new MockMediaSessionObserver); |
| 839 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); |
| 840 |
| 841 SystemSuspend(); |
| 842 EXPECT_TRUE(IsControllable()); |
| 843 EXPECT_TRUE(IsSuspended()); |
| 844 |
| 845 SystemResume(); |
| 846 EXPECT_TRUE(IsControllable()); |
| 847 EXPECT_FALSE(IsSuspended()); |
| 848 } |
| OLD | NEW |