зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1463993 - Add a rendering test for scrollbar color properties. r=heycam
MozReview-Commit-ID: 442pfDQUUUs --HG-- extra : rebase_source : 6e336c36f61d7772023e641ca84751c7ddd2b018
This commit is contained in:
Родитель
feb293ecec
Коммит
661ed3d065
|
@ -9,3 +9,5 @@ skip-if = toolkit != "cocoa"
|
||||||
[test_picker_no_crash.html]
|
[test_picker_no_crash.html]
|
||||||
skip-if = toolkit != "windows" || e10s # Bug 1267491
|
skip-if = toolkit != "windows" || e10s # Bug 1267491
|
||||||
support-files = window_picker_no_crash_child.html
|
support-files = window_picker_no_crash_child.html
|
||||||
|
[test_scrollbar_colors.html]
|
||||||
|
skip-if = os == 'mac' || os == 'linux' || os == 'android' # bug 1460109
|
||||||
|
|
|
@ -0,0 +1,69 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Test for scrollbar-*-color properties</title>
|
||||||
|
<link rel="stylesheet" href="/tests/SimpleTest/test.css">
|
||||||
|
<script src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||||
|
<script src="/tests/SimpleTest/WindowSnapshot.js"></script>
|
||||||
|
<style>
|
||||||
|
.outer {
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
background: yellow;
|
||||||
|
overflow: scroll;
|
||||||
|
}
|
||||||
|
.inner {
|
||||||
|
width: 200px;
|
||||||
|
height: 200px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<style id="style"></style>
|
||||||
|
<div class="outer">
|
||||||
|
<div class="inner">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
function countPixels(canvas) {
|
||||||
|
let result = new Map;
|
||||||
|
let ctx = canvas.getContext('2d');
|
||||||
|
let image = ctx.getImageData(0, 0, canvas.width, canvas.height);
|
||||||
|
let data = image.data;
|
||||||
|
let size = image.width * image.height;
|
||||||
|
for (let i = 0; i < size; i++) {
|
||||||
|
let key = data.subarray(i * 4, i * 4 + 3).toString();
|
||||||
|
let value = result.get(key);
|
||||||
|
value = value ? value : 0;
|
||||||
|
result.set(key, value + 1);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
const WIN_REFERENCES = [
|
||||||
|
// Yellow background
|
||||||
|
["255,255,0", 6889],
|
||||||
|
// Blue scrollbar face
|
||||||
|
["0,0,255", 540],
|
||||||
|
// Cyan scrollbar track
|
||||||
|
["0,255,255", 2198],
|
||||||
|
];
|
||||||
|
|
||||||
|
SimpleTest.waitForExplicitFinish();
|
||||||
|
SpecialPowers.pushPrefEnv({
|
||||||
|
"set": [["layout.css.scrollbar-colors.enabled", true]],
|
||||||
|
}, function() {
|
||||||
|
document.querySelector('#style').textContent = `
|
||||||
|
.outer {
|
||||||
|
scrollbar-face-color: blue;
|
||||||
|
scrollbar-track-color: cyan;
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
let outer = document.querySelector('.outer');
|
||||||
|
let canvas = snapshotRect(window, outer.getBoundingClientRect());
|
||||||
|
let stats = countPixels(canvas);
|
||||||
|
for (let [color, count] of WIN_REFERENCES) {
|
||||||
|
let value = stats.get(color);
|
||||||
|
is(value, count, `Pixel count of color ${color}`);
|
||||||
|
}
|
||||||
|
SimpleTest.finish();
|
||||||
|
});
|
||||||
|
</script>
|
Загрузка…
Ссылка в новой задаче