import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo

This commit is contained in:
Roy Tam 2018-01-19 03:59:58 +08:00
commit dcd9973243
150858 changed files with 23884658 additions and 0 deletions

View file

@ -0,0 +1,22 @@
<!DOCTYPE html>
<html>
<head>
<title>Testcase #2 for bug 602331</title>
<script type="text/javascript" charset="utf-8">
function selectNewlyAdded() {
window.getSelection().removeAllRanges();
var newNode = document.createElement('span');
newNode.innerHTML = "Hello Kitty";
document.getElementById('new_nodes').appendChild(newNode);
var range = document.createRange();
range.selectNode(newNode);
window.getSelection().addRange(range);
}
</script>
</head>
<body onload="selectNewlyAdded()">
* <span id="new_nodes"></span> *
</body>
</html>

View file

@ -0,0 +1,23 @@
<!DOCTYPE html>
<html>
<head>
<title>Testcase #3 for bug 602331</title>
<script type="text/javascript" charset="utf-8">
function selectAllOfNewNodes() {
window.getSelection().removeAllRanges();
var newNode = document.createElement('span');
newNode.innerHTML = "Kitty";
document.getElementById('new_nodes').appendChild(newNode);
var range = document.createRange();
range.selectNode(document.getElementById('new_nodes'));
window.getSelection().addRange(range);
}
</script>
</head>
<body onload="selectAllOfNewNodes()">
* <span id="new_nodes"><span>Hello</span> </span> *
</body>
</html>

View file

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<title>Testcase #1 for bug 602331</title>
<script type="text/javascript" charset="utf-8">
function selectExisting() {
window.getSelection().removeAllRanges();
var range = document.createRange();
range.selectNode(document.getElementById('existing_node'));
window.getSelection().addRange(range);
}
</script>
</head>
<body onload="selectExisting()">
* <span id="existing_node">Hello Kitty</span> *
</body>
</html>

View file

@ -0,0 +1,190 @@
<!DOCTYPE HTML>
<html class="reftest-wait">
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=619273
-->
<head>
<title>Test for Bug 619273</title>
<script type="application/javascript;version=1.7">
/** Test DOM mutations inside selection **/
function createDOM(doc) {
let s = doc.createElement('span');
s.appendChild(doc.createTextNode('|'))
let s2 = doc.createElement('span');
s2.appendChild(doc.createTextNode('z'))
s.appendChild(s2)
return s;
}
var tests_done = 0;
var tests = [
function(win,doc,sel) {
doc.body.innerHTML = '.I<br>B<br>C|z'
let a = doc.body.firstChild;
let r = doc.createRange();
r.setStart(a, 1);
r.setEnd(a, 2);
sel.addRange(r);
},
function(win,doc,sel) {
doc.body.innerHTML = '.I<br>B<br>C|z'
let a = doc.body.firstChild;
let r = doc.createRange();
r.setStart(doc.firstChild, 0);
r.setEnd(a, 2);
sel.addRange(r);
},
function(win,doc,sel) {
doc.body.innerHTML = 'I<br>.B<br>C|z'
let a = doc.body.firstChild;
let b = doc.body.childNodes[2];
let c = doc.body.childNodes[4];
let r = doc.createRange();
r.setStart(a, 0);
r.setEnd(c, 1);
sel.addRange(r);
},
function(win,doc,sel) {
doc.body.innerHTML = 'I<br>.B<br>C|z'
let b = doc.body.childNodes[2];
let c = doc.body.childNodes[4];
let r = doc.createRange();
r.setStart(doc.body, 0);
r.setEnd(c, 1);
sel.addRange(r);
},
function(win,doc,sel) {
doc.body.innerHTML = 'I<br>.B<br>C|z'
let b = doc.body.childNodes[2];
let c = doc.body.childNodes[4];
let r = doc.createRange();
r.setStart(doc, 0);
r.setEnd(c, 1);
sel.addRange(r);
},
function(win,doc,sel) {
doc.body.innerHTML = 'I<br>B<br>.C|z'
let a = doc.body.firstChild;
let c = doc.body.childNodes[4];
let r = doc.createRange();
r.setStart(a, 0);
r.setEnd(c, 2);
sel.addRange(r);
},
function(win,doc,sel) {
doc.body.innerHTML = '|z|zI<br>B<br>C'
let a = doc.body.firstChild;
let r = doc.createRange();
r.setStart(a, 4);
r.setEnd(a, 5);
sel.addRange(r);
},
function(win,doc,sel) {
doc.body.innerHTML = '|z|zI<br>B<br>C'
let a = doc.body.firstChild;
let r = doc.createRange();
r.setStart(doc.firstChild, 0);
r.setEnd(a, 5);
sel.addRange(r);
},
function(win,doc,sel) {
doc.body.innerHTML = 'I<br>|z|zB<br>C'
let a = doc.body.firstChild;
let b = doc.body.childNodes[2];
let c = doc.body.childNodes[4];
let r = doc.createRange();
r.setStart(a, 0);
r.setEnd(c, 1);
sel.addRange(r);
},
function(win,doc,sel) {
doc.body.innerHTML = 'I<br>|z|zB<br>C'
let b = doc.body.childNodes[2];
let c = doc.body.childNodes[4];
let r = doc.createRange();
r.setStart(doc.body, 0);
r.setEnd(c, 1);
sel.addRange(r);
},
function(win,doc,sel) {
doc.body.innerHTML = 'I<br>|z|zB<br>C'
let b = doc.body.childNodes[2];
let c = doc.body.childNodes[4];
let r = doc.createRange();
r.setStart(doc, 0);
r.setEnd(c, 1);
sel.addRange(r);
},
function(win,doc,sel) {
doc.body.innerHTML = 'I<br>B<br>|z|zC'
let a = doc.body.firstChild;
let c = doc.body.childNodes[4];
let r = doc.createRange();
r.setStart(a, 0);
r.setEnd(c, 5);
sel.addRange(r);
},
function(win,doc,sel) {
doc.body.innerHTML = '<br>B<br>CI'
},
function(win,doc,sel) {
doc.body.innerHTML = '<br>B<br>C'
},
function(win,doc,sel) {
doc.body.innerHTML = 'I<br>B<br>C'
let a = doc.body.firstChild;
let c = doc.body.childNodes[4];
let r = doc.createRange();
r.setStart(a, 0);
r.setEnd(c, 1);
sel.addRange(r);
},
function(win,doc,sel) {
doc.body.innerHTML = 'I|z'
},
function(win,doc,sel) {
doc.body.innerHTML = 'Iz|'
document.body.appendChild(document.createTextNode('I'));
document.body.appendChild(document.createTextNode(' '));
document.body.appendChild(createDOM(document));
},
]
function runTestInIframe(run,t) {
let f = document.createElement('iframe');
f.setAttribute('frameborder','0');
f.setAttribute('height','100');
f.setAttribute('width','200');
f.src = 'data:text/html,<body style="margin:0;padding:0;font-family:monospace">';
f.onload = function () {
try {
run(f.contentWindow, f.contentDocument, f.contentWindow.getSelection());
} finally { ++tests_done; }
}
return f;
}
var id;
function checkFinished() {
if (window.frames.length == tests_done) {
clearInterval(id);
document.documentElement.className = "";
}
}
function runTest() {
for (let i=0; i < tests.length; ++i) {
let t = tests[i];
document.body.appendChild(runTestInIframe(t));
}
id = setInterval(checkFinished,500);
}
</script>
</head>
<body onload="runTest()"></body>
</html>

View file

@ -0,0 +1,250 @@
<!DOCTYPE HTML>
<html class="reftest-wait">
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=619273
-->
<head>
<title>Test for Bug 619273</title>
<script type="application/javascript;version=1.7">
/** Test DOM mutations inside selection **/
function createDOM(doc) {
let s = doc.createElement('span');
s.appendChild(doc.createTextNode('|'))
let s2 = doc.createElement('span');
s2.appendChild(doc.createTextNode('z'))
s.appendChild(s2)
return s;
}
var tests_done = 0;
var tests = [
function(win,doc,sel) {
doc.body.innerHTML = 'I<br>B<br>C'
let a = doc.body.firstChild;
let r = doc.createRange();
r.setStart(a, 0);
r.setEnd(a, 1);
sel.addRange(r);
doc.body.insertBefore(doc.createTextNode('.'), a);
doc.body.appendChild(createDOM(doc));
},
function(win,doc,sel) {
doc.body.innerHTML = 'I<br>B<br>C'
let a = doc.body.firstChild;
let r = doc.createRange();
r.setStart(doc.firstChild, 0);
r.setEnd(a, 1);
sel.addRange(r);
doc.body.insertBefore(doc.createTextNode('.'), a);
doc.body.appendChild(createDOM(doc));
},
function(win,doc,sel) {
doc.body.innerHTML = 'I<br>B<br>C'
let a = doc.body.firstChild;
let b = doc.body.childNodes[2];
let c = doc.body.childNodes[4];
let r = doc.createRange();
r.setStart(a, 0);
r.setEnd(c, 1);
sel.addRange(r);
doc.body.insertBefore(doc.createTextNode('.'), b);
doc.body.appendChild(createDOM(doc));
},
function(win,doc,sel) {
doc.body.innerHTML = 'I<br>B<br>C'
let b = doc.body.childNodes[2];
let c = doc.body.childNodes[4];
let r = doc.createRange();
r.setStart(doc.body, 0);
r.setEnd(c, 1);
sel.addRange(r);
doc.body.insertBefore(doc.createTextNode('.'), b);
doc.body.appendChild(createDOM(doc));
},
function(win,doc,sel) {
doc.body.innerHTML = 'I<br>B<br>C'
let b = doc.body.childNodes[2];
let c = doc.body.childNodes[4];
let r = doc.createRange();
r.setStart(doc, 0);
r.setEnd(c, 1);
sel.addRange(r);
doc.body.insertBefore(doc.createTextNode('.'), b);
doc.body.appendChild(createDOM(doc));
},
function(win,doc,sel) {
doc.body.innerHTML = 'I<br>B<br>C'
let a = doc.body.firstChild;
let c = doc.body.childNodes[4];
let r = doc.createRange();
r.setStart(a, 0);
r.setEnd(c, 1);
sel.addRange(r);
doc.body.insertBefore(doc.createTextNode('.'), c);
doc.body.appendChild(createDOM(doc));
},
function(win,doc,sel) {
doc.body.innerHTML = 'I<br>B<br>C'
let a = doc.body.firstChild;
let r = doc.createRange();
r.setStart(a, 0);
r.setEnd(a, 1);
sel.addRange(r);
let span = createDOM(doc);
doc.body.insertBefore(span, a);
span.appendChild(createDOM(doc));
},
function(win,doc,sel) {
doc.body.innerHTML = 'I<br>B<br>C'
let a = doc.body.firstChild;
let r = doc.createRange();
r.setStart(doc.firstChild, 0);
r.setEnd(a, 1);
sel.addRange(r);
let span = createDOM(doc);
doc.body.insertBefore(span, a);
span.appendChild(createDOM(doc));
},
function(win,doc,sel) {
doc.body.innerHTML = 'I<br>B<br>C'
let a = doc.body.firstChild;
let b = doc.body.childNodes[2];
let c = doc.body.childNodes[4];
let r = doc.createRange();
r.setStart(a, 0);
r.setEnd(c, 1);
sel.addRange(r);
let span = createDOM(doc);
doc.body.insertBefore(span, b);
span.appendChild(createDOM(doc));
},
function(win,doc,sel) {
doc.body.innerHTML = 'I<br>B<br>C'
let b = doc.body.childNodes[2];
let c = doc.body.childNodes[4];
let r = doc.createRange();
r.setStart(doc.body, 0);
r.setEnd(c, 1);
sel.addRange(r);
let span = createDOM(doc);
doc.body.insertBefore(span, b);
span.appendChild(createDOM(doc));
},
function(win,doc,sel) {
doc.body.innerHTML = 'I<br>B<br>C'
let b = doc.body.childNodes[2];
let c = doc.body.childNodes[4];
let r = doc.createRange();
r.setStart(doc, 0);
r.setEnd(c, 1);
sel.addRange(r);
let span = createDOM(doc);
doc.body.insertBefore(span, b);
span.appendChild(createDOM(doc));
},
function(win,doc,sel) {
doc.body.innerHTML = 'I<br>B<br>C'
let a = doc.body.firstChild;
let c = doc.body.childNodes[4];
let r = doc.createRange();
r.setStart(a, 0);
r.setEnd(c, 1);
sel.addRange(r);
let span = createDOM(doc);
doc.body.insertBefore(span, c);
span.appendChild(createDOM(doc));
},
function(win,doc,sel) {
doc.body.innerHTML = 'I<br>B<br>C'
let a = doc.body.firstChild;
let r = doc.createRange();
r.setStart(a, 0);
r.setEnd(a, 1);
sel.addRange(r);
doc.body.appendChild(a);
},
function(win,doc,sel) {
doc.body.innerHTML = 'I<br>B<br>C'
let a = doc.body.firstChild;
let r = doc.createRange();
r.setStart(a, 0);
r.setEnd(a, 1);
sel.addRange(r);
document.adoptNode(a);
document.body.appendChild(a);
document.body.appendChild(document.createTextNode(' '));
},
function(win,doc,sel) {
doc.body.innerHTML = 'I<br>B<br>C'
let a = doc.body.firstChild;
let c = doc.body.childNodes[4];
let r = doc.createRange();
r.setStart(a, 0);
r.setEnd(c, 1);
sel.addRange(r);
let span = createDOM(doc);
doc.body.insertBefore(span, c);
document.adoptNode(span);
document.body.appendChild(span);
},
function(win,doc,sel) {
doc.body.innerHTML = 'I'
let a = doc.body.firstChild;
let span = createDOM(doc);
let r = doc.createRange();
r.setStart(span, 0);
r.setEnd(span, 1);
sel.addRange(r);
doc.body.appendChild(span);
},
function(win,doc,sel) {
doc.body.innerHTML = 'I'
let a = doc.body.firstChild;
let span = createDOM(doc);
let r = doc.createRange();
r.setStart(span.firstChild, 0);
r.setEnd(span.firstChild, 1);
sel.addRange(r);
doc.body.appendChild(span);
doc.body.appendChild(span.firstChild);
r.setEnd(span.firstChild, 1);
},
]
function runTestInIframe(run,t) {
let f = document.createElement('iframe');
f.setAttribute('frameborder','0');
f.setAttribute('height','100');
f.setAttribute('width','200');
f.src = 'data:text/html,<body style="margin:0;padding:0;font-family:monospace">';
f.onload = function () {
try {
run(f.contentWindow, f.contentDocument, f.contentWindow.getSelection());
} finally { ++tests_done; }
}
return f;
}
var id;
function checkFinished() {
if (window.frames.length == tests_done) {
clearInterval(id);
document.documentElement.className = "";
}
}
function runTest() {
for (let i=0; i < tests.length; ++i) {
let t = tests[i];
document.body.appendChild(runTestInIframe(t));
}
id = setInterval(checkFinished,500);
}
</script>
</head>
<body onload="runTest()"></body>
</html>

View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<html>
<head>
<body style="white-space:pre"> BC
FG
JK
<script>
document.body.offsetTop;
var t = document.body.firstChild;
var sel = window.getSelection();
sel.collapse(t, 6);
sel.extend(t, 8);
</script>
</body>
</html>

View file

@ -0,0 +1,22 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<body style="white-space:pre"> 00
BC
FG
JK
<script>
document.body.offsetTop;
var t = document.body.firstChild;
var sel = window.getSelection();
sel.collapse(t, 11);
sel.extend(t, 13);
function doTest() {
t.replaceData(0, 5, '');
document.documentElement.removeAttribute('class');
}
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</body>
</html>

View file

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<body style="white-space:pre"> FG
JK
<script>
document.body.offsetTop;
var t = document.body.firstChild;
var sel = window.getSelection();
sel.collapse(t, 1);
sel.extend(t, 3);
function doTest() {
t.insertData(0, ' BC \n');
document.documentElement.removeAttribute('class');
}
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</body>
</html>

View file

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html>
<head>
<body style="white-space:pre">0123456789
<script>
document.body.offsetTop;
var t = document.body.firstChild;
var sel = window.getSelection();
sel.collapse(t, 2);
sel.extend(t, 8);
</script>
</body>
</html>

View file

@ -0,0 +1,6 @@
<!DOCTYPE html>
<html>
<head>
<body style="white-space:pre">0123456789
</body>
</html>

View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<body style="white-space:pre">0123456789
<script>
document.body.offsetTop;
var t = document.body.firstChild;
var sel = window.getSelection();
sel.collapse(t, 2);
sel.extend(t, 9);
function doTest() {
sel.extend(t, 8);
document.documentElement.removeAttribute('class');
}
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</body>
</html>

View file

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<body style="white-space:pre">0123456789
<script>
document.body.offsetTop;
// Test newfocus < anchor < focus
var t = document.body.firstChild;
var sel = window.getSelection();
sel.collapse(t, 8); // anchor
sel.extend(t, 9); // focus
function doTest() {
sel.extend(t, 2); // newfocus
document.documentElement.removeAttribute('class');
}
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</body>
</html>

View file

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<body style="white-space:pre">0123456789
<script>
document.body.offsetTop;
// Test anchor < newfocus < focus
var t = document.body.firstChild;
var sel = window.getSelection();
sel.collapse(t, 2); // anchor
sel.extend(t, 9); // focus
function doTest() {
sel.extend(t, 8); // newfocus
document.documentElement.removeAttribute('class');
}
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</body>
</html>

View file

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<body style="white-space:pre">0123456789
<script>
document.body.offsetTop;
// Test anchor < newfocus = focus
var t = document.body.firstChild;
var sel = window.getSelection();
sel.collapse(t, 2); // anchor
sel.extend(t, 8); // focus
function doTest() {
sel.extend(t, 8); // newfocus
document.documentElement.removeAttribute('class');
}
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</body>
</html>

View file

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<body style="white-space:pre">0123456789
<script>
document.body.offsetTop;
// Test anchor < focus < newfocus
var t = document.body.firstChild;
var sel = window.getSelection();
sel.collapse(t, 2); // anchor
sel.extend(t, 6); // focus
function doTest() {
sel.extend(t, 8); // newfocus
document.documentElement.removeAttribute('class');
}
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</body>
</html>

View file

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<body style="white-space:pre">0123456789
<script>
document.body.offsetTop;
// Test newfocus < focus < anchor
var t = document.body.firstChild;
var sel = window.getSelection();
sel.collapse(t, 8); // anchor
sel.extend(t, 4); // focus
function doTest() {
sel.extend(t, 2); // newfocus
document.documentElement.removeAttribute('class');
}
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</body>
</html>

View file

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<body style="white-space:pre">0123456789
<script>
document.body.offsetTop;
// Test newfocus = focus < anchor
var t = document.body.firstChild;
var sel = window.getSelection();
sel.collapse(t, 8); // anchor
sel.extend(t, 2); // focus
function doTest() {
sel.extend(t, 2); // newfocus
document.documentElement.removeAttribute('class');
}
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</body>
</html>

View file

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<body style="white-space:pre">0123456789
<script>
document.body.offsetTop;
// Test focus < newfocus < anchor
var t = document.body.firstChild;
var sel = window.getSelection();
sel.collapse(t, 8); // anchor
sel.extend(t, 1); // focus
function doTest() {
sel.extend(t, 2); // newfocus
document.documentElement.removeAttribute('class');
}
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</body>
</html>

View file

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<body style="white-space:pre">0123456789
<script>
document.body.offsetTop;
// Test focus < anchor < newfocus
var t = document.body.firstChild;
var sel = window.getSelection();
sel.collapse(t, 2); // anchor
sel.extend(t, 1); // focus
function doTest() {
sel.extend(t, 8); // newfocus
document.documentElement.removeAttribute('class');
}
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</body>
</html>

View file

@ -0,0 +1,6 @@
<!DOCTYPE html>
<html>
<head>
<body style="white-space:pre">0123456789
</body>
</html>

View file

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<body style="white-space:pre">0123456789
<script>
document.body.offsetTop;
// Test newfocus = anchor < focus
var t = document.body.firstChild;
var sel = window.getSelection();
sel.collapse(t, 2); // anchor
sel.extend(t, 8); // focus
function doTest() {
sel.extend(t, 2); // newfocus
document.documentElement.removeAttribute('class');
}
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</body>
</html>

View file

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<body style="white-space:pre">0123456789
<script>
document.body.offsetTop;
// Test focus < anchor = newfocus
var t = document.body.firstChild;
var sel = window.getSelection();
sel.collapse(t, 8); // anchor
sel.extend(t, 2); // focus
function doTest() {
sel.extend(t, 8); // newfocus
document.documentElement.removeAttribute('class');
}
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</body>
</html>

View file

@ -0,0 +1,27 @@
<!DOCTYPE html>
<html>
<head>
<body style="white-space:pre"
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
>
<script>
document.body.offsetTop;
var t = document.body;
var sel = window.getSelection();
function loaded() {
sel.collapse(t, 2);
sel.extend(t, 8);
}
window.addEventListener("load", loaded, false);
</script>
</body>
</html>

View file

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html>
<head>
<body style="white-space:pre"
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
>
</body>
</html>

View file

@ -0,0 +1,34 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<body style="white-space:pre"
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
>
<script>
document.body.offsetTop;
var t = document.body;
var sel = window.getSelection();
// Don't start the selection until the document is loaded; we may reconstruct
// frames for the images, which will lose their selection state (this is a bug)
function loaded() {
sel.collapse(t, 2);
sel.extend(t, 9);
}
function doTest() {
sel.extend(t, 8);
document.documentElement.removeAttribute('class');
}
window.addEventListener("load", loaded, false);
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</body>
</html>

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<body style="white-space:pre"
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
>
<script>
document.body.offsetTop;
var t = document.body;
// Test newfocus < anchor < focus
var sel = window.getSelection();
function loaded() {
sel.collapse(t, 8); // anchor
sel.extend(t, 9); // focus
}
function doTest() {
sel.extend(t, 2); // newfocus
document.documentElement.removeAttribute('class');
}
window.addEventListener("load", loaded, false);
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</body>
</html>

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<body style="white-space:pre"
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
>
<script>
document.body.offsetTop;
var t = document.body;
// Test anchor < newfocus < focus
var sel = window.getSelection();
function loaded() {
sel.collapse(t, 2); // anchor
sel.extend(t, 9); // focus
}
function doTest() {
sel.extend(t, 8); // newfocus
document.documentElement.removeAttribute('class');
}
window.addEventListener("load", loaded, false);
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</body>
</html>

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<body style="white-space:pre"
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
>
<script>
document.body.offsetTop;
var t = document.body;
// Test anchor < newfocus = focus
var sel = window.getSelection();
function loaded() {
sel.collapse(t, 2); // anchor
sel.extend(t, 8); // focus
}
function doTest() {
sel.extend(t, 8); // newfocus
document.documentElement.removeAttribute('class');
}
window.addEventListener("load", loaded, false);
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</body>
</html>

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<body style="white-space:pre"
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
>
<script>
document.body.offsetTop;
var t = document.body;
// Test anchor < focus < newfocus
var sel = window.getSelection();
function loaded() {
sel.collapse(t, 2); // anchor
sel.extend(t, 6); // focus
}
function doTest() {
sel.extend(t, 8); // newfocus
document.documentElement.removeAttribute('class');
}
window.addEventListener("load", loaded, false);
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</body>
</html>

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<body style="white-space:pre"
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
>
<script>
document.body.offsetTop;
var t = document.body;
// Test newfocus < focus < anchor
var sel = window.getSelection();
function loaded() {
sel.collapse(t, 8); // anchor
sel.extend(t, 4); // focus
}
function doTest() {
sel.extend(t, 2); // newfocus
document.documentElement.removeAttribute('class');
}
window.addEventListener("load", loaded, false);
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</body>
</html>

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<body style="white-space:pre"
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
>
<script>
document.body.offsetTop;
var t = document.body;
// Test newfocus = focus < anchor
var sel = window.getSelection();
function loaded() {
sel.collapse(t, 8); // anchor
sel.extend(t, 2); // focus
}
function doTest() {
sel.extend(t, 2); // newfocus
document.documentElement.removeAttribute('class');
}
window.addEventListener("load", loaded, false);
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</body>
</html>

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<body style="white-space:pre"
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
>
<script>
document.body.offsetTop;
var t = document.body;
// Test focus < newfocus < anchor
var sel = window.getSelection();
function loaded() {
sel.collapse(t, 8); // anchor
sel.extend(t, 1); // focus
}
function doTest() {
sel.extend(t, 2); // newfocus
document.documentElement.removeAttribute('class');
}
window.addEventListener("load", loaded, false);
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</body>
</html>

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<body style="white-space:pre"
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
>
<script>
document.body.offsetTop;
var t = document.body;
// Test focus < anchor < newfocus
var sel = window.getSelection();
function loaded() {
sel.collapse(t, 2); // anchor
sel.extend(t, 1); // focus
}
function doTest() {
sel.extend(t, 8); // newfocus
document.documentElement.removeAttribute('class');
}
window.addEventListener("load", loaded, false);
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</body>
</html>

View file

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html>
<head>
<body style="white-space:pre"
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
>
</body>
</html>

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<body style="white-space:pre"
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
>
<script>
document.body.offsetTop;
// Test newfocus = anchor < focus
var t = document.body;
var sel = window.getSelection();
function loaded() {
sel.collapse(t, 2); // anchor
sel.extend(t, 8); // focus
}
function doTest() {
sel.extend(t, 2); // newfocus
document.documentElement.removeAttribute('class');
}
window.addEventListener("load", loaded, false);
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</body>
</html>

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<body style="white-space:pre"
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
><img src="data:image/gif;base64,R0lGODlhEAAQAPAAALuWAAAAACH5BAUIAAEALAMAAwAKAAoAAAIMDI5nye0Po5xutVAAADs="
>
<script>
document.body.offsetTop;
// Test focus < anchor = newfocus
var t = document.body;
var sel = window.getSelection();
function loaded() {
sel.collapse(t, 8); // anchor
sel.extend(t, 2); // focus
}
function doTest() {
sel.extend(t, 8); // newfocus
document.documentElement.removeAttribute('class');
}
window.addEventListener("load", loaded, false);
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>
</body>
</html>

View file

@ -0,0 +1,68 @@
<!DOCTYPE HTML>
<html class="reftest-wait"><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Testcase for bug </title>
<script>
var tests_done = 0;
var tests = [
'window.getSelection().getRangeAt(0).setEnd(document.getElementsByTagName("pre")[0].firstChild,9)',
'window.getSelection().getRangeAt(0).setEndAfter(document.getElementsByTagName("pre")[0].firstChild)',
'window.getSelection().getRangeAt(0).setEndBefore(document.getElementsByTagName("pre")[0].childNodes[1])',
'pre=document.getElementsByTagName("pre")[0]; r=window.getSelection().getRangeAt(0); r.setEnd(pre.childNodes[1],3); r.setStartAfter(pre.firstChild)',
'window.getSelection().getRangeAt(0).setStartBefore(document.getElementsByTagName("pre")[0].firstChild)',
'window.getSelection().getRangeAt(0).selectNode(document.getElementsByTagName("pre")[0].firstChild)',
'window.getSelection().getRangeAt(0).selectNodeContents(document.getElementsByTagName("pre")[0])',
'window.getSelection().getRangeAt(0).collapse(true)',
'window.getSelection().getRangeAt(0).surroundContents(document.createElement("span"))',
'window.getSelection().getRangeAt(0).setStart(document,0)',
'window.getSelection().getRangeAt(0).detach()',
'window.getSelection().getRangeAt(0).extractContents()',
'window.getSelection().getRangeAt(0).deleteContents()'
];
function init_iframe(d) {
var pre = d.createElement('pre');
pre.appendChild(d.createTextNode('first\nfirst\n'));
pre.appendChild(d.createTextNode('second'));
d.documentElement.appendChild(pre);
var text = pre.firstChild;
var sel = d.defaultView.getSelection();
var r = d.createRange();
r.setStart(text,0)
r.setEnd(text,3)
sel.addRange(r);
d.documentElement.offsetHeight;
}
function test_iframe(iframe, i) {
iframe.contentDocument.write(
'<'+'style>span { text-decoration:underline; } <'+'/style>' +
'<'+'script>' +
'window.parent.init_iframe(document);' +
'setTimeout(function(){' + window.parent.tests[i] + '; sel=window.getSelection(); try{r=sel.getRangeAt(0); sel.removeRange(r); sel.addRange(r);}catch(e){}; ++window.parent.tests_done; },0)' +
'<'+'/script>'
);
}
function create_iframe(i) {
var div = document.createElement('div');
document.body.appendChild(div);
div.innerHTML = "<iframe src='about:blank' style='height:6em; width:12em; float:left;' frameborder='0' onload='test_iframe(this,"+i+")'><iframe>"
}
var id;
function check_if_done() {
if (tests_done == tests.length) {
clearInterval(id);
document.documentElement.className = "";
}
}
function test() {
for (i = 0; i < tests.length; ++i) {
create_iframe(i);
}
id = setInterval(check_if_done,500);
}
</script>
</head>
<body onload="test()"></body>
</html>

View file

@ -0,0 +1,68 @@
<!DOCTYPE HTML>
<html class="reftest-wait"><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Testcase for bug </title>
<script>
var tests_done = 0;
var tests = [
'window.getSelection().getRangeAt(0).setEnd(document.getElementsByTagName("pre")[0].firstChild,9)',
'window.getSelection().getRangeAt(0).setEndAfter(document.getElementsByTagName("pre")[0].firstChild)',
'window.getSelection().getRangeAt(0).setEndBefore(document.getElementsByTagName("pre")[0].childNodes[1])',
'pre=document.getElementsByTagName("pre")[0]; r=window.getSelection().getRangeAt(0); r.setEnd(pre.childNodes[1],3); r.setStartAfter(pre.firstChild)',
'window.getSelection().getRangeAt(0).setStartBefore(document.getElementsByTagName("pre")[0].firstChild)',
'window.getSelection().getRangeAt(0).selectNode(document.getElementsByTagName("pre")[0].firstChild)',
'window.getSelection().getRangeAt(0).selectNodeContents(document.getElementsByTagName("pre")[0])',
'window.getSelection().getRangeAt(0).collapse(true)',
'window.getSelection().getRangeAt(0).surroundContents(document.createElement("span"))',
'window.getSelection().getRangeAt(0).setStart(document,0)',
'window.getSelection().getRangeAt(0).detach()',
'window.getSelection().getRangeAt(0).extractContents()',
'window.getSelection().getRangeAt(0).deleteContents()'
];
function init_iframe(d) {
var pre = d.createElement('pre');
pre.appendChild(d.createTextNode('first\nfirst\n'));
pre.appendChild(d.createTextNode('second'));
d.documentElement.appendChild(pre);
var text = pre.firstChild;
var sel = d.defaultView.getSelection();
var r = d.createRange();
r.setStart(text,0)
r.setEnd(text,3)
sel.addRange(r);
d.documentElement.offsetHeight;
}
function test_iframe(iframe, i) {
iframe.contentDocument.write(
'<'+'style>span { text-decoration:underline; } <'+'/style>' +
'<'+'script>' +
'window.parent.init_iframe(document);' +
'setTimeout(function(){' + window.parent.tests[i] + '; ++window.parent.tests_done; },0)' +
'<'+'/script>'
);
}
function create_iframe(i) {
var div = document.createElement('div');
document.body.appendChild(div);
div.innerHTML = "<iframe src='about:blank' style='height:6em; width:12em; float:left;' frameborder='0' onload='test_iframe(this,"+i+")'><iframe>"
}
var id;
function check_if_done() {
if (tests_done == tests.length) {
clearInterval(id);
document.documentElement.className = "";
}
}
function test() {
for (i = 0; i < tests.length; ++i) {
create_iframe(i);
}
id = setInterval(check_if_done,500);
}
</script>
</head>
<body onload="test()"></body>
</html>

View file

@ -0,0 +1,16 @@
<html>
<head>
<style type="text/css">
input {
background-color: Highlight;
}
input::-moz-selection {
background-color: HighlightText;
color: Highlight;
}
</style>
</head>
<body onload="document.getElementById('i').select();">
<input id="i" value="text">
</body>
</html>

View file

@ -0,0 +1,12 @@
<html>
<head>
<style type="text/css">
input {
background-color: Highlight;
}
</style>
</head>
<body onload="document.getElementById('i').select();">
<input id="i" value="text">
</body>
</html>

View file

@ -0,0 +1,13 @@
<html>
<head>
<style type="text/css">
input {
color: white;
background-color: green;
}
</style>
</head>
<body onload="document.getElementById('i').select();">
<input value="text" id="i">
</body>
</html>

View file

@ -0,0 +1,17 @@
<html>
<head>
<style type="text/css">
input {
color: white;
background-color: green;
}
input::-moz-selection {
color: red;
background-color: blue;
}
</style>
</head>
<body onload="document.getElementById('i').select();">
<input value="text" id="i">
</body>
</html>

View file

@ -0,0 +1,43 @@
# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
fails fuzzy-if(skiaContent,1,30) == dynamic-text-1a.html dynamic-text-1a.html
fails fuzzy-if(skiaContent,1,40) == dynamic-text-1b.html dynamic-text-1b.html
== extend-1-sanity.html extend-1-sanity.html
fails fuzzy-if(skiaContent,1,1000) == extend-1a.html extend-1a.html
fails fuzzy-if(skiaContent,1,10) == extend-1b.html extend-1b.html
fails fuzzy-if(skiaContent,1,1000) == extend-1c.html extend-1c.html
fails fuzzy-if(skiaContent,1,1000) == extend-1d.html extend-1d.html
skip fuzzy-if(skiaContent,1,1000) == extend-1e.html extend-1e.html
fails fuzzy-if(skiaContent,1,1000) == extend-1f.html extend-1f.html
fails fuzzy-if(skiaContent,1,1000) == extend-1g.html extend-1g.html
fails fuzzy-if(skiaContent,1,1000) == extend-1h.html extend-1h.html
fails fuzzy-if(skiaContent,1,10) == extend-1i.html extend-1i.html
== extend-2a.html extend-2a.html
== extend-2b.html extend-2b.html
== extend-3-sanity.html extend-3-sanity.html
fuzzy-if(skiaContent,1,700) == extend-3a.html extend-3a.html
fuzzy-if(skiaContent,1,700) == extend-3b.html extend-3b.html
fuzzy-if(skiaContent,1,700) == extend-3c.html extend-3c.html
fuzzy-if(skiaContent,1,700) == extend-3d.html extend-3d.html
fuzzy-if(skiaContent,1,700) == extend-3e.html extend-3e.html
fuzzy-if(skiaContent,1,700) == extend-3f.html extend-3f.html
fuzzy-if(skiaContent,1,700) == extend-3g.html extend-3g.html
fuzzy-if(skiaContent,1,700) == extend-3h.html extend-3h.html
fuzzy-if(skiaContent,1,700) == extend-3i.html extend-3i.html
== extend-4a.html extend-4a.html
== extend-4b.html extend-4b.html
# these 3 random-if(Android) are a difference of Native & Xul, see bug 739714
skip random-if(Android||B2G||Mulet) needs-focus == pseudo-element-of-native-anonymous.html pseudo-element-of-native-anonymous.html
# bug 676641
# Initial mulet triage: parity with B2G/B2G Desktop
# These tests uses Highlight and HighlightText color keywords, they are not same as text selection color on Mac.
random-if(Android||B2G||Mulet) fails-if(cocoaWidget) needs-focus == non-themed-widget.html non-themed-widget.html
# bug 773482
# Initial mulet triage: parity with B2G/B2G Desktop
random-if(Android||B2G||Mulet) fails-if(cocoaWidget) needs-focus == themed-widget.html themed-widget.html
# Initial mulet triage: parity with B2G/B2G Desktop
== addrange-1.html addrange-1.html
fuzzy-if(skiaContent,1,1200) == addrange-2.html addrange-2.html
skip == splitText-normalize.html splitText-normalize.html
skip == modify-range.html modify-range.html
skip == dom-mutations.html dom-mutations.html
fuzzy-if(OSX==1010,9,1) fuzzy-if(OSX&&skiaContent,6,1) fuzzy-if(skiaContent&&!OSX,1,2138) == trailing-space-1.html trailing-space-1.html

View file

@ -0,0 +1,37 @@
fuzzy-if(skiaContent,1,30) == dynamic-text-1a.html dynamic-text-1-ref.html
fuzzy-if(skiaContent,1,40) == dynamic-text-1b.html dynamic-text-1-ref.html
!= extend-1-sanity.html extend-1-ref.html
fuzzy-if(skiaContent,1,1000) == extend-1a.html extend-1-ref.html
fuzzy-if(skiaContent,1,10) == extend-1b.html extend-1-ref.html
fuzzy-if(skiaContent,1,1000) == extend-1c.html extend-1-ref.html
fuzzy-if(skiaContent,1,1000) == extend-1d.html extend-1-ref.html
fuzzy-if(skiaContent,1,1000) == extend-1e.html extend-1-ref.html
fuzzy-if(skiaContent,1,1000) == extend-1f.html extend-1-ref.html
fuzzy-if(skiaContent,1,1000) == extend-1g.html extend-1-ref.html
fuzzy-if(skiaContent,1,1000) == extend-1h.html extend-1-ref.html
fuzzy-if(skiaContent,1,10) == extend-1i.html extend-1-ref.html
== extend-2a.html extend-2-ref.html
== extend-2b.html extend-2-ref.html
!= extend-3-sanity.html extend-3-ref.html
fuzzy-if(skiaContent,1,700) == extend-3a.html extend-3-ref.html
fuzzy-if(skiaContent,1,700) == extend-3b.html extend-3-ref.html
fuzzy-if(skiaContent,1,700) == extend-3c.html extend-3-ref.html
fuzzy-if(skiaContent,1,700) == extend-3d.html extend-3-ref.html
fuzzy-if(skiaContent,1,700) == extend-3e.html extend-3-ref.html
fuzzy-if(skiaContent,1,700) == extend-3f.html extend-3-ref.html
fuzzy-if(skiaContent,1,700) == extend-3g.html extend-3-ref.html
fuzzy-if(skiaContent,1,700) == extend-3h.html extend-3-ref.html
fuzzy-if(skiaContent,1,700) == extend-3i.html extend-3-ref.html
== extend-4a.html extend-4-ref.html
== extend-4b.html extend-4-ref.html
# these 3 random-if(Android) are a difference of Native & Xul, see bug 739714
random-if(Android) needs-focus != pseudo-element-of-native-anonymous.html pseudo-element-of-native-anonymous-ref.html # bug 676641
# These tests uses Highlight and HighlightText color keywords, they are not same as text selection color on Mac.
random-if(Android) fails-if(cocoaWidget) needs-focus == non-themed-widget.html non-themed-widget-ref.html
random-if(Android) fails-if(cocoaWidget) needs-focus == themed-widget.html themed-widget-ref.html
== addrange-1.html addrange-ref.html
fuzzy-if(skiaContent,1,1200) == addrange-2.html addrange-ref.html
== splitText-normalize.html splitText-normalize-ref.html
== modify-range.html modify-range-ref.html
== dom-mutations.html dom-mutations-ref.html
fuzzy-if(OSX==1010,9,1) fuzzy-if(OSX&&skiaContent,6,1) fuzzy-if(skiaContent&&!OSX,1,2138) == trailing-space-1.html trailing-space-1-ref.html

View file

@ -0,0 +1,40 @@
<!DOCTYPE HTML>
<html class="reftest-wait">
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=191864
-->
<head>
<title>Test for Bug 191864</title>
<script type="application/javascript;version=1.7" src="splitText-normalize.js"></script>
<script type="application/javascript;version=1.7">
var id;
function checkFinished() {
if (window.frames.length == tests_done) {
clearInterval(id);
document.documentElement.className = "";
}
}
function runTest() {
let col1 = document.getElementById('col1');
let col2 = document.getElementById('col2');
let col3 = document.getElementById('col3');
let col4 = document.getElementById('col4');
for (let i=0; i < tests.length; ++i) {
let t = tests[i];
col1.appendChild(createFrame(test_ref,t));
col2.appendChild(createFrame(test_ref,t));
col3.appendChild(createFrame(test_ref,t));
col4.appendChild(createFrame(test_ref,t));
}
id = setInterval(checkFinished,500);
}
</script>
</head>
<body onload="runTest()">
<span id="col1" style="float:left; height:800px; width:180px;"></span>
<span id="col2" style="float:left; height:800px; width:180px;"></span>
<span id="col3" style="float:left; height:800px; width:180px;"></span>
<span id="col4" style="float:left; height:800px; width:180px;"></span>
</body>
</html>

View file

@ -0,0 +1,40 @@
<!DOCTYPE HTML>
<html class="reftest-wait">
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=191864
-->
<head>
<title>Test for Bug 191864</title>
<script type="application/javascript;version=1.7" src="splitText-normalize.js"></script>
<script type="application/javascript;version=1.7">
var id;
function checkFinished() {
if (window.frames.length == tests_done) {
clearInterval(id);
document.documentElement.className = "";
}
}
function runTest() {
let col1 = document.getElementById('col1');
let col2 = document.getElementById('col2');
let col3 = document.getElementById('col3');
let col4 = document.getElementById('col4');
for (let i=0; i < tests.length; ++i) {
let t = tests[i];
col1.appendChild(createFrame(test_split,t));
col2.appendChild(createFrame(test_split_merge,t));
col3.appendChild(createFrame(test_merge,t));
col4.appendChild(createFrame(test_split_insert,t));
}
id = setInterval(checkFinished,500);
}
</script>
</head>
<body onload="runTest()">
<span id="col1" style="float:left; height:800px; width:180px;"></span>
<span id="col2" style="float:left; height:800px; width:180px;"></span>
<span id="col3" style="float:left; height:800px; width:180px;"></span>
<span id="col4" style="float:left; height:800px; width:180px;"></span>
</body>
</html>

View file

@ -0,0 +1,86 @@
/** Test for Bug 191864 **/
var tests_done = 0;
var tests = [
[ {}, [0,4], "012345678" ],
[ {}, [0,0], "012345678" ],
[ {}, [0,9], "012345678" ],
[ {startOffset:4}, [0,4], "012345678" ],
[ {startOffset:5}, [0,4], "012345678" ],
[ {startOffset:5,endOffset:6}, [0,4], "012345678" ],
[ {endOffset:5}, [0,4], "012345678" ],
[ {endOffset:4}, [0,4], "012345678" ],
[ {endOffset:3}, [0,4], "012345678" ],
[ {startOffset:1,endOffset:3}, [0,4], "012345678" ],
[ {startOffset:7,endOffset:7}, [0,4], "012345678" ],
[ {startOffset:4,endOffset:4}, [0,4], "012345678" ],
[ {endNode:1}, [0,4], "012345678", "" ],
[ {endNode:1}, [0,4], "01234567", "8" ],
[ {endNode:1}, [1,4], "0", "12345678" ],
[ {startOffset:1,endNode:1}, [0,0], "0", "12345678" ],
[ {endNode:2}, [1,4], "0", "12345", "678" ],
]
function runtest(f,t,nosplit) {
// create content
let doc = f.contentDocument;
for (let i = 2; i < t.length; ++i) {
c = doc.createTextNode(t[i]);
doc.body.appendChild(c);
}
// setup selection
let sel = t[0]
let startNode = sel.startNode === undefined ? doc.body.firstChild : doc.body.childNodes[sel.startNode];
let startOffset = sel.startOffset === undefined ? 0 : sel.startOffset;
let endNode = sel.endNode === undefined ? startNode : doc.body.childNodes[sel.endNode];
let endOffset = sel.endOffset === undefined ? endNode.length : sel.endOffset;
let selection = f.contentWindow.getSelection();
let r = doc.createRange();
r.setStart(startNode, startOffset);
r.setEnd(endNode, endOffset);
selection.addRange(r);
// splitText
let split = t[1]
if (!nosplit)
doc.body.childNodes[split[0]].splitText(split[1])
}
function test_ref(f,t,nosplit) {
runtest(f,t,true);
}
function test_split(f,t) {
runtest(f,t);
}
function test_split_insert(f,t) {
runtest(f,t);
let doc = f.contentDocument;
doc.body.firstChild;
let split = t[1]
let text1 = doc.body.childNodes[split[0]]
let text2 = doc.body.childNodes[split[0]+1]
if (text2.textContent.length==0) return;
let c = doc.createTextNode(text2.textContent[0]);
doc.body.insertBefore(c,text2);
let r = doc.createRange();
r.setStart(text2, 0);
r.setEnd(text2, 1);
r.deleteContents();
}
function test_split_merge(f,t) {
runtest(f,t);
f.contentDocument.body.normalize();
}
function test_merge(f,t) {
runtest(f,t,true);
f.contentDocument.body.normalize();
}
function createFrame(run,t) {
let f = document.createElement('iframe');
f.setAttribute('height','22');
f.setAttribute('frameborder','0');
f.setAttribute('width','200');
f.src = 'data:text/html,<body style="margin:0;padding:0">';
f.onload = function () { try { run(f, t); } finally { ++tests_done; } }
return f;
}

View file

@ -0,0 +1,13 @@
<html>
<head>
<style type="text/css">
input::-moz-selection {
background-color: Highlight;
color: HighlightText;
}
</style>
</head>
<body onload="document.getElementById('i').select();">
<input id="i" value="text">
</body>
</html>

View file

@ -0,0 +1,5 @@
<html>
<body onload="document.getElementById('i').select();">
<input id="i" value="text">
</body>
</html>

View file

@ -0,0 +1,27 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Test for bug 1146754</title>
<script>
function selectTest() {
window.getSelection().removeAllRanges();
var range = document.createRange();
range.selectNode(document.querySelector('#test'));
window.getSelection().addRange(range);
}
</script>
<style>
body { padding: 1em; }
div>div { height: 2em; }
</style>
</head>
<body onload="selectTest()" contenteditable>
<div id="test">
<div>123 <span style="color:transparent;font-size:0">x</span></div>
<div style="text-shadow:8px 3px 0 red;">456 <span style="color:transparent;font-size:0">x</span></div>
<div><u>789</u> <span style="color:transparent;font-size:0">x</span></div>
<div style="text-shadow:-4px 3px 0 red;"><u>012</u> <span style="color:transparent;font-size:0">x</span></div>
</div>
</body>
</html>

View file

@ -0,0 +1,27 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Test for bug 1146754</title>
<script>
function selectTest() {
window.getSelection().removeAllRanges();
var range = document.createRange();
range.selectNode(document.querySelector('#test'));
window.getSelection().addRange(range);
}
</script>
<style>
body { padding: 1em; }
div>div { height: 2em; }
</style>
</head>
<body onload="selectTest()" contenteditable>
<div id="test">
<div>123 </div>
<div style="text-shadow:8px 3px 0 red;">456 </div>
<div style="text-decoration:underline">789 </div>
<div style="text-decoration:underline; text-shadow:-4px 3px 0 red;">012 </div>
</div>
</body>
</html>