| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../../resources/js-test.js"></script> |
| </head> |
| <body id="body" onload="runTest()"> |
| |
| <div id="content1"> |
| <iframe src="data:text/html,<body><div>hello</div>"></iframe> |
| </div> |
| |
| <div role="group" id="console"></div> |
| |
| <script> |
| |
| description("This tests that comparing text markers that have no common tree scope won't crash"); |
| |
| jsTestIsAsync = true; |
| |
| function runTest() { |
| |
| // Get a text marker inside the frame we will remove. |
| var text1 = accessibilityController.accessibleElementById("content1").childAtIndex(0).childAtIndex(0).childAtIndex(0).childAtIndex(0); |
| var range1 = text1.textMarkerRangeForElement(text1); |
| marker1 = text1.startTextMarkerForTextMarkerRange(range1); |
| |
| // Get a marker for the main frame. |
| var text2 = accessibilityController.rootElement.childAtIndex(0).childAtIndex(0); |
| var range2 = text2.textMarkerRangeForElement(text2); |
| marker2 = text2.startTextMarkerForTextMarkerRange(range2); |
| |
| // Remove the child frame that we have a reference to the text marker from. |
| var content1 = document.getElementById("content1").childNodes[0]; |
| content1.parentNode.removeChild(content1); |
| |
| // Ask for the text marker range with the markers in a different tree. |
| // This should NOT crash! |
| var range = accessibilityController.rootElement.childAtIndex(0).textMarkerRangeForMarkers(marker1, marker2); |
| |
| finishJSTest(); |
| } |
| |
| </script> |
| </body> |
| </html> |