| Index: third_party/WebKit/LayoutTests/imported/web-platform-tests/cssom-view/elementFromPoint.html | 
| diff --git a/third_party/WebKit/LayoutTests/imported/web-platform-tests/cssom-view/elementFromPoint.html b/third_party/WebKit/LayoutTests/imported/web-platform-tests/cssom-view/elementFromPoint.html | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..4937ec54a1f790547877983ab520d0250ca4c4a2 | 
| --- /dev/null | 
| +++ b/third_party/WebKit/LayoutTests/imported/web-platform-tests/cssom-view/elementFromPoint.html | 
| @@ -0,0 +1,143 @@ | 
| +<!DOCTYPE html> | 
| +<title>cssom-view - elementFromPoint</title> | 
| +<script src="../../../resources/testharness.js"></script> | 
| +<script src="../../../resources/testharnessreport.js"></script> | 
| +<style> | 
| +  .size { | 
| +    width:100px; | 
| +    height:100px; | 
| +  } | 
| +  .overlay { | 
| +    position:absolute; | 
| +    top:109px; | 
| +    pointer-events:none; | 
| +  } | 
| +  .purple { | 
| +    background-color: rebeccapurple; | 
| +  } | 
| +  .yellow { | 
| +    background-color: yellow; | 
| +  } | 
| +  .teal { | 
| +    background-color: teal; | 
| +  } | 
| +  .pink { | 
| +    background-color: pink; | 
| +  } | 
| +</style> | 
| +<body> | 
| +  <div id='purple' class="size purple" > </div> | 
| +  <div id='yellow' class="size yellow"> </div> | 
| +  <div id='teal' class="size overlay teal"> </div> | 
| +  <iframe id=iframe-1 src="iframe.html" style='display:none;position:absolute; left:300px;'></iframe> | 
| +  <iframe id=iframe-2 src="iframe.html" width="" height=""></iframe> | 
| +  <iframe id=iframe-3 width="" height=""></iframe> | 
| +  <svg id=squiggle xmlns="http://www.w3.org/2000/svg" height="98" width="581" viewBox="0 0 581 98"> | 
| +    <path stroke-dashoffset="0.00" stroke-dasharray="" d="M62.9 14.9c-25-7.74-56.6 4.8-60.4 24.3-3.73 19.6 21.6 35 39.6 37.6 42.8 6.2 72.9-53.4 116-58.9 65-18.2 191 101 215 28.8 5-16.7-7-49.1-34-44-34 11.5-31 46.5-14 69.3 9.38 12.6 24.2 20.6 39.8 22.9 91.4 9.05 102-98.9 176-86.7 18.8 3.81 33 17.3 36.7 34.6 2.01 10.2.124 21.1-5.18 30.1" stroke="#000" stroke-width="4.3" fill="none"> | 
| +    </path> | 
| +  </svg> | 
| +  <svg id=svg-transform width="180" height="200" | 
| +  xmlns="http://www.w3.org/2000/svg" | 
| +  xmlns:xlink="http://www.w3.org/1999/xlink"> | 
| + | 
| +  <!--  Now we add a text element and apply rotate and translate to both  --> | 
| +  <rect x="50" y="50" height="100" width="100" style="stroke:#000; fill: #0086B2" transform="translate(30) rotate(45 50 50)"></rect> | 
| +  <text x="60" y="105" transform="translate(30) rotate(45 50 50)"> Hello WPT! </text> | 
| + | 
| +</svg> | 
| +  <div id='pink' class='size pink' style='transform: translate(10px)'> </div> | 
| +  <div id='anotherteal' class='size teal' style='pointer-events:none'>Another teal</div> | 
| +  <script> | 
| +    setup({explicit_done:true}); | 
| +    window.onload = function () { | 
| +      test(function () { | 
| +              assert_equals(document.elementFromPoint(-1, -1), null, | 
| +                "both co-ordinates passed in are negative so should have returned a null"); | 
| +              assert_equals(document.elementFromPoint(-1, -1), null, | 
| +                "x co-ordinates passed in are negative so should have returned a null"); | 
| +              assert_equals(document.elementFromPoint(-1, -1), null, | 
| +                "y co-ordinates passed in are negative so should have returned a null"); | 
| +                  }, "Negative co-ordinates"); | 
| + | 
| +      test(function () { | 
| +              var viewportX = window.innerWidth; | 
| +              var viewportY = window.innerHeight; | 
| +              assert_equals(document.elementFromPoint(viewportX + 100, 10), null, | 
| +                "X co-ordinates larger than viewport"); | 
| +              assert_equals(document.elementFromPoint(10, viewportY + 100), null, | 
| +                "Y co-ordinates larger than viewport"); | 
| +              assert_equals(document.elementFromPoint(viewportX + 100, viewportY + 100), null, | 
| +                "X, Y co-ordinates larger than viewport"); | 
| +      }, "co-ordinates larger than the viewport"); | 
| + | 
| +      test(function () { | 
| +              var viewportX = window.frames[1].innerWidth; | 
| +              var viewportY = window.frames[1].innerHeight; | 
| +              var iframeRect = document.getElementById('iframe-2').getBoundingClientRect(); | 
| +              assert_equals(null, window.frames[1].document.elementFromPoint(iframeRect.right + viewportX + 100, 10), | 
| +                "X co-ordinates larger than viewport"); | 
| +              assert_equals(null, window.frames[1].document.elementFromPoint(10, iframeRect.bottom + viewportY + 100), | 
| +                "Y co-ordinates larger than viewport"); | 
| +              assert_equals(null, window.frames[1].document.elementFromPoint(iframeRect.right + viewportX + 100, | 
| +                                                                             iframeRect.bottom + viewportY + 100), | 
| +                "X, Y co-ordinates larger than viewport"); | 
| +      }, "co-ordinates larger than the viewport from in iframe"); | 
| + | 
| +      test(function () { | 
| +              assert_equals(document.elementFromPoint(10, 10), document.getElementById('purple'), | 
| +                "Should have returned the element with id `purple`"); | 
| +            }, "Return first element that is the target for hit testing"); | 
| + | 
| +      test(function () { | 
| +              assert_equals(document.elementFromPoint(10, 120), document.getElementById('yellow'), | 
| +                "Should have returned the element with id `yellow` as element with `teal` has `pointer-events:none`"); | 
| +            }, "First element to get mouse events with pointer-events css"); | 
| + | 
| +      test(function () { | 
| +             var svg = document.getElementById('squiggle'); | 
| +             var svgRect = svg.getBoundingClientRect(); | 
| +             assert_equals(document.elementFromPoint(svgRect.left + Math.round(svgRect.width/2), | 
| +                                                     svgRect.top + Math.round(svgRect.height/2)), | 
| +                           svg, | 
| +                           "Should have returned the line SVG"); | 
| +      }, "SVG element at x,y"); | 
| + | 
| +      test(function () { | 
| +              var svg = document.getElementById('svg-transform'); | 
| +              var svgRect = svg.getBoundingClientRect(); | 
| +              assert_equals(document.elementFromPoint(svgRect.left + Math.round(svgRect.width/2), | 
| +                                                      svgRect.top + Math.round(svgRect.height/2)), | 
| +                            svg.querySelector("rect"), | 
| +                            "Should have returned SVG with Hello WPT! that has a transform"); | 
| + | 
| +              var pink = document.getElementById('pink'); | 
| +              var pinkRect = pink.getBoundingClientRect(); | 
| +              assert_equals(document.elementFromPoint(pinkRect.left + Math.round(pinkRect.width/2), | 
| +                                                      pinkRect.top + Math.round(pinkRect.height/2)), | 
| +                            pink, | 
| +                            "Should have returned pink element that has a transform"); | 
| + | 
| +      }, "transformed element at x,y"); | 
| + | 
| +      test(function () { | 
| +            var anotherteal = document.getElementById('anotherteal'); | 
| +            var anothertealRect = anotherteal.getBoundingClientRect(); | 
| +            assert_equals(document.elementFromPoint(anothertealRect.left + Math.round(anothertealRect.width/2), | 
| +                                                    anothertealRect.top + Math.round(anothertealRect.height/2)), | 
| +                          document.body, | 
| +                          "Should have returned the root"); | 
| + | 
| +            var doc = frames[2].document; | 
| +            doc.removeChild(doc.documentElement); | 
| +            assert_equals(doc.elementFromPoint(0, 0), null, | 
| +                          "Should have returned null as no root element"); | 
| +      }, "no hit target at x,y"); | 
| + | 
| +      test(function () { | 
| +            var doc = document.implementation.createHTMLDocument('foo'); | 
| +            assert_equals(doc.elementFromPoint(0, 0), null, | 
| +                          "Should have returned the documentElement for the document") | 
| +      }, "No viewport available"); | 
| +      done(); | 
| +    } | 
| + </script> | 
|  |