Exemplo n.º 1
0
uint32_t
MsaaIdGenerator::GetID()
{
  uint32_t id = mIDSet.GetID();
  MOZ_ASSERT(id <= ((1UL << kNumUniqueIDBits) - 1UL));
  return detail::BuildMsaaID(id, ResolveContentProcessID());
}
Exemplo n.º 2
0
bool
MsaaIdGenerator::IsIDForThisContentProcess(uint32_t aID)
{
  MOZ_ASSERT(XRE_IsContentProcess());
  detail::MsaaIDCracker cracked(aID);
  return cracked.GetContentProcessId() == ResolveContentProcessID();
}
Exemplo n.º 3
0
bool
MsaaIdGenerator::ReleaseID(uint32_t aID)
{
  MOZ_ASSERT(aID != AccessibleWrap::kNoID);
  detail::MsaaIDCracker cracked(aID);
  if (cracked.GetContentProcessId() != ResolveContentProcessID()) {
    return false;
  }
  mIDSet.ReleaseID(cracked.GetUniqueId());
  return true;
}
Exemplo n.º 4
0
void
MsaaIdGenerator::ReleaseID(AccessibleWrap* aAccWrap)
{
  MOZ_ASSERT(aAccWrap);
  uint32_t id = aAccWrap->GetExistingID();
  MOZ_ASSERT(id != AccessibleWrap::kNoID);
  detail::MsaaIDCracker cracked(id);
  if (cracked.GetContentProcessId() != ResolveContentProcessID()) {
    // This may happen if chrome holds a proxy whose ID was originally generated
    // by a content process. Since ReleaseID only has meaning in the process
    // that originally generated that ID, we ignore ReleaseID calls for any ID
    // that did not come from the current process.
    MOZ_ASSERT(aAccWrap->IsProxy());
    return;
  }
  mIDSet.ReleaseID(cracked.GetUniqueId());
}