| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head> |
| <script>window.enablePixelTesting = true;</script> |
| <script src="../../resources/js-test-pre.js"></script> |
| <script src="../../fast/repaint/resources/repaint.js"></script> |
| <script type="text/javascript"> |
| function completeTest() { |
| var script = document.createElement("script"); |
| |
| script.onload = function() { |
| if (window.testRunner) |
| testRunner.notifyDone(); |
| }; |
| |
| script.src = "../../resources/js-test-post.js"; |
| document.body.appendChild(script); |
| } |
| |
| function repaintTest() { |
| if (window.testRunner) |
| testRunner.waitUntilDone(); |
| |
| // Test initial reported offsetWidth is 0, as we're not in the tree yet. |
| newObject = document.createElement("object"); |
| newObject.setAttribute("style", "border: 1px black solid; background: red"); |
| shouldBe("newObject.offsetWidth", "0"); |
| shouldBe("newObject.offsetWidth", "0"); |
| |
| // Test that the initial width is 300px + 1px border on each side. |
| document.body.insertBefore(newObject, document.getElementById("description")); |
| shouldBe("newObject.offsetWidth", "302"); |
| shouldBe("newObject.offsetWidth", "302"); |
| |
| // Switch to document: "<svg xmlns="http://www.w3.org/2000/svg" width="400" height="200"><rect width="400" height="200" fill="green"/></svg>". |
| // FIXME: This currently fails in WebKit trunk. We don't react on dataAttr changes at all. When manually relayouting using eg. zoom in/out it takes affect. |
| newObject.setAttribute("data", "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MDAiIGhlaWdodD0iMjAwIj48cmVjdCB3aWR0aD0iNDAwIiBoZWlnaHQ9IjIwMCIgZmlsbD0iZ3JlZW4iLz48L3N2Zz4="); |
| shouldBe("newObject.offsetWidth", "502"); |
| shouldBe("newObject.offsetWidth", "502"); |
| |
| completeTest(); |
| } |
| </script> |
| </head> |
| <body style="margin: 0px" onload="runRepaintTest()"> |
| |
| <p id="description"></p> |
| <div id="console"></div> |
| |
| <script> |
| description("Tests that querying offsetWidth twice leads to the same result - no red background should be visible."); |
| </script> |
| </body> |
| </html> |