NS_IMETHODIMP GeckoMediaPluginService::GetGMPDecryptor(nsTArray<nsCString>* aTags, const nsACString& aNodeId, UniquePtr<GetGMPDecryptorCallback>&& aCallback) { #if defined(XP_LINUX) && defined(MOZ_GMP_SANDBOX) if (!SandboxInfo::Get().CanSandboxMedia()) { NS_WARNING("GeckoMediaPluginService::GetGMPDecryptor: " "EME decryption not available without sandboxing support."); return NS_ERROR_NOT_AVAILABLE; } #endif MOZ_ASSERT(NS_GetCurrentThread() == mGMPThread); NS_ENSURE_ARG(aTags && aTags->Length() > 0); NS_ENSURE_ARG(aCallback); if (mShuttingDownOnGMPThread) { return NS_ERROR_FAILURE; } UniquePtr<GetGMPContentParentCallback> callback( new GetGMPContentParentForDecryptorDone(Move(aCallback))); if (!GetContentParentFrom(aNodeId, NS_LITERAL_CSTRING(GMP_API_DECRYPTOR), *aTags, Move(callback))) { return NS_ERROR_FAILURE; } return NS_OK; }
NS_IMETHODIMP GeckoMediaPluginService::GetGMPVideoEncoder(GMPCrashHelper* aHelper, nsTArray<nsCString>* aTags, const nsACString& aNodeId, UniquePtr<GetGMPVideoEncoderCallback>&& aCallback) { MOZ_ASSERT(NS_GetCurrentThread() == mGMPThread); NS_ENSURE_ARG(aTags && aTags->Length() > 0); NS_ENSURE_ARG(aCallback); if (mShuttingDownOnGMPThread) { return NS_ERROR_FAILURE; } UniquePtr<GetGMPContentParentCallback> callback( new GetGMPContentParentForVideoEncoderDone(Move(aCallback), aHelper)); if (!GetContentParentFrom(aHelper, aNodeId, NS_LITERAL_CSTRING(GMP_API_VIDEO_ENCODER), *aTags, Move(callback))) { return NS_ERROR_FAILURE; } return NS_OK; }