mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-12 12:55:46 +00:00
bug 637898 try and fix HyperTextAccessible::GetPosAndText() to avoid asserts r=surkov
This commit is contained in:
parent
ad176442fe
commit
59c30ad653
@ -235,6 +235,7 @@ HyperTextAccessible::GetPosAndText(int32_t& aStartOffset, int32_t& aEndOffset,
|
||||
}
|
||||
|
||||
nsIFrame *startFrame = nullptr;
|
||||
nsIFrame* endFrame = nullptr;
|
||||
if (aEndFrame) {
|
||||
*aEndFrame = nullptr;
|
||||
}
|
||||
@ -264,6 +265,7 @@ HyperTextAccessible::GetPosAndText(int32_t& aStartOffset, int32_t& aEndOffset,
|
||||
continue;
|
||||
}
|
||||
nsIFrame *primaryFrame = frame;
|
||||
endFrame = frame;
|
||||
if (nsAccUtils::IsText(childAcc)) {
|
||||
// We only need info up to rendered offset -- that is what we're
|
||||
// converting to content offset
|
||||
@ -389,9 +391,9 @@ HyperTextAccessible::GetPosAndText(int32_t& aStartOffset, int32_t& aEndOffset,
|
||||
NS_IF_ADDREF(*aStartAcc = lastAccessible);
|
||||
}
|
||||
if (aEndFrame && !*aEndFrame) {
|
||||
*aEndFrame = startFrame;
|
||||
if (aStartAcc && aEndAcc)
|
||||
NS_IF_ADDREF(*aEndAcc = *aStartAcc);
|
||||
*aEndFrame = endFrame;
|
||||
if (aEndAcc && !*aEndAcc)
|
||||
NS_IF_ADDREF(*aEndAcc = lastAccessible);
|
||||
}
|
||||
|
||||
return startFrame;
|
||||
|
@ -74,6 +74,15 @@
|
||||
testCharacterCount(IDs, 5);
|
||||
testText(IDs, 0, 5, "1.foo");
|
||||
|
||||
testText(["testbr"], 0, 4, "foo\n");
|
||||
|
||||
testTextAtOffset(2, nsIAccessibleText.BOUNDARY_CHAR, "o", 2, 3, "testbr",
|
||||
kOk, kOk, kOk);
|
||||
testTextAtOffset(2, nsIAccessibleText.BOUNDARY_WORD_START, "foo\n", 0, 4,
|
||||
"testbr", kTodo, kOk, kTodo);
|
||||
testTextBeforeOffset(2, nsIAccessibleText.BOUNDARY_LINE_START, "foo\n",
|
||||
0, 4, "testbr", kTodo, kOk, kTodo);
|
||||
|
||||
SimpleTest.finish();
|
||||
}
|
||||
|
||||
@ -122,5 +131,7 @@
|
||||
<h6 role="presentation" class="gencontent">heading</h6>
|
||||
</div>
|
||||
|
||||
<div id="testbr">foo<br/></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
Loading…
Reference in New Issue
Block a user