| OLD | NEW |
| 1 description("This tests that page scaling and CSS transforms do not affect mouse
event pageX and pageY coordinates for " + | 1 description("This tests that page scaling and CSS transforms do not affect mouse
event pageX and pageY coordinates for " + |
| 2 "content embedded in an iframe."); | 2 "content embedded in an iframe."); |
| 3 | 3 |
| 4 var html = document.documentElement; | 4 var html = document.documentElement; |
| 5 | 5 |
| 6 var iframe = document.createElement("iframe"); | 6 var iframe = document.createElement("iframe"); |
| 7 iframe.style.border = "none"; | 7 iframe.style.border = "none"; |
| 8 iframe.style.width = "200px"; | 8 iframe.style.width = "200px"; |
| 9 iframe.style.height = "200px"; | 9 iframe.style.height = "200px"; |
| 10 iframe.style.background = "green"; | 10 iframe.style.background = "green"; |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 shouldBeEqualToString("eventLog", expectedString); | 45 shouldBeEqualToString("eventLog", expectedString); |
| 46 clearEventLog(); | 46 clearEventLog(); |
| 47 debug(""); | 47 debug(""); |
| 48 } | 48 } |
| 49 | 49 |
| 50 function iframeLoaded() { | 50 function iframeLoaded() { |
| 51 // Add the div to the iframe. | 51 // Add the div to the iframe. |
| 52 div.addEventListener("click", appendEventLog, false); | 52 div.addEventListener("click", appendEventLog, false); |
| 53 iframe.contentWindow.document.body.insertBefore(div, iframe.contentWindow.docu
ment.body.firstChild); | 53 iframe.contentWindow.document.body.insertBefore(div, iframe.contentWindow.docu
ment.body.firstChild); |
| 54 | 54 |
| 55 if (window.eventSender && window.internals) { | 55 if (window.eventSender) { |
| 56 eventSender.mouseMoveTo(10, 10); | 56 eventSender.mouseMoveTo(10, 10); |
| 57 // We are clicking in the same position on screen. As we scale or transform
the page, | 57 // We are clicking in the same position on screen. As we scale or transform
the page, |
| 58 // we expect the pageX and pageY event coordinates to change because differe
nt | 58 // we expect the pageX and pageY event coordinates to change because differe
nt |
| 59 // parts of the document are under the mouse. | 59 // parts of the document are under the mouse. |
| 60 | 60 |
| 61 testEvents(0, "Unscaled", "click(10, 10)"); | 61 testEvents(0, "Unscaled", "click(10, 10)"); |
| 62 | 62 |
| 63 window.internals.setPageScaleFactor(0.5, 0, 0); | 63 window.eventSender.setPageScaleFactor(0.5, 0, 0); |
| 64 testEvents(0, "setPageScale(0.5)", "click(20, 20)"); | 64 testEvents(0, "setPageScale(0.5)", "click(20, 20)"); |
| 65 | 65 |
| 66 window.internals.setPageScaleFactor(1.0, 0, 0); | 66 window.eventSender.setPageScaleFactor(1.0, 0, 0); |
| 67 html.style["-webkit-transform"] = "scale(0.5, 2.0)"; | 67 html.style["-webkit-transform"] = "scale(0.5, 2.0)"; |
| 68 html.style["-webkit-transform-origin"] = "0 0"; | 68 html.style["-webkit-transform-origin"] = "0 0"; |
| 69 testEvents(0, "CSS scale(0.5, 2.0)", "click(20, 5)"); | 69 testEvents(0, "CSS scale(0.5, 2.0)", "click(20, 5)"); |
| 70 | 70 |
| 71 window.internals.setPageScaleFactor(0.5, 0, 0); | 71 window.eventSender.setPageScaleFactor(0.5, 0, 0); |
| 72 testEvents(0, "setPageScale(0.5), CSS scale(0.5, 2.0)", "click(40, 10)"); | 72 testEvents(0, "setPageScale(0.5), CSS scale(0.5, 2.0)", "click(40, 10)"); |
| 73 } | 73 } |
| 74 | 74 |
| 75 finishJSTest(); | 75 finishJSTest(); |
| 76 } | 76 } |
| 77 | 77 |
| 78 // Mouse events only work after an initial layout | 78 // Mouse events only work after an initial layout |
| 79 document.body.offsetLeft; | 79 document.body.offsetLeft; |
| 80 | 80 |
| 81 // Add the iframe to the document. | 81 // Add the iframe to the document. |
| 82 iframe.src = "resources/page-scaled-mouse-click-iframe-inner.html"; | 82 iframe.src = "resources/page-scaled-mouse-click-iframe-inner.html"; |
| 83 document.body.insertBefore(iframe, document.body.firstChild); | 83 document.body.insertBefore(iframe, document.body.firstChild); |
| 84 | 84 |
| 85 window.jsTestIsAsync = true; | 85 window.jsTestIsAsync = true; |
| OLD | NEW |