<?xml version="1.0"?> <?xml-stylesheet href="/tests/SimpleTest/test.css" type="text/css"?> <html xmlns="http://www.w3.org/1999/xhtml" title="Test Plugin Clipping: Dynamic Tests"> <head> <style> embed { width:300px; height:200px; display:block; } </style> </head> <body> <!-- Use a XUL element here so we can get its boxObject.screenX/Y --> <hbox style="height:10px; position:absolute; left:0; top:0; z-index:-100;" id="h1" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <hbox style="width:100px;"></hbox><hbox id="h2"/> </hbox> <div id="d1" style="width:200px; overflow:hidden; position:absolute; top:0; left:0;"> <embed id="p1" type="application/x-test" wmode="window" style="position:relative"></embed> </div> <div id="d2" style="width:200px; height:200px; overflow:hidden; position:absolute; top:100px; left:0;"> <embed id="p2" type="application/x-test" wmode="window"></embed> <div id="zbox" style="position:absolute; left:50px; top:50px; width:100px; height:100px; background:yellow;"> </div> </div> <div id="scroll" style="position:absolute; top:0; left:0; width:300px; height:400px; overflow:scroll;"> <div id="sbox" style="margin-top:350px; margin-left:50px; margin-bottom:1000px; width:100px; height:100px; background:blue;"></div> </div> <script src="plugin_clipping_lib.js"></script> <script class="testbody" type="application/javascript"> <![CDATA[ var scroll = document.getElementById("scroll"); var zbox = document.getElementById("zbox"); var sbox = document.getElementById("sbox"); var p1 = document.getElementById("p1"); var d2 = document.getElementById("d2"); function runTests() { checkClipRegion("p1", [[0, 0, 200, 100]]); checkClipRegion("p2", [[0, 0, 200, 50], [0, 50, 50, 150], [150, 50, 200, 150], [0, 150, 200, 200]]); scroll.scrollTop = 150; // A non-zero timeout is needed on X11 (unless an XSync could be performed) // to delay an OOP plugin's X requests enough so that the X server processes // them after the parent processes requests (for the changes above). setTimeout(part2, 1000); } function part2() { checkClipRegion("p2", [[0, 0, 200, 50], [0, 50, 50, 200], [150, 50, 200, 200]]); zbox.style.zIndex = -1; setTimeout(part3, 1000); } function part3() { checkClipRegion("p2", [[0, 0, 200, 100], [0, 100, 50, 200], [150, 100, 200, 200]]); sbox.style.background = ""; setTimeout(part4, 1000); } function part4() { checkClipRegion("p2", [[0, 0, 200, 200]]); p1.style.zIndex = 1; setTimeout(part5, 1000); } function part5() { checkClipRegion("p1", [[0, 0, 200, 200]]); checkClipRegion("p2", [[0, 100, 200, 200]]); // Test subpixel stuff p1.style.zIndex = -1; zbox.style.zIndex = 1; zbox.style.top = "50.3px;" d2.style.top = "100.3px"; setTimeout(done, 1000); } function done() { checkClipRegionNoBounds("p2", [[0, 0, 200, 50], [0, 50, 50, 150], [150, 50, 200, 150], [0, 150, 200, 200]]); window.opener.SimpleTest.finish(); window.close(); } ]]> </script> </body> </html>