Bug 1180610 - Handle EME plugin voucher disappearing after installation before restart, r=jw_wang
--- a/dom/media/eme/MediaKeySystemAccess.cpp
+++ b/dom/media/eme/MediaKeySystemAccess.cpp
@@ -156,27 +156,16 @@ EnsureMinCDMVersion(mozIGeckoMediaPlugin
return MediaKeySystemStatus::Error;
}
if (!hasPlugin) {
aOutMessage = NS_LITERAL_CSTRING("CDM is not installed");
return MediaKeySystemStatus::Cdm_not_installed;
}
- if (aMinCdmVersion == NO_CDM_VERSION) {
- return MediaKeySystemStatus::Available;
- }
-
- nsresult rv;
- int32_t version = versionStr.ToInteger(&rv);
- if (NS_FAILED(rv) || version < 0 || aMinCdmVersion > version) {
- aOutMessage = NS_LITERAL_CSTRING("Installed CDM version insufficient");
- return MediaKeySystemStatus::Cdm_insufficient_version;
- }
-
#ifdef XP_WIN
if (aKeySystem.EqualsLiteral("com.adobe.access") ||
aKeySystem.EqualsLiteral("com.adobe.primetime")) {
// Verify that anti-virus hasn't "helpfully" deleted the Adobe GMP DLL,
// as we suspect may happen (Bug 1160382).
bool somethingMissing = false;
if (!AdobePluginDLLExists(versionStr)) {
aOutMessage = NS_LITERAL_CSTRING("Adobe DLL was expected to be on disk but was not");
@@ -192,16 +181,24 @@ EnsureMinCDMVersion(mozIGeckoMediaPlugin
// Firefox will try to download the plugin next time the updater runs.
Preferences::ClearUser("media.gmp-eme-adobe.lastUpdate");
Preferences::ClearUser("media.gmp-eme-adobe.version");
return MediaKeySystemStatus::Cdm_not_installed;
}
}
#endif
+ nsresult rv;
+ int32_t version = versionStr.ToInteger(&rv);
+ if (aMinCdmVersion != NO_CDM_VERSION &&
+ (NS_FAILED(rv) || version < 0 || aMinCdmVersion > version)) {
+ aOutMessage = NS_LITERAL_CSTRING("Installed CDM version insufficient");
+ return MediaKeySystemStatus::Cdm_insufficient_version;
+ }
+
return MediaKeySystemStatus::Available;
}
/* static */
MediaKeySystemStatus
MediaKeySystemAccess::GetKeySystemStatus(const nsAString& aKeySystem,
int32_t aMinCdmVersion,
nsACString& aOutMessage)