зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1245789 - Change GMPParent::InitPromise to instead use GenericPromise as defined in MozPromise.h. r=gerald
This makes it easier to chain promises returned by GMPParent::Init() with calls to GMPServiceParent::LoadFromEnvironment() in the next patch. MozReview-Commit-ID: KdGVvzAedJW
This commit is contained in:
Родитель
4eaf999528
Коммит
c96ec15fb4
|
@ -106,7 +106,7 @@ GMPParent::CloneFrom(const GMPParent* aOther)
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
RefPtr<GMPParent::InitPromise>
|
||||
RefPtr<GenericPromise>
|
||||
GMPParent::Init(GeckoMediaPluginServiceParent* aService, nsIFile* aPluginDir)
|
||||
{
|
||||
MOZ_ASSERT(aPluginDir);
|
||||
|
@ -121,12 +121,12 @@ GMPParent::Init(GeckoMediaPluginServiceParent* aService, nsIFile* aPluginDir)
|
|||
nsCOMPtr<nsIFile> parent;
|
||||
nsresult rv = aPluginDir->GetParent(getter_AddRefs(parent));
|
||||
if (NS_FAILED(rv)) {
|
||||
return InitPromise::CreateAndReject(rv, __func__);
|
||||
return GenericPromise::CreateAndReject(rv, __func__);
|
||||
}
|
||||
nsAutoString parentLeafName;
|
||||
rv = parent->GetLeafName(parentLeafName);
|
||||
if (NS_FAILED(rv)) {
|
||||
return InitPromise::CreateAndReject(rv, __func__);
|
||||
return GenericPromise::CreateAndReject(rv, __func__);
|
||||
}
|
||||
LOGD("%s: for %s", __FUNCTION__, NS_LossyConvertUTF16toASCII(parentLeafName).get());
|
||||
|
||||
|
@ -775,7 +775,7 @@ ReadInfoField(GMPInfoFileParser& aParser, const nsCString& aKey, nsACString& aOu
|
|||
return true;
|
||||
}
|
||||
|
||||
RefPtr<GMPParent::InitPromise>
|
||||
RefPtr<GenericPromise>
|
||||
GMPParent::ReadGMPMetaData()
|
||||
{
|
||||
MOZ_ASSERT(mDirectory, "Plugin directory cannot be NULL!");
|
||||
|
@ -784,7 +784,7 @@ GMPParent::ReadGMPMetaData()
|
|||
nsCOMPtr<nsIFile> infoFile;
|
||||
nsresult rv = mDirectory->Clone(getter_AddRefs(infoFile));
|
||||
if (NS_FAILED(rv)) {
|
||||
return InitPromise::CreateAndReject(rv, __func__);
|
||||
return GenericPromise::CreateAndReject(rv, __func__);
|
||||
}
|
||||
infoFile->AppendRelativePath(mName + NS_LITERAL_STRING(".info"));
|
||||
|
||||
|
@ -797,21 +797,21 @@ GMPParent::ReadGMPMetaData()
|
|||
nsCOMPtr<nsIFile> manifestFile;
|
||||
rv = mDirectory->Clone(getter_AddRefs(manifestFile));
|
||||
if (NS_FAILED(rv)) {
|
||||
return InitPromise::CreateAndReject(rv, __func__);
|
||||
return GenericPromise::CreateAndReject(rv, __func__);
|
||||
}
|
||||
manifestFile->AppendRelativePath(NS_LITERAL_STRING("manifest.json"));
|
||||
return ReadChromiumManifestFile(manifestFile);
|
||||
#else
|
||||
return InitPromise::CreateAndReject(rv, __func__);
|
||||
return GenericPromise::CreateAndReject(rv, __func__);
|
||||
#endif
|
||||
}
|
||||
|
||||
RefPtr<GMPParent::InitPromise>
|
||||
RefPtr<GenericPromise>
|
||||
GMPParent::ReadGMPInfoFile(nsIFile* aFile)
|
||||
{
|
||||
GMPInfoFileParser parser;
|
||||
if (!parser.Init(aFile)) {
|
||||
return InitPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
|
||||
return GenericPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
|
||||
}
|
||||
|
||||
nsAutoCString apis;
|
||||
|
@ -819,7 +819,7 @@ GMPParent::ReadGMPInfoFile(nsIFile* aFile)
|
|||
!ReadInfoField(parser, NS_LITERAL_CSTRING("description"), mDescription) ||
|
||||
!ReadInfoField(parser, NS_LITERAL_CSTRING("version"), mVersion) ||
|
||||
!ReadInfoField(parser, NS_LITERAL_CSTRING("apis"), apis)) {
|
||||
return InitPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
|
||||
return GenericPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
|
||||
}
|
||||
|
||||
#ifdef XP_WIN
|
||||
|
@ -874,7 +874,7 @@ GMPParent::ReadGMPInfoFile(nsIFile* aFile)
|
|||
printf_stderr("GMPParent::ReadGMPMetaData: Plugin \"%s\" is an EME CDM"
|
||||
" but this system can't sandbox it; not loading.\n",
|
||||
mDisplayName.get());
|
||||
return InitPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
|
||||
return GenericPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
|
||||
}
|
||||
#endif
|
||||
#ifdef XP_WIN
|
||||
|
@ -883,7 +883,7 @@ GMPParent::ReadGMPInfoFile(nsIFile* aFile)
|
|||
// SSE2 isn't supported.
|
||||
if (cap.mAPITags.Contains(NS_LITERAL_CSTRING("com.adobe.primetime")) &&
|
||||
!mozilla::supports_sse2()) {
|
||||
return InitPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
|
||||
return GenericPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
|
||||
}
|
||||
#endif // XP_WIN
|
||||
}
|
||||
|
@ -911,19 +911,19 @@ GMPParent::ReadGMPInfoFile(nsIFile* aFile)
|
|||
}
|
||||
|
||||
if (mCapabilities.IsEmpty()) {
|
||||
return InitPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
|
||||
return GenericPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
|
||||
}
|
||||
|
||||
return InitPromise::CreateAndResolve(NS_OK, __func__);
|
||||
return GenericPromise::CreateAndResolve(true, __func__);
|
||||
}
|
||||
|
||||
#ifdef MOZ_WIDEVINE_EME
|
||||
RefPtr<GMPParent::InitPromise>
|
||||
RefPtr<GenericPromise>
|
||||
GMPParent::ReadChromiumManifestFile(nsIFile* aFile)
|
||||
{
|
||||
nsAutoCString json;
|
||||
if (!ReadIntoString(aFile, json, 5 * 1024)) {
|
||||
return InitPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
|
||||
return GenericPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
|
||||
}
|
||||
|
||||
// DOM JSON parsing needs to run on the main thread.
|
||||
|
@ -931,7 +931,7 @@ GMPParent::ReadChromiumManifestFile(nsIFile* aFile)
|
|||
&GMPParent::ParseChromiumManifest, NS_ConvertUTF8toUTF16(json));
|
||||
}
|
||||
|
||||
RefPtr<GMPParent::InitPromise>
|
||||
RefPtr<GenericPromise>
|
||||
GMPParent::ParseChromiumManifest(nsString aJSON)
|
||||
{
|
||||
LOGD("%s: for '%s'", __FUNCTION__, NS_LossyConvertUTF16toASCII(aJSON).get());
|
||||
|
@ -939,14 +939,14 @@ GMPParent::ParseChromiumManifest(nsString aJSON)
|
|||
MOZ_ASSERT(NS_IsMainThread());
|
||||
mozilla::dom::WidevineCDMManifest m;
|
||||
if (!m.Init(aJSON)) {
|
||||
return InitPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
|
||||
return GenericPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
|
||||
}
|
||||
|
||||
nsresult ignored; // Note: ToInteger returns 0 on failure.
|
||||
if (!WidevineAdapter::Supports(m.mX_cdm_module_versions.ToInteger(&ignored),
|
||||
m.mX_cdm_interface_versions.ToInteger(&ignored),
|
||||
m.mX_cdm_host_versions.ToInteger(&ignored))) {
|
||||
return InitPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
|
||||
return GenericPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
|
||||
}
|
||||
|
||||
mDisplayName = NS_ConvertUTF16toUTF8(m.mName);
|
||||
|
@ -968,7 +968,7 @@ GMPParent::ParseChromiumManifest(nsString aJSON)
|
|||
mLibs = NS_LITERAL_CSTRING("dxva2.dll");
|
||||
#endif
|
||||
|
||||
return InitPromise::CreateAndResolve(NS_OK, __func__);
|
||||
return GenericPromise::CreateAndResolve(true, __func__);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -86,9 +86,7 @@ public:
|
|||
|
||||
GMPParent();
|
||||
|
||||
using InitPromise = MozPromise<nsresult, nsresult, true>;
|
||||
|
||||
RefPtr<InitPromise> Init(GeckoMediaPluginServiceParent* aService, nsIFile* aPluginDir);
|
||||
RefPtr<GenericPromise> Init(GeckoMediaPluginServiceParent* aService, nsIFile* aPluginDir);
|
||||
nsresult CloneFrom(const GMPParent* aOther);
|
||||
|
||||
void Crash();
|
||||
|
@ -167,11 +165,11 @@ private:
|
|||
|
||||
RefPtr<GeckoMediaPluginServiceParent> mService;
|
||||
bool EnsureProcessLoaded();
|
||||
RefPtr<InitPromise> ReadGMPMetaData();
|
||||
RefPtr<InitPromise> ReadGMPInfoFile(nsIFile* aFile);
|
||||
RefPtr<GenericPromise> ReadGMPMetaData();
|
||||
RefPtr<GenericPromise> ReadGMPInfoFile(nsIFile* aFile);
|
||||
#ifdef MOZ_WIDEVINE_EME
|
||||
RefPtr<InitPromise> ParseChromiumManifest(nsString aJSON); // Main thread.
|
||||
RefPtr<InitPromise> ReadChromiumManifestFile(nsIFile* aFile); // GMP thread.
|
||||
RefPtr<GenericPromise> ParseChromiumManifest(nsString aJSON); // Main thread.
|
||||
RefPtr<GenericPromise> ReadChromiumManifestFile(nsIFile* aFile); // GMP thread.
|
||||
#endif
|
||||
#ifdef MOZ_CRASHREPORTER
|
||||
void WriteExtraDataForMinidump(CrashReporter::AnnotationTable& notes);
|
||||
|
|
Загрузка…
Ссылка в новой задаче