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

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

Issue 1996043002: Split MediaContentType and AudioFocusType (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: addressed nits Created 4 years, 3 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
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/session/media_session.h" 5 #include "content/browser/media/session/media_session.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <list> 9 #include <list>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/macros.h" 12 #include "base/macros.h"
13 #include "base/metrics/histogram_samples.h" 13 #include "base/metrics/histogram_samples.h"
14 #include "base/test/histogram_tester.h" 14 #include "base/test/histogram_tester.h"
15 #include "base/test/simple_test_tick_clock.h" 15 #include "base/test/simple_test_tick_clock.h"
16 #include "content/browser/media/session/media_session_delegate.h" 16 #include "content/browser/media/session/media_session_delegate.h"
17 #include "content/browser/media/session/mock_media_session_observer.h" 17 #include "content/browser/media/session/mock_media_session_observer.h"
18 #include "content/public/browser/web_contents.h" 18 #include "content/public/browser/web_contents.h"
19 #include "content/public/browser/web_contents_observer.h" 19 #include "content/public/browser/web_contents_observer.h"
20 #include "content/public/test/content_browser_test.h" 20 #include "content/public/test/content_browser_test.h"
21 #include "content/shell/browser/shell.h" 21 #include "content/shell/browser/shell.h"
22 #include "media/base/media_content_type.h"
22 #include "testing/gmock/include/gmock/gmock.h" 23 #include "testing/gmock/include/gmock/gmock.h"
23 24
24 using content::WebContents; 25 using content::WebContents;
25 using content::WebContentsObserver; 26 using content::WebContentsObserver;
26 using content::MediaSession; 27 using content::MediaSession;
27 using content::MediaSessionDelegate; 28 using content::MediaSessionDelegate;
28 using content::MediaSessionObserver; 29 using content::MediaSessionObserver;
29 using content::MediaSessionUmaHelper; 30 using content::MediaSessionUmaHelper;
30 using content::MockMediaSessionObserver; 31 using content::MockMediaSessionObserver;
31 32
32 using ::testing::Expectation; 33 using ::testing::Expectation;
33 34
34 namespace { 35 namespace {
35 36
36 class MockMediaSessionDelegate : public MediaSessionDelegate { 37 class MockMediaSessionDelegate : public MediaSessionDelegate {
37 public: 38 public:
38 bool RequestAudioFocus(MediaSession::Type) override { 39 bool RequestAudioFocus(content::AudioFocusManager::AudioFocusType) override {
39 return true; 40 return true;
40 } 41 }
41 42
42 void AbandonAudioFocus() override { 43 void AbandonAudioFocus() override {
43 } 44 }
44 }; 45 };
45 46
46 class MockWebContentsObserver : public WebContentsObserver { 47 class MockWebContentsObserver : public WebContentsObserver {
47 public: 48 public:
48 MockWebContentsObserver(WebContents* web_contents) 49 MockWebContentsObserver(WebContents* web_contents)
(...skipping 24 matching lines...) Expand all
73 void TearDownOnMainThread() override { 74 void TearDownOnMainThread() override {
74 mock_web_contents_observer_.reset(); 75 mock_web_contents_observer_.reset();
75 76
76 media_session_->RemoveAllPlayersForTest(); 77 media_session_->RemoveAllPlayersForTest();
77 media_session_ = nullptr; 78 media_session_ = nullptr;
78 79
79 ContentBrowserTest::TearDownOnMainThread(); 80 ContentBrowserTest::TearDownOnMainThread();
80 } 81 }
81 82
82 void StartNewPlayer(MockMediaSessionObserver* media_session_observer, 83 void StartNewPlayer(MockMediaSessionObserver* media_session_observer,
83 MediaSession::Type type) { 84 media::MediaContentType media_content_type) {
84 bool result = AddPlayer( 85 bool result =
85 media_session_observer, 86 AddPlayer(media_session_observer,
86 media_session_observer->StartNewPlayer(), 87 media_session_observer->StartNewPlayer(), media_content_type);
87 type);
88 EXPECT_TRUE(result); 88 EXPECT_TRUE(result);
89 } 89 }
90 90
91 bool AddPlayer(MockMediaSessionObserver* media_session_observer, 91 bool AddPlayer(MockMediaSessionObserver* media_session_observer,
92 int player_id, 92 int player_id,
93 MediaSession::Type type) { 93 media::MediaContentType type) {
94 return media_session_->AddPlayer(media_session_observer, player_id, type); 94 return media_session_->AddPlayer(media_session_observer, player_id, type);
95 } 95 }
96 96
97 void RemovePlayer(MockMediaSessionObserver* media_session_observer, 97 void RemovePlayer(MockMediaSessionObserver* media_session_observer,
98 int player_id) { 98 int player_id) {
99 media_session_->RemovePlayer(media_session_observer, player_id); 99 media_session_->RemovePlayer(media_session_observer, player_id);
100 } 100 }
101 101
102 void RemovePlayers(MockMediaSessionObserver* media_session_observer) { 102 void RemovePlayers(MockMediaSessionObserver* media_session_observer) {
103 media_session_->RemovePlayers(media_session_observer); 103 media_session_->RemovePlayers(media_session_observer);
104 } 104 }
105 105
106 void OnPlayerPaused(MockMediaSessionObserver* media_session_observer, 106 void OnPlayerPaused(MockMediaSessionObserver* media_session_observer,
107 int player_id) { 107 int player_id) {
108 media_session_->OnPlayerPaused(media_session_observer, player_id); 108 media_session_->OnPlayerPaused(media_session_observer, player_id);
109 } 109 }
110 110
111 bool HasAudioFocus() { return media_session_->IsActiveForTest(); } 111 bool HasAudioFocus() { return media_session_->IsActiveForTest(); }
112 112
113 MediaSession::Type GetSessionType() { 113 content::AudioFocusManager::AudioFocusType GetSessionAudioFocusType() {
114 return media_session_->audio_focus_type_for_test(); 114 return media_session_->audio_focus_type_for_test();
115 } 115 }
116 116
117 bool IsControllable() { return media_session_->IsControllable(); } 117 bool IsControllable() { return media_session_->IsControllable(); }
118 118
119 bool IsSuspended() { return media_session_->IsSuspended(); } 119 bool IsSuspended() { return media_session_->IsSuspended(); }
120 120
121 void UIResume() { 121 void UIResume() {
122 media_session_->Resume(MediaSession::SuspendType::UI); 122 media_session_->Resume(MediaSession::SuspendType::UI);
123 } 123 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 std::unique_ptr<MockWebContentsObserver> mock_web_contents_observer_; 158 std::unique_ptr<MockWebContentsObserver> mock_web_contents_observer_;
159 159
160 DISALLOW_COPY_AND_ASSIGN(MediaSessionBrowserTest); 160 DISALLOW_COPY_AND_ASSIGN(MediaSessionBrowserTest);
161 }; 161 };
162 162
163 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 163 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
164 PlayersFromSameObserverDoNotStopEachOtherInSameSession) { 164 PlayersFromSameObserverDoNotStopEachOtherInSameSession) {
165 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 165 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
166 new MockMediaSessionObserver); 166 new MockMediaSessionObserver);
167 167
168 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 168 StartNewPlayer(media_session_observer.get(),
169 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 169 media::MediaContentType::Persistent);
170 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 170 StartNewPlayer(media_session_observer.get(),
171 media::MediaContentType::Persistent);
172 StartNewPlayer(media_session_observer.get(),
173 media::MediaContentType::Persistent);
171 174
172 EXPECT_TRUE(media_session_observer->IsPlaying(0)); 175 EXPECT_TRUE(media_session_observer->IsPlaying(0));
173 EXPECT_TRUE(media_session_observer->IsPlaying(1)); 176 EXPECT_TRUE(media_session_observer->IsPlaying(1));
174 EXPECT_TRUE(media_session_observer->IsPlaying(2)); 177 EXPECT_TRUE(media_session_observer->IsPlaying(2));
175 } 178 }
176 179
177 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 180 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
178 PlayersFromManyObserverDoNotStopEachOtherInSameSession) { 181 PlayersFromManyObserverDoNotStopEachOtherInSameSession) {
179 std::unique_ptr<MockMediaSessionObserver> media_session_observer_1( 182 std::unique_ptr<MockMediaSessionObserver> media_session_observer_1(
180 new MockMediaSessionObserver); 183 new MockMediaSessionObserver);
181 std::unique_ptr<MockMediaSessionObserver> media_session_observer_2( 184 std::unique_ptr<MockMediaSessionObserver> media_session_observer_2(
182 new MockMediaSessionObserver); 185 new MockMediaSessionObserver);
183 std::unique_ptr<MockMediaSessionObserver> media_session_observer_3( 186 std::unique_ptr<MockMediaSessionObserver> media_session_observer_3(
184 new MockMediaSessionObserver); 187 new MockMediaSessionObserver);
185 188
186 StartNewPlayer(media_session_observer_1.get(), MediaSession::Type::Content); 189 StartNewPlayer(media_session_observer_1.get(),
187 StartNewPlayer(media_session_observer_2.get(), MediaSession::Type::Content); 190 media::MediaContentType::Persistent);
188 StartNewPlayer(media_session_observer_3.get(), MediaSession::Type::Content); 191 StartNewPlayer(media_session_observer_2.get(),
192 media::MediaContentType::Persistent);
193 StartNewPlayer(media_session_observer_3.get(),
194 media::MediaContentType::Persistent);
189 195
190 EXPECT_TRUE(media_session_observer_1->IsPlaying(0)); 196 EXPECT_TRUE(media_session_observer_1->IsPlaying(0));
191 EXPECT_TRUE(media_session_observer_2->IsPlaying(0)); 197 EXPECT_TRUE(media_session_observer_2->IsPlaying(0));
192 EXPECT_TRUE(media_session_observer_3->IsPlaying(0)); 198 EXPECT_TRUE(media_session_observer_3->IsPlaying(0));
193 } 199 }
194 200
195 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 201 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
196 SuspendedMediaSessionStopsPlayers) { 202 SuspendedMediaSessionStopsPlayers) {
197 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 203 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
198 new MockMediaSessionObserver); 204 new MockMediaSessionObserver);
199 205
200 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 206 StartNewPlayer(media_session_observer.get(),
201 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 207 media::MediaContentType::Persistent);
202 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 208 StartNewPlayer(media_session_observer.get(),
209 media::MediaContentType::Persistent);
210 StartNewPlayer(media_session_observer.get(),
211 media::MediaContentType::Persistent);
203 212
204 SystemSuspend(true); 213 SystemSuspend(true);
205 214
206 EXPECT_FALSE(media_session_observer->IsPlaying(0)); 215 EXPECT_FALSE(media_session_observer->IsPlaying(0));
207 EXPECT_FALSE(media_session_observer->IsPlaying(1)); 216 EXPECT_FALSE(media_session_observer->IsPlaying(1));
208 EXPECT_FALSE(media_session_observer->IsPlaying(2)); 217 EXPECT_FALSE(media_session_observer->IsPlaying(2));
209 } 218 }
210 219
211 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 220 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
212 ResumedMediaSessionRestartsPlayers) { 221 ResumedMediaSessionRestartsPlayers) {
213 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 222 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
214 new MockMediaSessionObserver); 223 new MockMediaSessionObserver);
215 224
216 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 225 StartNewPlayer(media_session_observer.get(),
217 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 226 media::MediaContentType::Persistent);
218 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 227 StartNewPlayer(media_session_observer.get(),
228 media::MediaContentType::Persistent);
229 StartNewPlayer(media_session_observer.get(),
230 media::MediaContentType::Persistent);
219 231
220 SystemSuspend(true); 232 SystemSuspend(true);
221 SystemResume(); 233 SystemResume();
222 234
223 EXPECT_TRUE(media_session_observer->IsPlaying(0)); 235 EXPECT_TRUE(media_session_observer->IsPlaying(0));
224 EXPECT_TRUE(media_session_observer->IsPlaying(1)); 236 EXPECT_TRUE(media_session_observer->IsPlaying(1));
225 EXPECT_TRUE(media_session_observer->IsPlaying(2)); 237 EXPECT_TRUE(media_session_observer->IsPlaying(2));
226 } 238 }
227 239
228 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 240 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
229 StartedPlayerOnSuspendedSessionPlaysAlone) { 241 StartedPlayerOnSuspendedSessionPlaysAlone) {
230 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 242 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
231 new MockMediaSessionObserver); 243 new MockMediaSessionObserver);
232 244
233 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 245 StartNewPlayer(media_session_observer.get(),
246 media::MediaContentType::Persistent);
234 247
235 EXPECT_TRUE(media_session_observer->IsPlaying(0)); 248 EXPECT_TRUE(media_session_observer->IsPlaying(0));
236 249
237 SystemSuspend(true); 250 SystemSuspend(true);
238 251
239 EXPECT_FALSE(media_session_observer->IsPlaying(0)); 252 EXPECT_FALSE(media_session_observer->IsPlaying(0));
240 253
241 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 254 StartNewPlayer(media_session_observer.get(),
255 media::MediaContentType::Persistent);
242 256
243 EXPECT_FALSE(media_session_observer->IsPlaying(0)); 257 EXPECT_FALSE(media_session_observer->IsPlaying(0));
244 EXPECT_TRUE(media_session_observer->IsPlaying(1)); 258 EXPECT_TRUE(media_session_observer->IsPlaying(1));
245 259
246 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 260 StartNewPlayer(media_session_observer.get(),
261 media::MediaContentType::Persistent);
247 262
248 EXPECT_FALSE(media_session_observer->IsPlaying(0)); 263 EXPECT_FALSE(media_session_observer->IsPlaying(0));
249 EXPECT_TRUE(media_session_observer->IsPlaying(1)); 264 EXPECT_TRUE(media_session_observer->IsPlaying(1));
250 EXPECT_TRUE(media_session_observer->IsPlaying(2)); 265 EXPECT_TRUE(media_session_observer->IsPlaying(2));
251 } 266 }
252 267
253 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 268 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
254 MediaSessionSetVolumeMultiplier) { 269 MediaSessionSetVolumeMultiplier) {
255 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 270 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
256 new MockMediaSessionObserver); 271 new MockMediaSessionObserver);
257 272
258 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 273 StartNewPlayer(media_session_observer.get(),
259 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 274 media::MediaContentType::Persistent);
275 StartNewPlayer(media_session_observer.get(),
276 media::MediaContentType::Persistent);
260 277
261 double volume_multiplier = 0.2f; 278 double volume_multiplier = 0.2f;
262 SystemSetVolumeMultiplier(volume_multiplier); 279 SystemSetVolumeMultiplier(volume_multiplier);
263 280
264 EXPECT_EQ(volume_multiplier, media_session_observer->GetVolumeMultiplier(0)); 281 EXPECT_EQ(volume_multiplier, media_session_observer->GetVolumeMultiplier(0));
265 EXPECT_EQ(volume_multiplier, media_session_observer->GetVolumeMultiplier(1)); 282 EXPECT_EQ(volume_multiplier, media_session_observer->GetVolumeMultiplier(1));
266 283
267 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 284 StartNewPlayer(media_session_observer.get(),
285 media::MediaContentType::Persistent);
268 286
269 EXPECT_EQ(volume_multiplier, media_session_observer->GetVolumeMultiplier(2)); 287 EXPECT_EQ(volume_multiplier, media_session_observer->GetVolumeMultiplier(2));
270 } 288 }
271 289
272 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, AudioFocusInitialState) { 290 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, AudioFocusInitialState) {
273 EXPECT_FALSE(HasAudioFocus()); 291 EXPECT_FALSE(HasAudioFocus());
274 } 292 }
275 293
276 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, StartPlayerGivesFocus) { 294 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, StartPlayerGivesFocus) {
277 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 295 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
278 new MockMediaSessionObserver); 296 new MockMediaSessionObserver);
279 297
280 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 298 StartNewPlayer(media_session_observer.get(),
299 media::MediaContentType::Persistent);
281 300
282 EXPECT_TRUE(HasAudioFocus()); 301 EXPECT_TRUE(HasAudioFocus());
283 } 302 }
284 303
285 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, SuspendGivesAwayAudioFocus) { 304 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, SuspendGivesAwayAudioFocus) {
286 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 305 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
287 new MockMediaSessionObserver); 306 new MockMediaSessionObserver);
288 307
289 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 308 StartNewPlayer(media_session_observer.get(),
309 media::MediaContentType::Persistent);
290 310
291 SystemSuspend(true); 311 SystemSuspend(true);
292 312
293 EXPECT_FALSE(HasAudioFocus()); 313 EXPECT_FALSE(HasAudioFocus());
294 } 314 }
295 315
296 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, StopGivesAwayAudioFocus) { 316 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, StopGivesAwayAudioFocus) {
297 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 317 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
298 new MockMediaSessionObserver); 318 new MockMediaSessionObserver);
299 319
300 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 320 StartNewPlayer(media_session_observer.get(),
321 media::MediaContentType::Persistent);
301 322
302 media_session_->Stop(MediaSession::SuspendType::UI); 323 media_session_->Stop(MediaSession::SuspendType::UI);
303 324
304 EXPECT_FALSE(HasAudioFocus()); 325 EXPECT_FALSE(HasAudioFocus());
305 } 326 }
306 327
307 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ResumeGivesBackAudioFocus) { 328 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ResumeGivesBackAudioFocus) {
308 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 329 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
309 new MockMediaSessionObserver); 330 new MockMediaSessionObserver);
310 331
311 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 332 StartNewPlayer(media_session_observer.get(),
333 media::MediaContentType::Persistent);
312 334
313 SystemSuspend(true); 335 SystemSuspend(true);
314 SystemResume(); 336 SystemResume();
315 337
316 EXPECT_TRUE(HasAudioFocus()); 338 EXPECT_TRUE(HasAudioFocus());
317 } 339 }
318 340
319 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 341 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
320 RemovingLastPlayerDropsAudioFocus) { 342 RemovingLastPlayerDropsAudioFocus) {
321 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 343 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
322 new MockMediaSessionObserver); 344 new MockMediaSessionObserver);
323 345
324 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 346 StartNewPlayer(media_session_observer.get(),
325 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 347 media::MediaContentType::Persistent);
326 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 348 StartNewPlayer(media_session_observer.get(),
349 media::MediaContentType::Persistent);
350 StartNewPlayer(media_session_observer.get(),
351 media::MediaContentType::Persistent);
327 352
328 RemovePlayer(media_session_observer.get(), 0); 353 RemovePlayer(media_session_observer.get(), 0);
329 EXPECT_TRUE(HasAudioFocus()); 354 EXPECT_TRUE(HasAudioFocus());
330 RemovePlayer(media_session_observer.get(), 1); 355 RemovePlayer(media_session_observer.get(), 1);
331 EXPECT_TRUE(HasAudioFocus()); 356 EXPECT_TRUE(HasAudioFocus());
332 RemovePlayer(media_session_observer.get(), 2); 357 RemovePlayer(media_session_observer.get(), 2);
333 EXPECT_FALSE(HasAudioFocus()); 358 EXPECT_FALSE(HasAudioFocus());
334 } 359 }
335 360
336 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 361 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
337 RemovingLastPlayerFromManyObserversDropsAudioFocus) { 362 RemovingLastPlayerFromManyObserversDropsAudioFocus) {
338 std::unique_ptr<MockMediaSessionObserver> media_session_observer_1( 363 std::unique_ptr<MockMediaSessionObserver> media_session_observer_1(
339 new MockMediaSessionObserver); 364 new MockMediaSessionObserver);
340 std::unique_ptr<MockMediaSessionObserver> media_session_observer_2( 365 std::unique_ptr<MockMediaSessionObserver> media_session_observer_2(
341 new MockMediaSessionObserver); 366 new MockMediaSessionObserver);
342 std::unique_ptr<MockMediaSessionObserver> media_session_observer_3( 367 std::unique_ptr<MockMediaSessionObserver> media_session_observer_3(
343 new MockMediaSessionObserver); 368 new MockMediaSessionObserver);
344 369
345 StartNewPlayer(media_session_observer_1.get(), MediaSession::Type::Content); 370 StartNewPlayer(media_session_observer_1.get(),
346 StartNewPlayer(media_session_observer_2.get(), MediaSession::Type::Content); 371 media::MediaContentType::Persistent);
347 StartNewPlayer(media_session_observer_3.get(), MediaSession::Type::Content); 372 StartNewPlayer(media_session_observer_2.get(),
373 media::MediaContentType::Persistent);
374 StartNewPlayer(media_session_observer_3.get(),
375 media::MediaContentType::Persistent);
348 376
349 RemovePlayer(media_session_observer_1.get(), 0); 377 RemovePlayer(media_session_observer_1.get(), 0);
350 EXPECT_TRUE(HasAudioFocus()); 378 EXPECT_TRUE(HasAudioFocus());
351 RemovePlayer(media_session_observer_2.get(), 0); 379 RemovePlayer(media_session_observer_2.get(), 0);
352 EXPECT_TRUE(HasAudioFocus()); 380 EXPECT_TRUE(HasAudioFocus());
353 RemovePlayer(media_session_observer_3.get(), 0); 381 RemovePlayer(media_session_observer_3.get(), 0);
354 EXPECT_FALSE(HasAudioFocus()); 382 EXPECT_FALSE(HasAudioFocus());
355 } 383 }
356 384
357 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 385 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
358 RemovingAllPlayersFromObserversDropsAudioFocus) { 386 RemovingAllPlayersFromObserversDropsAudioFocus) {
359 std::unique_ptr<MockMediaSessionObserver> media_session_observer_1( 387 std::unique_ptr<MockMediaSessionObserver> media_session_observer_1(
360 new MockMediaSessionObserver); 388 new MockMediaSessionObserver);
361 std::unique_ptr<MockMediaSessionObserver> media_session_observer_2( 389 std::unique_ptr<MockMediaSessionObserver> media_session_observer_2(
362 new MockMediaSessionObserver); 390 new MockMediaSessionObserver);
363 391
364 StartNewPlayer(media_session_observer_1.get(), MediaSession::Type::Content); 392 StartNewPlayer(media_session_observer_1.get(),
365 StartNewPlayer(media_session_observer_1.get(), MediaSession::Type::Content); 393 media::MediaContentType::Persistent);
366 StartNewPlayer(media_session_observer_2.get(), MediaSession::Type::Content); 394 StartNewPlayer(media_session_observer_1.get(),
367 StartNewPlayer(media_session_observer_2.get(), MediaSession::Type::Content); 395 media::MediaContentType::Persistent);
396 StartNewPlayer(media_session_observer_2.get(),
397 media::MediaContentType::Persistent);
398 StartNewPlayer(media_session_observer_2.get(),
399 media::MediaContentType::Persistent);
368 400
369 RemovePlayers(media_session_observer_1.get()); 401 RemovePlayers(media_session_observer_1.get());
370 EXPECT_TRUE(HasAudioFocus()); 402 EXPECT_TRUE(HasAudioFocus());
371 RemovePlayers(media_session_observer_2.get()); 403 RemovePlayers(media_session_observer_2.get());
372 EXPECT_FALSE(HasAudioFocus()); 404 EXPECT_FALSE(HasAudioFocus());
373 } 405 }
374 406
375 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ResumePlayGivesAudioFocus) { 407 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ResumePlayGivesAudioFocus) {
376 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 408 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
377 new MockMediaSessionObserver); 409 new MockMediaSessionObserver);
378 410
379 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 411 StartNewPlayer(media_session_observer.get(),
412 media::MediaContentType::Persistent);
380 413
381 RemovePlayer(media_session_observer.get(), 0); 414 RemovePlayer(media_session_observer.get(), 0);
382 EXPECT_FALSE(HasAudioFocus()); 415 EXPECT_FALSE(HasAudioFocus());
383 416
384 EXPECT_TRUE( 417 EXPECT_TRUE(AddPlayer(media_session_observer.get(), 0,
385 AddPlayer(media_session_observer.get(), 0, MediaSession::Type::Content)); 418 media::MediaContentType::Persistent));
386 EXPECT_TRUE(HasAudioFocus()); 419 EXPECT_TRUE(HasAudioFocus());
387 } 420 }
388 421
389 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 422 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
390 ResumeSuspendAreSentOnlyOncePerPlayers) { 423 ResumeSuspendAreSentOnlyOncePerPlayers) {
391 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 424 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
392 new MockMediaSessionObserver); 425 new MockMediaSessionObserver);
393 426
394 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 427 StartNewPlayer(media_session_observer.get(),
395 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 428 media::MediaContentType::Persistent);
396 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 429 StartNewPlayer(media_session_observer.get(),
430 media::MediaContentType::Persistent);
431 StartNewPlayer(media_session_observer.get(),
432 media::MediaContentType::Persistent);
397 433
398 EXPECT_EQ(0, media_session_observer->received_suspend_calls()); 434 EXPECT_EQ(0, media_session_observer->received_suspend_calls());
399 EXPECT_EQ(0, media_session_observer->received_resume_calls()); 435 EXPECT_EQ(0, media_session_observer->received_resume_calls());
400 436
401 SystemSuspend(true); 437 SystemSuspend(true);
402 EXPECT_EQ(3, media_session_observer->received_suspend_calls()); 438 EXPECT_EQ(3, media_session_observer->received_suspend_calls());
403 439
404 SystemResume(); 440 SystemResume();
405 EXPECT_EQ(3, media_session_observer->received_resume_calls()); 441 EXPECT_EQ(3, media_session_observer->received_resume_calls());
406 } 442 }
407 443
408 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 444 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
409 ResumeSuspendAreSentOnlyOncePerPlayersAddedTwice) { 445 ResumeSuspendAreSentOnlyOncePerPlayersAddedTwice) {
410 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 446 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
411 new MockMediaSessionObserver); 447 new MockMediaSessionObserver);
412 448
413 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 449 StartNewPlayer(media_session_observer.get(),
414 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 450 media::MediaContentType::Persistent);
415 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 451 StartNewPlayer(media_session_observer.get(),
452 media::MediaContentType::Persistent);
453 StartNewPlayer(media_session_observer.get(),
454 media::MediaContentType::Persistent);
416 455
417 // Adding the three players above again. 456 // Adding the three players above again.
418 EXPECT_TRUE( 457 EXPECT_TRUE(AddPlayer(media_session_observer.get(), 0,
419 AddPlayer(media_session_observer.get(), 0, MediaSession::Type::Content)); 458 media::MediaContentType::Persistent));
420 EXPECT_TRUE( 459 EXPECT_TRUE(AddPlayer(media_session_observer.get(), 1,
421 AddPlayer(media_session_observer.get(), 1, MediaSession::Type::Content)); 460 media::MediaContentType::Persistent));
422 EXPECT_TRUE( 461 EXPECT_TRUE(AddPlayer(media_session_observer.get(), 2,
423 AddPlayer(media_session_observer.get(), 2, MediaSession::Type::Content)); 462 media::MediaContentType::Persistent));
424 463
425 EXPECT_EQ(0, media_session_observer->received_suspend_calls()); 464 EXPECT_EQ(0, media_session_observer->received_suspend_calls());
426 EXPECT_EQ(0, media_session_observer->received_resume_calls()); 465 EXPECT_EQ(0, media_session_observer->received_resume_calls());
427 466
428 SystemSuspend(true); 467 SystemSuspend(true);
429 EXPECT_EQ(3, media_session_observer->received_suspend_calls()); 468 EXPECT_EQ(3, media_session_observer->received_suspend_calls());
430 469
431 SystemResume(); 470 SystemResume();
432 EXPECT_EQ(3, media_session_observer->received_resume_calls()); 471 EXPECT_EQ(3, media_session_observer->received_resume_calls());
433 } 472 }
434 473
435 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 474 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
436 RemovingTheSamePlayerTwiceIsANoop) { 475 RemovingTheSamePlayerTwiceIsANoop) {
437 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 476 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
438 new MockMediaSessionObserver); 477 new MockMediaSessionObserver);
439 478
440 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 479 StartNewPlayer(media_session_observer.get(),
480 media::MediaContentType::Persistent);
441 481
442 RemovePlayer(media_session_observer.get(), 0); 482 RemovePlayer(media_session_observer.get(), 0);
443 RemovePlayer(media_session_observer.get(), 0); 483 RemovePlayer(media_session_observer.get(), 0);
444 } 484 }
445 485
446 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, MediaSessionType) { 486 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, AudioFocusType) {
447 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 487 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
448 new MockMediaSessionObserver); 488 new MockMediaSessionObserver);
449 489
450 // Starting a player with a given type should set the session to that type. 490 // Starting a player with a given type should set the session to that type.
451 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient); 491 StartNewPlayer(media_session_observer.get(),
452 EXPECT_EQ(MediaSession::Type::Transient, GetSessionType()); 492 media::MediaContentType::Transient);
493 EXPECT_EQ(content::AudioFocusManager::AudioFocusType::GainTransientMayDuck,
494 GetSessionAudioFocusType());
453 495
454 // Adding a player of the same type should have no effect on the type. 496 // Adding a player of the same type should have no effect on the type.
455 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient); 497 StartNewPlayer(media_session_observer.get(),
456 EXPECT_EQ(MediaSession::Type::Transient, GetSessionType()); 498 media::MediaContentType::Transient);
499 EXPECT_EQ(content::AudioFocusManager::AudioFocusType::GainTransientMayDuck,
500 GetSessionAudioFocusType());
457 501
458 // Adding a player of Content type should override the current type. 502 // Adding a player of Content type should override the current type.
459 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 503 StartNewPlayer(media_session_observer.get(),
460 EXPECT_EQ(MediaSession::Type::Content, GetSessionType()); 504 media::MediaContentType::Persistent);
505 EXPECT_EQ(content::AudioFocusManager::AudioFocusType::Gain,
506 GetSessionAudioFocusType());
461 507
462 // Adding a player of the Transient type should have no effect on the type. 508 // Adding a player of the Transient type should have no effect on the type.
463 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient); 509 StartNewPlayer(media_session_observer.get(),
464 EXPECT_EQ(MediaSession::Type::Content, GetSessionType()); 510 media::MediaContentType::Transient);
511 EXPECT_EQ(content::AudioFocusManager::AudioFocusType::Gain,
512 GetSessionAudioFocusType());
465 513
466 EXPECT_TRUE(media_session_observer->IsPlaying(0)); 514 EXPECT_TRUE(media_session_observer->IsPlaying(0));
467 EXPECT_TRUE(media_session_observer->IsPlaying(1)); 515 EXPECT_TRUE(media_session_observer->IsPlaying(1));
468 EXPECT_TRUE(media_session_observer->IsPlaying(2)); 516 EXPECT_TRUE(media_session_observer->IsPlaying(2));
469 EXPECT_TRUE(media_session_observer->IsPlaying(3)); 517 EXPECT_TRUE(media_session_observer->IsPlaying(3));
470 518
471 SystemSuspend(true); 519 SystemSuspend(true);
472 520
473 EXPECT_FALSE(media_session_observer->IsPlaying(0)); 521 EXPECT_FALSE(media_session_observer->IsPlaying(0));
474 EXPECT_FALSE(media_session_observer->IsPlaying(1)); 522 EXPECT_FALSE(media_session_observer->IsPlaying(1));
475 EXPECT_FALSE(media_session_observer->IsPlaying(2)); 523 EXPECT_FALSE(media_session_observer->IsPlaying(2));
476 EXPECT_FALSE(media_session_observer->IsPlaying(3)); 524 EXPECT_FALSE(media_session_observer->IsPlaying(3));
477 525
478 EXPECT_EQ(MediaSession::Type::Content, GetSessionType()); 526 EXPECT_EQ(content::AudioFocusManager::AudioFocusType::Gain,
527 GetSessionAudioFocusType());
479 528
480 SystemResume(); 529 SystemResume();
481 530
482 EXPECT_TRUE(media_session_observer->IsPlaying(0)); 531 EXPECT_TRUE(media_session_observer->IsPlaying(0));
483 EXPECT_TRUE(media_session_observer->IsPlaying(1)); 532 EXPECT_TRUE(media_session_observer->IsPlaying(1));
484 EXPECT_TRUE(media_session_observer->IsPlaying(2)); 533 EXPECT_TRUE(media_session_observer->IsPlaying(2));
485 EXPECT_TRUE(media_session_observer->IsPlaying(3)); 534 EXPECT_TRUE(media_session_observer->IsPlaying(3));
486 535
487 EXPECT_EQ(MediaSession::Type::Content, GetSessionType()); 536 EXPECT_EQ(content::AudioFocusManager::AudioFocusType::Gain,
537 GetSessionAudioFocusType());
488 } 538 }
489 539
490 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsShowForContent) { 540 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsShowForContent) {
491 EXPECT_CALL(*mock_web_contents_observer(), 541 EXPECT_CALL(*mock_web_contents_observer(),
492 MediaSessionStateChanged(true, false, testing::_)); 542 MediaSessionStateChanged(true, false, testing::_));
493 543
494 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 544 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
495 new MockMediaSessionObserver); 545 new MockMediaSessionObserver);
496 546
497 // Starting a player with a content type should show the media controls. 547 // Starting a player with a content type should show the media controls.
498 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 548 StartNewPlayer(media_session_observer.get(),
549 media::MediaContentType::Persistent);
499 550
500 EXPECT_TRUE(IsControllable()); 551 EXPECT_TRUE(IsControllable());
501 EXPECT_FALSE(IsSuspended()); 552 EXPECT_FALSE(IsSuspended());
502 } 553 }
503 554
504 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsNoShowForTransient) { 555 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsNoShowForTransient) {
505 EXPECT_CALL(*mock_web_contents_observer(), 556 EXPECT_CALL(*mock_web_contents_observer(),
506 MediaSessionStateChanged(false, false, testing::_)); 557 MediaSessionStateChanged(false, false, testing::_));
507 558
508 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 559 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
509 new MockMediaSessionObserver); 560 new MockMediaSessionObserver);
510 561
511 // Starting a player with a transient type should not show the media controls. 562 // Starting a player with a transient type should not show the media controls.
512 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient); 563 StartNewPlayer(media_session_observer.get(),
564 media::MediaContentType::Transient);
513 565
514 EXPECT_FALSE(IsControllable()); 566 EXPECT_FALSE(IsControllable());
515 EXPECT_FALSE(IsSuspended()); 567 EXPECT_FALSE(IsSuspended());
516 } 568 }
517 569
518 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsHideWhenStopped) { 570 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsHideWhenStopped) {
519 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 571 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
520 MediaSessionStateChanged(true, false, testing::_)); 572 MediaSessionStateChanged(true, false, testing::_));
521 EXPECT_CALL(*mock_web_contents_observer(), 573 EXPECT_CALL(*mock_web_contents_observer(),
522 MediaSessionStateChanged(false, true, testing::_)) 574 MediaSessionStateChanged(false, true, testing::_))
523 .After(showControls); 575 .After(showControls);
524 576
525 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 577 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
526 new MockMediaSessionObserver); 578 new MockMediaSessionObserver);
527 579
528 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 580 StartNewPlayer(media_session_observer.get(),
581 media::MediaContentType::Persistent);
529 582
530 RemovePlayers(media_session_observer.get()); 583 RemovePlayers(media_session_observer.get());
531 584
532 EXPECT_FALSE(IsControllable()); 585 EXPECT_FALSE(IsControllable());
533 EXPECT_TRUE(IsSuspended()); 586 EXPECT_TRUE(IsSuspended());
534 } 587 }
535 588
536 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsShownAcceptTransient) { 589 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsShownAcceptTransient) {
537 EXPECT_CALL(*mock_web_contents_observer(), 590 EXPECT_CALL(*mock_web_contents_observer(),
538 MediaSessionStateChanged(true, false, testing::_)); 591 MediaSessionStateChanged(true, false, testing::_));
539 592
540 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 593 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
541 new MockMediaSessionObserver); 594 new MockMediaSessionObserver);
542 595
543 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 596 StartNewPlayer(media_session_observer.get(),
597 media::MediaContentType::Persistent);
544 598
545 // Transient player join the session without affecting the controls. 599 // Transient player join the session without affecting the controls.
546 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient); 600 StartNewPlayer(media_session_observer.get(),
601 media::MediaContentType::Transient);
547 602
548 EXPECT_TRUE(IsControllable()); 603 EXPECT_TRUE(IsControllable());
549 EXPECT_FALSE(IsSuspended()); 604 EXPECT_FALSE(IsSuspended());
550 } 605 }
551 606
552 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 607 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
553 ControlsShownAfterContentAdded) { 608 ControlsShownAfterContentAdded) {
554 Expectation dontShowControls = EXPECT_CALL(*mock_web_contents_observer(), 609 Expectation dontShowControls = EXPECT_CALL(*mock_web_contents_observer(),
555 MediaSessionStateChanged(false, false, testing::_)); 610 MediaSessionStateChanged(false, false, testing::_));
556 EXPECT_CALL(*mock_web_contents_observer(), 611 EXPECT_CALL(*mock_web_contents_observer(),
557 MediaSessionStateChanged(true, false, testing::_)) 612 MediaSessionStateChanged(true, false, testing::_))
558 .After(dontShowControls); 613 .After(dontShowControls);
559 614
560 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 615 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
561 new MockMediaSessionObserver); 616 new MockMediaSessionObserver);
562 617
563 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient); 618 StartNewPlayer(media_session_observer.get(),
619 media::MediaContentType::Transient);
564 620
565 // The controls are shown when the content player is added. 621 // The controls are shown when the content player is added.
566 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 622 StartNewPlayer(media_session_observer.get(),
623 media::MediaContentType::Persistent);
567 624
568 EXPECT_TRUE(IsControllable()); 625 EXPECT_TRUE(IsControllable());
569 EXPECT_FALSE(IsSuspended()); 626 EXPECT_FALSE(IsSuspended());
570 } 627 }
571 628
572 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 629 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
573 ControlsStayIfOnlyOnePlayerHasBeenPaused) { 630 ControlsStayIfOnlyOnePlayerHasBeenPaused) {
574 EXPECT_CALL(*mock_web_contents_observer(), 631 EXPECT_CALL(*mock_web_contents_observer(),
575 MediaSessionStateChanged(true, false, testing::_)); 632 MediaSessionStateChanged(true, false, testing::_));
576 633
577 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 634 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
578 new MockMediaSessionObserver); 635 new MockMediaSessionObserver);
579 636
580 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 637 StartNewPlayer(media_session_observer.get(),
581 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient); 638 media::MediaContentType::Persistent);
639 StartNewPlayer(media_session_observer.get(),
640 media::MediaContentType::Transient);
582 641
583 // Removing only content player doesn't hide the controls since the session 642 // Removing only content player doesn't hide the controls since the session
584 // is still active. 643 // is still active.
585 RemovePlayer(media_session_observer.get(), 0); 644 RemovePlayer(media_session_observer.get(), 0);
586 645
587 EXPECT_TRUE(IsControllable()); 646 EXPECT_TRUE(IsControllable());
588 EXPECT_FALSE(IsSuspended()); 647 EXPECT_FALSE(IsSuspended());
589 } 648 }
590 649
591 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 650 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
592 ControlsHideWhenTheLastPlayerIsRemoved) { 651 ControlsHideWhenTheLastPlayerIsRemoved) {
593 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 652 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
594 MediaSessionStateChanged(true, false, testing::_)); 653 MediaSessionStateChanged(true, false, testing::_));
595 EXPECT_CALL(*mock_web_contents_observer(), 654 EXPECT_CALL(*mock_web_contents_observer(),
596 MediaSessionStateChanged(false, true, testing::_)) 655 MediaSessionStateChanged(false, true, testing::_))
597 .After(showControls); 656 .After(showControls);
598 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 657 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
599 new MockMediaSessionObserver); 658 new MockMediaSessionObserver);
600 659
601 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 660 StartNewPlayer(media_session_observer.get(),
602 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 661 media::MediaContentType::Persistent);
662 StartNewPlayer(media_session_observer.get(),
663 media::MediaContentType::Persistent);
603 664
604 RemovePlayer(media_session_observer.get(), 0); 665 RemovePlayer(media_session_observer.get(), 0);
605 666
606 EXPECT_TRUE(IsControllable()); 667 EXPECT_TRUE(IsControllable());
607 EXPECT_FALSE(IsSuspended()); 668 EXPECT_FALSE(IsSuspended());
608 669
609 RemovePlayer(media_session_observer.get(), 1); 670 RemovePlayer(media_session_observer.get(), 1);
610 671
611 EXPECT_FALSE(IsControllable()); 672 EXPECT_FALSE(IsControllable());
612 EXPECT_TRUE(IsSuspended()); 673 EXPECT_TRUE(IsSuspended());
613 } 674 }
614 675
615 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 676 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
616 ControlsHideWhenAllThePlayersAreRemoved) { 677 ControlsHideWhenAllThePlayersAreRemoved) {
617 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 678 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
618 MediaSessionStateChanged(true, false, testing::_)); 679 MediaSessionStateChanged(true, false, testing::_));
619 EXPECT_CALL(*mock_web_contents_observer(), 680 EXPECT_CALL(*mock_web_contents_observer(),
620 MediaSessionStateChanged(false, true, testing::_)) 681 MediaSessionStateChanged(false, true, testing::_))
621 .After(showControls); 682 .After(showControls);
622 683
623 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 684 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
624 new MockMediaSessionObserver); 685 new MockMediaSessionObserver);
625 686
626 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 687 StartNewPlayer(media_session_observer.get(),
627 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 688 media::MediaContentType::Persistent);
689 StartNewPlayer(media_session_observer.get(),
690 media::MediaContentType::Persistent);
628 691
629 RemovePlayers(media_session_observer.get()); 692 RemovePlayers(media_session_observer.get());
630 693
631 EXPECT_FALSE(IsControllable()); 694 EXPECT_FALSE(IsControllable());
632 EXPECT_TRUE(IsSuspended()); 695 EXPECT_TRUE(IsSuspended());
633 } 696 }
634 697
635 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 698 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
636 ControlsNotHideWhenTheLastPlayerIsPaused) { 699 ControlsNotHideWhenTheLastPlayerIsPaused) {
637 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 700 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
638 MediaSessionStateChanged(true, false, testing::_)); 701 MediaSessionStateChanged(true, false, testing::_));
639 EXPECT_CALL(*mock_web_contents_observer(), 702 EXPECT_CALL(*mock_web_contents_observer(),
640 MediaSessionStateChanged(true, true, testing::_)) 703 MediaSessionStateChanged(true, true, testing::_))
641 .After(showControls); 704 .After(showControls);
642 705
643 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 706 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
644 new MockMediaSessionObserver); 707 new MockMediaSessionObserver);
645 708
646 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 709 StartNewPlayer(media_session_observer.get(),
647 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 710 media::MediaContentType::Persistent);
711 StartNewPlayer(media_session_observer.get(),
712 media::MediaContentType::Persistent);
648 713
649 OnPlayerPaused(media_session_observer.get(), 0); 714 OnPlayerPaused(media_session_observer.get(), 0);
650 715
651 EXPECT_TRUE(IsControllable()); 716 EXPECT_TRUE(IsControllable());
652 EXPECT_FALSE(IsSuspended()); 717 EXPECT_FALSE(IsSuspended());
653 718
654 OnPlayerPaused(media_session_observer.get(), 1); 719 OnPlayerPaused(media_session_observer.get(), 1);
655 720
656 EXPECT_TRUE(IsControllable()); 721 EXPECT_TRUE(IsControllable());
657 EXPECT_TRUE(IsSuspended()); 722 EXPECT_TRUE(IsSuspended());
658 } 723 }
659 724
660 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 725 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
661 SuspendTemporaryUpdatesControls) { 726 SuspendTemporaryUpdatesControls) {
662 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 727 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
663 MediaSessionStateChanged(true, false, testing::_)); 728 MediaSessionStateChanged(true, false, testing::_));
664 EXPECT_CALL(*mock_web_contents_observer(), 729 EXPECT_CALL(*mock_web_contents_observer(),
665 MediaSessionStateChanged(true, true, testing::_)) 730 MediaSessionStateChanged(true, true, testing::_))
666 .After(showControls); 731 .After(showControls);
667 732
668 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 733 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
669 new MockMediaSessionObserver); 734 new MockMediaSessionObserver);
670 735
671 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 736 StartNewPlayer(media_session_observer.get(),
737 media::MediaContentType::Persistent);
672 738
673 SystemSuspend(true); 739 SystemSuspend(true);
674 740
675 EXPECT_TRUE(IsControllable()); 741 EXPECT_TRUE(IsControllable());
676 EXPECT_TRUE(IsSuspended()); 742 EXPECT_TRUE(IsSuspended());
677 } 743 }
678 744
679 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsUpdatedWhenResumed) { 745 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ControlsUpdatedWhenResumed) {
680 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 746 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
681 MediaSessionStateChanged(true, false, testing::_)); 747 MediaSessionStateChanged(true, false, testing::_));
682 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(), 748 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
683 MediaSessionStateChanged(true, true, testing::_)).After(showControls); 749 MediaSessionStateChanged(true, true, testing::_)).After(showControls);
684 EXPECT_CALL(*mock_web_contents_observer(), 750 EXPECT_CALL(*mock_web_contents_observer(),
685 MediaSessionStateChanged(true, false, testing::_)) 751 MediaSessionStateChanged(true, false, testing::_))
686 .After(pauseControls); 752 .After(pauseControls);
687 753
688 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 754 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
689 new MockMediaSessionObserver); 755 new MockMediaSessionObserver);
690 756
691 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 757 StartNewPlayer(media_session_observer.get(),
758 media::MediaContentType::Persistent);
692 SystemSuspend(true); 759 SystemSuspend(true);
693 SystemResume(); 760 SystemResume();
694 761
695 EXPECT_TRUE(IsControllable()); 762 EXPECT_TRUE(IsControllable());
696 EXPECT_FALSE(IsSuspended()); 763 EXPECT_FALSE(IsSuspended());
697 } 764 }
698 765
699 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 766 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
700 ControlsHideWhenSessionSuspendedPermanently) { 767 ControlsHideWhenSessionSuspendedPermanently) {
701 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 768 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
702 MediaSessionStateChanged(true, false, testing::_)); 769 MediaSessionStateChanged(true, false, testing::_));
703 EXPECT_CALL(*mock_web_contents_observer(), 770 EXPECT_CALL(*mock_web_contents_observer(),
704 MediaSessionStateChanged(false, true, testing::_)) 771 MediaSessionStateChanged(false, true, testing::_))
705 .After(showControls); 772 .After(showControls);
706 773
707 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 774 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
708 new MockMediaSessionObserver); 775 new MockMediaSessionObserver);
709 776
710 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 777 StartNewPlayer(media_session_observer.get(),
778 media::MediaContentType::Persistent);
711 779
712 SystemSuspend(false); 780 SystemSuspend(false);
713 781
714 EXPECT_FALSE(IsControllable()); 782 EXPECT_FALSE(IsControllable());
715 EXPECT_TRUE(IsSuspended()); 783 EXPECT_TRUE(IsSuspended());
716 } 784 }
717 785
718 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 786 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
719 ConstrolsHideWhenSessionStops) { 787 ConstrolsHideWhenSessionStops) {
720 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 788 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
721 MediaSessionStateChanged(true, false, testing::_)); 789 MediaSessionStateChanged(true, false, testing::_));
722 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(), 790 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
723 MediaSessionStateChanged(true, true, testing::_)).After(showControls); 791 MediaSessionStateChanged(true, true, testing::_)).After(showControls);
724 EXPECT_CALL(*mock_web_contents_observer(), 792 EXPECT_CALL(*mock_web_contents_observer(),
725 MediaSessionStateChanged(false, true, testing::_)) 793 MediaSessionStateChanged(false, true, testing::_))
726 .After(pauseControls); 794 .After(pauseControls);
727 795
728 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 796 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
729 new MockMediaSessionObserver); 797 new MockMediaSessionObserver);
730 798
731 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 799 StartNewPlayer(media_session_observer.get(),
800 media::MediaContentType::Persistent);
732 801
733 media_session_->Stop(MediaSession::SuspendType::UI); 802 media_session_->Stop(MediaSession::SuspendType::UI);
734 803
735 EXPECT_FALSE(IsControllable()); 804 EXPECT_FALSE(IsControllable());
736 EXPECT_TRUE(IsSuspended()); 805 EXPECT_TRUE(IsSuspended());
737 } 806 }
738 807
739 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 808 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
740 ControlsHideWhenSessionChangesFromContentToTransient) { 809 ControlsHideWhenSessionChangesFromContentToTransient) {
741 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 810 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
742 MediaSessionStateChanged(true, false, testing::_)); 811 MediaSessionStateChanged(true, false, testing::_));
743 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(), 812 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
744 MediaSessionStateChanged(true, true, testing::_)).After(showControls); 813 MediaSessionStateChanged(true, true, testing::_)).After(showControls);
745 EXPECT_CALL(*mock_web_contents_observer(), 814 EXPECT_CALL(*mock_web_contents_observer(),
746 MediaSessionStateChanged(false, false, testing::_)) 815 MediaSessionStateChanged(false, false, testing::_))
747 .After(pauseControls); 816 .After(pauseControls);
748 817
749 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 818 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
750 new MockMediaSessionObserver); 819 new MockMediaSessionObserver);
751 820
752 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 821 StartNewPlayer(media_session_observer.get(),
822 media::MediaContentType::Persistent);
753 SystemSuspend(true); 823 SystemSuspend(true);
754 824
755 // This should reset the session and change it to a transient, so 825 // This should reset the session and change it to a transient, so
756 // hide the controls. 826 // hide the controls.
757 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Transient); 827 StartNewPlayer(media_session_observer.get(),
828 media::MediaContentType::Transient);
758 829
759 EXPECT_FALSE(IsControllable()); 830 EXPECT_FALSE(IsControllable());
760 EXPECT_FALSE(IsSuspended()); 831 EXPECT_FALSE(IsSuspended());
761 } 832 }
762 833
763 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 834 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
764 ControlsUpdatedWhenNewPlayerResetsSession) { 835 ControlsUpdatedWhenNewPlayerResetsSession) {
765 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 836 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
766 MediaSessionStateChanged(true, false, testing::_)); 837 MediaSessionStateChanged(true, false, testing::_));
767 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(), 838 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
768 MediaSessionStateChanged(true, true, testing::_)).After(showControls); 839 MediaSessionStateChanged(true, true, testing::_)).After(showControls);
769 EXPECT_CALL(*mock_web_contents_observer(), 840 EXPECT_CALL(*mock_web_contents_observer(),
770 MediaSessionStateChanged(true, false, testing::_)) 841 MediaSessionStateChanged(true, false, testing::_))
771 .After(pauseControls); 842 .After(pauseControls);
772 843
773 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 844 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
774 new MockMediaSessionObserver); 845 new MockMediaSessionObserver);
775 846
776 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 847 StartNewPlayer(media_session_observer.get(),
848 media::MediaContentType::Persistent);
777 SystemSuspend(true); 849 SystemSuspend(true);
778 850
779 // This should reset the session and update the controls. 851 // This should reset the session and update the controls.
780 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 852 StartNewPlayer(media_session_observer.get(),
853 media::MediaContentType::Persistent);
781 854
782 EXPECT_TRUE(IsControllable()); 855 EXPECT_TRUE(IsControllable());
783 EXPECT_FALSE(IsSuspended()); 856 EXPECT_FALSE(IsSuspended());
784 } 857 }
785 858
786 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 859 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
787 ControlsResumedWhenPlayerIsResumed) { 860 ControlsResumedWhenPlayerIsResumed) {
788 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 861 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
789 MediaSessionStateChanged(true, false, testing::_)); 862 MediaSessionStateChanged(true, false, testing::_));
790 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(), 863 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
791 MediaSessionStateChanged(true, true, testing::_)).After(showControls); 864 MediaSessionStateChanged(true, true, testing::_)).After(showControls);
792 EXPECT_CALL(*mock_web_contents_observer(), 865 EXPECT_CALL(*mock_web_contents_observer(),
793 MediaSessionStateChanged(true, false, testing::_)) 866 MediaSessionStateChanged(true, false, testing::_))
794 .After(pauseControls); 867 .After(pauseControls);
795 868
796 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 869 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
797 new MockMediaSessionObserver); 870 new MockMediaSessionObserver);
798 871
799 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 872 StartNewPlayer(media_session_observer.get(),
873 media::MediaContentType::Persistent);
800 SystemSuspend(true); 874 SystemSuspend(true);
801 875
802 // This should resume the session and update the controls. 876 // This should resume the session and update the controls.
803 AddPlayer(media_session_observer.get(), 0, MediaSession::Type::Content); 877 AddPlayer(media_session_observer.get(), 0,
878 media::MediaContentType::Persistent);
804 879
805 EXPECT_TRUE(IsControllable()); 880 EXPECT_TRUE(IsControllable());
806 EXPECT_FALSE(IsSuspended()); 881 EXPECT_FALSE(IsSuspended());
807 } 882 }
808 883
809 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 884 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
810 ControlsUpdatedDueToResumeSessionAction) { 885 ControlsUpdatedDueToResumeSessionAction) {
811 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 886 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
812 MediaSessionStateChanged(true, false, testing::_)); 887 MediaSessionStateChanged(true, false, testing::_));
813 EXPECT_CALL(*mock_web_contents_observer(), 888 EXPECT_CALL(*mock_web_contents_observer(),
814 MediaSessionStateChanged(true, true, testing::_)) 889 MediaSessionStateChanged(true, true, testing::_))
815 .After(showControls); 890 .After(showControls);
816 891
817 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 892 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
818 new MockMediaSessionObserver); 893 new MockMediaSessionObserver);
819 894
820 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 895 StartNewPlayer(media_session_observer.get(),
896 media::MediaContentType::Persistent);
821 UISuspend(); 897 UISuspend();
822 898
823 EXPECT_TRUE(IsControllable()); 899 EXPECT_TRUE(IsControllable());
824 EXPECT_TRUE(IsSuspended()); 900 EXPECT_TRUE(IsSuspended());
825 } 901 }
826 902
827 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 903 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
828 ControlsUpdatedDueToSuspendSessionAction) { 904 ControlsUpdatedDueToSuspendSessionAction) {
829 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(), 905 Expectation showControls = EXPECT_CALL(*mock_web_contents_observer(),
830 MediaSessionStateChanged(true, false, testing::_)); 906 MediaSessionStateChanged(true, false, testing::_));
831 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(), 907 Expectation pauseControls = EXPECT_CALL(*mock_web_contents_observer(),
832 MediaSessionStateChanged(true, true, testing::_)).After(showControls); 908 MediaSessionStateChanged(true, true, testing::_)).After(showControls);
833 EXPECT_CALL(*mock_web_contents_observer(), 909 EXPECT_CALL(*mock_web_contents_observer(),
834 MediaSessionStateChanged(true, false, testing::_)) 910 MediaSessionStateChanged(true, false, testing::_))
835 .After(pauseControls); 911 .After(pauseControls);
836 912
837 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 913 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
838 new MockMediaSessionObserver); 914 new MockMediaSessionObserver);
839 915
840 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 916 StartNewPlayer(media_session_observer.get(),
917 media::MediaContentType::Persistent);
841 UISuspend(); 918 UISuspend();
842 UIResume(); 919 UIResume();
843 920
844 EXPECT_TRUE(IsControllable()); 921 EXPECT_TRUE(IsControllable());
845 EXPECT_FALSE(IsSuspended()); 922 EXPECT_FALSE(IsSuspended());
846 } 923 }
847 924
848 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 925 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
849 DontResumeBySystemUISuspendedSessions) { 926 DontResumeBySystemUISuspendedSessions) {
850 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 927 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
851 new MockMediaSessionObserver); 928 new MockMediaSessionObserver);
852 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 929 StartNewPlayer(media_session_observer.get(),
930 media::MediaContentType::Persistent);
853 931
854 UISuspend(); 932 UISuspend();
855 EXPECT_TRUE(IsControllable()); 933 EXPECT_TRUE(IsControllable());
856 EXPECT_TRUE(IsSuspended()); 934 EXPECT_TRUE(IsSuspended());
857 935
858 SystemResume(); 936 SystemResume();
859 EXPECT_TRUE(IsControllable()); 937 EXPECT_TRUE(IsControllable());
860 EXPECT_TRUE(IsSuspended()); 938 EXPECT_TRUE(IsSuspended());
861 } 939 }
862 940
863 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 941 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
864 AllowUIResumeForSystemSuspend) { 942 AllowUIResumeForSystemSuspend) {
865 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 943 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
866 new MockMediaSessionObserver); 944 new MockMediaSessionObserver);
867 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 945 StartNewPlayer(media_session_observer.get(),
946 media::MediaContentType::Persistent);
868 947
869 SystemSuspend(true); 948 SystemSuspend(true);
870 EXPECT_TRUE(IsControllable()); 949 EXPECT_TRUE(IsControllable());
871 EXPECT_TRUE(IsSuspended()); 950 EXPECT_TRUE(IsSuspended());
872 951
873 UIResume(); 952 UIResume();
874 EXPECT_TRUE(IsControllable()); 953 EXPECT_TRUE(IsControllable());
875 EXPECT_FALSE(IsSuspended()); 954 EXPECT_FALSE(IsSuspended());
876 } 955 }
877 956
878 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ResumeSuspendFromUI) { 957 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ResumeSuspendFromUI) {
879 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 958 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
880 new MockMediaSessionObserver); 959 new MockMediaSessionObserver);
881 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 960 StartNewPlayer(media_session_observer.get(),
961 media::MediaContentType::Persistent);
882 962
883 UISuspend(); 963 UISuspend();
884 EXPECT_TRUE(IsControllable()); 964 EXPECT_TRUE(IsControllable());
885 EXPECT_TRUE(IsSuspended()); 965 EXPECT_TRUE(IsSuspended());
886 966
887 UIResume(); 967 UIResume();
888 EXPECT_TRUE(IsControllable()); 968 EXPECT_TRUE(IsControllable());
889 EXPECT_FALSE(IsSuspended()); 969 EXPECT_FALSE(IsSuspended());
890 } 970 }
891 971
892 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ResumeSuspendFromSystem) { 972 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, ResumeSuspendFromSystem) {
893 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 973 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
894 new MockMediaSessionObserver); 974 new MockMediaSessionObserver);
895 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 975 StartNewPlayer(media_session_observer.get(),
976 media::MediaContentType::Persistent);
896 977
897 SystemSuspend(true); 978 SystemSuspend(true);
898 EXPECT_TRUE(IsControllable()); 979 EXPECT_TRUE(IsControllable());
899 EXPECT_TRUE(IsSuspended()); 980 EXPECT_TRUE(IsSuspended());
900 981
901 SystemResume(); 982 SystemResume();
902 EXPECT_TRUE(IsControllable()); 983 EXPECT_TRUE(IsControllable());
903 EXPECT_FALSE(IsSuspended()); 984 EXPECT_FALSE(IsSuspended());
904 } 985 }
905 986
906 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, UMA_Suspended_SystemTransient) { 987 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, UMA_Suspended_SystemTransient) {
907 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 988 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
908 new MockMediaSessionObserver); 989 new MockMediaSessionObserver);
909 base::HistogramTester tester; 990 base::HistogramTester tester;
910 991
911 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 992 StartNewPlayer(media_session_observer.get(),
993 media::MediaContentType::Persistent);
912 SystemSuspend(true); 994 SystemSuspend(true);
913 995
914 std::unique_ptr<base::HistogramSamples> samples( 996 std::unique_ptr<base::HistogramSamples> samples(
915 tester.GetHistogramSamplesSinceCreation("Media.Session.Suspended")); 997 tester.GetHistogramSamplesSinceCreation("Media.Session.Suspended"));
916 EXPECT_EQ(1, samples->TotalCount()); 998 EXPECT_EQ(1, samples->TotalCount());
917 EXPECT_EQ(1, samples->GetCount(0)); // System Transient 999 EXPECT_EQ(1, samples->GetCount(0)); // System Transient
918 EXPECT_EQ(0, samples->GetCount(1)); // System Permanent 1000 EXPECT_EQ(0, samples->GetCount(1)); // System Permanent
919 EXPECT_EQ(0, samples->GetCount(2)); // UI 1001 EXPECT_EQ(0, samples->GetCount(2)); // UI
920 } 1002 }
921 1003
922 1004
923 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 1005 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
924 UMA_Suspended_SystemPermantent) { 1006 UMA_Suspended_SystemPermantent) {
925 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 1007 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
926 new MockMediaSessionObserver); 1008 new MockMediaSessionObserver);
927 base::HistogramTester tester; 1009 base::HistogramTester tester;
928 1010
929 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 1011 StartNewPlayer(media_session_observer.get(),
1012 media::MediaContentType::Persistent);
930 SystemSuspend(false); 1013 SystemSuspend(false);
931 1014
932 std::unique_ptr<base::HistogramSamples> samples( 1015 std::unique_ptr<base::HistogramSamples> samples(
933 tester.GetHistogramSamplesSinceCreation("Media.Session.Suspended")); 1016 tester.GetHistogramSamplesSinceCreation("Media.Session.Suspended"));
934 EXPECT_EQ(1, samples->TotalCount()); 1017 EXPECT_EQ(1, samples->TotalCount());
935 EXPECT_EQ(0, samples->GetCount(0)); // System Transient 1018 EXPECT_EQ(0, samples->GetCount(0)); // System Transient
936 EXPECT_EQ(1, samples->GetCount(1)); // System Permanent 1019 EXPECT_EQ(1, samples->GetCount(1)); // System Permanent
937 EXPECT_EQ(0, samples->GetCount(2)); // UI 1020 EXPECT_EQ(0, samples->GetCount(2)); // UI
938 } 1021 }
939 1022
940 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, UMA_Suspended_UI) { 1023 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, UMA_Suspended_UI) {
941 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 1024 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
942 new MockMediaSessionObserver); 1025 new MockMediaSessionObserver);
943 base::HistogramTester tester; 1026 base::HistogramTester tester;
944 1027
945 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 1028 StartNewPlayer(media_session_observer.get(),
1029 media::MediaContentType::Persistent);
946 UISuspend(); 1030 UISuspend();
947 1031
948 std::unique_ptr<base::HistogramSamples> samples( 1032 std::unique_ptr<base::HistogramSamples> samples(
949 tester.GetHistogramSamplesSinceCreation("Media.Session.Suspended")); 1033 tester.GetHistogramSamplesSinceCreation("Media.Session.Suspended"));
950 EXPECT_EQ(1, samples->TotalCount()); 1034 EXPECT_EQ(1, samples->TotalCount());
951 EXPECT_EQ(0, samples->GetCount(0)); // System Transient 1035 EXPECT_EQ(0, samples->GetCount(0)); // System Transient
952 EXPECT_EQ(0, samples->GetCount(1)); // System Permanent 1036 EXPECT_EQ(0, samples->GetCount(1)); // System Permanent
953 EXPECT_EQ(1, samples->GetCount(2)); // UI 1037 EXPECT_EQ(1, samples->GetCount(2)); // UI
954 } 1038 }
955 1039
956 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, UMA_Suspended_Multiple) { 1040 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, UMA_Suspended_Multiple) {
957 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 1041 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
958 new MockMediaSessionObserver); 1042 new MockMediaSessionObserver);
959 base::HistogramTester tester; 1043 base::HistogramTester tester;
960 1044
961 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 1045 StartNewPlayer(media_session_observer.get(),
1046 media::MediaContentType::Persistent);
962 1047
963 UISuspend(); 1048 UISuspend();
964 UIResume(); 1049 UIResume();
965 1050
966 SystemSuspend(true); 1051 SystemSuspend(true);
967 SystemResume(); 1052 SystemResume();
968 1053
969 UISuspend(); 1054 UISuspend();
970 UIResume(); 1055 UIResume();
971 1056
972 SystemSuspend(false); 1057 SystemSuspend(false);
973 1058
974 std::unique_ptr<base::HistogramSamples> samples( 1059 std::unique_ptr<base::HistogramSamples> samples(
975 tester.GetHistogramSamplesSinceCreation("Media.Session.Suspended")); 1060 tester.GetHistogramSamplesSinceCreation("Media.Session.Suspended"));
976 EXPECT_EQ(4, samples->TotalCount()); 1061 EXPECT_EQ(4, samples->TotalCount());
977 EXPECT_EQ(1, samples->GetCount(0)); // System Transient 1062 EXPECT_EQ(1, samples->GetCount(0)); // System Transient
978 EXPECT_EQ(1, samples->GetCount(1)); // System Permanent 1063 EXPECT_EQ(1, samples->GetCount(1)); // System Permanent
979 EXPECT_EQ(2, samples->GetCount(2)); // UI 1064 EXPECT_EQ(2, samples->GetCount(2)); // UI
980 } 1065 }
981 1066
982 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, UMA_Suspended_Crossing) { 1067 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, UMA_Suspended_Crossing) {
983 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 1068 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
984 new MockMediaSessionObserver); 1069 new MockMediaSessionObserver);
985 base::HistogramTester tester; 1070 base::HistogramTester tester;
986 1071
987 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 1072 StartNewPlayer(media_session_observer.get(),
1073 media::MediaContentType::Persistent);
988 1074
989 UISuspend(); 1075 UISuspend();
990 SystemSuspend(true); 1076 SystemSuspend(true);
991 SystemSuspend(false); 1077 SystemSuspend(false);
992 UIResume(); 1078 UIResume();
993 1079
994 SystemSuspend(true); 1080 SystemSuspend(true);
995 SystemSuspend(true); 1081 SystemSuspend(true);
996 SystemSuspend(false); 1082 SystemSuspend(false);
997 SystemResume(); 1083 SystemResume();
998 1084
999 std::unique_ptr<base::HistogramSamples> samples( 1085 std::unique_ptr<base::HistogramSamples> samples(
1000 tester.GetHistogramSamplesSinceCreation("Media.Session.Suspended")); 1086 tester.GetHistogramSamplesSinceCreation("Media.Session.Suspended"));
1001 EXPECT_EQ(2, samples->TotalCount()); 1087 EXPECT_EQ(2, samples->TotalCount());
1002 EXPECT_EQ(1, samples->GetCount(0)); // System Transient 1088 EXPECT_EQ(1, samples->GetCount(0)); // System Transient
1003 EXPECT_EQ(0, samples->GetCount(1)); // System Permanent 1089 EXPECT_EQ(0, samples->GetCount(1)); // System Permanent
1004 EXPECT_EQ(1, samples->GetCount(2)); // UI 1090 EXPECT_EQ(1, samples->GetCount(2)); // UI
1005 } 1091 }
1006 1092
1007 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, UMA_Suspended_Stop) { 1093 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, UMA_Suspended_Stop) {
1008 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 1094 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
1009 new MockMediaSessionObserver); 1095 new MockMediaSessionObserver);
1010 base::HistogramTester tester; 1096 base::HistogramTester tester;
1011 1097
1012 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 1098 StartNewPlayer(media_session_observer.get(),
1099 media::MediaContentType::Persistent);
1013 media_session_->Stop(MediaSession::SuspendType::UI); 1100 media_session_->Stop(MediaSession::SuspendType::UI);
1014 1101
1015 std::unique_ptr<base::HistogramSamples> samples( 1102 std::unique_ptr<base::HistogramSamples> samples(
1016 tester.GetHistogramSamplesSinceCreation("Media.Session.Suspended")); 1103 tester.GetHistogramSamplesSinceCreation("Media.Session.Suspended"));
1017 EXPECT_EQ(1, samples->TotalCount()); 1104 EXPECT_EQ(1, samples->TotalCount());
1018 EXPECT_EQ(0, samples->GetCount(0)); // System Transient 1105 EXPECT_EQ(0, samples->GetCount(0)); // System Transient
1019 EXPECT_EQ(0, samples->GetCount(1)); // System Permanent 1106 EXPECT_EQ(0, samples->GetCount(1)); // System Permanent
1020 EXPECT_EQ(1, samples->GetCount(2)); // UI 1107 EXPECT_EQ(1, samples->GetCount(2)); // UI
1021 } 1108 }
1022 1109
(...skipping 14 matching lines...) Expand all
1037 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 1124 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
1038 new MockMediaSessionObserver); 1125 new MockMediaSessionObserver);
1039 base::HistogramTester tester; 1126 base::HistogramTester tester;
1040 1127
1041 MediaSessionUmaHelper* media_session_uma_helper = GetMediaSessionUMAHelper(); 1128 MediaSessionUmaHelper* media_session_uma_helper = GetMediaSessionUMAHelper();
1042 base::SimpleTestTickClock* clock = new base::SimpleTestTickClock(); 1129 base::SimpleTestTickClock* clock = new base::SimpleTestTickClock();
1043 clock->SetNowTicks(base::TimeTicks::Now()); 1130 clock->SetNowTicks(base::TimeTicks::Now());
1044 media_session_uma_helper->SetClockForTest( 1131 media_session_uma_helper->SetClockForTest(
1045 std::unique_ptr<base::SimpleTestTickClock>(clock)); 1132 std::unique_ptr<base::SimpleTestTickClock>(clock));
1046 1133
1047 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 1134 StartNewPlayer(media_session_observer.get(),
1135 media::MediaContentType::Persistent);
1048 1136
1049 clock->Advance(base::TimeDelta::FromMilliseconds(1000)); 1137 clock->Advance(base::TimeDelta::FromMilliseconds(1000));
1050 media_session_->Stop(MediaSession::SuspendType::UI); 1138 media_session_->Stop(MediaSession::SuspendType::UI);
1051 1139
1052 std::unique_ptr<base::HistogramSamples> samples( 1140 std::unique_ptr<base::HistogramSamples> samples(
1053 tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime")); 1141 tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime"));
1054 EXPECT_EQ(1, samples->TotalCount()); 1142 EXPECT_EQ(1, samples->TotalCount());
1055 EXPECT_EQ(1, samples->GetCount(1000)); 1143 EXPECT_EQ(1, samples->GetCount(1000));
1056 } 1144 }
1057 1145
1058 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 1146 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
1059 UMA_ActiveTime_ActivationWithUISuspension) { 1147 UMA_ActiveTime_ActivationWithUISuspension) {
1060 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 1148 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
1061 new MockMediaSessionObserver); 1149 new MockMediaSessionObserver);
1062 base::HistogramTester tester; 1150 base::HistogramTester tester;
1063 1151
1064 MediaSessionUmaHelper* media_session_uma_helper = GetMediaSessionUMAHelper(); 1152 MediaSessionUmaHelper* media_session_uma_helper = GetMediaSessionUMAHelper();
1065 base::SimpleTestTickClock* clock = new base::SimpleTestTickClock(); 1153 base::SimpleTestTickClock* clock = new base::SimpleTestTickClock();
1066 clock->SetNowTicks(base::TimeTicks::Now()); 1154 clock->SetNowTicks(base::TimeTicks::Now());
1067 media_session_uma_helper->SetClockForTest( 1155 media_session_uma_helper->SetClockForTest(
1068 std::unique_ptr<base::SimpleTestTickClock>(clock)); 1156 std::unique_ptr<base::SimpleTestTickClock>(clock));
1069 1157
1070 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 1158 StartNewPlayer(media_session_observer.get(),
1159 media::MediaContentType::Persistent);
1071 1160
1072 clock->Advance(base::TimeDelta::FromMilliseconds(1000)); 1161 clock->Advance(base::TimeDelta::FromMilliseconds(1000));
1073 UISuspend(); 1162 UISuspend();
1074 1163
1075 clock->Advance(base::TimeDelta::FromMilliseconds(2000)); 1164 clock->Advance(base::TimeDelta::FromMilliseconds(2000));
1076 UIResume(); 1165 UIResume();
1077 1166
1078 clock->Advance(base::TimeDelta::FromMilliseconds(1000)); 1167 clock->Advance(base::TimeDelta::FromMilliseconds(1000));
1079 media_session_->Stop(MediaSession::SuspendType::UI); 1168 media_session_->Stop(MediaSession::SuspendType::UI);
1080 1169
1081 std::unique_ptr<base::HistogramSamples> samples( 1170 std::unique_ptr<base::HistogramSamples> samples(
1082 tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime")); 1171 tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime"));
1083 EXPECT_EQ(1, samples->TotalCount()); 1172 EXPECT_EQ(1, samples->TotalCount());
1084 EXPECT_EQ(1, samples->GetCount(2000)); 1173 EXPECT_EQ(1, samples->GetCount(2000));
1085 } 1174 }
1086 1175
1087 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 1176 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
1088 UMA_ActiveTime_ActivationWithSystemSuspension) { 1177 UMA_ActiveTime_ActivationWithSystemSuspension) {
1089 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 1178 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
1090 new MockMediaSessionObserver); 1179 new MockMediaSessionObserver);
1091 base::HistogramTester tester; 1180 base::HistogramTester tester;
1092 1181
1093 MediaSessionUmaHelper* media_session_uma_helper = GetMediaSessionUMAHelper(); 1182 MediaSessionUmaHelper* media_session_uma_helper = GetMediaSessionUMAHelper();
1094 base::SimpleTestTickClock* clock = new base::SimpleTestTickClock(); 1183 base::SimpleTestTickClock* clock = new base::SimpleTestTickClock();
1095 clock->SetNowTicks(base::TimeTicks::Now()); 1184 clock->SetNowTicks(base::TimeTicks::Now());
1096 media_session_uma_helper->SetClockForTest( 1185 media_session_uma_helper->SetClockForTest(
1097 std::unique_ptr<base::SimpleTestTickClock>(clock)); 1186 std::unique_ptr<base::SimpleTestTickClock>(clock));
1098 1187
1099 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 1188 StartNewPlayer(media_session_observer.get(),
1189 media::MediaContentType::Persistent);
1100 1190
1101 clock->Advance(base::TimeDelta::FromMilliseconds(1000)); 1191 clock->Advance(base::TimeDelta::FromMilliseconds(1000));
1102 SystemSuspend(true); 1192 SystemSuspend(true);
1103 1193
1104 clock->Advance(base::TimeDelta::FromMilliseconds(2000)); 1194 clock->Advance(base::TimeDelta::FromMilliseconds(2000));
1105 SystemResume(); 1195 SystemResume();
1106 1196
1107 clock->Advance(base::TimeDelta::FromMilliseconds(1000)); 1197 clock->Advance(base::TimeDelta::FromMilliseconds(1000));
1108 media_session_->Stop(MediaSession::SuspendType::UI); 1198 media_session_->Stop(MediaSession::SuspendType::UI);
1109 1199
1110 std::unique_ptr<base::HistogramSamples> samples( 1200 std::unique_ptr<base::HistogramSamples> samples(
1111 tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime")); 1201 tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime"));
1112 EXPECT_EQ(1, samples->TotalCount()); 1202 EXPECT_EQ(1, samples->TotalCount());
1113 EXPECT_EQ(1, samples->GetCount(2000)); 1203 EXPECT_EQ(1, samples->GetCount(2000));
1114 } 1204 }
1115 1205
1116 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 1206 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
1117 UMA_ActiveTime_ActivateSuspendedButNotStopped) { 1207 UMA_ActiveTime_ActivateSuspendedButNotStopped) {
1118 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 1208 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
1119 new MockMediaSessionObserver); 1209 new MockMediaSessionObserver);
1120 base::HistogramTester tester; 1210 base::HistogramTester tester;
1121 1211
1122 MediaSessionUmaHelper* media_session_uma_helper = GetMediaSessionUMAHelper(); 1212 MediaSessionUmaHelper* media_session_uma_helper = GetMediaSessionUMAHelper();
1123 base::SimpleTestTickClock* clock = new base::SimpleTestTickClock(); 1213 base::SimpleTestTickClock* clock = new base::SimpleTestTickClock();
1124 clock->SetNowTicks(base::TimeTicks::Now()); 1214 clock->SetNowTicks(base::TimeTicks::Now());
1125 media_session_uma_helper->SetClockForTest( 1215 media_session_uma_helper->SetClockForTest(
1126 std::unique_ptr<base::SimpleTestTickClock>(clock)); 1216 std::unique_ptr<base::SimpleTestTickClock>(clock));
1127 1217
1128 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 1218 StartNewPlayer(media_session_observer.get(),
1219 media::MediaContentType::Persistent);
1129 clock->Advance(base::TimeDelta::FromMilliseconds(500)); 1220 clock->Advance(base::TimeDelta::FromMilliseconds(500));
1130 SystemSuspend(true); 1221 SystemSuspend(true);
1131 1222
1132 { 1223 {
1133 std::unique_ptr<base::HistogramSamples> samples( 1224 std::unique_ptr<base::HistogramSamples> samples(
1134 tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime")); 1225 tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime"));
1135 EXPECT_EQ(0, samples->TotalCount()); 1226 EXPECT_EQ(0, samples->TotalCount());
1136 } 1227 }
1137 1228
1138 SystemResume(); 1229 SystemResume();
(...skipping 12 matching lines...) Expand all
1151 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 1242 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
1152 new MockMediaSessionObserver); 1243 new MockMediaSessionObserver);
1153 base::HistogramTester tester; 1244 base::HistogramTester tester;
1154 1245
1155 MediaSessionUmaHelper* media_session_uma_helper = GetMediaSessionUMAHelper(); 1246 MediaSessionUmaHelper* media_session_uma_helper = GetMediaSessionUMAHelper();
1156 base::SimpleTestTickClock* clock = new base::SimpleTestTickClock(); 1247 base::SimpleTestTickClock* clock = new base::SimpleTestTickClock();
1157 clock->SetNowTicks(base::TimeTicks::Now()); 1248 clock->SetNowTicks(base::TimeTicks::Now());
1158 media_session_uma_helper->SetClockForTest( 1249 media_session_uma_helper->SetClockForTest(
1159 std::unique_ptr<base::SimpleTestTickClock>(clock)); 1250 std::unique_ptr<base::SimpleTestTickClock>(clock));
1160 1251
1161 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 1252 StartNewPlayer(media_session_observer.get(),
1253 media::MediaContentType::Persistent);
1162 clock->Advance(base::TimeDelta::FromMilliseconds(500)); 1254 clock->Advance(base::TimeDelta::FromMilliseconds(500));
1163 SystemSuspend(true); 1255 SystemSuspend(true);
1164 media_session_->Stop(MediaSession::SuspendType::UI); 1256 media_session_->Stop(MediaSession::SuspendType::UI);
1165 1257
1166 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 1258 StartNewPlayer(media_session_observer.get(),
1259 media::MediaContentType::Persistent);
1167 clock->Advance(base::TimeDelta::FromMilliseconds(5000)); 1260 clock->Advance(base::TimeDelta::FromMilliseconds(5000));
1168 SystemResume(); 1261 SystemResume();
1169 media_session_->Stop(MediaSession::SuspendType::UI); 1262 media_session_->Stop(MediaSession::SuspendType::UI);
1170 1263
1171 std::unique_ptr<base::HistogramSamples> samples( 1264 std::unique_ptr<base::HistogramSamples> samples(
1172 tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime")); 1265 tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime"));
1173 EXPECT_EQ(2, samples->TotalCount()); 1266 EXPECT_EQ(2, samples->TotalCount());
1174 EXPECT_EQ(1, samples->GetCount(500)); 1267 EXPECT_EQ(1, samples->GetCount(500));
1175 EXPECT_EQ(1, samples->GetCount(5000)); 1268 EXPECT_EQ(1, samples->GetCount(5000));
1176 } 1269 }
1177 1270
1178 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest, 1271 IN_PROC_BROWSER_TEST_F(MediaSessionBrowserTest,
1179 UMA_ActiveTime_MultipleActivations) { 1272 UMA_ActiveTime_MultipleActivations) {
1180 std::unique_ptr<MockMediaSessionObserver> media_session_observer( 1273 std::unique_ptr<MockMediaSessionObserver> media_session_observer(
1181 new MockMediaSessionObserver); 1274 new MockMediaSessionObserver);
1182 base::HistogramTester tester; 1275 base::HistogramTester tester;
1183 1276
1184 MediaSessionUmaHelper* media_session_uma_helper = GetMediaSessionUMAHelper(); 1277 MediaSessionUmaHelper* media_session_uma_helper = GetMediaSessionUMAHelper();
1185 base::SimpleTestTickClock* clock = new base::SimpleTestTickClock(); 1278 base::SimpleTestTickClock* clock = new base::SimpleTestTickClock();
1186 clock->SetNowTicks(base::TimeTicks::Now()); 1279 clock->SetNowTicks(base::TimeTicks::Now());
1187 media_session_uma_helper->SetClockForTest( 1280 media_session_uma_helper->SetClockForTest(
1188 std::unique_ptr<base::SimpleTestTickClock>(clock)); 1281 std::unique_ptr<base::SimpleTestTickClock>(clock));
1189 1282
1190 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 1283 StartNewPlayer(media_session_observer.get(),
1284 media::MediaContentType::Persistent);
1191 clock->Advance(base::TimeDelta::FromMilliseconds(10000)); 1285 clock->Advance(base::TimeDelta::FromMilliseconds(10000));
1192 RemovePlayer(media_session_observer.get(), 0); 1286 RemovePlayer(media_session_observer.get(), 0);
1193 1287
1194 StartNewPlayer(media_session_observer.get(), MediaSession::Type::Content); 1288 StartNewPlayer(media_session_observer.get(),
1289 media::MediaContentType::Persistent);
1195 clock->Advance(base::TimeDelta::FromMilliseconds(1000)); 1290 clock->Advance(base::TimeDelta::FromMilliseconds(1000));
1196 media_session_->Stop(MediaSession::SuspendType::UI); 1291 media_session_->Stop(MediaSession::SuspendType::UI);
1197 1292
1198 std::unique_ptr<base::HistogramSamples> samples( 1293 std::unique_ptr<base::HistogramSamples> samples(
1199 tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime")); 1294 tester.GetHistogramSamplesSinceCreation("Media.Session.ActiveTime"));
1200 EXPECT_EQ(2, samples->TotalCount()); 1295 EXPECT_EQ(2, samples->TotalCount());
1201 EXPECT_EQ(1, samples->GetCount(1000)); 1296 EXPECT_EQ(1, samples->GetCount(1000));
1202 EXPECT_EQ(1, samples->GetCount(10000)); 1297 EXPECT_EQ(1, samples->GetCount(10000));
1203 } 1298 }
OLDNEW
« no previous file with comments | « content/browser/media/session/media_session.cc ('k') | content/browser/media/session/media_session_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698