Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / fast / events / touch / touch-rect-crash-on-unpromote-layer.html
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <script src="../../../resources/js-test.js"></script>
5 <style>
6 #layer {
7   position: relative;
8   left: 10px;
9 }
10 .composited {
11   -webkit-transform: translate3d(0, 0, 0);
12 }
13 </style>
14 </head>
15 <body>
16 <div id="layer" class="composited">A layer that may or may not be composited</div>
17 <p id="description"></p>
18 <div id="console"></div>
19 <script>
20     description("Make sure we don't crash when a layer with a touch event handler becomes non-composited");
21
22     if (window.internals)
23         window.internals.settings.setForceCompositingMode(true);
24
25     var layer = document.getElementById('layer');
26     layer.addEventListener('touchstart', function() {});
27
28     // Ensure we've done a layout, updated compositing, and we have a hit rect on this composited layer.
29     var x = layer.offsetTop;
30
31     if (window.internals)
32         window.internals.forceCompositingUpdate(document);
33
34     var rects;
35     if (window.internals) {
36       rects = window.internals.touchEventTargetLayerRects(document);
37       shouldBe("rects.length", "1");
38       shouldBeEqualToString("rects[0].layerAssociatedNode.id", "layer");
39     }
40
41     // Make the layer non-composited
42     layer.className = '';
43
44     // Verify we now have a hit rect on the document.
45     // (layout and compositing update are done by touchEventTargetLayerRects().)
46     if (window.internals) {
47       rects = window.internals.touchEventTargetLayerRects(document);
48       shouldBe("rects.length", "1");
49       shouldBeEqualToString("rects[0].layerAssociatedNode.nodeName", "#document");
50     }
51 </script>
52 </body>
53 </html>