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

Side by Side Diff: chrome/browser/media/encrypted_media_browsertest.cc

Issue 2910843002: [Cleanup] Move all browsertests to use ScopedFeatureList to modify features
Patch Set: Ilya comments addressed Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 <memory> 5 #include <memory>
6 #include <utility> 6 #include <utility>
7 7
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/path_service.h" 9 #include "base/path_service.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 274
275 #if BUILDFLAG(ENABLE_PEPPER_CDMS) 275 #if BUILDFLAG(ENABLE_PEPPER_CDMS)
276 void SetUpDefaultCommandLine(base::CommandLine* command_line) override { 276 void SetUpDefaultCommandLine(base::CommandLine* command_line) override {
277 base::CommandLine default_command_line(base::CommandLine::NO_PROGRAM); 277 base::CommandLine default_command_line(base::CommandLine::NO_PROGRAM);
278 InProcessBrowserTest::SetUpDefaultCommandLine(&default_command_line); 278 InProcessBrowserTest::SetUpDefaultCommandLine(&default_command_line);
279 test_launcher_utils::RemoveCommandLineSwitch( 279 test_launcher_utils::RemoveCommandLineSwitch(
280 default_command_line, switches::kDisableComponentUpdate, command_line); 280 default_command_line, switches::kDisableComponentUpdate, command_line);
281 } 281 }
282 #endif // BUILDFLAG(ENABLE_PEPPER_CDMS) 282 #endif // BUILDFLAG(ENABLE_PEPPER_CDMS)
283 283
284 void SetUpForKeySystem(const std::string& key_system,
285 CdmHostType cdm_host_type) {
286 #if BUILDFLAG(ENABLE_PEPPER_CDMS)
287 if (IsExternalClearKey(key_system)) {
288 if (cdm_host_type == CdmHostType::kMojo) {
289 scoped_feature_list_.InitWithFeatures(
290 {media::kExternalClearKeyForTesting, media::kMojoCdm}, {});
291 } else {
292 scoped_feature_list_.InitWithFeatures(
293 {media::kExternalClearKeyForTesting}, {});
294 }
295 }
296 #endif // BUILDFLAG(ENABLE_PEPPER_CDMS)
297 }
298
284 void SetUpCommandLineForKeySystem(const std::string& key_system, 299 void SetUpCommandLineForKeySystem(const std::string& key_system,
285 CdmHostType cdm_host_type,
286 base::CommandLine* command_line) { 300 base::CommandLine* command_line) {
287 if (GetServerConfig(key_system)) 301 if (GetServerConfig(key_system))
288 // Since the web and license servers listen on different ports, we need to 302 // Since the web and license servers listen on different ports, we need to
289 // disable web-security to send license requests to the license server. 303 // disable web-security to send license requests to the license server.
290 // TODO(shadi): Add port forwarding to the test web server configuration. 304 // TODO(shadi): Add port forwarding to the test web server configuration.
291 command_line->AppendSwitch(switches::kDisableWebSecurity); 305 command_line->AppendSwitch(switches::kDisableWebSecurity);
292 306
293 #if BUILDFLAG(ENABLE_PEPPER_CDMS) 307 #if BUILDFLAG(ENABLE_PEPPER_CDMS)
294 if (IsExternalClearKey(key_system)) { 308 if (IsExternalClearKey(key_system)) {
295 RegisterPepperCdm(command_line, media::kClearKeyCdmBaseDirectory, 309 RegisterPepperCdm(command_line, media::kClearKeyCdmBaseDirectory,
296 media::kClearKeyCdmAdapterFileName, 310 media::kClearKeyCdmAdapterFileName,
297 media::kClearKeyCdmDisplayName, 311 media::kClearKeyCdmDisplayName,
298 media::kClearKeyCdmPepperMimeType); 312 media::kClearKeyCdmPepperMimeType);
299 if (cdm_host_type == CdmHostType::kMojo) {
300 scoped_feature_list_.InitWithFeatures(
301 {media::kExternalClearKeyForTesting, media::kMojoCdm}, {});
302 } else {
303 scoped_feature_list_.InitWithFeatures(
304 {media::kExternalClearKeyForTesting}, {});
305 }
306 } 313 }
307 #endif // BUILDFLAG(ENABLE_PEPPER_CDMS) 314 #endif // BUILDFLAG(ENABLE_PEPPER_CDMS)
308 } 315 }
309 316
310 base::test::ScopedFeatureList scoped_feature_list_; 317 base::test::ScopedFeatureList scoped_feature_list_;
311 }; 318 };
312 319
313 #if BUILDFLAG(ENABLE_PEPPER_CDMS) 320 #if BUILDFLAG(ENABLE_PEPPER_CDMS)
314 // Tests encrypted media playback using ExternalClearKey key system in 321 // Tests encrypted media playback using ExternalClearKey key system in
315 // decrypt-and-decode mode. 322 // decrypt-and-decode mode.
(...skipping 17 matching lines...) Expand all
333 const std::string& expected_title) { 340 const std::string& expected_title) {
334 RunEncryptedMediaTest(kDefaultEmePlayer, "bear-320x240-v_enc-v.webm", 341 RunEncryptedMediaTest(kDefaultEmePlayer, "bear-320x240-v_enc-v.webm",
335 kWebMVP8VideoOnly, key_system, SrcType::MSE, 342 kWebMVP8VideoOnly, key_system, SrcType::MSE,
336 session_to_load, false, PlayCount::ONCE, 343 session_to_load, false, PlayCount::ONCE,
337 expected_title); 344 expected_title);
338 } 345 }
339 346
340 bool IsUsingMojoCdm() const { return GetParam() == CdmHostType::kMojo; } 347 bool IsUsingMojoCdm() const { return GetParam() == CdmHostType::kMojo; }
341 348
342 protected: 349 protected:
350 void SetUp() override {
351 SetUpForKeySystem(kExternalClearKeyKeySystem, GetParam());
352 EncryptedMediaTestBase::SetUp();
353 }
354
343 void SetUpCommandLine(base::CommandLine* command_line) override { 355 void SetUpCommandLine(base::CommandLine* command_line) override {
344 EncryptedMediaTestBase::SetUpCommandLine(command_line); 356 EncryptedMediaTestBase::SetUpCommandLine(command_line);
345 SetUpCommandLineForKeySystem(kExternalClearKeyKeySystem, GetParam(), 357 SetUpCommandLineForKeySystem(kExternalClearKeyKeySystem, command_line);
346 command_line);
347 } 358 }
348 }; 359 };
349 360
350 #if defined(WIDEVINE_CDM_AVAILABLE) 361 #if defined(WIDEVINE_CDM_AVAILABLE)
351 // Tests encrypted media playback using Widevine key system. 362 // Tests encrypted media playback using Widevine key system.
352 class WVEncryptedMediaTest : public EncryptedMediaTestBase { 363 class WVEncryptedMediaTest : public EncryptedMediaTestBase {
353 protected: 364 protected:
365 void SetUp() override {
366 SetUpForKeySystem(kWidevineKeySystem, CdmHostType::kPepper);
367 EncryptedMediaTestBase::SetUp();
368 }
369
354 void SetUpCommandLine(base::CommandLine* command_line) override { 370 void SetUpCommandLine(base::CommandLine* command_line) override {
355 EncryptedMediaTestBase::SetUpCommandLine(command_line); 371 EncryptedMediaTestBase::SetUpCommandLine(command_line);
356 SetUpCommandLineForKeySystem(kWidevineKeySystem, CdmHostType::kPepper, 372 SetUpCommandLineForKeySystem(kWidevineKeySystem, command_line);
357 command_line);
358 } 373 }
359 }; 374 };
360 375
361 #endif // defined(WIDEVINE_CDM_AVAILABLE) 376 #endif // defined(WIDEVINE_CDM_AVAILABLE)
362 #endif // BUILDFLAG(ENABLE_PEPPER_CDMS) 377 #endif // BUILDFLAG(ENABLE_PEPPER_CDMS)
363 378
364 // Tests encrypted media playback with a combination of parameters: 379 // Tests encrypted media playback with a combination of parameters:
365 // - char*: Key system name. 380 // - char*: Key system name.
366 // - SrcType: Use MSE or SRC. 381 // - SrcType: Use MSE or SRC.
367 // 382 //
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
460 RunEncryptedMediaTestPage("mse_different_containers.html", 475 RunEncryptedMediaTestPage("mse_different_containers.html",
461 CurrentKeySystem(), query_params, kEnded); 476 CurrentKeySystem(), query_params, kEnded);
462 } 477 }
463 478
464 void DisableEncryptedMedia() { 479 void DisableEncryptedMedia() {
465 PrefService* pref_service = browser()->profile()->GetPrefs(); 480 PrefService* pref_service = browser()->profile()->GetPrefs();
466 pref_service->SetBoolean(prefs::kWebKitEncryptedMediaEnabled, false); 481 pref_service->SetBoolean(prefs::kWebKitEncryptedMediaEnabled, false);
467 } 482 }
468 483
469 protected: 484 protected:
485 void SetUp() override {
486 SetUpForKeySystem(CurrentKeySystem(), CurrentCdmHostType());
487 EncryptedMediaTestBase::SetUp();
488 }
489
470 void SetUpCommandLine(base::CommandLine* command_line) override { 490 void SetUpCommandLine(base::CommandLine* command_line) override {
471 EncryptedMediaTestBase::SetUpCommandLine(command_line); 491 EncryptedMediaTestBase::SetUpCommandLine(command_line);
472 SetUpCommandLineForKeySystem(CurrentKeySystem(), CurrentCdmHostType(), 492 SetUpCommandLineForKeySystem(CurrentKeySystem(), command_line);
473 command_line);
474 } 493 }
475 }; 494 };
476 495
477 using ::testing::Combine; 496 using ::testing::Combine;
478 using ::testing::Values; 497 using ::testing::Values;
479 498
480 INSTANTIATE_TEST_CASE_P(MSE_ClearKey, 499 INSTANTIATE_TEST_CASE_P(MSE_ClearKey,
481 EncryptedMediaTest, 500 EncryptedMediaTest,
482 Combine(Values(kClearKeyKeySystem), 501 Combine(Values(kClearKeyKeySystem),
483 Values(SrcType::MSE), 502 Values(SrcType::MSE),
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after
812 DVLOG(0) << "Skipping test; Not working with mojo CDM yet."; 831 DVLOG(0) << "Skipping test; Not working with mojo CDM yet.";
813 return; 832 return;
814 } 833 }
815 834
816 TestNonPlaybackCases(kExternalClearKeyVerifyCdmHostTestKeySystem, 835 TestNonPlaybackCases(kExternalClearKeyVerifyCdmHostTestKeySystem,
817 kUnitTestSuccess); 836 kUnitTestSuccess);
818 } 837 }
819 #endif // BUILDFLAG(ENABLE_CDM_HOST_VERIFICATION) 838 #endif // BUILDFLAG(ENABLE_CDM_HOST_VERIFICATION)
820 839
821 } // namespace chrome 840 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698