Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(170)

Unified Diff: LayoutTests/compositing/overflow/build-paint-order-list-where-opt-in-decisions-can-affect-each-other.html

Issue 244193002: Enable universal accelerated overflow scroll (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Update test expectations for crashing test. Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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>

Powered by Google App Engine
This is Rietveld 408576698