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

Side by Side Diff: LayoutTests/fast/text/sub-pixel/resources/text-scaling.js

Issue 25512005: Enable experimental support for sub-pixel font scaling (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 var TOLERANCE = 0.01;
2
3 var FONT_SIZE_START = 10;
4 var FONT_SIZE_BASELINE = 12;
5 var FONT_SIZE_STEP = 0.25;
6 var FONT_SIZE_END = 25;
7
8 var PASS = 0;
9 var FAIL = 1;
10
11 function numberToNode(n)
12 {
13 return document.createTextNode(n.toFixed(2));
14 }
15
16 function createElement(type, opt_textContent, opt_className)
17 {
18 var el = document.createElement(type);
19 if (opt_className)
20 el.className = opt_className;
21 if (opt_textContent)
22 el.appendChild(document.createTextNode(opt_textContent));
23 return el;
24 }
25
26 function runTest(containerEl, pangram, opt_writingMode)
27 {
28 var cont = document.getElementById('test');
29
30 var el = createElement('div', undefined, 'header');
31 el.appendChild(createElement('div', 'Font Size'));
32 el.appendChild(createElement('div', 'Width'));
33 el.appendChild(createElement('div', 'Normalized'));
34 el.appendChild(createElement('div', 'Diff'));
35 el.appendChild(createElement('span', 'Content'));
36 containerEl.appendChild(el);
37
38 var referenceElement;
39 for (var fontSize = FONT_SIZE_START;
40 fontSize < FONT_SIZE_END;
41 fontSize += FONT_SIZE_STEP) {
42 var el = createElement('div');
43 el.appendChild(createElement('div'));
44 el.appendChild(createElement('div'));
45 el.appendChild(createElement('div'));
46 el.appendChild(createElement('div', undefined, 'results'));
47 var textSpan = createElement('span');
48 el.appendChild(textSpan);
49 textSpan.appendChild(document.createTextNode(pangram));
50 textSpan.style.fontSize = fontSize;
51 containerEl.appendChild(el);
52 if (fontSize == FONT_SIZE_BASELINE)
53 referenceElement = el;
54 }
55
56 referenceElement.className = 'reference';
57 var rect = referenceElement.lastChild.getBoundingClientRect();
58 var expectedWidth = opt_writingMode == 'vertical' ? rect.height : rect.width ;
59
60 var failures = 0;
61 for (var row, i = 0; row = containerEl.children[i + 1]; i++) {
62 var rect = row.lastChild.getBoundingClientRect();
63 var fontSize = FONT_SIZE_START + (FONT_SIZE_STEP * i);
64 var width = opt_writingMode == 'vertical' ? rect.height : rect.width;
65 var normalizedWidth = (width / fontSize) * FONT_SIZE_BASELINE;
66 row.children[0].appendChild(numberToNode(fontSize));
67 row.children[1].appendChild(numberToNode(width));
68 row.children[2].appendChild(numberToNode(normalizedWidth));
69 row.children[3].appendChild(numberToNode(normalizedWidth - expectedWidth ));
70 if (Math.abs(expectedWidth - normalizedWidth) <= TOLERANCE) {
71 row.classList.add('size-pass');
72 } else {
73 row.classList.add('size-fail');
74 failures++
75 }
76 }
77
78 return failures ? FAIL : PASS;
79 }
OLDNEW
« no previous file with comments | « LayoutTests/fast/text/sub-pixel/resources/text-scaling.css ('k') | LayoutTests/fast/text/sub-pixel/text-scaling-ltr.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698