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

Side by Side Diff: third_party/WebKit/LayoutTests/fast/dom/forced-layout-only-in-document.html

Issue 1839803007: Guard Element and getComputedStyle methods that force a layout with inActiveDocument. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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 unified diff | Download patch
OLDNEW
(Empty)
1 <!DOCTYPE html>
2
3 <script src="../../resources/js-test.js"></script>
4
5 <div id="mutator"></div>
6
7 <script>
8 description("Element APIs should not force layout for nodes not in the active do cument.");
9
10 var testStatements = [
11 'element.scrollIntoView()',
12 'element.scrollIntoViewIfNeeded()',
13 'element.offsetLeft',
14 'element.offsetTop',
15 'element.offsetWidth',
16 'element.offsetHeight',
17 'element.offsetParent',
18 'element.clientLeft',
19 'element.clientTop',
20 'element.clientWidth',
21 'element.clientHeight',
22 'element.scrollLeft',
23 'element.scrollTop',
24 'element.scrollLeft = 10',
25 'element.scrollTop = 10',
26 'element.scrollBy({left: 10, top: 10})',
27 'element.scrollBy(10, 10)',
28 'element.scrollTo({left: 10, top: 10})',
29 'element.scrollTo(10, 10)',
30 'element.getClientRects()',
31 'element.getBoundingClientRect()',
32 'element.computedRole',
33 'element.computedName',
34 'element.focus()',
35 'element.innerText',
36 'element.innerText = "innerText value"',
37 'getComputedStyle(element).color',
38 'getComputedStyle(element).width',
39 'getComputedStyle(element).fontSize',
40 ];
41
42 var mutator = document.getElementById("mutator");
43 var element = document.createElement("div");
44 var causedRecalc = false;
45 for (var i = 0; i < testStatements.length; ++i) {
46 var statement = testStatements[i];
47 mutator.offsetTop;
48 // Make the mutator's style dirty.
49 mutator.style.flexGrow = i;
50 eval(statement);
51 // The mutator element should still be dirty.
52 if (internals.updateStyleAndReturnAffectedElementCount() != 1) {
53 causedRecalc = true;
54 testFailed(statement + " caused a style or layout update.");
55 }
56 }
57 if (!causedRecalc)
58 testPassed("No style or layout updates.");
59 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698