54 lines
1.7 KiB
HTML
54 lines
1.7 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<body onload="adopt()">
|
|
<p>This tests adopting a parent iframe (i.e. the iframe contains the document into which iframe is adopted). WebKit should not hang and should throw a hierarchy request exception.</p>
|
|
<div>Adopting parent frame: <span id="child"></span></div>
|
|
<div>Adopting grandparent frame: <span id="grandchild"></span></div>
|
|
<script>
|
|
|
|
if (window.testRunner)
|
|
testRunner.dumpAsText();
|
|
|
|
function createFrame(id, parent) {
|
|
var iframe = document.createElement('iframe');
|
|
if (parent)
|
|
parent.contentDocument.body.appendChild(iframe);
|
|
else
|
|
document.body.appendChild(iframe);
|
|
iframe.contentDocument.body.appendChild(iframe.contentDocument.createTextNode(id));
|
|
iframe.contentDocument.body.appendChild(iframe.contentDocument.createElement('br'));
|
|
iframe.style.width = '70%';
|
|
iframe.style.height = '40%';
|
|
return iframe;
|
|
}
|
|
|
|
var parent = createFrame('parent');
|
|
var child = createFrame('child', parent);
|
|
var grandchild = createFrame('grandchild', child);
|
|
|
|
function log(id, message) {
|
|
document.getElementById(id).innerHTML = message;
|
|
}
|
|
|
|
function testChild(id, action) {
|
|
try {
|
|
action();
|
|
} catch(error) {
|
|
if (error.name == 'HierarchyRequestError')
|
|
log(id, 'PASS');
|
|
else
|
|
log(id, 'FAIL: got ' + error.name + ' but expected HierarchyRequestError');
|
|
return;
|
|
}
|
|
log(id, 'FAIL: no exceptions thrown but expected HierarchyRequestError');
|
|
}
|
|
|
|
function adopt() {
|
|
testChild('child', function () { child.contentDocument.adoptNode(parent); });
|
|
testChild('grandchild', function () { grandchild.contentDocument.adoptNode(parent); });
|
|
}
|
|
|
|
</script>
|
|
</body>
|
|
</html>
|