| OLD | NEW |
| 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 "chrome/renderer/media/chrome_key_systems.h" | 5 #include "chrome/renderer/media/chrome_key_systems.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 55 &is_available, | 55 &is_available, |
| 56 additional_param_names, | 56 additional_param_names, |
| 57 additional_param_values)); | 57 additional_param_values)); |
| 58 | 58 |
| 59 return is_available; | 59 return is_available; |
| 60 } | 60 } |
| 61 | 61 |
| 62 // External Clear Key (used for testing). | 62 // External Clear Key (used for testing). |
| 63 static void AddExternalClearKey( | 63 static void AddExternalClearKey( |
| 64 std::vector<std::unique_ptr<KeySystemProperties>>* concrete_key_systems) { | 64 std::vector<std::unique_ptr<KeySystemProperties>>* concrete_key_systems) { |
| 65 // TODO(xhwang): Move these into an array so we can use a for loop to add |
| 66 // supported key systems below. |
| 65 static const char kExternalClearKeyKeySystem[] = | 67 static const char kExternalClearKeyKeySystem[] = |
| 66 "org.chromium.externalclearkey"; | 68 "org.chromium.externalclearkey"; |
| 67 static const char kExternalClearKeyDecryptOnlyKeySystem[] = | 69 static const char kExternalClearKeyDecryptOnlyKeySystem[] = |
| 68 "org.chromium.externalclearkey.decryptonly"; | 70 "org.chromium.externalclearkey.decryptonly"; |
| 69 static const char kExternalClearKeyRenewalKeySystem[] = | 71 static const char kExternalClearKeyRenewalKeySystem[] = |
| 70 "org.chromium.externalclearkey.renewal"; | 72 "org.chromium.externalclearkey.renewal"; |
| 71 static const char kExternalClearKeyFileIOTestKeySystem[] = | 73 static const char kExternalClearKeyFileIOTestKeySystem[] = |
| 72 "org.chromium.externalclearkey.fileiotest"; | 74 "org.chromium.externalclearkey.fileiotest"; |
| 73 static const char kExternalClearKeyOutputProtectionTestKeySystem[] = | 75 static const char kExternalClearKeyOutputProtectionTestKeySystem[] = |
| 74 "org.chromium.externalclearkey.outputprotectiontest"; | 76 "org.chromium.externalclearkey.outputprotectiontest"; |
| 75 static const char kExternalClearKeyPlatformVerificationTestKeySystem[] = | 77 static const char kExternalClearKeyPlatformVerificationTestKeySystem[] = |
| 76 "org.chromium.externalclearkey.platformverificationtest"; | 78 "org.chromium.externalclearkey.platformverificationtest"; |
| 77 static const char kExternalClearKeyInitializeFailKeySystem[] = | 79 static const char kExternalClearKeyInitializeFailKeySystem[] = |
| 78 "org.chromium.externalclearkey.initializefail"; | 80 "org.chromium.externalclearkey.initializefail"; |
| 79 static const char kExternalClearKeyCrashKeySystem[] = | 81 static const char kExternalClearKeyCrashKeySystem[] = |
| 80 "org.chromium.externalclearkey.crash"; | 82 "org.chromium.externalclearkey.crash"; |
| 83 static const char kExternalClearKeyVerifyHostFilesTestKeySystem[] = |
| 84 "org.chromium.externalclearkey.verifyhostfilestest"; |
| 81 | 85 |
| 82 std::vector<base::string16> additional_param_names; | 86 std::vector<base::string16> additional_param_names; |
| 83 std::vector<base::string16> additional_param_values; | 87 std::vector<base::string16> additional_param_values; |
| 84 if (!IsPepperCdmAvailable(cdm::kExternalClearKeyPepperType, | 88 if (!IsPepperCdmAvailable(cdm::kExternalClearKeyPepperType, |
| 85 &additional_param_names, | 89 &additional_param_names, |
| 86 &additional_param_values)) { | 90 &additional_param_values)) { |
| 87 return; | 91 return; |
| 88 } | 92 } |
| 89 | 93 |
| 90 concrete_key_systems->emplace_back( | 94 concrete_key_systems->emplace_back( |
| (...skipping 21 matching lines...) Expand all Loading... |
| 112 | 116 |
| 113 // A key system that Chrome thinks is supported by ClearKeyCdm, but actually | 117 // A key system that Chrome thinks is supported by ClearKeyCdm, but actually |
| 114 // will be refused by ClearKeyCdm. This is to test the CDM initialization | 118 // will be refused by ClearKeyCdm. This is to test the CDM initialization |
| 115 // failure case. | 119 // failure case. |
| 116 concrete_key_systems->emplace_back(new cdm::ExternalClearKeyProperties( | 120 concrete_key_systems->emplace_back(new cdm::ExternalClearKeyProperties( |
| 117 kExternalClearKeyInitializeFailKeySystem)); | 121 kExternalClearKeyInitializeFailKeySystem)); |
| 118 | 122 |
| 119 // A key system that triggers a crash in ClearKeyCdm. | 123 // A key system that triggers a crash in ClearKeyCdm. |
| 120 concrete_key_systems->emplace_back( | 124 concrete_key_systems->emplace_back( |
| 121 new cdm::ExternalClearKeyProperties(kExternalClearKeyCrashKeySystem)); | 125 new cdm::ExternalClearKeyProperties(kExternalClearKeyCrashKeySystem)); |
| 126 |
| 127 // A key system that triggers the verify host files test in ClearKeyCdm. |
| 128 concrete_key_systems->emplace_back(new cdm::ExternalClearKeyProperties( |
| 129 kExternalClearKeyVerifyHostFilesTestKeySystem)); |
| 122 } | 130 } |
| 123 | 131 |
| 124 #if defined(WIDEVINE_CDM_AVAILABLE) | 132 #if defined(WIDEVINE_CDM_AVAILABLE) |
| 125 // This function finds "codecs" and parses the value into the vector |codecs|. | 133 // This function finds "codecs" and parses the value into the vector |codecs|. |
| 126 // Converts the codec strings to UTF-8 since we only expect ASCII strings and | 134 // Converts the codec strings to UTF-8 since we only expect ASCII strings and |
| 127 // this simplifies the rest of the code in this file. | 135 // this simplifies the rest of the code in this file. |
| 128 void GetSupportedCodecsForPepperCdm( | 136 void GetSupportedCodecsForPepperCdm( |
| 129 const std::vector<base::string16>& additional_param_names, | 137 const std::vector<base::string16>& additional_param_names, |
| 130 const std::vector<base::string16>& additional_param_values, | 138 const std::vector<base::string16>& additional_param_values, |
| 131 std::vector<std::string>* codecs) { | 139 std::vector<std::string>* codecs) { |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 231 #if defined(WIDEVINE_CDM_AVAILABLE) | 239 #if defined(WIDEVINE_CDM_AVAILABLE) |
| 232 AddPepperBasedWidevine(key_systems_properties); | 240 AddPepperBasedWidevine(key_systems_properties); |
| 233 #endif // defined(WIDEVINE_CDM_AVAILABLE) | 241 #endif // defined(WIDEVINE_CDM_AVAILABLE) |
| 234 | 242 |
| 235 #endif // BUILDFLAG(ENABLE_PEPPER_CDMS) | 243 #endif // BUILDFLAG(ENABLE_PEPPER_CDMS) |
| 236 | 244 |
| 237 #if defined(OS_ANDROID) | 245 #if defined(OS_ANDROID) |
| 238 cdm::AddAndroidWidevine(key_systems_properties); | 246 cdm::AddAndroidWidevine(key_systems_properties); |
| 239 #endif // defined(OS_ANDROID) | 247 #endif // defined(OS_ANDROID) |
| 240 } | 248 } |
| OLD | NEW |