| OLD | NEW |
| (Empty) |
| 1 <!DOCTYPE html> | |
| 2 <script src="../resources/testharness.js"></script> | |
| 3 <script src="../resources/testharnessreport.js"></script> | |
| 4 <script src="resources/shadow-dom.js"></script> | |
| 5 <div id="targets"> | |
| 6 <div>Non-shadow</div> | |
| 7 | |
| 8 <div> | |
| 9 <template>Shadow</template> | |
| 10 </div> | |
| 11 | |
| 12 <div> | |
| 13 <template> | |
| 14 <div> | |
| 15 <template>Multi-level</template> | |
| 16 </div> | |
| 17 </template> | |
| 18 </div> | |
| 19 | |
| 20 <details></details> | |
| 21 </div> | |
| 22 <script> | |
| 23 convertTemplatesToShadowRootsWithin(targets); | |
| 24 | |
| 25 for (var i = 0; i < targets.children.length; ++i) { | |
| 26 var target = targets.children[i]; | |
| 27 test(function () { | |
| 28 testCaretRangeFromPoint(target); | |
| 29 }, target.tagName); | |
| 30 } | |
| 31 | |
| 32 function testCaretRangeFromPoint(target) { | |
| 33 var x = target.offsetLeft; | |
| 34 var y = target.offsetTop + target.offsetHeight / 2; | |
| 35 for (var offsetX = 2; offsetX >= -2; --offsetX) { | |
| 36 var range = document.caretRangeFromPoint(x + offsetX, y); | |
| 37 assert_true(isInDocumentTree(range.startContainer), "isInDocumentTree(st
artContainer) when offsetX=" + offsetX); | |
| 38 assert_true(isInDocumentTree(range.endContainer), "isInDocumentTree(endC
ontainer) when offsetX=" + offsetX); | |
| 39 } | |
| 40 } | |
| 41 | |
| 42 function isInDocumentTree(node) { | |
| 43 return rootNode(node) === document; | |
| 44 } | |
| 45 | |
| 46 function rootNode(node) { | |
| 47 for (;;) { | |
| 48 var parent = node.parentNode; | |
| 49 if (!parent) | |
| 50 return node; | |
| 51 node = parent; | |
| 52 } | |
| 53 } | |
| 54 | |
| 55 if (window.testRunner) | |
| 56 targets.style.display = "none"; | |
| 57 </script> | |
| OLD | NEW |