Index: PerformanceTests/Layout/Shapes/resources/shapes.js |
diff --git a/PerformanceTests/Layout/Shapes/resources/shapes.js b/PerformanceTests/Layout/Shapes/resources/shapes.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..320f9a66254bcb0af4a2f110e9ace7c76cbe4b20 |
--- /dev/null |
+++ b/PerformanceTests/Layout/Shapes/resources/shapes.js |
@@ -0,0 +1,85 @@ |
+(function() { |
+ var templateParagraph = null; |
+ var templateFloatingNode = null; |
+ var DEFAULT_SHAPE_OBJECT_COUNT = 100; |
+ |
+ function createParagraphNode() { |
+ if (!templateParagraph) { |
+ templateParagraph = document.createElement("p"); |
+ templateParagraph.innerHTML = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam at turpis placerat sapien congue viverra nec sed felis.\ |
+ Aenean aliquam, justo eu condimentum pharetra, arcu eros blandit metus, nec lacinia nisi orci vitae nunc.\ |
+ Proin orci libero, accumsan non dignissim at, sodales in sapien. Curabitur dui nibh, venenatis vel tempus vel, accumsan nec velit.\ |
+ Nam sit amet tempor lacus. Sed mollis dolor nibh, non tempus leo. Donec magna odio, commodo id porta in, aliquam mollis eros.\ |
+ Pellentesque vulputate gravida ligula in elementum. Fusce lacinia massa justo, at porttitor orci.\ |
+ Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec odio quam, pulvinar ut porttitor ac, tempor vitae ligula.\ |
+ Cras aliquet sapien id sapien mollis nec pulvinar mauris adipiscing. Praesent porttitor consequat augue, sit amet mollis justo condimentum eu.\ |
+ Etiam ut erat pellentesque orci congue interdum. Nulla eu eros mi.\ |
+ Curabitur rutrum, lorem ac malesuada pellentesque, sapien risus consequat massa, eget pellentesque nunc nulla vel sem."; |
+ templateParagraph.className = "contentParagraph"; |
+ } |
+ |
+ var paragraph = templateParagraph.cloneNode(true); |
+ return paragraph; |
+ } |
+ |
+ function createFloatingNode(properties) { |
+ if (!templateFloatingNode) { |
+ templateFloatingNode = document.createElement("div"); |
+ templateFloatingNode.className = "floatingObject"; |
+ } |
+ |
+ var float = templateFloatingNode.cloneNode(false); |
+ for (prop in properties) { |
+ float.style[prop] = properties[prop]; |
+ } |
+ return float; |
+ } |
+ |
+ function addArticles(floatingObjects, paragraphCount) { |
+ for (var i = 0; i < paragraphCount; ++i) { |
+ floatingObjects.appendChild(createParagraphNode()); |
+ } |
+ } |
+ |
+ function createFloatingObjects(properties, floatingObjectCount) { |
+ var testBox = document.createElement("div"); |
+ for (var i = 0; i < floatingObjectCount; ++i) { |
+ testBox.appendChild(createFloatingNode(properties)); |
+ testBox.appendChild(createParagraphNode()) |
+ } |
+ testBox.className = "testBox"; |
+ return testBox; |
+ } |
+ |
+ function applyFloating() { |
+ var floatingObjects = document.getElementsByClassName('floatingObject'); |
+ for (i = 0; i < floatingObjects.length; ++i) { |
+ floatingObjects[i].style.cssFloat = 'left'; |
+ } |
+ } |
+ |
+ function createShapeOutsideTest(properties, shapeObjectCount) { |
+ shapeObjectCount = shapeObjectCount || DEFAULT_SHAPE_OBJECT_COUNT; |
+ |
+ var floatingObjects = createFloatingObjects(properties, shapeObjectCount); |
+ document.body.appendChild(floatingObjects); |
+ return { |
+ description: "Testing shapes with " + properties['webkitShapeOutside'] +" using " + shapeObjectCount + " shapes.", |
+ run: function() { |
+ applyFloating(); |
+ document.body.offsetTop; |
+ }, |
+ setup: function() { |
+ PerfTestRunner.resetRandomSeed(); |
+ document.body.offsetTop; |
+ }, |
+ done: function() { |
+ document.body.removeChild(floatingObjects); |
+ templateParagraph = null; |
+ } |
+ }; |
+ } |
+ |
+ window.createShapeOutsideTest = createShapeOutsideTest; |
+ |
+})(); |