Index: LayoutTests/compositing/overflow/build-paint-order-list-where-opt-in-decisions-can-affect-each-other.html |
diff --git a/LayoutTests/compositing/overflow/build-paint-order-list-where-opt-in-decisions-can-affect-each-other.html b/LayoutTests/compositing/overflow/build-paint-order-list-where-opt-in-decisions-can-affect-each-other.html |
deleted file mode 100644 |
index c7e31e1807127c418e816b5d573e39530edb05ba..0000000000000000000000000000000000000000 |
--- a/LayoutTests/compositing/overflow/build-paint-order-list-where-opt-in-decisions-can-affect-each-other.html |
+++ /dev/null |
@@ -1,192 +0,0 @@ |
-<!DOCTYPE html> |
- |
-<html><head> |
- <style> |
- .filler { |
- background-color: #CC9900; |
- border-style: solid; |
- border-width: 1px; |
- width: 400px; |
- height: 100px; |
- } |
- |
- .negativechild { |
- z-index: -1; |
- position: relative; |
- } |
- |
- #parentscrollinglayer { |
- background-color: #CC9999; |
- height: 200px; |
- width: 500px; |
- overflow-y: scroll; |
- } |
- |
- #childscrollinglayer { |
- position: relative; |
- background-color: #990066; |
- height: 200px; |
- width: 300px; |
- overflow-x: scroll; |
- } |
- </style> |
- |
- <script src="resources/build-paint-order-lists.js"></script> |
- <script> |
- var debugMode = false; |
- |
- if (window.internals) |
- window.internals.settings.setAcceleratedCompositingForOverflowScrollEnabled(true); |
- |
- if (window.testRunner) |
- testRunner.dumpAsText(); |
- |
- function write(str) |
- { |
- var pre = document.getElementById('console'); |
- var text = document.createTextNode(str + '\n'); |
- pre.appendChild(text); |
- } |
- |
- function getStackingOrder() |
- { |
- var divElements = []; |
- // Force a style recalc. |
- document.body.offsetTop; |
- |
- var stackingOrder = window.internals.nodesFromRect(document, 100, 75, 200, 200, 200, 200, false, false, false); |
- |
- for (var i = 0; i < stackingOrder.length; ++i) |
- if (stackingOrder[i].nodeName === "DIV") |
- divElements.push(stackingOrder[i]); |
- |
- return divElements; |
- } |
- |
- function compareStackingOrderWithPaintOrder(stackingOrder, paintOrder) |
- { |
- if (debugMode) { |
- write("paint:") |
- for (var i = 0; i < paintOrder.length; i++) |
- write(paintOrder[i].id + " " + paintOrder[i].className + " " + paintOrder[i].tagName); |
- |
- write("stacking:") |
- for (var i = 0; i < stackingOrder.length; i++) |
- write(stackingOrder[i].id + " " + stackingOrder[i].className + " " + stackingOrder[i].tagName); |
- } |
- |
- for (var i = 0, j = 0; i < stackingOrder.length && j < paintOrder.length; i++) { |
- // Ignore elements with class "filler negativechild". These elements are |
- // irrelevant to stacking order, since they do not overlap with the |
- // elements we care about. They exist in the paint order lists because |
- // they are still descendants of the same stacking context, but they |
- // will not affect visual layout. |
- while (j < paintOrder.length && paintOrder[paintOrder.length - j - 1].className === "filler negativechild") |
- j++; |
- |
- if (j >= paintOrder.length) |
- break; |
- |
- if (stackingOrder[i] === paintOrder[paintOrder.length - j - 1]) |
- j++; |
- } |
- |
- if (debugMode) |
- write(stackingOrder.length + " " + i + " " + paintOrder.length + " " + j); |
- |
- return j === paintOrder.length; |
- } |
- |
- function doTest() |
- { |
- var parentscrollinglayer = document.getElementById('parentscrollinglayer'); |
- var childscrollinglayer = document.getElementById('childscrollinglayer'); |
- |
- if (window.internals) { |
- var failure = false; |
- |
- // Here we want to compare paint order lists before and after promotion |
- // to the actual stacking order as determined by hit-testing. So we |
- // first force the element not to promote, then compute its paint and |
- // stacking order lists. We then force the element to opt in, and |
- // generate the paint and stacking order lists after opt-in. |
- // |
- // The paint order lists should exactly match the stacking order lists |
- // (modulo children that fall outside of the hit-testing area |
- // on-screen), both before and after promotion. |
- parentscrollinglayer.style.webkitTransform = 'translateZ(0px)'; |
- document.body.offsetTop; |
- |
- window.internals.setNeedsCompositedScrolling(parentscrollinglayer, |
- window.internals.COMPOSITED_SCROLLING_ALWAYS_OFF); |
- parentscrollinglayer.style.webkitTransform = ''; |
- |
- var oldStackingOrder = getStackingOrder(); |
- var oldPaintOrder = getPaintOrder(childscrollinglayer); |
- |
- window.internals.setNeedsCompositedScrolling(parentscrollinglayer, |
- window.internals.COMPOSITED_SCROLLING_ALWAYS_ON); |
- parentscrollinglayer.style.webkitTransform = 'translateZ(0px)'; |
- |
- var newStackingOrder = getStackingOrder(); |
- var newPaintOrder = getPaintOrder(childscrollinglayer); |
- |
- window.internals.setNeedsCompositedScrolling(parentscrollinglayer, |
- window.internals.DO_NOT_FORCE_COMPOSITED_SCROLLING); |
- |
- // The getPaintOrder() function should return a pair of paint orders. |
- // One before promotion and one after. This pair of lists should remain |
- // identical whether the element is actually currently promoted or not, |
- // its purpose is to generate hypothetical pre- and post-lists to |
- // determine if the element is promotable. |
- if (!comparePaintOrderLists(oldPaintOrder, newPaintOrder)) { |
- failure = true; |
- write("FAIL - paint order lists not identical before/after promotion"); |
- } |
- |
- if (!compareStackingOrderWithPaintOrder(oldStackingOrder, oldPaintOrder.beforePromote)) { |
- failure = true; |
- write("FAIL - paint order list before promote doesn't match stacking order"); |
- } |
- |
- if (!compareStackingOrderWithPaintOrder(newStackingOrder, oldPaintOrder.afterPromote)) { |
- failure = true; |
- write("FAIL - paint order list after promote doesn't match stacking order"); |
- } |
- |
- var childScrollingLayerOccurrences = countOccurrencesOfElementInPaintOrderList(oldPaintOrder.beforePromote, childscrollinglayer); |
- if (childScrollingLayerOccurrences !== 1) { |
- failure = true; |
- write("FAIL - paint order list before promote contains " + childScrollingLayerOccurrences + " occurrences of child scrolling layer. Should be exactly 1."); |
- } |
- |
- childScrollingLayerOccurrences = countOccurrencesOfElementInPaintOrderList(oldPaintOrder.afterPromote, childscrollinglayer); |
- if (childScrollingLayerOccurrences !== 1) { |
- failure = true; |
- write("FAIL - paint order list after promote contains " + childScrollingLayerOccurrences + " occurrences of child scrolling layer. Should be exactly 1."); |
- } |
- |
- if(!failure) |
- write("PASS - did not crash."); |
- } |
- } |
- |
- window.addEventListener('load', doTest, false); |
- </script> |
-</head> |
-<body> |
-<div class="filler"></div> |
-<div id="parentscrollinglayer"> |
- <div id="childscrollinglayer"> |
- <div class="filler"></div> |
- </div> |
- <div class="filler"></div> |
- <div class="filler"></div> |
-</div> |
-<div id="fillerchild1" class="filler negativechild"></div> |
-<div id="fillerchild2" class="filler negativechild"></div> |
-<div id="fillerchild3" class="filler negativechild"></div> |
-<div id="fillerchild4" class="filler negativechild"></div> |
-<pre id="console"></pre> |
-</body> |
-</html> |