1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
/* import-globals-from ../../mochitest/layout.js */
loadScripts({ name: "layout.js", dir: MOCHITESTS_DIR });
/**
* Test nsIAccessibleText::scrollSubstringTo.
*/
addAccessibleTask(
`
<style>
@font-face {
font-family: Ahem;
src: url(${CURRENT_CONTENT_DIR}e10s/fonts/Ahem.sjs);
}
pre {
font: 20px/20px Ahem;
height: 40px;
overflow-y: scroll;
}
</style>
<pre id="text">
It's a jetpack, Michael. What could possibly go wrong?
The only thing I found in the fridge was a dead dove in a bag.
</pre>`,
async function (browser, docAcc) {
let text = findAccessibleChildByID(docAcc, "text", [nsIAccessibleText]);
let [, containerY, , containerHeight] = getBounds(text);
let getCharY = () => {
let objY = {};
text.getCharacterExtents(7, {}, objY, {}, {}, COORDTYPE_SCREEN_RELATIVE);
return objY.value;
};
Assert.less(
containerHeight,
getCharY(),
"Character is outside of container bounds"
);
text.scrollSubstringTo(7, 8, SCROLL_TYPE_TOP_EDGE);
await waitForContentPaint(browser);
await untilCacheIs(
getCharY,
containerY,
"Character is scrolled to top of container"
);
},
{
topLevel: true,
iframe: true,
remoteIframe: true,
chrome: true,
}
);
|