Remove Adobe Primetime Support.
This commit is contained in:
parent
bcf5aeb47d
commit
45cfa8084f
|
@ -170,7 +170,7 @@ pref("lightweightThemes.update.enabled", true);
|
|||
pref("lightweightThemes.getMoreURL", "http://@AM_DOMAIN@/personas/");
|
||||
pref("lightweightThemes.recommendedThemes", "[{\"id\":\"recommended-1\",\"homepageURL\":\"https://addons.mozilla.org/firefox/addon/a-web-browser-renaissance/\",\"headerURL\":\"resource:///chrome/browser/content/browser/defaultthemes/1.header.jpg\",\"footerURL\":\"resource:///chrome/browser/content/browser/defaultthemes/1.footer.jpg\",\"textcolor\":\"#000000\",\"accentcolor\":\"#f2d9b1\",\"iconURL\":\"resource:///chrome/browser/content/browser/defaultthemes/1.icon.jpg\",\"previewURL\":\"resource:///chrome/browser/content/browser/defaultthemes/1.preview.jpg\",\"author\":\"Sean.Martell\",\"version\":\"0\"},{\"id\":\"recommended-2\",\"homepageURL\":\"https://addons.mozilla.org/firefox/addon/space-fantasy/\",\"headerURL\":\"resource:///chrome/browser/content/browser/defaultthemes/2.header.jpg\",\"footerURL\":\"resource:///chrome/browser/content/browser/defaultthemes/2.footer.jpg\",\"textcolor\":\"#ffffff\",\"accentcolor\":\"#d9d9d9\",\"iconURL\":\"resource:///chrome/browser/content/browser/defaultthemes/2.icon.jpg\",\"previewURL\":\"resource:///chrome/browser/content/browser/defaultthemes/2.preview.jpg\",\"author\":\"fx5800p\",\"version\":\"1.0\"},{\"id\":\"recommended-3\",\"homepageURL\":\"https://addons.mozilla.org/firefox/addon/linen-light/\",\"headerURL\":\"resource:///chrome/browser/content/browser/defaultthemes/3.header.png\",\"footerURL\":\"resource:///chrome/browser/content/browser/defaultthemes/3.footer.png\",\"accentcolor\":\"#ada8a8\",\"iconURL\":\"resource:///chrome/browser/content/browser/defaultthemes/3.icon.png\",\"previewURL\":\"resource:///chrome/browser/content/browser/defaultthemes/3.preview.png\",\"author\":\"DVemer\",\"version\":\"1.0\"},{\"id\":\"recommended-4\",\"homepageURL\":\"https://addons.mozilla.org/firefox/addon/pastel-gradient/\",\"headerURL\":\"resource:///chrome/browser/content/browser/defaultthemes/4.header.png\",\"footerURL\":\"resource:///chrome/browser/content/browser/defaultthemes/4.footer.png\",\"textcolor\":\"#000000\",\"accentcolor\":\"#000000\",\"iconURL\":\"resource:///chrome/browser/content/browser/defaultthemes/4.icon.png\",\"previewURL\":\"resource:///chrome/browser/content/browser/defaultthemes/4.preview.png\",\"author\":\"darrinhenein\",\"version\":\"1.0\"},{\"id\":\"recommended-5\",\"homepageURL\":\"https://addons.mozilla.org/firefox/addon/carbon-light/\",\"headerURL\":\"resource:///chrome/browser/content/browser/defaultthemes/5.header.png\",\"footerURL\":\"resource:///chrome/browser/content/browser/defaultthemes/5.footer.png\",\"textcolor\":\"#3b3b3b\",\"accentcolor\":\"#2e2e2e\",\"iconURL\":\"resource:///chrome/browser/content/browser/defaultthemes/5.icon.jpg\",\"previewURL\":\"resource:///chrome/browser/content/browser/defaultthemes/5.preview.jpg\",\"author\":\"Jaxivo\",\"version\":\"1.0\"}]");
|
||||
|
||||
#if defined(MOZ_ADOBE_EME) || defined(MOZ_WIDEVINE_EME)
|
||||
#if defined(MOZ_WIDEVINE_EME)
|
||||
pref("browser.eme.ui.enabled", true);
|
||||
#else
|
||||
pref("browser.eme.ui.enabled", false);
|
||||
|
@ -1188,16 +1188,6 @@ pref("media.gmp.trial-create.enabled", true);
|
|||
// and script requests EME. If *.visible is false, we won't show the UI
|
||||
// to enable the CDM if its disabled; it's as if the keysystem is completely
|
||||
// unsupported.
|
||||
|
||||
#ifdef MOZ_ADOBE_EME
|
||||
pref("media.gmp-eme-adobe.visible", true);
|
||||
// When Adobe EME is enabled in the build system, we don't actually enable
|
||||
// the plugin by default, so that it doesn't download and install by default.
|
||||
// When Adobe EME is first used, Firefox will prompt the user to enable it,
|
||||
// and then download the CDM.
|
||||
pref("media.gmp-eme-adobe.enabled", false);
|
||||
#endif
|
||||
|
||||
#ifdef MOZ_WIDEVINE_EME
|
||||
pref("media.gmp-widevinecdm.visible", true);
|
||||
pref("media.gmp-widevinecdm.enabled", true);
|
||||
|
|
|
@ -19,11 +19,7 @@ var gEMEHandler = {
|
|||
ensureEMEEnabled: function(browser, keySystem) {
|
||||
Services.prefs.setBoolPref("media.eme.enabled", true);
|
||||
if (keySystem) {
|
||||
if (keySystem.startsWith("com.adobe") &&
|
||||
Services.prefs.getPrefType("media.gmp-eme-adobe.enabled") &&
|
||||
!Services.prefs.getBoolPref("media.gmp-eme-adobe.enabled")) {
|
||||
Services.prefs.setBoolPref("media.gmp-eme-adobe.enabled", true);
|
||||
} else if (keySystem == "com.widevine.alpha" &&
|
||||
if (keySystem == "com.widevine.alpha" &&
|
||||
Services.prefs.getPrefType("media.gmp-widevinecdm.enabled") &&
|
||||
!Services.prefs.getBoolPref("media.gmp-widevinecdm.enabled")) {
|
||||
Services.prefs.setBoolPref("media.gmp-widevinecdm.enabled", true);
|
||||
|
@ -35,10 +31,6 @@ var gEMEHandler = {
|
|||
if (!keySystem) {
|
||||
return false;
|
||||
}
|
||||
if (keySystem.startsWith("com.adobe") &&
|
||||
Services.prefs.getPrefType("media.gmp-eme-adobe.visible")) {
|
||||
return Services.prefs.getBoolPref("media.gmp-eme-adobe.visible");
|
||||
}
|
||||
if (keySystem == "com.widevine.alpha" &&
|
||||
Services.prefs.getPrefType("media.gmp-widevinecdm.visible")) {
|
||||
return Services.prefs.getBoolPref("media.gmp-widevinecdm.visible");
|
||||
|
@ -201,14 +193,6 @@ const TELEMETRY_DDSTAT_SOLVED = 4;
|
|||
|
||||
let gDecoderDoctorHandler = {
|
||||
getLabelForNotificationBox(type) {
|
||||
if (type == "adobe-cdm-not-found" &&
|
||||
AppConstants.platform == "win") {
|
||||
return gNavigatorBundle.getString("decoder.noCodecs.message");
|
||||
}
|
||||
if (type == "adobe-cdm-not-activated" &&
|
||||
AppConstants.platform == "win") {
|
||||
return gNavigatorBundle.getString("decoder.noCodecs.message");
|
||||
}
|
||||
if (type == "platform-decoder-not-found") {
|
||||
if (AppConstants.platform == "win") {
|
||||
return gNavigatorBundle.getString("decoder.noHWAcceleration.message");
|
||||
|
|
|
@ -28,7 +28,5 @@ gmp_privacy_info=Privacy Information
|
|||
openH264_name=OpenH264 Video Codec provided by Cisco Systems, Inc.
|
||||
openH264_description2=This plugin is automatically installed by Mozilla to comply with the WebRTC specification and to enable WebRTC calls with devices that require the H.264 video codec. Visit http://www.openh264.org/ to view the codec source code and learn more about the implementation.
|
||||
|
||||
eme-adobe_name=Primetime Content Decryption Module provided by Adobe Systems, Incorporated
|
||||
eme-adobe_description=Play back protected web video.
|
||||
|
||||
widevine_description=Widevine Content Decryption Module provided by Google Inc.
|
||||
widevine_name=Widevine Content Decryption Module provided by Google Inc.
|
||||
widevine_description2=Play back protected web video.
|
||||
|
|
|
@ -31,7 +31,6 @@ namespace mozilla {
|
|||
|
||||
NS_NAMED_LITERAL_CSTRING(kEMEKeySystemClearkey, "org.w3.clearkey");
|
||||
NS_NAMED_LITERAL_CSTRING(kEMEKeySystemWidevine, "com.widevine.alpha");
|
||||
NS_NAMED_LITERAL_CSTRING(kEMEKeySystemPrimetime, "com.adobe.primetime");
|
||||
|
||||
using layers::PlanarYCbCrImage;
|
||||
|
||||
|
|
|
@ -47,7 +47,6 @@ class MediaContentType;
|
|||
// EME Key System String.
|
||||
extern const nsLiteralCString kEMEKeySystemClearkey;
|
||||
extern const nsLiteralCString kEMEKeySystemWidevine;
|
||||
extern const nsLiteralCString kEMEKeySystemPrimetime;
|
||||
|
||||
/**
|
||||
* ReentrantMonitorConditionallyEnter
|
||||
|
|
|
@ -53,12 +53,6 @@ IsClearkeyKeySystem(const nsAString& aKeySystem)
|
|||
return !CompareUTF8toUTF16(kEMEKeySystemClearkey, aKeySystem);
|
||||
}
|
||||
|
||||
bool
|
||||
IsPrimetimeKeySystem(const nsAString& aKeySystem)
|
||||
{
|
||||
return !CompareUTF8toUTF16(kEMEKeySystemPrimetime, aKeySystem);
|
||||
}
|
||||
|
||||
bool
|
||||
IsWidevineKeySystem(const nsAString& aKeySystem)
|
||||
{
|
||||
|
@ -68,9 +62,6 @@ IsWidevineKeySystem(const nsAString& aKeySystem)
|
|||
nsString
|
||||
KeySystemToGMPName(const nsAString& aKeySystem)
|
||||
{
|
||||
if (IsPrimetimeKeySystem(aKeySystem)) {
|
||||
return NS_LITERAL_STRING("gmp-eme-adobe");
|
||||
}
|
||||
if (IsClearkeyKeySystem(aKeySystem)) {
|
||||
return NS_LITERAL_STRING("gmp-clearkey");
|
||||
}
|
||||
|
@ -88,8 +79,6 @@ ToCDMTypeTelemetryEnum(const nsString& aKeySystem)
|
|||
return CDMType::eWidevine;
|
||||
} else if (IsClearkeyKeySystem(aKeySystem)) {
|
||||
return CDMType::eClearKey;
|
||||
} else if (IsPrimetimeKeySystem(aKeySystem)) {
|
||||
return CDMType::ePrimetime;
|
||||
}
|
||||
return CDMType::eUnknown;
|
||||
}
|
||||
|
|
|
@ -86,15 +86,11 @@ KeySystemToGMPName(const nsAString& aKeySystem);
|
|||
bool
|
||||
IsClearkeyKeySystem(const nsAString& aKeySystem);
|
||||
|
||||
bool
|
||||
IsPrimetimeKeySystem(const nsAString& aKeySystem);
|
||||
|
||||
bool
|
||||
IsWidevineKeySystem(const nsAString& aKeySystem);
|
||||
|
||||
enum CDMType {
|
||||
eClearKey = 0,
|
||||
ePrimetime = 1,
|
||||
eWidevine = 2,
|
||||
eUnknown = 3
|
||||
};
|
||||
|
|
|
@ -134,23 +134,6 @@ MediaKeySystemAccess::GetKeySystemStatus(const nsAString& aKeySystem,
|
|||
return EnsureCDMInstalled(aKeySystem, aOutMessage);
|
||||
}
|
||||
|
||||
if (Preferences::GetBool("media.gmp-eme-adobe.visible", false)) {
|
||||
if (IsPrimetimeKeySystem(aKeySystem)) {
|
||||
if (!Preferences::GetBool("media.gmp-eme-adobe.enabled", false)) {
|
||||
aOutMessage = NS_LITERAL_CSTRING("Adobe EME disabled");
|
||||
return MediaKeySystemStatus::Cdm_disabled;
|
||||
}
|
||||
#ifdef XP_WIN
|
||||
// Win Vista and later only.
|
||||
// if (!IsVistaOrLater()) {
|
||||
// aOutMessage = NS_LITERAL_CSTRING("Minimum Windows version (Vista) not met for Adobe EME");
|
||||
// return MediaKeySystemStatus::Cdm_not_supported;
|
||||
// }
|
||||
#endif
|
||||
return EnsureCDMInstalled(aKeySystem, aOutMessage);
|
||||
}
|
||||
}
|
||||
|
||||
if (IsWidevineKeySystem(aKeySystem)) {
|
||||
if (Preferences::GetBool("media.gmp-widevinecdm.visible", false)) {
|
||||
#ifdef XP_WIN
|
||||
|
@ -390,19 +373,6 @@ GetSupportedKeySystems()
|
|||
keySystemConfigs.AppendElement(Move(widevine));
|
||||
}
|
||||
}
|
||||
{
|
||||
if (HavePluginForKeySystem(kEMEKeySystemPrimetime)) {
|
||||
KeySystemConfig primetime;
|
||||
primetime.mKeySystem = NS_ConvertUTF8toUTF16(kEMEKeySystemPrimetime);
|
||||
primetime.mInitDataTypes.AppendElement(NS_LITERAL_STRING("cenc"));
|
||||
primetime.mPersistentState = KeySystemFeatureSupport::Required;
|
||||
primetime.mDistinctiveIdentifier = KeySystemFeatureSupport::Required;
|
||||
primetime.mSessionTypes.AppendElement(MediaKeySessionType::Temporary);
|
||||
primetime.mMP4.SetCanDecryptAndDecode(EME_CODEC_AAC);
|
||||
primetime.mMP4.SetCanDecryptAndDecode(EME_CODEC_H264);
|
||||
keySystemConfigs.AppendElement(Move(primetime));
|
||||
}
|
||||
}
|
||||
|
||||
return keySystemConfigs;
|
||||
}
|
||||
|
|
|
@ -95,8 +95,7 @@ MediaKeySystemAccessManager::Request(DetailedPromise* aPromise,
|
|||
|
||||
// Ensure keysystem is supported.
|
||||
if (!IsWidevineKeySystem(aKeySystem) &&
|
||||
!IsClearkeyKeySystem(aKeySystem) &&
|
||||
!IsPrimetimeKeySystem(aKeySystem)) {
|
||||
!IsClearkeyKeySystem(aKeySystem)) {
|
||||
// Not to inform user, because nothing to do if the keySystem is not
|
||||
// supported.
|
||||
aPromise->MaybeReject(NS_ERROR_DOM_NOT_SUPPORTED_ERR,
|
||||
|
@ -132,7 +131,7 @@ MediaKeySystemAccessManager::Request(DetailedPromise* aPromise,
|
|||
LogToBrowserConsole(NS_ConvertUTF8toUTF16(msg));
|
||||
|
||||
if (status == MediaKeySystemStatus::Cdm_not_installed &&
|
||||
(IsPrimetimeKeySystem(aKeySystem) || IsWidevineKeySystem(aKeySystem))) {
|
||||
IsWidevineKeySystem(aKeySystem)) {
|
||||
// These are cases which could be resolved by downloading a new(er) CDM.
|
||||
// When we send the status to chrome, chrome's GMPProvider will attempt to
|
||||
// download or update the CDM. In AwaitInstall() we add listeners to wait
|
||||
|
|
|
@ -727,16 +727,6 @@ GMPParent::ReadGMPInfoFile(nsIFile* aFile)
|
|||
|
||||
if (cap.mAPIName.EqualsLiteral(GMP_API_DECRYPTOR)) {
|
||||
mCanDecrypt = true;
|
||||
|
||||
#ifdef XP_WIN
|
||||
// Adobe GMP doesn't work without SSE2. Check the tags to see if
|
||||
// the decryptor is for the Adobe GMP, and refuse to load it if
|
||||
// SSE2 isn't supported.
|
||||
if (cap.mAPITags.Contains(kEMEKeySystemPrimetime) &&
|
||||
!mozilla::supports_sse2()) {
|
||||
return GenericPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
|
||||
}
|
||||
#endif // XP_WIN
|
||||
}
|
||||
|
||||
mCapabilities.AppendElement(Move(cap));
|
||||
|
|
|
@ -203,29 +203,6 @@ MoveAndOverwrite(nsIFile* aOldParentDir,
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
MigratePreGecko42StorageDir(nsIFile* aOldStorageDir,
|
||||
nsIFile* aNewStorageDir)
|
||||
{
|
||||
MoveAndOverwrite(aOldStorageDir, aNewStorageDir, NS_LITERAL_STRING("id"));
|
||||
MoveAndOverwrite(aOldStorageDir, aNewStorageDir, NS_LITERAL_STRING("storage"));
|
||||
}
|
||||
|
||||
static void
|
||||
MigratePreGecko45StorageDir(nsIFile* aStorageDirBase)
|
||||
{
|
||||
nsCOMPtr<nsIFile> adobeStorageDir(CloneAndAppend(aStorageDirBase, NS_LITERAL_STRING("gmp-eme-adobe")));
|
||||
if (NS_WARN_IF(!adobeStorageDir)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// The base storage dir in pre-45 contained "id" and "storage" subdirs.
|
||||
// We assume all storage in the base storage dir that aren't known to GMP
|
||||
// storage are records for the Adobe GMP.
|
||||
MoveAndOverwrite(aStorageDirBase, adobeStorageDir, NS_LITERAL_STRING("id"));
|
||||
MoveAndOverwrite(aStorageDirBase, adobeStorageDir, NS_LITERAL_STRING("storage"));
|
||||
}
|
||||
|
||||
static nsresult
|
||||
GMPPlatformString(nsAString& aOutPlatform)
|
||||
{
|
||||
|
@ -308,19 +285,6 @@ GeckoMediaPluginServiceParent::InitStorage()
|
|||
return rv;
|
||||
}
|
||||
|
||||
// Prior to 42, GMP storage was stored in $profileDir/gmp/. After 42, it's
|
||||
// stored in $profileDir/gmp/$platform/. So we must migrate any old records
|
||||
// from the old location to the new location, for forwards compatibility.
|
||||
MigratePreGecko42StorageDir(gmpDirWithoutPlatform, mStorageBaseDir);
|
||||
|
||||
// Prior to 45, GMP storage was not separated by plugin. In 45 and after,
|
||||
// it's stored in $profile/gmp/$platform/$gmpName. So we must migrate old
|
||||
// records from the old location to the new location, for forwards
|
||||
// compatibility. We assume all directories in the base storage dir that
|
||||
// aren't known to GMP storage are records for the Adobe GMP, since it
|
||||
// was first.
|
||||
MigratePreGecko45StorageDir(mStorageBaseDir);
|
||||
|
||||
return GeckoMediaPluginService::Init();
|
||||
}
|
||||
|
||||
|
|
|
@ -109,7 +109,6 @@ GMPDecoderModule::PreferredGMP(const nsACString& aMimeType)
|
|||
if (aMimeType.EqualsLiteral("audio/mp4a-latm")) {
|
||||
switch (MediaPrefs::GMPAACPreferred()) {
|
||||
case 1: rv.emplace(kEMEKeySystemClearkey); break;
|
||||
case 2: rv.emplace(kEMEKeySystemPrimetime); break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
@ -117,7 +116,6 @@ GMPDecoderModule::PreferredGMP(const nsACString& aMimeType)
|
|||
if (MP4Decoder::IsH264(aMimeType)) {
|
||||
switch (MediaPrefs::GMPH264Preferred()) {
|
||||
case 1: rv.emplace(kEMEKeySystemClearkey); break;
|
||||
case 2: rv.emplace(kEMEKeySystemPrimetime); break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -200,19 +200,6 @@ class NetworkBandwidthTestsMixin(object):
|
|||
self.run_videos(timeout=120)
|
||||
|
||||
|
||||
reset_adobe_gmp_script = """
|
||||
navigator.requestMediaKeySystemAccess('com.adobe.primetime',
|
||||
[{initDataTypes: ['cenc']}]).then(
|
||||
function(access) {
|
||||
marionetteScriptFinished('success');
|
||||
},
|
||||
function(ex) {
|
||||
marionetteScriptFinished(ex);
|
||||
}
|
||||
);
|
||||
"""
|
||||
|
||||
|
||||
reset_widevine_gmp_script = """
|
||||
navigator.requestMediaKeySystemAccess('com.widevine.alpha',
|
||||
[{initDataTypes: ['cenc']}]).then(
|
||||
|
@ -256,21 +243,12 @@ class EMESetupMixin(object):
|
|||
def reset_GMP_version(self):
|
||||
if EMESetupMixin.version_needs_reset:
|
||||
with self.marionette.using_context(Marionette.CONTEXT_CHROME):
|
||||
if self.marionette.get_pref('media.gmp-eme-adobe.version'):
|
||||
self.marionette.reset_pref('media.gmp-eme-adobe.version')
|
||||
if self.marionette.get_pref('media.gmp-widevinecdm.version'):
|
||||
self.marionette.reset_pref('media.gmp-widevinecdm.version')
|
||||
with self.marionette.using_context(Marionette.CONTEXT_CONTENT):
|
||||
adobe_result = self.marionette.execute_async_script(
|
||||
reset_adobe_gmp_script,
|
||||
script_timeout=60000)
|
||||
widevine_result = self.marionette.execute_async_script(
|
||||
reset_widevine_gmp_script,
|
||||
script_timeout=60000)
|
||||
if not adobe_result == 'success':
|
||||
raise VideoException(
|
||||
'ERROR: Resetting Adobe GMP failed {}'
|
||||
.format(adobe_result))
|
||||
if not widevine_result == 'success':
|
||||
raise VideoException(
|
||||
'ERROR: Resetting Widevine GMP failed {}'
|
||||
|
@ -351,10 +329,6 @@ class EMESetupMixin(object):
|
|||
'media.eme.enabled', True),
|
||||
self.check_and_log_boolean_pref(
|
||||
'media.mediasource.mp4.enabled', True),
|
||||
self.check_and_log_boolean_pref(
|
||||
'media.gmp-eme-adobe.enabled', True),
|
||||
self.check_and_log_integer_pref(
|
||||
'media.gmp-eme-adobe.version', 1),
|
||||
self.check_and_log_boolean_pref(
|
||||
'media.gmp-widevinecdm.enabled', True),
|
||||
self.chceck_and_log_version_string_pref(
|
||||
|
|
|
@ -108,11 +108,6 @@ const uint8_t kSystemID[] = {
|
|||
0xac, 0xe3, 0x3c, 0x1e, 0x52, 0xe2, 0xfb, 0x4b
|
||||
};
|
||||
|
||||
const uint8_t kPrimetimeID[] = {
|
||||
0xf2, 0x39, 0xe7, 0x69, 0xef, 0xa3, 0x48, 0x50,
|
||||
0x9c, 0x16, 0xa9, 0x03, 0xc6, 0x93, 0x2e, 0xfb
|
||||
};
|
||||
|
||||
bool
|
||||
ParseCENCInitData(const uint8_t* aInitData,
|
||||
uint32_t aInitDataSize,
|
||||
|
@ -163,11 +158,6 @@ ParseCENCInitData(const uint8_t* aInitData,
|
|||
// Insufficient bytes to read SystemID.
|
||||
return false;
|
||||
}
|
||||
if (!memcmp(kPrimetimeID, sid, sizeof(kSystemID))) {
|
||||
// Allow legacy Primetime key system PSSH boxes, which
|
||||
// don't conform to common encryption format.
|
||||
return true;
|
||||
}
|
||||
|
||||
if (memcmp(kSystemID, sid, sizeof(kSystemID))) {
|
||||
// Ignore pssh boxes with wrong system ID.
|
||||
|
|
|
@ -113,15 +113,6 @@ const uint8_t g2xGoogleWPTCencInitData[] = {
|
|||
0x00, 0x00, 0x00, 0x00 // datasize
|
||||
};
|
||||
|
||||
const uint8_t gPrimetimePSSH[] = {
|
||||
0x00, 0x00, 0x00, 0x00, // size = 0
|
||||
0x70, 0x73, 0x73, 0x68, // 'pssh'
|
||||
0x01, // version = 1
|
||||
0x00, 0x00, 0x00, // flags
|
||||
0xf2, 0x39, 0xe7, 0x69, 0xef, 0xa3, 0x48, 0x50, // Primetime system Id
|
||||
0x9c, 0x16, 0xa9, 0x03, 0xc6, 0x93, 0x2e, 0xfb
|
||||
};
|
||||
|
||||
TEST(PsshParser, ParseCencInitData) {
|
||||
std::vector<std::vector<uint8_t>> keyIds;
|
||||
bool rv;
|
||||
|
@ -162,8 +153,4 @@ TEST(PsshParser, ParseCencInitData) {
|
|||
EXPECT_EQ(16u, keyIds[1].size());
|
||||
EXPECT_EQ(0, memcmp(&keyIds[0].front(), &g2xGoogleWPTCencInitData[32], 16));
|
||||
EXPECT_EQ(0, memcmp(&keyIds[1].front(), &g2xGoogleWPTCencInitData[84], 16));
|
||||
|
||||
rv = ParseCENCInitData(gPrimetimePSSH, MOZ_ARRAY_LENGTH(gPrimetimePSSH), keyIds);
|
||||
EXPECT_TRUE(rv);
|
||||
EXPECT_EQ(0u, keyIds.size());
|
||||
}
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
{
|
||||
"vendors": {
|
||||
"gmp-eme-adobe": {
|
||||
"platforms": {
|
||||
"WINNT_x86-msvc-x64": {
|
||||
"alias": "WINNT_x86-msvc"
|
||||
},
|
||||
"WINNT_x86-msvc": {
|
||||
"fileUrl": "https://cdmdownload.adobe.com/firefox/win/x86/primetime_gmp_win_x86_gmc_40673.zip",
|
||||
"hashValue": "8aad35fc13814b0f1daacddb0d599eedd685287d5afddc97c2f740c8aea270636ccd75b1d1a57364b84e8eb1b23c9f1c126c057d95f3d8217b331dc4b1d5340f",
|
||||
"filesize": 3694349
|
||||
},
|
||||
"WINNT_x86_64-msvc-x64": {
|
||||
"alias": "WINNT_x86_64-msvc"
|
||||
},
|
||||
"WINNT_x86-msvc-x86": {
|
||||
"alias": "WINNT_x86-msvc"
|
||||
},
|
||||
"WINNT_x86_64-msvc": {
|
||||
"fileUrl": "https://cdmdownload.adobe.com/firefox/win/x64/primetime_gmp_win_x64_gmc_40673.zip",
|
||||
"hashValue": "bd1e1a370c5f9dadc247c9f00dd203fab1a75ff3afed8439a0a0bfcc7e1767d0da68497140cbe48daa70e2535dde5f220dd7b344619cecd830a6b685efb9d5a0",
|
||||
"filesize": 4853103
|
||||
}
|
||||
},
|
||||
"version": "17"
|
||||
}
|
||||
},
|
||||
"hashFunction": "sha512",
|
||||
"name": "CDM-17",
|
||||
"schema_version": 1000
|
||||
}
|
|
@ -132,7 +132,6 @@ toolkit.jar:
|
|||
#endif
|
||||
content/global/svg/svgBindings.xml (/layout/svg/resources/content/svgBindings.xml)
|
||||
#ifdef THE_GMP
|
||||
content/global/gmp-sources/eme-adobe.json (gmp-sources/eme-adobe.json)
|
||||
content/global/gmp-sources/openh264.json (gmp-sources/openh264.json)
|
||||
content/global/gmp-sources/widevinecdm.json (gmp-sources/widevinecdm.json)
|
||||
#endif
|
||||
|
|
|
@ -7,8 +7,7 @@
|
|||
const {classes: Cc, interfaces: Ci, results: Cr, utils: Cu, manager: Cm} =
|
||||
Components;
|
||||
|
||||
this.EXPORTED_SYMBOLS = [ "EME_ADOBE_ID",
|
||||
"GMP_PLUGIN_IDS",
|
||||
this.EXPORTED_SYMBOLS = [ "GMP_PLUGIN_IDS",
|
||||
"GMPPrefs",
|
||||
"GMPUtils",
|
||||
"OPEN_H264_ID",
|
||||
|
@ -20,9 +19,8 @@ Cu.import("resource://gre/modules/AppConstants.jsm");
|
|||
|
||||
// GMP IDs
|
||||
const OPEN_H264_ID = "gmp-gmpopenh264";
|
||||
const EME_ADOBE_ID = "gmp-eme-adobe";
|
||||
const WIDEVINE_ID = "gmp-widevinecdm";
|
||||
const GMP_PLUGIN_IDS = [ OPEN_H264_ID, EME_ADOBE_ID, WIDEVINE_ID ];
|
||||
const GMP_PLUGIN_IDS = [ OPEN_H264_ID, WIDEVINE_ID ];
|
||||
|
||||
var GMPPluginUnsupportedReason = {
|
||||
NOT_WINDOWS: 1,
|
||||
|
@ -72,10 +70,7 @@ this.GMPUtils = {
|
|||
if (this._isPluginForceSupported(aPlugin)) {
|
||||
return true;
|
||||
}
|
||||
if (aPlugin.id == EME_ADOBE_ID) {
|
||||
// Windows Vista and later only supported by Adobe EME.
|
||||
return AppConstants.isPlatformAndVersionAtLeast("win", "6");
|
||||
} else if (aPlugin.id == WIDEVINE_ID) {
|
||||
if (aPlugin.id == WIDEVINE_ID) {
|
||||
// The Widevine plugin is available for Windows versions Vista and later,
|
||||
// Mac OSX, and Linux.
|
||||
return AppConstants.isPlatformAndVersionAtLeast("win", "6") ||
|
||||
|
|
|
@ -49,22 +49,11 @@ const GMP_PLUGINS = [
|
|||
homepageURL: "http://www.openh264.org/",
|
||||
optionsURL: "chrome://mozapps/content/extensions/gmpPrefs.xul"
|
||||
},
|
||||
/*
|
||||
{
|
||||
id: EME_ADOBE_ID,
|
||||
name: "eme-adobe_name",
|
||||
description: "eme-adobe_description",
|
||||
licenseURL: "http://help.adobe.com/en_US/primetime/drm/HTML5_CDM_EULA/index.html",
|
||||
homepageURL: "http://help.adobe.com/en_US/primetime/drm/HTML5_CDM",
|
||||
optionsURL: "chrome://mozapps/content/extensions/gmpPrefs.xul",
|
||||
isEME: true
|
||||
},
|
||||
*/
|
||||
{
|
||||
id: WIDEVINE_ID,
|
||||
name: "widevine_description",
|
||||
name: "widevine_name",
|
||||
// Describe the purpose of both CDMs in the same way.
|
||||
description: "eme-adobe_description",
|
||||
description: "widevine_description2",
|
||||
licenseURL: "https://www.google.com/policies/privacy/",
|
||||
homepageURL: "https://www.widevine.com/",
|
||||
optionsURL: "chrome://mozapps/content/extensions/gmpPrefs.xul",
|
||||
|
|
|
@ -7,9 +7,6 @@
|
|||
const { classes: Cc, interfaces: Ci, utils: Cu } = Components;
|
||||
|
||||
const LOCAL_EME_SOURCES = [{
|
||||
"id": "gmp-eme-adobe",
|
||||
"src": "chrome://global/content/gmp-sources/eme-adobe.json"
|
||||
}, {
|
||||
"id": "gmp-gmpopenh264",
|
||||
"src": "chrome://global/content/gmp-sources/openh264.json"
|
||||
}, {
|
||||
|
|
|
@ -88,7 +88,7 @@
|
|||
"Gestures.jsm": ["GestureSettings", "GestureTracker"],
|
||||
"GMPInstallManager.jsm": ["GMPInstallManager", "GMPExtractor", "GMPDownloader", "GMPAddon"],
|
||||
"GMPProvider.jsm": [],
|
||||
"GMPUtils.jsm": ["EME_ADOBE_ID", "GMP_PLUGIN_IDS", "GMPPrefs", "GMPUtils", "OPEN_H264_ID", "WIDEVINE_ID"],
|
||||
"GMPUtils.jsm": ["GMP_PLUGIN_IDS", "GMPPrefs", "GMPUtils", "OPEN_H264_ID", "WIDEVINE_ID"],
|
||||
"hawkclient.js": ["HawkClient"],
|
||||
"hawkrequest.js": ["HAWKAuthenticatedRESTRequest", "deriveHawkCredentials"],
|
||||
"HelperApps.jsm": ["App", "HelperApps"],
|
||||
|
|
Loading…
Reference in New Issue