Index: LayoutTests/fast/dom/elementsFromPoint/elementsFromPoint-iframes.html |
diff --git a/LayoutTests/fast/dom/elementsFromPoint/elementsFromPoint-iframes.html b/LayoutTests/fast/dom/elementsFromPoint/elementsFromPoint-iframes.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..812a45baf62e67b0e662353890c9e87932af56f3 |
--- /dev/null |
+++ b/LayoutTests/fast/dom/elementsFromPoint/elementsFromPoint-iframes.html |
@@ -0,0 +1,53 @@ |
+<!DOCTYPE HTML> |
+<script src="../../../resources/js-test.js"></script> |
+<script src="resources/elementsFromPoint.js"></script> |
+<style> |
+html, body { |
+ margin: 0; |
+ padding: 0; |
+} |
+body { |
+ height: 500px; |
+} |
+#iframe { |
+ width: 200px; |
+ height: 200px; |
+} |
+#iframeScrollbars { |
+ position: absolute; |
+ top: 0; |
+ left: 0; |
+ transform: translate(50px, 50px); |
+ width: 150px; |
+ height: 150px; |
+ overflow-y: scroll; |
+ overflow-x: scroll; |
+} |
+</style> |
+<iframe id="iframe" src="data:text/html,<div id='div' style='width: 100px; height: 100px; background: red'></div>"></iframe> |
+<iframe id="iframeScrollbars" src="data:text/html,<div id='big' style='width: 500px; height: 500px; background: blue;'></div><div id='div' style='position: absolute; top: 0; left: 0; width: 100px; height: 100px; background: green;'>"></iframe> |
+<div id="console"></div> |
+<script> |
+window.jsTestIsAsync = true; |
+ |
+if (window.testRunner) |
+ testRunner.dumpAsText(); |
+ |
+if (window.internals) |
+ internals.settings.setMockScrollbarsEnabled(true); |
+ |
+onload = function() { |
+ checkElementsFromPointFourCorners('document', 'iframe'); |
+ checkElementsFromPointFourCorners('document.getElementById(\'iframe\').contentDocument', 'document.getElementById(\'iframe\').contentDocument.getElementById(\'div\')'); |
+ checkElementsFromPointFourCorners('document', 'iframeScrollbars'); |
+ checkElementsFromPointFourCorners('document.getElementById(\'iframeScrollbars\').contentDocument', 'document.getElementById(\'iframeScrollbars\').contentDocument.getElementById(\'div\')'); |
+ |
+ // Ensure that elements outside the inner document's viewport are not returned. |
+ shouldBeEqualToNumber('document.getElementById(\'iframeScrollbars\').contentDocument.elementsFromPoint(-1, -1).length', 0); |
+ shouldBeEqualToNumber('document.getElementById(\'iframeScrollbars\').contentDocument.elementsFromPoint(1, 1).length', 2); |
+ shouldBeEqualToNumber('document.getElementById(\'iframeScrollbars\').contentDocument.elementsFromPoint(500, 500).length', 0); |
+ shouldBeEqualToNumber('document.getElementById(\'iframeScrollbars\').contentDocument.elementsFromPoint(140, 140).length', 0); |
+ |
+ finishJSTest(); |
+} |
+</script> |