Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(18)

Side by Side Diff: LayoutTests/fast/events/elementsFromPoint-iframes.html

Issue 869813003: Implement elementsFromPoint (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fix Internals.cpp for touch adjustment Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 <!DOCTYPE HTML>
2 <script src="../../resources/js-test.js"></script>
3 <style>
4 html, body {
5 margin: 0;
6 padding: 0;
7 }
8 body {
9 height: 500px;
10 }
11 #iframe {
12 width: 200px;
13 height: 200px;
14 }
15 #iframeScrollbars {
16 position: absolute;
17 top: 0;
18 left: 0;
19 transform: translate(50px, 50px);
20 width: 150px;
21 height: 150px;
22 overflow-y: scroll;
Rick Byers 2015/02/20 20:02:24 great test case - I've also seen hit-testing probl
23 overflow-x: scroll;
24 }
25 </style>
26 <iframe id="iframe" src="data:text/html,<div id='div' style='width: 100px; heigh t: 100px; background: red'></div>"></iframe>
27 <iframe id="iframeScrollbars" src="data:text/html,<div id='big' style='width: 50 0px; height: 500px; background: blue;'></div><div id='div' style='position: abso lute; top: 0; left: 0; width: 100px; height: 100px; background: green;'>"></ifra me>
28 <div id="console"></div>
29 <script>
30 window.jsTestIsAsync = true;
31 if (window.testRunner)
32 testRunner.dumpAsText();
33
34 function assertElementInSequence(sequence, value, expectedInSequence) {
35 if (expectedInSequence)
36 shouldBeGreaterThanOrEqual(sequence + '.indexOf(' + value + ')', '0');
37 else
38 shouldBeEqualToNumber(sequence + '.indexOf(' + value + ')', -1);
39 }
40
41 function checkElementsFromPointFourCorners(evalDoc, evalElement) {
42 var element = eval(evalElement);
43 var shouldReceivePointerEvents = window.getComputedStyle(element).pointerEve nts != "none";
44 var rect = element.getBoundingClientRect();
45
46 var topLeft = (rect.left + 1) + ', ' + (rect.top + 1);
47 var topRight = (rect.right - 1) + ', ' + (rect.top + 1);
48 var bottomLeft = (rect.left + 1) + ', ' + (rect.bottom - 1);
49 var bottomRight = (rect.right - 1) + ', ' + (rect.bottom - 1);
50 assertElementInSequence(evalDoc + '.elementsFromPoint(' + topLeft + ')', eva lElement, shouldReceivePointerEvents);
51 assertElementInSequence(evalDoc + '.elementsFromPoint(' + topRight + ')', ev alElement, shouldReceivePointerEvents);
52 assertElementInSequence(evalDoc + '.elementsFromPoint(' + bottomLeft + ')', evalElement, shouldReceivePointerEvents);
53 assertElementInSequence(evalDoc + '.elementsFromPoint(' + bottomRight + ')', evalElement, shouldReceivePointerEvents);
54 }
55
56 onload = function() {
57 checkElementsFromPointFourCorners('document', 'iframe');
58 checkElementsFromPointFourCorners('document.getElementById(\'iframe\').conte ntDocument', 'document.getElementById(\'iframe\').contentDocument.getElementById (\'div\')');
59 checkElementsFromPointFourCorners('document', 'iframeScrollbars');
60 checkElementsFromPointFourCorners('document.getElementById(\'iframeScrollbar s\').contentDocument', 'document.getElementById(\'iframeScrollbars\').contentDoc ument.getElementById(\'div\')');
61
62 // Ensure that elements outside the inner document's viewport are not return ed.
63 shouldBeEqualToNumber('document.getElementById(\'iframeScrollbars\').content Document.elementsFromPoint(-1, -1).length', 0);
64 shouldBeEqualToNumber('document.getElementById(\'iframeScrollbars\').content Document.elementsFromPoint(1, 1).length', 2);
65 shouldBeEqualToNumber('document.getElementById(\'iframeScrollbars\').content Document.elementsFromPoint(500, 500).length', 0);
66 shouldBeEqualToNumber('document.getElementById(\'iframeScrollbars\').content Document.elementsFromPoint(140, 140).length', 0);
67
68 finishJSTest();
69 }
70 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698