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

Side by Side Diff: content/browser/media/session/audio_focus_delegate_default_browsertest.cc

Issue 2453623003: Decouple MediaSession messages from WebContents (full patch) (Closed)
Patch Set: nit Created 4 years, 1 month 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "base/command_line.h" 5 #include "base/command_line.h"
6 #include "content/browser/media/session/media_session.h" 6 #include "content/browser/media/session/media_session_impl.h"
7 #include "content/browser/media/session/mock_media_session_player_observer.h" 7 #include "content/browser/media/session/mock_media_session_player_observer.h"
8 #include "content/public/test/content_browser_test.h" 8 #include "content/public/test/content_browser_test.h"
9 #include "content/shell/browser/shell.h" 9 #include "content/shell/browser/shell.h"
10 #include "media/base/media_content_type.h" 10 #include "media/base/media_content_type.h"
11 #include "media/base/media_switches.h" 11 #include "media/base/media_switches.h"
12 12
13 namespace content { 13 namespace content {
14 14
15 class AudioFocusDelegateDefaultBrowserTest : public ContentBrowserTest { 15 class AudioFocusDelegateDefaultBrowserTest : public ContentBrowserTest {
16 protected: 16 protected:
17 void SetUpCommandLine(base::CommandLine* command_line) override { 17 void SetUpCommandLine(base::CommandLine* command_line) override {
18 command_line->AppendSwitch(switches::kEnableDefaultMediaSession); 18 command_line->AppendSwitch(switches::kEnableDefaultMediaSession);
19 } 19 }
20 20
21 void Run(WebContents* start_contents, WebContents* interrupt_contents) { 21 void Run(WebContents* start_contents, WebContents* interrupt_contents) {
22 std::unique_ptr<MockMediaSessionPlayerObserver> 22 std::unique_ptr<MockMediaSessionPlayerObserver>
23 player_observer(new MockMediaSessionPlayerObserver); 23 player_observer(new MockMediaSessionPlayerObserver);
24 24
25 MediaSession* media_session = MediaSession::Get(start_contents); 25 MediaSessionImpl* media_session = MediaSessionImpl::Get(start_contents);
26 ASSERT_TRUE(media_session); 26 ASSERT_TRUE(media_session);
27 27
28 MediaSession* other_media_session = MediaSession::Get(interrupt_contents); 28 MediaSessionImpl* other_media_session =
29 MediaSessionImpl::Get(interrupt_contents);
29 ASSERT_TRUE(other_media_session); 30 ASSERT_TRUE(other_media_session);
30 31
31 player_observer->StartNewPlayer(); 32 player_observer->StartNewPlayer();
32 media_session->AddPlayer(player_observer.get(), 0, 33 media_session->AddPlayer(player_observer.get(), 0,
33 media::MediaContentType::Persistent); 34 media::MediaContentType::Persistent);
34 EXPECT_TRUE(media_session->IsActive()); 35 EXPECT_TRUE(media_session->IsActive());
35 EXPECT_FALSE(other_media_session->IsActive()); 36 EXPECT_FALSE(other_media_session->IsActive());
36 37
37 player_observer->StartNewPlayer(); 38 player_observer->StartNewPlayer();
38 other_media_session->AddPlayer(player_observer.get(), 1, 39 other_media_session->AddPlayer(player_observer.get(), 1,
39 media::MediaContentType::Persistent); 40 media::MediaContentType::Persistent);
40 EXPECT_FALSE(media_session->IsActive()); 41 EXPECT_FALSE(media_session->IsActive());
41 EXPECT_TRUE(other_media_session->IsActive()); 42 EXPECT_TRUE(other_media_session->IsActive());
42 43
43 media_session->Stop(MediaSession::SuspendType::UI); 44 media_session->Stop(MediaSessionImpl::SuspendType::UI);
44 other_media_session->Stop(MediaSession::SuspendType::UI); 45 other_media_session->Stop(MediaSessionImpl::SuspendType::UI);
45 } 46 }
46 }; 47 };
47 48
48 // Two windows from the same BrowserContext. 49 // Two windows from the same BrowserContext.
49 IN_PROC_BROWSER_TEST_F(AudioFocusDelegateDefaultBrowserTest, 50 IN_PROC_BROWSER_TEST_F(AudioFocusDelegateDefaultBrowserTest,
50 ActiveWebContentsPauseOthers) { 51 ActiveWebContentsPauseOthers) {
51 Run(shell()->web_contents(), CreateBrowser()->web_contents()); 52 Run(shell()->web_contents(), CreateBrowser()->web_contents());
52 } 53 }
53 54
54 // Regular BrowserContext is interrupted by OffTheRecord one. 55 // Regular BrowserContext is interrupted by OffTheRecord one.
55 IN_PROC_BROWSER_TEST_F(AudioFocusDelegateDefaultBrowserTest, 56 IN_PROC_BROWSER_TEST_F(AudioFocusDelegateDefaultBrowserTest,
56 RegularBrowserInterruptsOffTheRecord) { 57 RegularBrowserInterruptsOffTheRecord) {
57 Run(shell()->web_contents(), CreateOffTheRecordBrowser()->web_contents()); 58 Run(shell()->web_contents(), CreateOffTheRecordBrowser()->web_contents());
58 } 59 }
59 60
60 // OffTheRecord BrowserContext is interrupted by regular one. 61 // OffTheRecord BrowserContext is interrupted by regular one.
61 IN_PROC_BROWSER_TEST_F(AudioFocusDelegateDefaultBrowserTest, 62 IN_PROC_BROWSER_TEST_F(AudioFocusDelegateDefaultBrowserTest,
62 OffTheRecordInterruptsRegular) { 63 OffTheRecordInterruptsRegular) {
63 Run(CreateOffTheRecordBrowser()->web_contents(), shell()->web_contents()); 64 Run(CreateOffTheRecordBrowser()->web_contents(), shell()->web_contents());
64 } 65 }
65 66
66 } // namespace content 67 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/media/session/audio_focus_delegate_default.cc ('k') | content/browser/media/session/audio_focus_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698