Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1136)

Side by Side Diff: content/browser/media/android/media_session_browsertest.cc

Issue 1243683003: Android MediaSession: do not resume a UI suspended session on a system resume. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review comments Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « content/browser/media/android/media_session.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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 }
OLDNEW
« no previous file with comments | « content/browser/media/android/media_session.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698