Update web-platform-tests to revision 9a28e2c8d072c358bd94b97bc8bff6db8388b6b1

This commit is contained in:
WPT Sync Bot 2020-07-28 08:22:07 +00:00
parent 0ce3ad5a4b
commit 1ad22043ab
248 changed files with 3973 additions and 1742 deletions

View file

@ -0,0 +1,4 @@
[hit-test-floats-002.html]
[Hit test float]
expected: FAIL

View file

@ -0,0 +1,4 @@
[hit-test-floats-005.html]
[Miss clipped float]
expected: FAIL

View file

@ -0,0 +1,2 @@
[font-feature-resolution-002.html]
expected: FAIL

View file

@ -0,0 +1,4 @@
[CaretPosition-001.html]
[Element at (400, 100)]
expected: FAIL

View file

@ -1,4 +0,0 @@
[elementFromPoint-001.html]
[CSSOM View - 5 - extensions to the Document interface]
expected: FAIL

View file

@ -17,3 +17,6 @@
[test some point of the element: top left corner]
expected: FAIL
[test the top of layer]
expected: FAIL

View file

@ -2,3 +2,6 @@
[elementsFromPoint on the root document for points in iframe elements]
expected: FAIL
[elementsFromPoint on inner documents]
expected: FAIL

View file

@ -0,0 +1,2 @@
[HTMLMediaElement.html]
expected: TIMEOUT

View file

@ -312,18 +312,24 @@
[Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK]
expected: NOTRUN
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
expected: FAIL

View file

@ -56,6 +56,6 @@
[separate text/javascript x/x]
expected: FAIL
[separate text/javascript;charset=windows-1252 error text/javascript]
[separate text/javascript error]
expected: FAIL

View file

@ -11,6 +11,3 @@
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
expected: FAIL
[X-Content-Type-Options%3A%20%22nosniFF%22]
expected: FAIL

View file

@ -0,0 +1,4 @@
[traverse_the_history_3.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -0,0 +1,4 @@
[traverse_the_history_4.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -0,0 +1,4 @@
[traverse_the_history_5.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -1,2 +0,0 @@
[cross-origin-objects-on-new-window.html]
expected: TIMEOUT

View file

@ -1,8 +1,7 @@
[embedded-opener-remove-frame.html]
expected: TIMEOUT
[opener of discarded nested browsing context]
expected: FAIL
[opener of discarded auxiliary browsing context]
expected: TIMEOUT
expected: FAIL

View file

@ -1,5 +1,5 @@
[iframe_sandbox_popups_escaping-1.html]
expected: CRASH
expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: TIMEOUT

View file

@ -1,5 +1,4 @@
[iframe_sandbox_popups_escaping-2.html]
expected: CRASH
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: FAIL

View file

@ -1,4 +1,5 @@
[iframe_sandbox_popups_escaping-3.html]
expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: FAIL
expected: TIMEOUT

View file

@ -1,5 +1,5 @@
[iframe_sandbox_popups_nonescaping-2.html]
expected: TIMEOUT
expected: CRASH
[Check that popups from a sandboxed iframe do not escape the sandbox]
expected: NOTRUN

View file

@ -1,5 +1,4 @@
[iframe_sandbox_popups_nonescaping-3.html]
expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox]
expected: NOTRUN
expected: FAIL

View file

@ -1,8 +1,13 @@
[htmlanchorelement_noopener.html]
expected: TIMEOUT
[Check that targeting of rel=noopener with a given name reuses an existing window with that name]
expected: FAIL
[Check that rel=noopener with target=_self does a normal load]
expected: NOTRUN
expected: FAIL
[Check that rel=noopener with target=_top does a normal load]
expected: FAIL
[Check that rel=noopener with target=_parent does a normal load]
expected: FAIL

View file

@ -0,0 +1,4 @@
[iframe_005.html]
[document.write external script into iframe write back into parent]
expected: FAIL

View file

@ -0,0 +1,4 @@
[module-static-import-delayed.html]
[document.write in an imported module]
expected: FAIL

View file

@ -3,6 +3,3 @@
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: TIMEOUT
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: FAIL

View file

@ -0,0 +1,5 @@
[017.html]
expected: TIMEOUT
[origin of the script that invoked the method, about:blank]
expected: TIMEOUT

View file

@ -0,0 +1,5 @@
[018.html]
expected: TIMEOUT
[origin of the script that invoked the method, javascript:]
expected: TIMEOUT

View file

@ -0,0 +1,5 @@
[017.html]
expected: TIMEOUT
[origin of the script that invoked the method, about:blank]
expected: TIMEOUT

View file

@ -4,17 +4,6 @@
[abort.any.sharedworker.html]
expected: ERROR
[abort.any.worker.html]
[abort after connect should do nothing]
expected: FAIL
[abort during handshake should work]
expected: FAIL
[abort before constructing should prevent connection]
expected: FAIL
[abort.any.html]
[abort after connect should do nothing]
expected: FAIL
@ -25,3 +14,14 @@
[abort before constructing should prevent connection]
expected: FAIL
[abort.any.worker.html]
[abort after connect should do nothing]
expected: FAIL
[abort during handshake should work]
expected: FAIL
[abort before constructing should prevent connection]
expected: FAIL

View file

@ -1,15 +1,15 @@
[backpressure-receive.any.html]
[backpressure should be applied to received messages]
expected: FAIL
[backpressure-receive.any.worker.html]
[backpressure should be applied to received messages]
expected: FAIL
[backpressure-receive.any.sharedworker.html]
expected: ERROR
[backpressure-receive.any.serviceworker.html]
expected: ERROR
[backpressure-receive.any.sharedworker.html]
expected: ERROR
[backpressure-receive.any.html]
[backpressure should be applied to received messages]
expected: FAIL

View file

@ -1,7 +1,4 @@
[backpressure-send.any.sharedworker.html]
expected: ERROR
[backpressure-send.any.html]
[backpressure-send.any.worker.html]
[backpressure should be applied to sent messages]
expected: FAIL
@ -9,7 +6,10 @@
[backpressure-send.any.serviceworker.html]
expected: ERROR
[backpressure-send.any.worker.html]
[backpressure-send.any.html]
[backpressure should be applied to sent messages]
expected: FAIL
[backpressure-send.any.sharedworker.html]
expected: ERROR

View file

@ -1,6 +1,3 @@
[close.any.sharedworker.html]
expected: ERROR
[close.any.worker.html]
[unspecified close code with non-empty reason should set code to 1000]
expected: FAIL
@ -87,7 +84,7 @@
expected: FAIL
[close.any.serviceworker.html]
[close.any.sharedworker.html]
expected: ERROR
[close.any.html]
@ -175,3 +172,6 @@
[unspecified close code should send empty Close frame]
expected: FAIL
[close.any.serviceworker.html]
expected: ERROR

View file

@ -1,5 +1,28 @@
[constructor.any.serviceworker.html]
expected: ERROR
[constructor.any.worker.html]
[constructing with a valid URL should work]
expected: FAIL
[setting a protocol in the constructor should work]
expected: FAIL
[wss.connection should resolve to the right types]
expected: FAIL
[constructing with no URL should throw]
expected: FAIL
[constructing with invalid options should throw]
expected: FAIL
[connection failure should reject the promises]
expected: FAIL
[protocols should be required to be a list]
expected: FAIL
[constructing with an invalid URL should throw]
expected: FAIL
[constructor.any.sharedworker.html]
expected: ERROR
@ -30,28 +53,5 @@
expected: FAIL
[constructor.any.worker.html]
[constructing with a valid URL should work]
expected: FAIL
[setting a protocol in the constructor should work]
expected: FAIL
[wss.connection should resolve to the right types]
expected: FAIL
[constructing with no URL should throw]
expected: FAIL
[constructing with invalid options should throw]
expected: FAIL
[connection failure should reject the promises]
expected: FAIL
[protocols should be required to be a list]
expected: FAIL
[constructing with an invalid URL should throw]
expected: FAIL
[constructor.any.serviceworker.html]
expected: ERROR

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,4 @@
[hit-test-floats-002.html]
[Hit test float]
expected: FAIL

View file

@ -0,0 +1,4 @@
[hit-test-floats-005.html]
[Miss clipped float]
expected: FAIL

View file

@ -0,0 +1,2 @@
[font-feature-resolution-002.html]
expected: FAIL

View file

@ -0,0 +1,4 @@
[CaretPosition-001.html]
[Element at (400, 100)]
expected: FAIL

View file

@ -1,4 +0,0 @@
[elementFromPoint-001.html]
[CSSOM View - 5 - extensions to the Document interface]
expected: FAIL

View file

@ -21,3 +21,6 @@
[test the top of layer]
expected: FAIL
[test some point of the element: top left corner]
expected: FAIL

View file

@ -2,3 +2,6 @@
[elementsFromPoint on the root document for points in iframe elements]
expected: FAIL
[elementsFromPoint on inner documents]
expected: FAIL

View file

@ -0,0 +1,2 @@
[HTMLMediaElement.html]
expected: TIMEOUT

View file

@ -0,0 +1,10 @@
[ElementInternals-states.html]
[DOMTokenList behavior of ElementInternals.states: Initial state]
expected: FAIL
[DOMTokenList behavior of ElementInternals.states: Exceptions]
expected: FAIL
[DOMTokenList behavior of ElementInternals.states: Modifications]
expected: FAIL

View file

@ -0,0 +1,16 @@
[state-pseudo-class.html]
[:state() and :host()]
expected: FAIL
[:state() and ::part()]
expected: FAIL
[:state() in simple cases]
expected: FAIL
[:state() and other pseudo classes]
expected: FAIL
[:state() serialization]
expected: FAIL

View file

@ -312,18 +312,24 @@
[fetch(): separate response Content-Type: text/plain ]
expected: NOTRUN
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
expected: FAIL

View file

@ -56,6 +56,6 @@
[separate text/javascript x/x]
expected: FAIL
[separate text/javascript;charset=windows-1252 error text/javascript]
[separate text/javascript error]
expected: FAIL

View file

@ -11,6 +11,3 @@
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
expected: FAIL
[X-Content-Type-Options%3A%20%22nosniFF%22]
expected: FAIL

View file

@ -0,0 +1,4 @@
[traverse_the_history_3.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -0,0 +1,4 @@
[traverse_the_history_4.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -0,0 +1,4 @@
[traverse_the_history_5.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -1,2 +0,0 @@
[cross-origin-objects-on-new-window.html]
expected: TIMEOUT

View file

@ -1,5 +1,4 @@
[embedded-opener-remove-frame.html]
expected: TIMEOUT
[opener and "removed" embedded documents]
expected: FAIL
@ -7,5 +6,5 @@
expected: FAIL
[opener of discarded auxiliary browsing context]
expected: TIMEOUT
expected: FAIL

View file

@ -1,6 +1,6 @@
[iframe_sandbox_popups_escaping-1.html]
type: testharness
expected: CRASH
expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: TIMEOUT

View file

@ -1,5 +1,4 @@
[iframe_sandbox_popups_escaping-2.html]
expected: CRASH
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: FAIL

View file

@ -1,5 +1,6 @@
[iframe_sandbox_popups_escaping-3.html]
type: testharness
expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: FAIL
expected: TIMEOUT

View file

@ -1,6 +1,6 @@
[iframe_sandbox_popups_nonescaping-2.html]
type: testharness
expected: TIMEOUT
expected: CRASH
[Check that popups from a sandboxed iframe do not escape the sandbox]
expected: NOTRUN

View file

@ -1,6 +1,5 @@
[iframe_sandbox_popups_nonescaping-3.html]
type: testharness
expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox]
expected: NOTRUN
expected: FAIL

View file

@ -1,6 +1,5 @@
[htmlanchorelement_noopener.html]
type: testharness
expected: TIMEOUT
[Check that targeting of rel=noopener with a given name ignores an existing window with that name]
expected: NOTRUN
@ -8,5 +7,11 @@
expected: FAIL
[Check that rel=noopener with target=_self does a normal load]
expected: NOTRUN
expected: FAIL
[Check that rel=noopener with target=_top does a normal load]
expected: FAIL
[Check that rel=noopener with target=_parent does a normal load]
expected: FAIL

View file

@ -0,0 +1,4 @@
[iframe_005.html]
[document.write external script into iframe write back into parent]
expected: FAIL

View file

@ -0,0 +1,4 @@
[module-static-import-delayed.html]
[document.write in an imported module]
expected: FAIL

View file

@ -4,6 +4,3 @@
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: TIMEOUT
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: FAIL

View file

@ -0,0 +1,5 @@
[017.html]
expected: TIMEOUT
[origin of the script that invoked the method, about:blank]
expected: TIMEOUT

View file

@ -0,0 +1,5 @@
[018.html]
expected: TIMEOUT
[origin of the script that invoked the method, javascript:]
expected: TIMEOUT

View file

@ -0,0 +1,5 @@
[017.html]
expected: TIMEOUT
[origin of the script that invoked the method, about:blank]
expected: TIMEOUT

View file

@ -0,0 +1,27 @@
[abort.any.serviceworker.html]
expected: ERROR
[abort.any.sharedworker.html]
expected: ERROR
[abort.any.html]
[abort after connect should do nothing]
expected: FAIL
[abort during handshake should work]
expected: FAIL
[abort before constructing should prevent connection]
expected: FAIL
[abort.any.worker.html]
[abort after connect should do nothing]
expected: FAIL
[abort during handshake should work]
expected: FAIL
[abort before constructing should prevent connection]
expected: FAIL

View file

@ -0,0 +1,15 @@
[backpressure-receive.any.worker.html]
[backpressure should be applied to received messages]
expected: FAIL
[backpressure-receive.any.sharedworker.html]
expected: ERROR
[backpressure-receive.any.serviceworker.html]
expected: ERROR
[backpressure-receive.any.html]
[backpressure should be applied to received messages]
expected: FAIL

View file

@ -0,0 +1,15 @@
[backpressure-send.any.worker.html]
[backpressure should be applied to sent messages]
expected: FAIL
[backpressure-send.any.serviceworker.html]
expected: ERROR
[backpressure-send.any.html]
[backpressure should be applied to sent messages]
expected: FAIL
[backpressure-send.any.sharedworker.html]
expected: ERROR

View file

@ -0,0 +1,177 @@
[close.any.worker.html]
[unspecified close code with non-empty reason should set code to 1000]
expected: FAIL
[canceling the readable with an invalid code should be ignored]
expected: FAIL
[close() with an overlong reason should throw]
expected: FAIL
[close() with invalid code 5000 should throw]
expected: FAIL
[aborting the writable with a DOMException should be ignored]
expected: FAIL
[close() with invalid code 999 should throw]
expected: FAIL
[canceling the readable with a DOMException should be ignored]
expected: FAIL
[close(true) should throw a TypeError]
expected: FAIL
[canceling the readable with a reason but no code should be ignored]
expected: FAIL
[closing the writable should result in a clean close]
expected: FAIL
[close during handshake should work]
expected: FAIL
[canceling the readable should result in a clean close]
expected: FAIL
[aborting the writable with an invalid code should be ignored]
expected: FAIL
[aborting the writable with a code and reason should use them]
expected: FAIL
[canceling the readable with a code and reason should use them]
expected: FAIL
[canceling the readable with a code should send that code]
expected: FAIL
[close() with invalid code 2999 should throw]
expected: FAIL
[aborting the writable with a reason but no code should be ignored]
expected: FAIL
[aborting the writable with an invalid reason should be ignored]
expected: FAIL
[writer close() promise should not resolve until handshake completes]
expected: FAIL
[aborting the writable with a code should send that code]
expected: FAIL
[canceling the readable with an invalid reason should be ignored]
expected: FAIL
[close() with invalid code 1001 should throw]
expected: FAIL
[close code should be sent to server and reflected back]
expected: FAIL
[no close argument should send empty Close frame]
expected: FAIL
[unspecified close code with empty reason should send empty Close frame]
expected: FAIL
[aborting the writable should result in a clean close]
expected: FAIL
[unspecified close code should send empty Close frame]
expected: FAIL
[close.any.sharedworker.html]
expected: ERROR
[close.any.html]
[unspecified close code with non-empty reason should set code to 1000]
expected: FAIL
[canceling the readable with an invalid code should be ignored]
expected: FAIL
[close() with an overlong reason should throw]
expected: FAIL
[close() with invalid code 5000 should throw]
expected: FAIL
[aborting the writable with a DOMException should be ignored]
expected: FAIL
[close() with invalid code 999 should throw]
expected: FAIL
[canceling the readable with a DOMException should be ignored]
expected: FAIL
[close(true) should throw a TypeError]
expected: FAIL
[canceling the readable with a reason but no code should be ignored]
expected: FAIL
[closing the writable should result in a clean close]
expected: FAIL
[close during handshake should work]
expected: FAIL
[canceling the readable should result in a clean close]
expected: FAIL
[aborting the writable with an invalid code should be ignored]
expected: FAIL
[aborting the writable with a code and reason should use them]
expected: FAIL
[canceling the readable with a code and reason should use them]
expected: FAIL
[canceling the readable with a code should send that code]
expected: FAIL
[close() with invalid code 2999 should throw]
expected: FAIL
[aborting the writable with a reason but no code should be ignored]
expected: FAIL
[aborting the writable with an invalid reason should be ignored]
expected: FAIL
[writer close() promise should not resolve until handshake completes]
expected: FAIL
[aborting the writable with a code should send that code]
expected: FAIL
[canceling the readable with an invalid reason should be ignored]
expected: FAIL
[close() with invalid code 1001 should throw]
expected: FAIL
[close code should be sent to server and reflected back]
expected: FAIL
[no close argument should send empty Close frame]
expected: FAIL
[unspecified close code with empty reason should send empty Close frame]
expected: FAIL
[aborting the writable should result in a clean close]
expected: FAIL
[unspecified close code should send empty Close frame]
expected: FAIL
[close.any.serviceworker.html]
expected: ERROR

View file

@ -0,0 +1,57 @@
[constructor.any.worker.html]
[constructing with a valid URL should work]
expected: FAIL
[setting a protocol in the constructor should work]
expected: FAIL
[wss.connection should resolve to the right types]
expected: FAIL
[constructing with no URL should throw]
expected: FAIL
[constructing with invalid options should throw]
expected: FAIL
[connection failure should reject the promises]
expected: FAIL
[protocols should be required to be a list]
expected: FAIL
[constructing with an invalid URL should throw]
expected: FAIL
[constructor.any.sharedworker.html]
expected: ERROR
[constructor.any.html]
[constructing with a valid URL should work]
expected: FAIL
[setting a protocol in the constructor should work]
expected: FAIL
[wss.connection should resolve to the right types]
expected: FAIL
[constructing with no URL should throw]
expected: FAIL
[constructing with invalid options should throw]
expected: FAIL
[connection failure should reject the promises]
expected: FAIL
[protocols should be required to be a list]
expected: FAIL
[constructing with an invalid URL should throw]
expected: FAIL
[constructor.any.serviceworker.html]
expected: ERROR

View file

@ -14,15 +14,25 @@ cookie_test(async t => {
eventPromise, {changed: [{name: '', value: 'first-value'}]},
'Observed no-name change');
eventPromise = observeNextCookieChangeEvent();
await cookieStore.set('', '');
const actual2 =
(await cookieStore.getAll('')).map(({ value }) => value).join(';');
const expected2 = '';
assert_equals(actual2, expected2);
await verifyCookieChangeEvent(
eventPromise, {changed: [{name: '', value: ''}]},
'Observed no-name change');
await promise_rejects_js(
t,
TypeError,
cookieStore.set('', ''),
'Expected promise rejection when setting a cookie with' +
' no name and no value');
await promise_rejects_js(
t,
TypeError,
cookieStore.set({name: '', value: ''}),
'Expected promise rejection when setting a cookie with' +
' no name and no value');
const cookies = await cookieStore.getAll('');
assert_equals(cookies.length, 1);
assert_equals(cookies[0].name, '');
assert_equals(cookies[0].value, 'first-value',
'Cookie with no name should still have previous value.');
eventPromise = observeNextCookieChangeEvent();
await cookieStore.delete('');

View file

@ -147,3 +147,25 @@ promise_test(async testCase => {
const cookie = await cookieStore.get('cookie-name');
assert_equals(cookie, null);
}, 'cookieStore.delete with get result');
promise_test(async testCase => {
await cookieStore.set('', 'cookie-value');
testCase.add_cleanup(async () => {
await cookieStore.delete('');
});
await cookieStore.delete('');
const cookie = await cookieStore.get('');
assert_equals(cookie, null);
}, 'cookieStore.delete with positional empty name');
promise_test(async testCase => {
await cookieStore.set('', 'cookie-value');
testCase.add_cleanup(async () => {
await cookieStore.delete('');
});
await cookieStore.delete({ name: '' });
const cookie = await cookieStore.get('');
assert_equals(cookie, null);
}, 'cookieStore.delete with empty name in options');

View file

@ -8,7 +8,7 @@
<style>
@font-face {
font-family: lato-ffs-;
src: url(support/fonts/Lato-Medium.ttf);
src: url(support/fonts/Lato-Medium-Liga.ttf);
}
.test, .ref {
font-family: lato-ffs-;

View file

@ -10,16 +10,16 @@
<style>
@font-face {
font-family: lato-ffs-;
src: url(support/fonts/Lato-Medium.ttf);
src: url(support/fonts/Lato-Medium-Liga.ttf);
}
@font-face {
font-family: lato-ffs-0;
src: url(support/fonts/Lato-Medium.ttf);
src: url(support/fonts/Lato-Medium-Liga.ttf);
font-feature-settings: 'liga' off;
}
@font-face {
font-family: lato-ffs-1;
src: url(support/fonts/Lato-Medium.ttf);
src: url(support/fonts/Lato-Medium-Liga.ttf);
font-feature-settings: 'liga' on;
}
.test, .ref {

View file

@ -0,0 +1,356 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CSS Test: feature property settings are resolved in the correct order for 'dlig'.</title>
<link rel="author" title="Ben Wagner" href="bungeman@chromium.org" />
<link rel="help" href="https://www.w3.org/TR/css-fonts-3/#feature-precedence" />
<style>
@font-face {
font-family: lato-ffs-;
src: url(support/fonts/Lato-Medium-Liga.ttf);
}
.test, .ref {
font-family: lato-ffs-;
font-size: 2em;
position: absolute;
}
.test { color: green; }
.ref { color: red; }
.align { width: 1em; }
.ls-0 { letter-spacing: 0em; }
.ls-1 { letter-spacing: 0.1em; }
</style>
</head>
<body>
<p>Test passes if there is no red visible.</p>
<table class="ref"><tr>
<td class="align ff- fvl- ls- ffs- ">s&zwnj;t</td>
<td class="align ff- fvl- ls- ffs-n">s&zwnj;t</td>
<td class="align ff- fvl- ls- ffs-0">s&zwnj;t</td>
<td class="align ff- fvl- ls- ffs-1">&#xfb06;</td>
<td class="align ff- fvl- ls-0 ffs- ">s&zwnj;t</td>
<td class="align ff- fvl- ls-0 ffs-n">s&zwnj;t</td>
<td class="align ff- fvl- ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff- fvl- ls-0 ffs-1">&#xfb06;</td>
<td class="align ff- fvl- ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff- fvl- ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff- fvl- ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff- fvl- ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff- fvl-n ls- ffs- ">s&zwnj;t</td>
<td class="align ff- fvl-n ls- ffs-n">s&zwnj;t</td>
<td class="align ff- fvl-n ls- ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-n ls- ffs-1">&#xfb06;</td>
<td class="align ff- fvl-n ls-0 ffs- ">s&zwnj;t</td>
<td class="align ff- fvl-n ls-0 ffs-n">s&zwnj;t</td>
<td class="align ff- fvl-n ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-n ls-0 ffs-1">&#xfb06;</td>
<td class="align ff- fvl-n ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff- fvl-n ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff- fvl-n ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-n ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff- fvl-0 ls- ffs- ">s&zwnj;t</td>
<td class="align ff- fvl-0 ls- ffs-n">s&zwnj;t</td>
<td class="align ff- fvl-0 ls- ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-0 ls- ffs-1">&#xfb06;</td>
<td class="align ff- fvl-0 ls-0 ffs- ">s&zwnj;t</td>
<td class="align ff- fvl-0 ls-0 ffs-n">s&zwnj;t</td>
<td class="align ff- fvl-0 ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-0 ls-0 ffs-1">&#xfb06;</td>
<td class="align ff- fvl-0 ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff- fvl-0 ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff- fvl-0 ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-0 ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff- fvl-1 ls- ffs- ">&#xfb06;</td>
<td class="align ff- fvl-1 ls- ffs-n">&#xfb06;</td>
<td class="align ff- fvl-1 ls- ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-1 ls- ffs-1">&#xfb06;</td>
<td class="align ff- fvl-1 ls-0 ffs- ">&#xfb06;</td>
<td class="align ff- fvl-1 ls-0 ffs-n">&#xfb06;</td>
<td class="align ff- fvl-1 ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-1 ls-0 ffs-1">&#xfb06;</td>
<td class="align ff- fvl-1 ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff- fvl-1 ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff- fvl-1 ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-1 ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff-0 fvl- ls- ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl- ls- ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl- ls- ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl- ls- ffs-1">&#xfb06;</td>
<td class="align ff-0 fvl- ls-0 ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl- ls-0 ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl- ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl- ls-0 ffs-1">&#xfb06;</td>
<td class="align ff-0 fvl- ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl- ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl- ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl- ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff-0 fvl-n ls- ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls- ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls- ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls- ffs-1">&#xfb06;</td>
<td class="align ff-0 fvl-n ls-0 ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls-0 ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls-0 ffs-1">&#xfb06;</td>
<td class="align ff-0 fvl-n ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff-0 fvl-0 ls- ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls- ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls- ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls- ffs-1">&#xfb06;</td>
<td class="align ff-0 fvl-0 ls-0 ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls-0 ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls-0 ffs-1">&#xfb06;</td>
<td class="align ff-0 fvl-0 ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff-0 fvl-1 ls- ffs- ">&#xfb06;</td>
<td class="align ff-0 fvl-1 ls- ffs-n">&#xfb06;</td>
<td class="align ff-0 fvl-1 ls- ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-1 ls- ffs-1">&#xfb06;</td>
<td class="align ff-0 fvl-1 ls-0 ffs- ">&#xfb06;</td>
<td class="align ff-0 fvl-1 ls-0 ffs-n">&#xfb06;</td>
<td class="align ff-0 fvl-1 ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-1 ls-0 ffs-1">&#xfb06;</td>
<td class="align ff-0 fvl-1 ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl-1 ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl-1 ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-1 ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff-1 fvl- ls- ffs- ">&#xfb06;</td>
<td class="align ff-1 fvl- ls- ffs-n">&#xfb06;</td>
<td class="align ff-1 fvl- ls- ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl- ls- ffs-1">&#xfb06;</td>
<td class="align ff-1 fvl- ls-0 ffs- ">&#xfb06;</td>
<td class="align ff-1 fvl- ls-0 ffs-n">&#xfb06;</td>
<td class="align ff-1 fvl- ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl- ls-0 ffs-1">&#xfb06;</td>
<td class="align ff-1 fvl- ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff-1 fvl- ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff-1 fvl- ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl- ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff-1 fvl-n ls- ffs- ">&#xfb06;</td>
<td class="align ff-1 fvl-n ls- ffs-n">&#xfb06;</td>
<td class="align ff-1 fvl-n ls- ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-n ls- ffs-1">&#xfb06;</td>
<td class="align ff-1 fvl-n ls-0 ffs- ">&#xfb06;</td>
<td class="align ff-1 fvl-n ls-0 ffs-n">&#xfb06;</td>
<td class="align ff-1 fvl-n ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-n ls-0 ffs-1">&#xfb06;</td>
<td class="align ff-1 fvl-n ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff-1 fvl-n ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff-1 fvl-n ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-n ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff-1 fvl-0 ls- ffs- ">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls- ffs-n">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls- ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls- ffs-1">&#xfb06;</td>
<td class="align ff-1 fvl-0 ls-0 ffs- ">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls-0 ffs-n">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls-0 ffs-1">&#xfb06;</td>
<td class="align ff-1 fvl-0 ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff-1 fvl-1 ls- ffs- ">&#xfb06;</td>
<td class="align ff-1 fvl-1 ls- ffs-n">&#xfb06;</td>
<td class="align ff-1 fvl-1 ls- ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-1 ls- ffs-1">&#xfb06;</td>
<td class="align ff-1 fvl-1 ls-0 ffs- ">&#xfb06;</td>
<td class="align ff-1 fvl-1 ls-0 ffs-n">&#xfb06;</td>
<td class="align ff-1 fvl-1 ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-1 ls-0 ffs-1">&#xfb06;</td>
<td class="align ff-1 fvl-1 ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff-1 fvl-1 ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff-1 fvl-1 ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-1 ls-1 ffs-1">&#xfb06;</td>
</tr></table>
<table class="test"><tr>
<td class="align ff- fvl- ls- ffs- ">s&zwnj;t</td>
<td class="align ff- fvl- ls- ffs-n">s&zwnj;t</td>
<td class="align ff- fvl- ls- ffs-0">s&zwnj;t</td>
<td class="align ff- fvl- ls- ffs-1">&#xfb06;</td>
<td class="align ff- fvl- ls-0 ffs- ">s&zwnj;t</td>
<td class="align ff- fvl- ls-0 ffs-n">s&zwnj;t</td>
<td class="align ff- fvl- ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff- fvl- ls-0 ffs-1">&#xfb06;</td>
<td class="align ff- fvl- ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff- fvl- ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff- fvl- ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff- fvl- ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff- fvl-n ls- ffs- ">s&zwnj;t</td>
<td class="align ff- fvl-n ls- ffs-n">s&zwnj;t</td>
<td class="align ff- fvl-n ls- ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-n ls- ffs-1">&#xfb06;</td>
<td class="align ff- fvl-n ls-0 ffs- ">s&zwnj;t</td>
<td class="align ff- fvl-n ls-0 ffs-n">s&zwnj;t</td>
<td class="align ff- fvl-n ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-n ls-0 ffs-1">&#xfb06;</td>
<td class="align ff- fvl-n ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff- fvl-n ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff- fvl-n ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-n ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff- fvl-0 ls- ffs- ">s&zwnj;t</td>
<td class="align ff- fvl-0 ls- ffs-n">s&zwnj;t</td>
<td class="align ff- fvl-0 ls- ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-0 ls- ffs-1">&#xfb06;</td>
<td class="align ff- fvl-0 ls-0 ffs- ">s&zwnj;t</td>
<td class="align ff- fvl-0 ls-0 ffs-n">s&zwnj;t</td>
<td class="align ff- fvl-0 ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-0 ls-0 ffs-1">&#xfb06;</td>
<td class="align ff- fvl-0 ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff- fvl-0 ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff- fvl-0 ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-0 ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff- fvl-1 ls- ffs- ">&#xfb06;</td>
<td class="align ff- fvl-1 ls- ffs-n">&#xfb06;</td>
<td class="align ff- fvl-1 ls- ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-1 ls- ffs-1">&#xfb06;</td>
<td class="align ff- fvl-1 ls-0 ffs- ">&#xfb06;</td>
<td class="align ff- fvl-1 ls-0 ffs-n">&#xfb06;</td>
<td class="align ff- fvl-1 ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-1 ls-0 ffs-1">&#xfb06;</td>
<td class="align ff- fvl-1 ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff- fvl-1 ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff- fvl-1 ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-1 ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff-0 fvl- ls- ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl- ls- ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl- ls- ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl- ls- ffs-1">&#xfb06;</td>
<td class="align ff-0 fvl- ls-0 ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl- ls-0 ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl- ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl- ls-0 ffs-1">&#xfb06;</td>
<td class="align ff-0 fvl- ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl- ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl- ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl- ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff-0 fvl-n ls- ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls- ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls- ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls- ffs-1">&#xfb06;</td>
<td class="align ff-0 fvl-n ls-0 ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls-0 ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls-0 ffs-1">&#xfb06;</td>
<td class="align ff-0 fvl-n ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff-0 fvl-0 ls- ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls- ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls- ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls- ffs-1">&#xfb06;</td>
<td class="align ff-0 fvl-0 ls-0 ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls-0 ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls-0 ffs-1">&#xfb06;</td>
<td class="align ff-0 fvl-0 ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff-0 fvl-1 ls- ffs- ">&#xfb06;</td>
<td class="align ff-0 fvl-1 ls- ffs-n">&#xfb06;</td>
<td class="align ff-0 fvl-1 ls- ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-1 ls- ffs-1">&#xfb06;</td>
<td class="align ff-0 fvl-1 ls-0 ffs- ">&#xfb06;</td>
<td class="align ff-0 fvl-1 ls-0 ffs-n">&#xfb06;</td>
<td class="align ff-0 fvl-1 ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-1 ls-0 ffs-1">&#xfb06;</td>
<td class="align ff-0 fvl-1 ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl-1 ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl-1 ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-1 ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff-1 fvl- ls- ffs- ">&#xfb06;</td>
<td class="align ff-1 fvl- ls- ffs-n">&#xfb06;</td>
<td class="align ff-1 fvl- ls- ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl- ls- ffs-1">&#xfb06;</td>
<td class="align ff-1 fvl- ls-0 ffs- ">&#xfb06;</td>
<td class="align ff-1 fvl- ls-0 ffs-n">&#xfb06;</td>
<td class="align ff-1 fvl- ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl- ls-0 ffs-1">&#xfb06;</td>
<td class="align ff-1 fvl- ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff-1 fvl- ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff-1 fvl- ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl- ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff-1 fvl-n ls- ffs- ">&#xfb06;</td>
<td class="align ff-1 fvl-n ls- ffs-n">&#xfb06;</td>
<td class="align ff-1 fvl-n ls- ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-n ls- ffs-1">&#xfb06;</td>
<td class="align ff-1 fvl-n ls-0 ffs- ">&#xfb06;</td>
<td class="align ff-1 fvl-n ls-0 ffs-n">&#xfb06;</td>
<td class="align ff-1 fvl-n ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-n ls-0 ffs-1">&#xfb06;</td>
<td class="align ff-1 fvl-n ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff-1 fvl-n ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff-1 fvl-n ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-n ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff-1 fvl-0 ls- ffs- ">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls- ffs-n">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls- ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls- ffs-1">&#xfb06;</td>
<td class="align ff-1 fvl-0 ls-0 ffs- ">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls-0 ffs-n">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls-0 ffs-1">&#xfb06;</td>
<td class="align ff-1 fvl-0 ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff-1 fvl-1 ls- ffs- ">&#xfb06;</td>
<td class="align ff-1 fvl-1 ls- ffs-n">&#xfb06;</td>
<td class="align ff-1 fvl-1 ls- ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-1 ls- ffs-1">&#xfb06;</td>
<td class="align ff-1 fvl-1 ls-0 ffs- ">&#xfb06;</td>
<td class="align ff-1 fvl-1 ls-0 ffs-n">&#xfb06;</td>
<td class="align ff-1 fvl-1 ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-1 ls-0 ffs-1">&#xfb06;</td>
<td class="align ff-1 fvl-1 ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff-1 fvl-1 ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff-1 fvl-1 ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-1 ls-1 ffs-1">&#xfb06;</td>
</tr></table>
</body>
</html>

View file

@ -0,0 +1,383 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CSS Test: feature property settings are resolved in the correct order for 'dlig'.</title>
<link rel="author" title="Ben Wagner" href="bungeman@chromium.org" />
<link rel="help" href="https://www.w3.org/TR/css-fonts-3/#feature-precedence" />
<link rel="match" href="font-feature-resolution-002-ref.html" />
<meta name="assert" content="default < @font-face < font-variant < letter-spacing < font-feature-settings" />
<style>
@font-face {
font-family: lato-ffs-;
src: url(support/fonts/Lato-Medium-Liga.ttf);
}
@font-face {
font-family: lato-ffs-0;
src: url(support/fonts/Lato-Medium-Liga.ttf);
font-feature-settings: 'dlig' off;
}
@font-face {
font-family: lato-ffs-1;
src: url(support/fonts/Lato-Medium-Liga.ttf);
font-feature-settings: 'dlig' on;
}
.test, .ref {
font-family: lato-ffs-;
font-size: 2em;
position: absolute;
}
.test { color: green; }
.ref { color: red; }
.align { width: 1em; }
.ff- { font-family: lato-ffs- ; }
.ff-0 { font-family: lato-ffs-0; }
.ff-1 { font-family: lato-ffs-1; }
.fvl- { }
.fvl-n { font-variant-ligatures: normal; }
.fvl-0 { font-variant-ligatures: no-discretionary-ligatures; }
.fvl-1 { font-variant-ligatures: discretionary-ligatures; }
.ls- { }
.ls-0 { letter-spacing: 0em; }
.ls-1 { letter-spacing: 0.1em; }
.ffs- { }
.ffs-n { font-feature-settings: normal; }
.ffs-0 { font-feature-settings: 'dlig' off; }
.ffs-1 { font-feature-settings: 'dlig' on; }
</style>
</head>
<body>
<p>Test passes if there is no red visible.</p>
<table class="ref"><tr>
<td class="align ff- fvl- ls- ffs- ">s&zwnj;t</td>
<td class="align ff- fvl- ls- ffs-n">s&zwnj;t</td>
<td class="align ff- fvl- ls- ffs-0">s&zwnj;t</td>
<td class="align ff- fvl- ls- ffs-1">&#xfb06;</td>
<td class="align ff- fvl- ls-0 ffs- ">s&zwnj;t</td>
<td class="align ff- fvl- ls-0 ffs-n">s&zwnj;t</td>
<td class="align ff- fvl- ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff- fvl- ls-0 ffs-1">&#xfb06;</td>
<td class="align ff- fvl- ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff- fvl- ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff- fvl- ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff- fvl- ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff- fvl-n ls- ffs- ">s&zwnj;t</td>
<td class="align ff- fvl-n ls- ffs-n">s&zwnj;t</td>
<td class="align ff- fvl-n ls- ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-n ls- ffs-1">&#xfb06;</td>
<td class="align ff- fvl-n ls-0 ffs- ">s&zwnj;t</td>
<td class="align ff- fvl-n ls-0 ffs-n">s&zwnj;t</td>
<td class="align ff- fvl-n ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-n ls-0 ffs-1">&#xfb06;</td>
<td class="align ff- fvl-n ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff- fvl-n ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff- fvl-n ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-n ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff- fvl-0 ls- ffs- ">s&zwnj;t</td>
<td class="align ff- fvl-0 ls- ffs-n">s&zwnj;t</td>
<td class="align ff- fvl-0 ls- ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-0 ls- ffs-1">&#xfb06;</td>
<td class="align ff- fvl-0 ls-0 ffs- ">s&zwnj;t</td>
<td class="align ff- fvl-0 ls-0 ffs-n">s&zwnj;t</td>
<td class="align ff- fvl-0 ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-0 ls-0 ffs-1">&#xfb06;</td>
<td class="align ff- fvl-0 ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff- fvl-0 ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff- fvl-0 ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-0 ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff- fvl-1 ls- ffs- ">&#xfb06;</td>
<td class="align ff- fvl-1 ls- ffs-n">&#xfb06;</td>
<td class="align ff- fvl-1 ls- ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-1 ls- ffs-1">&#xfb06;</td>
<td class="align ff- fvl-1 ls-0 ffs- ">&#xfb06;</td>
<td class="align ff- fvl-1 ls-0 ffs-n">&#xfb06;</td>
<td class="align ff- fvl-1 ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-1 ls-0 ffs-1">&#xfb06;</td>
<td class="align ff- fvl-1 ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff- fvl-1 ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff- fvl-1 ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff- fvl-1 ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff-0 fvl- ls- ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl- ls- ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl- ls- ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl- ls- ffs-1">&#xfb06;</td>
<td class="align ff-0 fvl- ls-0 ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl- ls-0 ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl- ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl- ls-0 ffs-1">&#xfb06;</td>
<td class="align ff-0 fvl- ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl- ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl- ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl- ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff-0 fvl-n ls- ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls- ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls- ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls- ffs-1">&#xfb06;</td>
<td class="align ff-0 fvl-n ls-0 ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls-0 ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls-0 ffs-1">&#xfb06;</td>
<td class="align ff-0 fvl-n ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-n ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff-0 fvl-0 ls- ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls- ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls- ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls- ffs-1">&#xfb06;</td>
<td class="align ff-0 fvl-0 ls-0 ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls-0 ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls-0 ffs-1">&#xfb06;</td>
<td class="align ff-0 fvl-0 ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-0 ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff-0 fvl-1 ls- ffs- ">&#xfb06;</td>
<td class="align ff-0 fvl-1 ls- ffs-n">&#xfb06;</td>
<td class="align ff-0 fvl-1 ls- ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-1 ls- ffs-1">&#xfb06;</td>
<td class="align ff-0 fvl-1 ls-0 ffs- ">&#xfb06;</td>
<td class="align ff-0 fvl-1 ls-0 ffs-n">&#xfb06;</td>
<td class="align ff-0 fvl-1 ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-1 ls-0 ffs-1">&#xfb06;</td>
<td class="align ff-0 fvl-1 ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff-0 fvl-1 ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff-0 fvl-1 ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff-0 fvl-1 ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff-1 fvl- ls- ffs- ">&#xfb06;</td>
<td class="align ff-1 fvl- ls- ffs-n">&#xfb06;</td>
<td class="align ff-1 fvl- ls- ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl- ls- ffs-1">&#xfb06;</td>
<td class="align ff-1 fvl- ls-0 ffs- ">&#xfb06;</td>
<td class="align ff-1 fvl- ls-0 ffs-n">&#xfb06;</td>
<td class="align ff-1 fvl- ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl- ls-0 ffs-1">&#xfb06;</td>
<td class="align ff-1 fvl- ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff-1 fvl- ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff-1 fvl- ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl- ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff-1 fvl-n ls- ffs- ">&#xfb06;</td>
<td class="align ff-1 fvl-n ls- ffs-n">&#xfb06;</td>
<td class="align ff-1 fvl-n ls- ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-n ls- ffs-1">&#xfb06;</td>
<td class="align ff-1 fvl-n ls-0 ffs- ">&#xfb06;</td>
<td class="align ff-1 fvl-n ls-0 ffs-n">&#xfb06;</td>
<td class="align ff-1 fvl-n ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-n ls-0 ffs-1">&#xfb06;</td>
<td class="align ff-1 fvl-n ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff-1 fvl-n ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff-1 fvl-n ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-n ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff-1 fvl-0 ls- ffs- ">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls- ffs-n">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls- ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls- ffs-1">&#xfb06;</td>
<td class="align ff-1 fvl-0 ls-0 ffs- ">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls-0 ffs-n">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls-0 ffs-1">&#xfb06;</td>
<td class="align ff-1 fvl-0 ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-0 ls-1 ffs-1">&#xfb06;</td>
</tr><tr>
<td class="align ff-1 fvl-1 ls- ffs- ">&#xfb06;</td>
<td class="align ff-1 fvl-1 ls- ffs-n">&#xfb06;</td>
<td class="align ff-1 fvl-1 ls- ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-1 ls- ffs-1">&#xfb06;</td>
<td class="align ff-1 fvl-1 ls-0 ffs- ">&#xfb06;</td>
<td class="align ff-1 fvl-1 ls-0 ffs-n">&#xfb06;</td>
<td class="align ff-1 fvl-1 ls-0 ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-1 ls-0 ffs-1">&#xfb06;</td>
<td class="align ff-1 fvl-1 ls-1 ffs- ">s&zwnj;t</td>
<td class="align ff-1 fvl-1 ls-1 ffs-n">s&zwnj;t</td>
<td class="align ff-1 fvl-1 ls-1 ffs-0">s&zwnj;t</td>
<td class="align ff-1 fvl-1 ls-1 ffs-1">&#xfb06;</td>
</tr></table>
<table class="test"><tr>
<td class="align ff- fvl- ls- ffs- ">st</td>
<td class="align ff- fvl- ls- ffs-n">st</td>
<td class="align ff- fvl- ls- ffs-0">st</td>
<td class="align ff- fvl- ls- ffs-1">st</td>
<td class="align ff- fvl- ls-0 ffs- ">st</td>
<td class="align ff- fvl- ls-0 ffs-n">st</td>
<td class="align ff- fvl- ls-0 ffs-0">st</td>
<td class="align ff- fvl- ls-0 ffs-1">st</td>
<td class="align ff- fvl- ls-1 ffs- ">st</td>
<td class="align ff- fvl- ls-1 ffs-n">st</td>
<td class="align ff- fvl- ls-1 ffs-0">st</td>
<td class="align ff- fvl- ls-1 ffs-1">st</td>
</tr><tr>
<td class="align ff- fvl-n ls- ffs- ">st</td>
<td class="align ff- fvl-n ls- ffs-n">st</td>
<td class="align ff- fvl-n ls- ffs-0">st</td>
<td class="align ff- fvl-n ls- ffs-1">st</td>
<td class="align ff- fvl-n ls-0 ffs- ">st</td>
<td class="align ff- fvl-n ls-0 ffs-n">st</td>
<td class="align ff- fvl-n ls-0 ffs-0">st</td>
<td class="align ff- fvl-n ls-0 ffs-1">st</td>
<td class="align ff- fvl-n ls-1 ffs- ">st</td>
<td class="align ff- fvl-n ls-1 ffs-n">st</td>
<td class="align ff- fvl-n ls-1 ffs-0">st</td>
<td class="align ff- fvl-n ls-1 ffs-1">st</td>
</tr><tr>
<td class="align ff- fvl-0 ls- ffs- ">st</td>
<td class="align ff- fvl-0 ls- ffs-n">st</td>
<td class="align ff- fvl-0 ls- ffs-0">st</td>
<td class="align ff- fvl-0 ls- ffs-1">st</td>
<td class="align ff- fvl-0 ls-0 ffs- ">st</td>
<td class="align ff- fvl-0 ls-0 ffs-n">st</td>
<td class="align ff- fvl-0 ls-0 ffs-0">st</td>
<td class="align ff- fvl-0 ls-0 ffs-1">st</td>
<td class="align ff- fvl-0 ls-1 ffs- ">st</td>
<td class="align ff- fvl-0 ls-1 ffs-n">st</td>
<td class="align ff- fvl-0 ls-1 ffs-0">st</td>
<td class="align ff- fvl-0 ls-1 ffs-1">st</td>
</tr><tr>
<td class="align ff- fvl-1 ls- ffs- ">st</td>
<td class="align ff- fvl-1 ls- ffs-n">st</td>
<td class="align ff- fvl-1 ls- ffs-0">st</td>
<td class="align ff- fvl-1 ls- ffs-1">st</td>
<td class="align ff- fvl-1 ls-0 ffs- ">st</td>
<td class="align ff- fvl-1 ls-0 ffs-n">st</td>
<td class="align ff- fvl-1 ls-0 ffs-0">st</td>
<td class="align ff- fvl-1 ls-0 ffs-1">st</td>
<td class="align ff- fvl-1 ls-1 ffs- ">st</td>
<td class="align ff- fvl-1 ls-1 ffs-n">st</td>
<td class="align ff- fvl-1 ls-1 ffs-0">st</td>
<td class="align ff- fvl-1 ls-1 ffs-1">st</td>
</tr><tr>
<td class="align ff-0 fvl- ls- ffs- ">st</td>
<td class="align ff-0 fvl- ls- ffs-n">st</td>
<td class="align ff-0 fvl- ls- ffs-0">st</td>
<td class="align ff-0 fvl- ls- ffs-1">st</td>
<td class="align ff-0 fvl- ls-0 ffs- ">st</td>
<td class="align ff-0 fvl- ls-0 ffs-n">st</td>
<td class="align ff-0 fvl- ls-0 ffs-0">st</td>
<td class="align ff-0 fvl- ls-0 ffs-1">st</td>
<td class="align ff-0 fvl- ls-1 ffs- ">st</td>
<td class="align ff-0 fvl- ls-1 ffs-n">st</td>
<td class="align ff-0 fvl- ls-1 ffs-0">st</td>
<td class="align ff-0 fvl- ls-1 ffs-1">st</td>
</tr><tr>
<td class="align ff-0 fvl-n ls- ffs- ">st</td>
<td class="align ff-0 fvl-n ls- ffs-n">st</td>
<td class="align ff-0 fvl-n ls- ffs-0">st</td>
<td class="align ff-0 fvl-n ls- ffs-1">st</td>
<td class="align ff-0 fvl-n ls-0 ffs- ">st</td>
<td class="align ff-0 fvl-n ls-0 ffs-n">st</td>
<td class="align ff-0 fvl-n ls-0 ffs-0">st</td>
<td class="align ff-0 fvl-n ls-0 ffs-1">st</td>
<td class="align ff-0 fvl-n ls-1 ffs- ">st</td>
<td class="align ff-0 fvl-n ls-1 ffs-n">st</td>
<td class="align ff-0 fvl-n ls-1 ffs-0">st</td>
<td class="align ff-0 fvl-n ls-1 ffs-1">st</td>
</tr><tr>
<td class="align ff-0 fvl-0 ls- ffs- ">st</td>
<td class="align ff-0 fvl-0 ls- ffs-n">st</td>
<td class="align ff-0 fvl-0 ls- ffs-0">st</td>
<td class="align ff-0 fvl-0 ls- ffs-1">st</td>
<td class="align ff-0 fvl-0 ls-0 ffs- ">st</td>
<td class="align ff-0 fvl-0 ls-0 ffs-n">st</td>
<td class="align ff-0 fvl-0 ls-0 ffs-0">st</td>
<td class="align ff-0 fvl-0 ls-0 ffs-1">st</td>
<td class="align ff-0 fvl-0 ls-1 ffs- ">st</td>
<td class="align ff-0 fvl-0 ls-1 ffs-n">st</td>
<td class="align ff-0 fvl-0 ls-1 ffs-0">st</td>
<td class="align ff-0 fvl-0 ls-1 ffs-1">st</td>
</tr><tr>
<td class="align ff-0 fvl-1 ls- ffs- ">st</td>
<td class="align ff-0 fvl-1 ls- ffs-n">st</td>
<td class="align ff-0 fvl-1 ls- ffs-0">st</td>
<td class="align ff-0 fvl-1 ls- ffs-1">st</td>
<td class="align ff-0 fvl-1 ls-0 ffs- ">st</td>
<td class="align ff-0 fvl-1 ls-0 ffs-n">st</td>
<td class="align ff-0 fvl-1 ls-0 ffs-0">st</td>
<td class="align ff-0 fvl-1 ls-0 ffs-1">st</td>
<td class="align ff-0 fvl-1 ls-1 ffs- ">st</td>
<td class="align ff-0 fvl-1 ls-1 ffs-n">st</td>
<td class="align ff-0 fvl-1 ls-1 ffs-0">st</td>
<td class="align ff-0 fvl-1 ls-1 ffs-1">st</td>
</tr><tr>
<td class="align ff-1 fvl- ls- ffs- ">st</td>
<td class="align ff-1 fvl- ls- ffs-n">st</td>
<td class="align ff-1 fvl- ls- ffs-0">st</td>
<td class="align ff-1 fvl- ls- ffs-1">st</td>
<td class="align ff-1 fvl- ls-0 ffs- ">st</td>
<td class="align ff-1 fvl- ls-0 ffs-n">st</td>
<td class="align ff-1 fvl- ls-0 ffs-0">st</td>
<td class="align ff-1 fvl- ls-0 ffs-1">st</td>
<td class="align ff-1 fvl- ls-1 ffs- ">st</td>
<td class="align ff-1 fvl- ls-1 ffs-n">st</td>
<td class="align ff-1 fvl- ls-1 ffs-0">st</td>
<td class="align ff-1 fvl- ls-1 ffs-1">st</td>
</tr><tr>
<td class="align ff-1 fvl-n ls- ffs- ">st</td>
<td class="align ff-1 fvl-n ls- ffs-n">st</td>
<td class="align ff-1 fvl-n ls- ffs-0">st</td>
<td class="align ff-1 fvl-n ls- ffs-1">st</td>
<td class="align ff-1 fvl-n ls-0 ffs- ">st</td>
<td class="align ff-1 fvl-n ls-0 ffs-n">st</td>
<td class="align ff-1 fvl-n ls-0 ffs-0">st</td>
<td class="align ff-1 fvl-n ls-0 ffs-1">st</td>
<td class="align ff-1 fvl-n ls-1 ffs- ">st</td>
<td class="align ff-1 fvl-n ls-1 ffs-n">st</td>
<td class="align ff-1 fvl-n ls-1 ffs-0">st</td>
<td class="align ff-1 fvl-n ls-1 ffs-1">st</td>
</tr><tr>
<td class="align ff-1 fvl-0 ls- ffs- ">st</td>
<td class="align ff-1 fvl-0 ls- ffs-n">st</td>
<td class="align ff-1 fvl-0 ls- ffs-0">st</td>
<td class="align ff-1 fvl-0 ls- ffs-1">st</td>
<td class="align ff-1 fvl-0 ls-0 ffs- ">st</td>
<td class="align ff-1 fvl-0 ls-0 ffs-n">st</td>
<td class="align ff-1 fvl-0 ls-0 ffs-0">st</td>
<td class="align ff-1 fvl-0 ls-0 ffs-1">st</td>
<td class="align ff-1 fvl-0 ls-1 ffs- ">st</td>
<td class="align ff-1 fvl-0 ls-1 ffs-n">st</td>
<td class="align ff-1 fvl-0 ls-1 ffs-0">st</td>
<td class="align ff-1 fvl-0 ls-1 ffs-1">st</td>
</tr><tr>
<td class="align ff-1 fvl-1 ls- ffs- ">st</td>
<td class="align ff-1 fvl-1 ls- ffs-n">st</td>
<td class="align ff-1 fvl-1 ls- ffs-0">st</td>
<td class="align ff-1 fvl-1 ls- ffs-1">st</td>
<td class="align ff-1 fvl-1 ls-0 ffs- ">st</td>
<td class="align ff-1 fvl-1 ls-0 ffs-n">st</td>
<td class="align ff-1 fvl-1 ls-0 ffs-0">st</td>
<td class="align ff-1 fvl-1 ls-0 ffs-1">st</td>
<td class="align ff-1 fvl-1 ls-1 ffs- ">st</td>
<td class="align ff-1 fvl-1 ls-1 ffs-n">st</td>
<td class="align ff-1 fvl-1 ls-1 ffs-0">st</td>
<td class="align ff-1 fvl-1 ls-1 ffs-1">st</td>
</tr></table>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show more