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

Unified 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, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: LayoutTests/fast/text/sub-pixel/resources/text-scaling.js
diff --git a/LayoutTests/fast/text/sub-pixel/resources/text-scaling.js b/LayoutTests/fast/text/sub-pixel/resources/text-scaling.js
new file mode 100644
index 0000000000000000000000000000000000000000..3752e756c01e4f43dfbc3bf4dcc9955c663b6c9c
--- /dev/null
+++ b/LayoutTests/fast/text/sub-pixel/resources/text-scaling.js
@@ -0,0 +1,79 @@
+var TOLERANCE = 0.01;
+
+var FONT_SIZE_START = 10;
+var FONT_SIZE_BASELINE = 12;
+var FONT_SIZE_STEP = 0.25;
+var FONT_SIZE_END = 25;
+
+var PASS = 0;
+var FAIL = 1;
+
+function numberToNode(n)
+{
+ return document.createTextNode(n.toFixed(2));
+}
+
+function createElement(type, opt_textContent, opt_className)
+{
+ var el = document.createElement(type);
+ if (opt_className)
+ el.className = opt_className;
+ if (opt_textContent)
+ el.appendChild(document.createTextNode(opt_textContent));
+ return el;
+}
+
+function runTest(containerEl, pangram, opt_writingMode)
+{
+ var cont = document.getElementById('test');
+
+ var el = createElement('div', undefined, 'header');
+ el.appendChild(createElement('div', 'Font Size'));
+ el.appendChild(createElement('div', 'Width'));
+ el.appendChild(createElement('div', 'Normalized'));
+ el.appendChild(createElement('div', 'Diff'));
+ el.appendChild(createElement('span', 'Content'));
+ containerEl.appendChild(el);
+
+ var referenceElement;
+ for (var fontSize = FONT_SIZE_START;
+ fontSize < FONT_SIZE_END;
+ fontSize += FONT_SIZE_STEP) {
+ var el = createElement('div');
+ el.appendChild(createElement('div'));
+ el.appendChild(createElement('div'));
+ el.appendChild(createElement('div'));
+ el.appendChild(createElement('div', undefined, 'results'));
+ var textSpan = createElement('span');
+ el.appendChild(textSpan);
+ textSpan.appendChild(document.createTextNode(pangram));
+ textSpan.style.fontSize = fontSize;
+ containerEl.appendChild(el);
+ if (fontSize == FONT_SIZE_BASELINE)
+ referenceElement = el;
+ }
+
+ referenceElement.className = 'reference';
+ var rect = referenceElement.lastChild.getBoundingClientRect();
+ var expectedWidth = opt_writingMode == 'vertical' ? rect.height : rect.width;
+
+ var failures = 0;
+ for (var row, i = 0; row = containerEl.children[i + 1]; i++) {
+ var rect = row.lastChild.getBoundingClientRect();
+ var fontSize = FONT_SIZE_START + (FONT_SIZE_STEP * i);
+ var width = opt_writingMode == 'vertical' ? rect.height : rect.width;
+ var normalizedWidth = (width / fontSize) * FONT_SIZE_BASELINE;
+ row.children[0].appendChild(numberToNode(fontSize));
+ row.children[1].appendChild(numberToNode(width));
+ row.children[2].appendChild(numberToNode(normalizedWidth));
+ row.children[3].appendChild(numberToNode(normalizedWidth - expectedWidth));
+ if (Math.abs(expectedWidth - normalizedWidth) <= TOLERANCE) {
+ row.classList.add('size-pass');
+ } else {
+ row.classList.add('size-fail');
+ failures++
+ }
+ }
+
+ return failures ? FAIL : PASS;
+}
« 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