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 |