2 <script src=
"../../fast/repaint/resources/text-based-repaint.js"></script>
4 function highlightRange(id
, start
, end
, active
) {
5 var range
= document
.createRange();
6 var elem
= document
.getElementById(id
).firstChild
;
7 range
.setStart(elem
, start
);
8 range
.setEnd(elem
, end
);
9 internals
.addTextMatchMarker(range
, active
);
11 function repaintTest() {
12 highlightRange('1', 0, 6, false);
13 highlightRange('2', 0, 6, false);
14 highlightRange('3', 0, 6, false);
15 highlightRange('4', 0, 6, false);
16 highlightRange('5', 0, 6, false);
17 highlightRange('svg1', 8, 14, true);
18 highlightRange('svg2', 0, 6, false);
19 highlightRange('svg3', 0, 6, false);
20 highlightRange('svg3', 26, 32, false);
21 internals
.setMarkedTextMatchesAreHighlighted(document
, true);
24 onload
= runRepaintTest
;
29 Based on svg/custom/text-match-highlight.html. Here run it as a repaint test to check correctness of invalidation.
<br>
30 Automatic test requires run-layout-test. To manually test, open this file in Chrome and find 'findme' in the page.
<br>
31 There should be
9 highlighted instances of
"<span id="1">findme</span>". The
6th higlighted instance should be active.
<br>
32 <div style=
"overflow: scroll; height: 500px">
33 Lorum ipsum
<span id=
"2">findme
</span> lorum ipsum
<span id=
"3">findme
</span><span id=
"4">findme
</span> lorum.
<br/>
34 longtext
<span id=
"5">findme
</span>noyou.
<br/>
35 <svg xmlns=
"http://www.w3.org/2000/svg" xmlns:
xlink=
"http://www.w3.org/1999/xlink" width=
"450" height=
"300">
39 C 200 100 300 0 400 100
40 C 500 200 600 300 700 200
41 C 800 100 900 100 900 100" />
43 <text x=
"10" y=
"50" id=
"svg1">Can you findme in this boring text?
</text>
44 <text x=
"10" y=
"100" style=
"font-size: 10px; font-family: monospace;" id=
"svg2">Findme in a typewriter!
</text>
45 <g transform=
"scale(0.3) translate(0 400)">
46 <text font-family=
"Verdana" font-size=
"42.5" fill=
"blue" >
47 <textPath xlink:
href=
"#textpath" id=
"svg3">Findme on a path! Did you findme?
</textPath>
51 <div style=
"height: 1000px"></div>