bug 1192330 - remove ia2AccessibleText::GetModifiedText() r=surkov

There's no point in this indirection since ia2AccessibleText has direct access
to this data.
This commit is contained in:
Trevor Saunders 2015-08-07 13:21:15 -04:00
parent 6deda0cbcd
commit 01dba03e84
4 changed files with 16 additions and 48 deletions

View File

@ -17,7 +17,7 @@
using namespace mozilla::a11y;
StaticRefPtr<Accessible> ia2AccessibleText::sLastTextChangeAcc;
StaticRefPtr<HyperTextAccessibleWrap> ia2AccessibleText::sLastTextChangeAcc;
StaticAutoPtr<nsString> ia2AccessibleText::sLastTextChangeString;
uint32_t ia2AccessibleText::sLastTextChangeStart = 0;
uint32_t ia2AccessibleText::sLastTextChangeEnd = 0;
@ -579,21 +579,22 @@ ia2AccessibleText::GetModifiedText(bool aGetInsertedText,
if (!aText)
return E_INVALIDARG;
uint32_t startOffset = 0, endOffset = 0;
nsAutoString text;
if (!sLastTextChangeAcc)
return S_OK;
nsresult rv = GetModifiedText(aGetInsertedText, text,
&startOffset, &endOffset);
if (NS_FAILED(rv))
return GetHRESULT(rv);
if (aGetInsertedText != sLastTextChangeWasInsert)
return S_OK;
aText->start = startOffset;
aText->end = endOffset;
if (sLastTextChangeAcc != this)
return S_OK;
if (text.IsEmpty())
aText->start = sLastTextChangeStart;
aText->end = sLastTextChangeEnd;
if (sLastTextChangeString->IsEmpty())
return S_FALSE;
aText->text = ::SysAllocStringLen(text.get(), text.Length());
aText->text = ::SysAllocStringLen(sLastTextChangeString->get(), sLastTextChangeString->Length());
return aText->text ? S_OK : E_OUTOFMEMORY;
}

View File

@ -14,6 +14,7 @@
namespace mozilla {
namespace a11y {
class HyperTextAccessibleWrap;
class ia2AccessibleText: public IAccessibleText
{
@ -116,11 +117,7 @@ public:
static void InitTextChangeData();
protected:
virtual nsresult GetModifiedText(bool aGetInsertedText, nsAString& aText,
uint32_t *aStartOffset,
uint32_t *aEndOffset) = 0;
static StaticRefPtr<Accessible> sLastTextChangeAcc;
static StaticRefPtr<HyperTextAccessibleWrap> sLastTextChangeAcc;
static StaticAutoPtr<nsString> sLastTextChangeString;
static bool sLastTextChangeWasInsert;
static uint32_t sLastTextChangeStart;

View File

@ -53,7 +53,8 @@ HyperTextAccessibleWrap::HandleAccEvent(AccEvent* aEvent)
eventType == nsIAccessibleEvent::EVENT_TEXT_INSERTED) {
Accessible* accessible = aEvent->GetAccessible();
if (accessible && accessible->IsHyperText()) {
sLastTextChangeAcc = accessible;
sLastTextChangeAcc =
static_cast<HyperTextAccessibleWrap*>(accessible->AsHyperText());
if (!sLastTextChangeString)
sLastTextChangeString = new nsString();
@ -67,30 +68,3 @@ HyperTextAccessibleWrap::HandleAccEvent(AccEvent* aEvent)
return HyperTextAccessible::HandleAccEvent(aEvent);
}
nsresult
HyperTextAccessibleWrap::GetModifiedText(bool aGetInsertedText,
nsAString& aText,
uint32_t* aStartOffset,
uint32_t* aEndOffset)
{
aText.Truncate();
*aStartOffset = 0;
*aEndOffset = 0;
if (!sLastTextChangeAcc)
return NS_OK;
if (aGetInsertedText != sLastTextChangeWasInsert)
return NS_OK;
if (sLastTextChangeAcc != this)
return NS_OK;
*aStartOffset = sLastTextChangeStart;
*aEndOffset = sLastTextChangeEnd;
aText.Append(*sLastTextChangeString);
return NS_OK;
}

View File

@ -38,10 +38,6 @@ public:
protected:
~HyperTextAccessibleWrap() {}
virtual nsresult GetModifiedText(bool aGetInsertedText, nsAString& aText,
uint32_t *aStartOffset,
uint32_t *aEndOffset);
};
} // namespace a11y