Exemplo n.º 1
0
mozilla::ipc::IPCResult
GMPDecryptorParent::RecvBatchedKeyStatusChanged(const nsCString& aSessionId,
                                                InfallibleTArray<GMPKeyInformation>&& aKeyInfos)
{
  LOGD(("GMPDecryptorParent[%p]::RecvBatchedKeyStatusChanged(sessionId='%s', KeyInfos len='%d')",
        this, aSessionId.get(), aKeyInfos.Length()));

  if (mIsOpen) {
    nsTArray<CDMKeyInfo> cdmKeyInfos(aKeyInfos.Length());
    for (uint32_t i = 0; i < aKeyInfos.Length(); i++) {
      LOGD(("GMPDecryptorParent[%p]::RecvBatchedKeyStatusChanged(keyId=%s, gmp-status=%d)",
            this, ToBase64(aKeyInfos[i].keyId()).get(), aKeyInfos[i].status()));
      // If the status is kGMPUnknown, we're going to forget(remove) that key info.
      if (aKeyInfos[i].status() != kGMPUnknown) {
        auto status = ToMediaKeyStatus(aKeyInfos[i].status());
        cdmKeyInfos.AppendElement(CDMKeyInfo(aKeyInfos[i].keyId(),
                                             dom::Optional<dom::MediaKeyStatus>(status)));
      } else {
        cdmKeyInfos.AppendElement(CDMKeyInfo(aKeyInfos[i].keyId()));
      }
    }
    mCallback->BatchedKeyStatusChanged(aSessionId, cdmKeyInfos);
  }
  return IPC_OK();
}
Exemplo n.º 2
0
void
MediaKeyStatusMap::Update(const nsTArray<CDMCaps::KeyStatus>& aKeys)
{
  mStatuses.Clear();
  for (const auto& key : aKeys) {
    mStatuses.InsertElementSorted(KeyStatus(key.mId, ToMediaKeyStatus(key.mStatus)));
  }
}
Exemplo n.º 3
0
bool
GMPDecryptorParent::RecvKeyStatusChanged(const nsCString& aSessionId,
                                         InfallibleTArray<uint8_t>&& aKeyId,
                                         const GMPMediaKeyStatus& aStatus)
{
  LOGD(("GMPDecryptorParent[%p]::RecvKeyStatusChanged(sessionId='%s', keyId=%s, status=%d)",
        this, aSessionId.get(), ToBase64(aKeyId).get(), aStatus));

  if (mIsOpen) {
    mCallback->KeyStatusChanged(aSessionId, aKeyId, ToMediaKeyStatus(aStatus));
  }
  return true;
}
Exemplo n.º 4
0
static bool
ToJSString(JSContext* aCx, GMPMediaKeyStatus aStatus,
           JS::MutableHandle<JS::Value> aResult)
{
  auto val = uint32_t(ToMediaKeyStatus(aStatus));
  MOZ_ASSERT(val < ArrayLength(MediaKeyStatusValues::strings));
  JSString* str = JS_NewStringCopyN(aCx,
      MediaKeyStatusValues::strings[val].value,
      MediaKeyStatusValues::strings[val].length);
  if (!str) {
    return false;
  }
  aResult.setString(str);
  return true;
}