Bug 1132223 - Add IdToAccessible and IdToHyperTextAccessible to DocAccessibleChild to reduce code duplication, r=tbsaunde

--HG--
extra : rebase_source : 7c5380eafdfd3a63176bf201920a8b028145fb1a
This commit is contained in:
Olli Pettay 2015-02-12 22:53:43 +02:00
parent a801fa4088
commit 39bceaf68b
2 changed files with 30 additions and 10 deletions

View File

@ -44,6 +44,20 @@ SerializeTree(Accessible* aRoot, nsTArray<AccessibleData>& aTree)
SerializeTree(aRoot->GetChildAt(i), aTree);
}
Accessible*
DocAccessibleChild::IdToAccessible(const uint64_t& aID)
{
return mDoc->GetAccessibleByUniqueID(reinterpret_cast<void*>(aID));
}
HyperTextAccessible*
DocAccessibleChild::IdToHyperTextAccessible(const uint64_t& aID)
{
Accessible* acc = IdToAccessible(aID);
MOZ_ASSERT(!acc || acc->IsHyperText());
return acc ? acc->AsHyperText() : nullptr;
}
void
DocAccessibleChild::ShowEvent(AccShowEvent* aShowEvent)
{
@ -59,7 +73,7 @@ DocAccessibleChild::ShowEvent(AccShowEvent* aShowEvent)
bool
DocAccessibleChild::RecvState(const uint64_t& aID, uint64_t* aState)
{
Accessible* acc = mDoc->GetAccessibleByUniqueID((void*)aID);
Accessible* acc = IdToAccessible(aID);
if (!acc) {
*aState = states::DEFUNCT;
return true;
@ -73,7 +87,7 @@ DocAccessibleChild::RecvState(const uint64_t& aID, uint64_t* aState)
bool
DocAccessibleChild::RecvName(const uint64_t& aID, nsString* aName)
{
Accessible* acc = mDoc->GetAccessibleByUniqueID((void*)aID);
Accessible* acc = IdToAccessible(aID);
if (!acc)
return true;
@ -84,8 +98,7 @@ DocAccessibleChild::RecvName(const uint64_t& aID, nsString* aName)
bool
DocAccessibleChild::RecvValue(const uint64_t& aID, nsString* aValue)
{
Accessible* acc =
mDoc->GetAccessibleByUniqueID(reinterpret_cast<void*>(aID));
Accessible* acc = IdToAccessible(aID);
if (!acc) {
return true;
}
@ -97,7 +110,7 @@ DocAccessibleChild::RecvValue(const uint64_t& aID, nsString* aValue)
bool
DocAccessibleChild::RecvDescription(const uint64_t& aID, nsString* aDesc)
{
Accessible* acc = mDoc->GetAccessibleByUniqueID((void*)aID);
Accessible* acc = IdToAccessible(aID);
if (!acc)
return true;
@ -108,7 +121,7 @@ DocAccessibleChild::RecvDescription(const uint64_t& aID, nsString* aDesc)
bool
DocAccessibleChild::RecvAttributes(const uint64_t& aID, nsTArray<Attribute>* aAttributes)
{
Accessible* acc = mDoc->GetAccessibleByUniqueID((void*)aID);
Accessible* acc = IdToAccessible(aID);
if (!acc)
return true;
@ -149,11 +162,12 @@ DocAccessibleChild::RecvTextSubstring(const uint64_t& aID,
const int32_t& aEndOffset,
nsString* aText)
{
Accessible* acc = mDoc->GetAccessibleByUniqueID((void*)aID);
if (!acc || !acc->IsHyperText())
return false;
HyperTextAccessible* acc = IdToHyperTextAccessible(aID);
if (!acc) {
return true;
}
acc->AsHyperText()->TextSubstring(aStartOffset, aEndOffset, *aText);
acc->TextSubstring(aStartOffset, aEndOffset, *aText);
return true;
}
}

View File

@ -13,6 +13,9 @@
namespace mozilla {
namespace a11y {
class Accessible;
class HyperTextAccessible;
class AccShowEvent;
/*
@ -31,6 +34,9 @@ public:
MOZ_COUNT_DTOR(DocAccessibleChild);
}
Accessible* IdToAccessible(const uint64_t& aID);
HyperTextAccessible* IdToHyperTextAccessible(const uint64_t& aID);
void ShowEvent(AccShowEvent* aShowEvent);
/*