1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=1110277
-->
<head>
<meta charset="utf-8">
<title>Test for Bug 1110277</title>
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
<style>
.testspan {
color: yellow;
}
.testspan[attributestate],
.testspan[attributestate]::before, .testspan[attributestate]::after {
color: blue;
}
#firstlinetest::first-line {
color: purple;
}
#firstlinetest > .testspan::before {
content: "[*]";
}
#aftertest > .testspan::after {
content: "[*]";
}
</style>
<script type="application/javascript">
/** Test for Bug 1110277 **/
SimpleTest.waitForExplicitFinish();
function run() {
runtest("first line test", "#firstlinetest > .testspan");
runtest("after test", "#aftertest > .testspan");
SimpleTest.finish();
}
function runtest(description, selector) {
var utils = SpecialPowers.getDOMWindowUtils(window);
var span = document.querySelector(selector);
var cs = getComputedStyle(span, "");
var startcolor = cs.color;
var startcount = utils.framesConstructed;
is(startcolor, "rgb(255, 255, 0)", description + ": initial color");
span.setAttribute("attributestate", "true");
var endcolor = cs.color;
var endcount = utils.framesConstructed;
is(endcolor, "rgb(0, 0, 255)", description + ": final color");
is(endcount, startcount,
description + ": should not do frame construction")
}
</script>
</head>
<body onload="run()">
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1110277">Mozilla Bug 1110277</a>
<div id="firstlinetest">
<span class="testspan">This <span style="display:block">is a</span> test.</span>
</div>
<div id="aftertest">
<span class="testspan">This <span style="display:block">is a</span> test.</span>
</div>
<pre id="test">
</pre>
</body>
</html>
|