forked from mozilla/gecko-dev
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bug 989802 - Round viewport units to appunits using trunc rather than…
… round so that repeated uses fit within a container. r=roc viewport-units-rounding-1.html fails without the patch and passes with the patch. viewport-units-rounding-2.html fails with an early version of the patch but not without the patch or with the final version.
- Loading branch information
Showing
7 changed files
with
305 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
51 changes: 51 additions & 0 deletions
51
layout/reftests/pixel-rounding/viewport-units-rounding-1-frame.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
<!DOCTYPE HTML> | ||
<title>subframe for test of viewport units rounding</title> | ||
<meta charset="UTF-8"> | ||
<style> | ||
|
||
html, body { margin: 0; padding: 0; border: none } | ||
|
||
body > div { | ||
background: red; /* should never show */ | ||
overflow: hidden; /* block formatting context */ | ||
} | ||
|
||
body > div > div { | ||
float: left; | ||
height: 10px; | ||
} | ||
|
||
body > div.w25 > div { width: 25vw; } | ||
|
||
</style> | ||
|
||
<div class="w25"> | ||
<div style="background: fuchsia"></div> | ||
<div style="background: aqua"></div> | ||
<div style="background: silver"></div> | ||
<div style="background: yellow"></div> | ||
</div> | ||
|
||
<!-- | ||
Really, though, anything that is a multiple of 5vw will always | ||
produce a round number of appunits when starting from an integer | ||
number of pixels, since 5vw is 1/20 of the viewport. | ||
So, more interesting: | ||
--> | ||
|
||
<div> | ||
<div style="width: 24vw; background: fuchsia"></div> | ||
<div style="width: 24vw; background: aqua"></div> | ||
<div style="width: 24vw; background: silver"></div> | ||
<div style="width: 24vw; background: yellow"></div> | ||
<div style="width: 4vw; background: gray"></div> | ||
</div> | ||
|
||
<div> | ||
<div style="width: 21vw; background: fuchsia"></div> | ||
<div style="width: 21vw; background: aqua"></div> | ||
<div style="width: 21vw; background: silver"></div> | ||
<div style="width: 21vw; background: yellow"></div> | ||
<div style="width: 16vw; background: gray"></div> | ||
</div> |
123 changes: 123 additions & 0 deletions
123
layout/reftests/pixel-rounding/viewport-units-rounding-1-ref.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
<!DOCTYPE HTML> | ||
<title>viewport units rounding reference</title> | ||
<meta charset="UTF-8"> | ||
<style> | ||
div.contain { height: 50px } | ||
div.contain > div { height: 10px } | ||
div.contain > div > div { height: 10px; float: left } | ||
</style> | ||
|
||
<div class="contain" style="width: 200px"> | ||
<div> | ||
<div style="width: 50px; background: fuchsia"></div> | ||
<div style="width: 50px; background: aqua"></div> | ||
<div style="width: 50px; background: silver"></div> | ||
<div style="width: 50px; background: yellow"></div> | ||
</div> | ||
<div> | ||
<div style="width: 48px; background: fuchsia"></div> | ||
<div style="width: 48px; background: aqua"></div> | ||
<div style="width: 48px; background: silver"></div> | ||
<div style="width: 48px; background: yellow"></div> | ||
<div style="width: 8px; background: gray"></div> | ||
</div> | ||
<div> | ||
<div style="width: 42px; background: fuchsia"></div> | ||
<div style="width: 42px; background: aqua"></div> | ||
<div style="width: 42px; background: silver"></div> | ||
<div style="width: 42px; background: yellow"></div> | ||
<div style="width: 32px; background: gray"></div> | ||
</div> | ||
</div> | ||
|
||
<div class="contain" style="width: 201px"> | ||
<div> | ||
<div style="width: 50px; background: fuchsia"></div> | ||
<div style="width: 51px; background: aqua"></div> | ||
<div style="width: 50px; background: silver"></div> | ||
<div style="width: 50px; background: yellow"></div> | ||
</div> | ||
<div> | ||
<div style="width: 48px; background: fuchsia"></div> | ||
<div style="width: 48px; background: aqua"></div> | ||
<div style="width: 49px; background: silver"></div> | ||
<div style="width: 48px; background: yellow"></div> | ||
<div style="width: 8px; background: gray"></div> | ||
</div> | ||
<div> | ||
<div style="width: 42px; background: fuchsia"></div> | ||
<div style="width: 42px; background: aqua"></div> | ||
<div style="width: 43px; background: silver"></div> | ||
<div style="width: 42px; background: yellow"></div> | ||
<div style="width: 32px; background: gray"></div> | ||
</div> | ||
</div> | ||
|
||
<div class="contain" style="width: 202px"> | ||
<div> | ||
<div style="width: 51px; background: fuchsia"></div> | ||
<div style="width: 50px; background: aqua"></div> | ||
<div style="width: 51px; background: silver"></div> | ||
<div style="width: 50px; background: yellow"></div> | ||
</div> | ||
<div> | ||
<div style="width: 48px; background: fuchsia"></div> | ||
<div style="width: 49px; background: aqua"></div> | ||
<div style="width: 48px; background: silver"></div> | ||
<div style="width: 49px; background: yellow"></div> | ||
<div style="width: 8px; background: gray"></div> | ||
</div> | ||
<div> | ||
<div style="width: 42px; background: fuchsia"></div> | ||
<div style="width: 43px; background: aqua"></div> | ||
<div style="width: 42px; background: silver"></div> | ||
<div style="width: 43px; background: yellow"></div> | ||
<div style="width: 32px; background: gray"></div> | ||
</div> | ||
</div> | ||
|
||
<div class="contain" style="width: 203px"> | ||
<div> | ||
<div style="width: 51px; background: fuchsia"></div> | ||
<div style="width: 51px; background: aqua"></div> | ||
<div style="width: 50px; background: silver"></div> | ||
<div style="width: 51px; background: yellow"></div> | ||
</div> | ||
<div> | ||
<div style="width: 49px; background: fuchsia"></div> | ||
<div style="width: 48px; background: aqua"></div> | ||
<div style="width: 49px; background: silver"></div> | ||
<div style="width: 49px; background: yellow"></div> | ||
<div style="width: 8px; background: gray"></div> | ||
</div> | ||
<div> | ||
<div style="width: 43px; background: fuchsia"></div> | ||
<div style="width: 42px; background: aqua"></div> | ||
<div style="width: 43px; background: silver"></div> | ||
<div style="width: 42px; background: yellow"></div> | ||
<div style="width: 33px; background: gray"></div> | ||
</div> | ||
</div> | ||
|
||
<div class="contain" style="width: 204px"> | ||
<div> | ||
<div style="width: 51px; background: fuchsia"></div> | ||
<div style="width: 51px; background: aqua"></div> | ||
<div style="width: 51px; background: silver"></div> | ||
<div style="width: 51px; background: yellow"></div> | ||
</div> | ||
<div> | ||
<div style="width: 49px; background: fuchsia"></div> | ||
<div style="width: 49px; background: aqua"></div> | ||
<div style="width: 49px; background: silver"></div> | ||
<div style="width: 49px; background: yellow"></div> | ||
<div style="width: 8px; background: gray"></div> | ||
</div> | ||
<div> | ||
<div style="width: 43px; background: fuchsia"></div> | ||
<div style="width: 43px; background: aqua"></div> | ||
<div style="width: 43px; background: silver"></div> | ||
<div style="width: 42px; background: yellow"></div> | ||
<div style="width: 33px; background: gray"></div> | ||
</div> | ||
</div> |
12 changes: 12 additions & 0 deletions
12
layout/reftests/pixel-rounding/viewport-units-rounding-1.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
<!DOCTYPE HTML> | ||
<title>viewport units rounding</title> | ||
<meta charset="UTF-8"> | ||
<style> | ||
iframe { display: block; border: 0; margin: 0; padding: 0; } | ||
</style> | ||
|
||
<iframe scrolling="no" src="viewport-units-rounding-1-frame.html" width="200" height="50" ></iframe> | ||
<iframe scrolling="no" src="viewport-units-rounding-1-frame.html" width="201" height="50" ></iframe> | ||
<iframe scrolling="no" src="viewport-units-rounding-1-frame.html" width="202" height="50" ></iframe> | ||
<iframe scrolling="no" src="viewport-units-rounding-1-frame.html" width="203" height="50" ></iframe> | ||
<iframe scrolling="no" src="viewport-units-rounding-1-frame.html" width="204" height="50" ></iframe> |
43 changes: 43 additions & 0 deletions
43
layout/reftests/pixel-rounding/viewport-units-rounding-2.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
<!DOCTYPE HTML> | ||
<title>viewport units rounding test</title> | ||
<meta charset="UTF-8"> | ||
<style> | ||
|
||
body > div > div { line-height: 1px } | ||
span { | ||
display: inline-block; | ||
height: 1px; | ||
width: var(--w); | ||
vertical-align: bottom; | ||
} | ||
span:nth-child(1) { | ||
background: red; | ||
} | ||
span:nth-child(2) { | ||
background: white; | ||
margin-left: var(--negw); | ||
} | ||
|
||
</style> | ||
<body> | ||
<script> | ||
|
||
for (var p = 0; p < 20; ++p) { | ||
var position = ((20 * p) + (p / 50)) + "px"; | ||
var container = document.createElement("div"); | ||
container.style.position = "absolute"; | ||
container.style.top = "0px"; | ||
container.style.left = position; | ||
for (var w = 0; w < 99; ++w) { | ||
var width = (0.5 + w / 100) + "vw"; | ||
var div = document.createElement("div"); | ||
div.setAttribute("style", "--w: " + width + "; " + | ||
"--negw: -" + width); | ||
div.appendChild(document.createElement("span")); | ||
div.appendChild(document.createElement("span")); | ||
container.appendChild(div); | ||
} | ||
document.body.appendChild(container); | ||
} | ||
|
||
</script> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters