From 5f8de423f190bbb79a62f804151bc24824fa32d8 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 2 Feb 2018 04:16:08 -0500 Subject: Add m-esr52 at 52.6.0 --- .../font-features/alternates-order-ref.html | 27 ++ .../reftests/font-features/alternates-order.html | 116 +++++++++ layout/reftests/font-features/annotations-ref.html | 71 +++++ layout/reftests/font-features/annotations.html | 51 ++++ .../font-features/caps-fallback-allpetitecaps.html | 30 +++ .../font-features/caps-fallback-allsmallcaps.html | 30 +++ .../font-features/caps-fallback-default.html | 29 +++ .../font-features/caps-fallback-petitecaps.html | 30 +++ .../font-features/caps-fallback-smallcaps1.html | 30 +++ .../font-features/caps-fallback-smallcaps2.html | 30 +++ .../reftests/font-features/caps-fallback-smcp.html | 30 +++ .../font-features/caps-fallback-smcpc2sc.html | 30 +++ .../font-features-across-space-1-ref.html | 44 ++++ .../font-features-across-space-1.html | 44 ++++ .../font-features/font-features-hlig-2.html | 19 ++ .../font-features/font-features-hlig-3.html | 20 ++ .../font-features/font-features-hlig-4.html | 20 ++ .../font-features/font-features-hlig-5.html | 20 ++ .../reftests/font-features/font-features-hlig.html | 19 ++ .../font-features-ligatures-none.html | 20 ++ .../font-features/font-features-noliga.html | 19 ++ .../font-features/font-features-order-1.html | 20 ++ .../font-features/font-features-order-2.html | 20 ++ .../font-features/font-features-order-3.html | 22 ++ .../font-features/font-features-order-4.html | 22 ++ .../font-features/font-features-order-5.html | 24 ++ .../reftests/font-features/font-features-ref.html | 18 ++ .../font-features-turkish-override-1.html | 19 ++ .../font-features-turkish-override-2.html | 19 ++ .../font-features-turkish-override-3.html | 19 ++ .../font-features-turkish-override-4.html | 19 ++ .../font-features-turkish-override-5.html | 20 ++ .../font-features/font-features-turkish-ref.html | 18 ++ .../font-features/font-features-turkish.html | 18 ++ layout/reftests/font-features/font-kerning-1.html | 26 ++ layout/reftests/font-features/font-kerning-2.html | 26 ++ layout/reftests/font-features/font-kerning-3.html | 23 ++ .../reftests/font-features/font-kerning-auto.html | 23 ++ .../reftests/font-features/font-kerning-kern.html | 23 ++ .../font-features/font-kerning-nokern.html | 23 ++ .../reftests/font-features/font-kerning-none.html | 23 ++ .../font-features/font-kerning-normal.html | 23 ++ .../font-features/font-kerning-table-none.html | 24 ++ .../font-features/font-kerning-table-normal.html | 23 ++ .../font-features/font-variant-alternates-ref.html | 20 ++ .../font-features/font-variant-alternates.html | 20 ++ .../font-features/font-variant-caps-ref.html | 16 ++ .../reftests/font-features/font-variant-caps.html | 16 ++ .../reftests/font-features/font-variant-debug.html | 16 ++ .../font-features/font-variant-east-asian-ref.html | 16 ++ .../font-features/font-variant-east-asian.html | 16 ++ .../font-features/font-variant-features.css | 66 +++++ .../font-features/font-variant-features.js | 287 +++++++++++++++++++++ .../font-features/font-variant-ligatures-ref.html | 16 ++ .../font-features/font-variant-ligatures.html | 16 ++ .../font-features/font-variant-numeric-ref.html | 16 ++ .../font-features/font-variant-numeric.html | 16 ++ .../font-features/font-variant-position-ref.html | 16 ++ .../font-features/font-variant-position.html | 16 ++ .../reftests/font-features/font-variant-ref.html | 16 ++ layout/reftests/font-features/font-variant.html | 16 ++ layout/reftests/font-features/fwid-spaces-ref.html | 37 +++ layout/reftests/font-features/fwid-spaces.html | 39 +++ .../kerning-sanity-check-default.html | 37 +++ .../font-features/kerning-sanity-check-kern.html | 38 +++ .../font-features/kerning-sanity-check-nokern.html | 38 +++ .../kerning-spaces-arial-default.html | 44 ++++ .../font-features/kerning-spaces-arial-kern.html | 45 ++++ .../font-features/kerning-spaces-arial-nokern.html | 45 ++++ .../font-features/kerning-spaces-tnr-default.html | 46 ++++ .../font-features/kerning-spaces-tnr-kern.html | 47 ++++ .../font-features/kerning-spaces-tnr-nokern.html | 47 ++++ layout/reftests/font-features/reftest-stylo.list | 137 ++++++++++ layout/reftests/font-features/reftest.list | 120 +++++++++ .../reftests/font-features/spacelookups-ref.html | 33 +++ .../font-features/spacelookups-wordcache-ref.html | 81 ++++++ .../font-features/spacelookups-wordcache.html | 76 ++++++ layout/reftests/font-features/spacelookups.html | 82 ++++++ .../font-features/subsuper-fallback-notref1.html | 32 +++ .../font-features/subsuper-fallback-notref2.html | 32 +++ .../font-features/subsuper-fallback-notref3.html | 41 +++ .../subsuper-fallback-omega-notref.html | 30 +++ .../font-features/subsuper-fallback-omega.html | 32 +++ .../font-features/subsuper-fallback-ref.html | 34 +++ .../font-features/subsuper-fallback-size-ref.html | 36 +++ .../font-features/subsuper-fallback-size.html | 37 +++ .../reftests/font-features/subsuper-fallback.html | 34 +++ .../font-features/subsuper-nofallback-notref.html | 34 +++ .../font-features/subsuper-nofallback-ref1.html | 43 +++ .../font-features/subsuper-nofallback-ref2.html | 35 +++ .../font-features/subsuper-nofallback.html | 36 +++ 91 files changed, 3273 insertions(+) create mode 100644 layout/reftests/font-features/alternates-order-ref.html create mode 100644 layout/reftests/font-features/alternates-order.html create mode 100644 layout/reftests/font-features/annotations-ref.html create mode 100644 layout/reftests/font-features/annotations.html create mode 100644 layout/reftests/font-features/caps-fallback-allpetitecaps.html create mode 100644 layout/reftests/font-features/caps-fallback-allsmallcaps.html create mode 100644 layout/reftests/font-features/caps-fallback-default.html create mode 100644 layout/reftests/font-features/caps-fallback-petitecaps.html create mode 100644 layout/reftests/font-features/caps-fallback-smallcaps1.html create mode 100644 layout/reftests/font-features/caps-fallback-smallcaps2.html create mode 100644 layout/reftests/font-features/caps-fallback-smcp.html create mode 100644 layout/reftests/font-features/caps-fallback-smcpc2sc.html create mode 100644 layout/reftests/font-features/font-features-across-space-1-ref.html create mode 100644 layout/reftests/font-features/font-features-across-space-1.html create mode 100644 layout/reftests/font-features/font-features-hlig-2.html create mode 100644 layout/reftests/font-features/font-features-hlig-3.html create mode 100644 layout/reftests/font-features/font-features-hlig-4.html create mode 100644 layout/reftests/font-features/font-features-hlig-5.html create mode 100644 layout/reftests/font-features/font-features-hlig.html create mode 100644 layout/reftests/font-features/font-features-ligatures-none.html create mode 100644 layout/reftests/font-features/font-features-noliga.html create mode 100644 layout/reftests/font-features/font-features-order-1.html create mode 100644 layout/reftests/font-features/font-features-order-2.html create mode 100644 layout/reftests/font-features/font-features-order-3.html create mode 100644 layout/reftests/font-features/font-features-order-4.html create mode 100644 layout/reftests/font-features/font-features-order-5.html create mode 100644 layout/reftests/font-features/font-features-ref.html create mode 100644 layout/reftests/font-features/font-features-turkish-override-1.html create mode 100644 layout/reftests/font-features/font-features-turkish-override-2.html create mode 100644 layout/reftests/font-features/font-features-turkish-override-3.html create mode 100644 layout/reftests/font-features/font-features-turkish-override-4.html create mode 100644 layout/reftests/font-features/font-features-turkish-override-5.html create mode 100644 layout/reftests/font-features/font-features-turkish-ref.html create mode 100644 layout/reftests/font-features/font-features-turkish.html create mode 100644 layout/reftests/font-features/font-kerning-1.html create mode 100644 layout/reftests/font-features/font-kerning-2.html create mode 100644 layout/reftests/font-features/font-kerning-3.html create mode 100644 layout/reftests/font-features/font-kerning-auto.html create mode 100644 layout/reftests/font-features/font-kerning-kern.html create mode 100644 layout/reftests/font-features/font-kerning-nokern.html create mode 100644 layout/reftests/font-features/font-kerning-none.html create mode 100644 layout/reftests/font-features/font-kerning-normal.html create mode 100644 layout/reftests/font-features/font-kerning-table-none.html create mode 100644 layout/reftests/font-features/font-kerning-table-normal.html create mode 100644 layout/reftests/font-features/font-variant-alternates-ref.html create mode 100644 layout/reftests/font-features/font-variant-alternates.html create mode 100644 layout/reftests/font-features/font-variant-caps-ref.html create mode 100644 layout/reftests/font-features/font-variant-caps.html create mode 100644 layout/reftests/font-features/font-variant-debug.html create mode 100644 layout/reftests/font-features/font-variant-east-asian-ref.html create mode 100644 layout/reftests/font-features/font-variant-east-asian.html create mode 100644 layout/reftests/font-features/font-variant-features.css create mode 100644 layout/reftests/font-features/font-variant-features.js create mode 100644 layout/reftests/font-features/font-variant-ligatures-ref.html create mode 100644 layout/reftests/font-features/font-variant-ligatures.html create mode 100644 layout/reftests/font-features/font-variant-numeric-ref.html create mode 100644 layout/reftests/font-features/font-variant-numeric.html create mode 100644 layout/reftests/font-features/font-variant-position-ref.html create mode 100644 layout/reftests/font-features/font-variant-position.html create mode 100644 layout/reftests/font-features/font-variant-ref.html create mode 100644 layout/reftests/font-features/font-variant.html create mode 100644 layout/reftests/font-features/fwid-spaces-ref.html create mode 100644 layout/reftests/font-features/fwid-spaces.html create mode 100644 layout/reftests/font-features/kerning-sanity-check-default.html create mode 100644 layout/reftests/font-features/kerning-sanity-check-kern.html create mode 100644 layout/reftests/font-features/kerning-sanity-check-nokern.html create mode 100644 layout/reftests/font-features/kerning-spaces-arial-default.html create mode 100644 layout/reftests/font-features/kerning-spaces-arial-kern.html create mode 100644 layout/reftests/font-features/kerning-spaces-arial-nokern.html create mode 100644 layout/reftests/font-features/kerning-spaces-tnr-default.html create mode 100644 layout/reftests/font-features/kerning-spaces-tnr-kern.html create mode 100644 layout/reftests/font-features/kerning-spaces-tnr-nokern.html create mode 100644 layout/reftests/font-features/reftest-stylo.list create mode 100644 layout/reftests/font-features/reftest.list create mode 100644 layout/reftests/font-features/spacelookups-ref.html create mode 100644 layout/reftests/font-features/spacelookups-wordcache-ref.html create mode 100644 layout/reftests/font-features/spacelookups-wordcache.html create mode 100644 layout/reftests/font-features/spacelookups.html create mode 100644 layout/reftests/font-features/subsuper-fallback-notref1.html create mode 100644 layout/reftests/font-features/subsuper-fallback-notref2.html create mode 100644 layout/reftests/font-features/subsuper-fallback-notref3.html create mode 100644 layout/reftests/font-features/subsuper-fallback-omega-notref.html create mode 100644 layout/reftests/font-features/subsuper-fallback-omega.html create mode 100644 layout/reftests/font-features/subsuper-fallback-ref.html create mode 100644 layout/reftests/font-features/subsuper-fallback-size-ref.html create mode 100644 layout/reftests/font-features/subsuper-fallback-size.html create mode 100644 layout/reftests/font-features/subsuper-fallback.html create mode 100644 layout/reftests/font-features/subsuper-nofallback-notref.html create mode 100644 layout/reftests/font-features/subsuper-nofallback-ref1.html create mode 100644 layout/reftests/font-features/subsuper-nofallback-ref2.html create mode 100644 layout/reftests/font-features/subsuper-nofallback.html (limited to 'layout/reftests/font-features') diff --git a/layout/reftests/font-features/alternates-order-ref.html b/layout/reftests/font-features/alternates-order-ref.html new file mode 100644 index 000000000..08f29d157 --- /dev/null +++ b/layout/reftests/font-features/alternates-order-ref.html @@ -0,0 +1,27 @@ + + + + + + +
W W W
+
W W W
+
W W W
+ + diff --git a/layout/reftests/font-features/alternates-order.html b/layout/reftests/font-features/alternates-order.html new file mode 100644 index 000000000..2efe803ab --- /dev/null +++ b/layout/reftests/font-features/alternates-order.html @@ -0,0 +1,116 @@ + + + + + + +
W W W
+
W W W
+
W W W
+ + diff --git a/layout/reftests/font-features/annotations-ref.html b/layout/reftests/font-features/annotations-ref.html new file mode 100644 index 000000000..a21ea28fc --- /dev/null +++ b/layout/reftests/font-features/annotations-ref.html @@ -0,0 +1,71 @@ + + + +Annotations test + + + + + + +
1 2 3
+ + \ No newline at end of file diff --git a/layout/reftests/font-features/annotations.html b/layout/reftests/font-features/annotations.html new file mode 100644 index 000000000..24574cf54 --- /dev/null +++ b/layout/reftests/font-features/annotations.html @@ -0,0 +1,51 @@ + + + +Annotations test + + + + + + +
1 2 3
+ + \ No newline at end of file diff --git a/layout/reftests/font-features/caps-fallback-allpetitecaps.html b/layout/reftests/font-features/caps-fallback-allpetitecaps.html new file mode 100644 index 000000000..9bfc70398 --- /dev/null +++ b/layout/reftests/font-features/caps-fallback-allpetitecaps.html @@ -0,0 +1,30 @@ + + + +font-variant-caps fallback + + + + +

Aa Bb Gg Δδ Γγ Σσ Бб Фф

+ + diff --git a/layout/reftests/font-features/caps-fallback-allsmallcaps.html b/layout/reftests/font-features/caps-fallback-allsmallcaps.html new file mode 100644 index 000000000..76db1c46f --- /dev/null +++ b/layout/reftests/font-features/caps-fallback-allsmallcaps.html @@ -0,0 +1,30 @@ + + + +font-variant-caps fallback + + + + +

Aa Bb Gg Δδ Γγ Σσ Бб Фф

+ + diff --git a/layout/reftests/font-features/caps-fallback-default.html b/layout/reftests/font-features/caps-fallback-default.html new file mode 100644 index 000000000..790c97402 --- /dev/null +++ b/layout/reftests/font-features/caps-fallback-default.html @@ -0,0 +1,29 @@ + + + +font-variant-caps fallback + + + + +

Aa Bb Gg Δδ Γγ Σσ Бб Фф

+ + diff --git a/layout/reftests/font-features/caps-fallback-petitecaps.html b/layout/reftests/font-features/caps-fallback-petitecaps.html new file mode 100644 index 000000000..3dbaa1520 --- /dev/null +++ b/layout/reftests/font-features/caps-fallback-petitecaps.html @@ -0,0 +1,30 @@ + + + +font-variant-caps fallback + + + + +

Aa Bb Gg Δδ Γγ Σσ Бб Фф

+ + diff --git a/layout/reftests/font-features/caps-fallback-smallcaps1.html b/layout/reftests/font-features/caps-fallback-smallcaps1.html new file mode 100644 index 000000000..9d5d71e0a --- /dev/null +++ b/layout/reftests/font-features/caps-fallback-smallcaps1.html @@ -0,0 +1,30 @@ + + + +font-variant-caps fallback + + + + +

Aa Bb Gg Δδ Γγ Σσ Бб Фф

+ + diff --git a/layout/reftests/font-features/caps-fallback-smallcaps2.html b/layout/reftests/font-features/caps-fallback-smallcaps2.html new file mode 100644 index 000000000..665773fba --- /dev/null +++ b/layout/reftests/font-features/caps-fallback-smallcaps2.html @@ -0,0 +1,30 @@ + + + +font-variant-caps fallback + + + + +

Aa Bb Gg Δδ Γγ Σσ Бб Фф

+ + diff --git a/layout/reftests/font-features/caps-fallback-smcp.html b/layout/reftests/font-features/caps-fallback-smcp.html new file mode 100644 index 000000000..ee29a4a81 --- /dev/null +++ b/layout/reftests/font-features/caps-fallback-smcp.html @@ -0,0 +1,30 @@ + + + +font-variant-caps fallback + + + + +

Aa Bb Gg Δδ Γγ Σσ Бб Фф

+ + diff --git a/layout/reftests/font-features/caps-fallback-smcpc2sc.html b/layout/reftests/font-features/caps-fallback-smcpc2sc.html new file mode 100644 index 000000000..3b2ed841d --- /dev/null +++ b/layout/reftests/font-features/caps-fallback-smcpc2sc.html @@ -0,0 +1,30 @@ + + + +font-variant-caps fallback + + + + +

Aa Bb Gg Δδ Γγ Σσ Бб Фф

+ + diff --git a/layout/reftests/font-features/font-features-across-space-1-ref.html b/layout/reftests/font-features/font-features-across-space-1-ref.html new file mode 100644 index 000000000..110ab16ae --- /dev/null +++ b/layout/reftests/font-features/font-features-across-space-1-ref.html @@ -0,0 +1,44 @@ + + + +ligature-across-space test + + + + + + + + + + + + + + + + + + + +
calendar
daily calendar
align left
align center
align right
volume
volume down
volume up
zoom in
zoom out
heart
heart empty
+ + + \ No newline at end of file diff --git a/layout/reftests/font-features/font-features-across-space-1.html b/layout/reftests/font-features/font-features-across-space-1.html new file mode 100644 index 000000000..1f60e3d2c --- /dev/null +++ b/layout/reftests/font-features/font-features-across-space-1.html @@ -0,0 +1,44 @@ + + + +ligature-across-space test + + + + + + + + + + + + + + + + + + + +
calendarcalendar
daily calendardaily calendar
align leftalign left
align centeralign center
align rightalign right
volumevolume
volume downvolume down
volume upvolume up
zoom inzoom in
zoom outzoom out
heartheart
heart emptyheart empty
+ + + \ No newline at end of file diff --git a/layout/reftests/font-features/font-features-hlig-2.html b/layout/reftests/font-features/font-features-hlig-2.html new file mode 100644 index 000000000..3fde28f26 --- /dev/null +++ b/layout/reftests/font-features/font-features-hlig-2.html @@ -0,0 +1,19 @@ + + + + + +fastest firefox + + diff --git a/layout/reftests/font-features/font-features-hlig-3.html b/layout/reftests/font-features/font-features-hlig-3.html new file mode 100644 index 000000000..5efa9d13b --- /dev/null +++ b/layout/reftests/font-features/font-features-hlig-3.html @@ -0,0 +1,20 @@ + + + + + +fastest firefox + + diff --git a/layout/reftests/font-features/font-features-hlig-4.html b/layout/reftests/font-features/font-features-hlig-4.html new file mode 100644 index 000000000..409c7f808 --- /dev/null +++ b/layout/reftests/font-features/font-features-hlig-4.html @@ -0,0 +1,20 @@ + + + + + +fastest firefox + + diff --git a/layout/reftests/font-features/font-features-hlig-5.html b/layout/reftests/font-features/font-features-hlig-5.html new file mode 100644 index 000000000..c076f64b9 --- /dev/null +++ b/layout/reftests/font-features/font-features-hlig-5.html @@ -0,0 +1,20 @@ + + + + + +fastest firefox + + diff --git a/layout/reftests/font-features/font-features-hlig.html b/layout/reftests/font-features/font-features-hlig.html new file mode 100644 index 000000000..1b93834fd --- /dev/null +++ b/layout/reftests/font-features/font-features-hlig.html @@ -0,0 +1,19 @@ + + + + + +fastest firefox + + diff --git a/layout/reftests/font-features/font-features-ligatures-none.html b/layout/reftests/font-features/font-features-ligatures-none.html new file mode 100644 index 000000000..418c8c9e2 --- /dev/null +++ b/layout/reftests/font-features/font-features-ligatures-none.html @@ -0,0 +1,20 @@ + + + + + +fastest firefox + + diff --git a/layout/reftests/font-features/font-features-noliga.html b/layout/reftests/font-features/font-features-noliga.html new file mode 100644 index 000000000..c7e8e56b9 --- /dev/null +++ b/layout/reftests/font-features/font-features-noliga.html @@ -0,0 +1,19 @@ + + + + + +fastest firefox + + diff --git a/layout/reftests/font-features/font-features-order-1.html b/layout/reftests/font-features/font-features-order-1.html new file mode 100644 index 000000000..a2d97256b --- /dev/null +++ b/layout/reftests/font-features/font-features-order-1.html @@ -0,0 +1,20 @@ + + + + + + +fastest firefox + + diff --git a/layout/reftests/font-features/font-features-order-2.html b/layout/reftests/font-features/font-features-order-2.html new file mode 100644 index 000000000..2b68c3945 --- /dev/null +++ b/layout/reftests/font-features/font-features-order-2.html @@ -0,0 +1,20 @@ + + + + + + +fastest firefox + + diff --git a/layout/reftests/font-features/font-features-order-3.html b/layout/reftests/font-features/font-features-order-3.html new file mode 100644 index 000000000..d38f8709f --- /dev/null +++ b/layout/reftests/font-features/font-features-order-3.html @@ -0,0 +1,22 @@ + + + + + + +fastest firefox + + diff --git a/layout/reftests/font-features/font-features-order-4.html b/layout/reftests/font-features/font-features-order-4.html new file mode 100644 index 000000000..b8656e2d9 --- /dev/null +++ b/layout/reftests/font-features/font-features-order-4.html @@ -0,0 +1,22 @@ + + + + + + +fastest firefox + + diff --git a/layout/reftests/font-features/font-features-order-5.html b/layout/reftests/font-features/font-features-order-5.html new file mode 100644 index 000000000..52a8f0ba7 --- /dev/null +++ b/layout/reftests/font-features/font-features-order-5.html @@ -0,0 +1,24 @@ + + + + + + +fastest firefox + + diff --git a/layout/reftests/font-features/font-features-ref.html b/layout/reftests/font-features/font-features-ref.html new file mode 100644 index 000000000..89a20372c --- /dev/null +++ b/layout/reftests/font-features/font-features-ref.html @@ -0,0 +1,18 @@ + + + + + +fastest firefox + + diff --git a/layout/reftests/font-features/font-features-turkish-override-1.html b/layout/reftests/font-features/font-features-turkish-override-1.html new file mode 100644 index 000000000..9ba3e603a --- /dev/null +++ b/layout/reftests/font-features/font-features-turkish-override-1.html @@ -0,0 +1,19 @@ + + + + + +fastest firefox + + diff --git a/layout/reftests/font-features/font-features-turkish-override-2.html b/layout/reftests/font-features/font-features-turkish-override-2.html new file mode 100644 index 000000000..165810e18 --- /dev/null +++ b/layout/reftests/font-features/font-features-turkish-override-2.html @@ -0,0 +1,19 @@ + + + + + +fastest firefox + + diff --git a/layout/reftests/font-features/font-features-turkish-override-3.html b/layout/reftests/font-features/font-features-turkish-override-3.html new file mode 100644 index 000000000..b2c8c6945 --- /dev/null +++ b/layout/reftests/font-features/font-features-turkish-override-3.html @@ -0,0 +1,19 @@ + + + + + +fastest firefox + + diff --git a/layout/reftests/font-features/font-features-turkish-override-4.html b/layout/reftests/font-features/font-features-turkish-override-4.html new file mode 100644 index 000000000..13c379c3d --- /dev/null +++ b/layout/reftests/font-features/font-features-turkish-override-4.html @@ -0,0 +1,19 @@ + + + + + +fastest firefox + + diff --git a/layout/reftests/font-features/font-features-turkish-override-5.html b/layout/reftests/font-features/font-features-turkish-override-5.html new file mode 100644 index 000000000..1e847cb1e --- /dev/null +++ b/layout/reftests/font-features/font-features-turkish-override-5.html @@ -0,0 +1,20 @@ + + + + + +fastest firefox + + diff --git a/layout/reftests/font-features/font-features-turkish-ref.html b/layout/reftests/font-features/font-features-turkish-ref.html new file mode 100644 index 000000000..effe8144d --- /dev/null +++ b/layout/reftests/font-features/font-features-turkish-ref.html @@ -0,0 +1,18 @@ + + + + + +fastest f‌irefox + + diff --git a/layout/reftests/font-features/font-features-turkish.html b/layout/reftests/font-features/font-features-turkish.html new file mode 100644 index 000000000..816c6006d --- /dev/null +++ b/layout/reftests/font-features/font-features-turkish.html @@ -0,0 +1,18 @@ + + + + + +fastest firefox + + diff --git a/layout/reftests/font-features/font-kerning-1.html b/layout/reftests/font-features/font-kerning-1.html new file mode 100644 index 000000000..a8450644f --- /dev/null +++ b/layout/reftests/font-features/font-kerning-1.html @@ -0,0 +1,26 @@ + + + + + + +
Ta To
+
AVA
+
AWAY
+ + diff --git a/layout/reftests/font-features/font-kerning-2.html b/layout/reftests/font-features/font-kerning-2.html new file mode 100644 index 000000000..1c230d28a --- /dev/null +++ b/layout/reftests/font-features/font-kerning-2.html @@ -0,0 +1,26 @@ + + + + + + +
Ta To
+
AVA
+
AWAY
+ + diff --git a/layout/reftests/font-features/font-kerning-3.html b/layout/reftests/font-features/font-kerning-3.html new file mode 100644 index 000000000..86208f041 --- /dev/null +++ b/layout/reftests/font-features/font-kerning-3.html @@ -0,0 +1,23 @@ + + + + + + +
Ta To
+
AVA
+
AWAY
+ + diff --git a/layout/reftests/font-features/font-kerning-auto.html b/layout/reftests/font-features/font-kerning-auto.html new file mode 100644 index 000000000..4be9251b0 --- /dev/null +++ b/layout/reftests/font-features/font-kerning-auto.html @@ -0,0 +1,23 @@ + + + + + + +
Ta To
+
AVA
+
AWAY
+ + diff --git a/layout/reftests/font-features/font-kerning-kern.html b/layout/reftests/font-features/font-kerning-kern.html new file mode 100644 index 000000000..a37ca038a --- /dev/null +++ b/layout/reftests/font-features/font-kerning-kern.html @@ -0,0 +1,23 @@ + + + + + + +
Ta To
+
AVA
+
AWAY
+ + diff --git a/layout/reftests/font-features/font-kerning-nokern.html b/layout/reftests/font-features/font-kerning-nokern.html new file mode 100644 index 000000000..87044b89b --- /dev/null +++ b/layout/reftests/font-features/font-kerning-nokern.html @@ -0,0 +1,23 @@ + + + + + + +
Ta To
+
AVA
+
AWAY
+ + diff --git a/layout/reftests/font-features/font-kerning-none.html b/layout/reftests/font-features/font-kerning-none.html new file mode 100644 index 000000000..b8e66c07c --- /dev/null +++ b/layout/reftests/font-features/font-kerning-none.html @@ -0,0 +1,23 @@ + + + + + + +
Ta To
+
AVA
+
AWAY
+ + diff --git a/layout/reftests/font-features/font-kerning-normal.html b/layout/reftests/font-features/font-kerning-normal.html new file mode 100644 index 000000000..c368f016b --- /dev/null +++ b/layout/reftests/font-features/font-kerning-normal.html @@ -0,0 +1,23 @@ + + + + + + +
Ta To
+
AVA
+
AWAY
+ + diff --git a/layout/reftests/font-features/font-kerning-table-none.html b/layout/reftests/font-features/font-kerning-table-none.html new file mode 100644 index 000000000..81ce58332 --- /dev/null +++ b/layout/reftests/font-features/font-kerning-table-none.html @@ -0,0 +1,24 @@ + + + + + + +
Ta To
+
AVA
+
AWAY
+ + diff --git a/layout/reftests/font-features/font-kerning-table-normal.html b/layout/reftests/font-features/font-kerning-table-normal.html new file mode 100644 index 000000000..fe1ad57e8 --- /dev/null +++ b/layout/reftests/font-features/font-kerning-table-normal.html @@ -0,0 +1,23 @@ + + + + + + +
Ta To
+
AVA
+
AWAY
+ + diff --git a/layout/reftests/font-features/font-variant-alternates-ref.html b/layout/reftests/font-features/font-variant-alternates-ref.html new file mode 100644 index 000000000..cd3dd4da6 --- /dev/null +++ b/layout/reftests/font-features/font-variant-alternates-ref.html @@ -0,0 +1,20 @@ + + + +font-variant-alternates test + + + + + + + + + +
+ + + diff --git a/layout/reftests/font-features/font-variant-alternates.html b/layout/reftests/font-features/font-variant-alternates.html new file mode 100644 index 000000000..496530551 --- /dev/null +++ b/layout/reftests/font-features/font-variant-alternates.html @@ -0,0 +1,20 @@ + + + +font-variant-alternates test + + + + + + + + + +
+ + + diff --git a/layout/reftests/font-features/font-variant-caps-ref.html b/layout/reftests/font-features/font-variant-caps-ref.html new file mode 100644 index 000000000..1eacf1bf6 --- /dev/null +++ b/layout/reftests/font-features/font-variant-caps-ref.html @@ -0,0 +1,16 @@ + + + +font-variant-caps test + + + + + + +
+ + + diff --git a/layout/reftests/font-features/font-variant-caps.html b/layout/reftests/font-features/font-variant-caps.html new file mode 100644 index 000000000..7fa6bf94b --- /dev/null +++ b/layout/reftests/font-features/font-variant-caps.html @@ -0,0 +1,16 @@ + + + +font-variant-caps test + + + + + + +
+ + + diff --git a/layout/reftests/font-features/font-variant-debug.html b/layout/reftests/font-features/font-variant-debug.html new file mode 100644 index 000000000..9a3953bde --- /dev/null +++ b/layout/reftests/font-features/font-variant-debug.html @@ -0,0 +1,16 @@ + + + +font-variant test + + + + + + +
+ + + \ No newline at end of file diff --git a/layout/reftests/font-features/font-variant-east-asian-ref.html b/layout/reftests/font-features/font-variant-east-asian-ref.html new file mode 100644 index 000000000..be2def6d9 --- /dev/null +++ b/layout/reftests/font-features/font-variant-east-asian-ref.html @@ -0,0 +1,16 @@ + + + +font-variant-east-asian test + + + + + + +
+ + + \ No newline at end of file diff --git a/layout/reftests/font-features/font-variant-east-asian.html b/layout/reftests/font-features/font-variant-east-asian.html new file mode 100644 index 000000000..15578245a --- /dev/null +++ b/layout/reftests/font-features/font-variant-east-asian.html @@ -0,0 +1,16 @@ + + + +font-variant-east-asian test + + + + + + +
+ + + \ No newline at end of file diff --git a/layout/reftests/font-features/font-variant-features.css b/layout/reftests/font-features/font-variant-features.css new file mode 100644 index 000000000..2035cb458 --- /dev/null +++ b/layout/reftests/font-features/font-variant-features.css @@ -0,0 +1,66 @@ +body { margin: 10px; } + +@font-face { + font-family: gsub-test; + src: url(../fonts/gsubtest/gsubtest-lookup3.otf); +} + +td.prop { + font-family: Menlo, monospace; + font-weight: normal; + text-align: left; + font-size: 80%; +} + +td.features { + font-family: gsub-test; +} + +.invalid { + color: red; +} + +@font-feature-values gsub-test { + @styleset { ok-alt-a: 1 3 5; ok-alt-b: 19; } + @character-variant { ok-1: 78 2; } + @character-variant { ok-3: 23; } + @character-variant { not-good: 0 2; } + @annotation { ok-4: 1; } + @annotation { bogus-font-doesnt-support: 23; } + @annotation { circled: 1; } + @character-variant { multi-def: 4; } + @annotation { multi-def: 3; } + @styleset { multi-def2: 3 4 5; } + @styleset { MULTI-def2: 2 6; } + @styleset { out-of-bounds1: 0; out-of-bounds2: 100; } + @styleset { scope-test1: 23; scope-test2: 24 1 } + @character-variant { scope-test1: 24; scope-test2: 23 2 } + @character-variant { overlap1: 23 1; overlap2: 23 2 } +} + +@font-feature-values bogus-family { + @styleset { bogus: 3 4 7; } +} + +@font-feature-values GSUB-tEsT { + @styleset { mixed-case: 3 4 7; } +} + +@font-feature-values gSuB-tEsT { + @styleset { 3blah: 1 3; } +} + +@font-feature-values gSuB-tEsT { + @styleset { moxie: 14; } + @styleset { 3blah: 1; } +} + +@font-feature-values gSUB-TeST { + @styleset { moxie2: 14; } + @bongo { blah: 1; } +} + +@font-feature-values gSUB-TEst { + @bongo { blah2: 1; } + @styleset { moxie3: 14; } +} diff --git a/layout/reftests/font-features/font-variant-features.js b/layout/reftests/font-features/font-variant-features.js new file mode 100644 index 000000000..568566373 --- /dev/null +++ b/layout/reftests/font-features/font-variant-features.js @@ -0,0 +1,287 @@ + +// data associated with gsubtest test font for testing font features + +// prefix +gPrefix = ""; + +// equivalent properties +// setting prop: value should match the specific feature settings listed +// +// each of these tests evaluate whether a given feature is enabled as required +// and also whether features that shouldn't be enabled are or not. +var gPropertyData = [ + // font-variant (shorthand) + // valid values + { prop: "font-variant", value: "normal", features: {"smcp": 0} }, + { prop: "font-variant", value: "small-caps", features: {"smcp": 1, "c2sc": 0} }, + { prop: "font-variant", value: "none", features: {"liga": 0, "dlig": 0, "clig": 0, "calt": 0, "hlig": 0} }, + { prop: "font-variant", value: "all-small-caps", features: {"smcp": 1, "c2sc": 1, "pcap": 0} }, + { prop: "font-variant", value: "common-ligatures no-discretionary-ligatures", features: {"liga": 1, "clig": 1, "dlig": 0, "hlig": 0, "calt": 1} }, + { prop: "font-variant", value: "proportional-nums slashed-zero diagonal-fractions oldstyle-nums ordinal", features: {"frac": 1, "afrc": 0, "tnum": 0, "pnum": 1, "onum": 1, "ordn": 1, "zero": 1} }, + { prop: "font-variant", value: "all-small-caps traditional", features: {"smcp": 1, "c2sc": 1, "pcap": 0, "trad": 1, "jp04": 0} }, + { prop: "font-variant", value: "styleset(out-of-bounds1, out-of-bounds2) traditional", features: {"ss00": 0, "ss01": 0, "ss99": 0, "trad": 1} }, // out-of-bounds values but not invalid syntax + { prop: "font-variant", value: "styleset(ok-alt-a, ok-alt-b) historical-forms", features: {"ss01": 1, "ss02": 0, "ss03": 1, "ss04": 0, "ss05": 1, "ss19": 1, "ss20": 0, "hist": 1, "hlig": 0} }, + { prop: "font-variant", value: "traditional historical-forms styleset(ok-alt-a, ok-alt-b)", features: {"trad": 1, "ss01": 1, "ss02": 0, "ss03": 1, "ss04": 0, "ss05": 1, "ss19": 1, "ss20": 0, "hist": 1, "hlig": 0} }, + { prop: "font-variant", value: "styleset(scope-test2)", features: {"ss23": 0, "ss24": 1, "ss01": 1} }, + { prop: "font-variant", value: "character-variant(scope-test2)", features: {"cv23": 2, "cv24": 0, "cv01": 0} }, + + // invalid values + { prop: "font-variant", value: "normal small-caps", features: {"smcp": 0}, invalid: true }, + { prop: "font-variant", value: "common-ligatures none", features: {"liga": 1, "clig": 1, "dlig": 0}, invalid: true }, + { prop: "font-variant", value: "none common-ligatures", features: {"liga": 1, "clig": 1, "dlig": 0}, invalid: true }, + { prop: "font-variant", value: "small-caps potato", features: {"smcp": 0}, invalid: true }, + { prop: "font-variant", value: "common-ligatures traditional no-common-ligatures", features: {"liga": 1, "clig": 1, "dlig": 0, "trad": 0}, invalid: true }, + { prop: "font-variant", value: "common-ligatures traditional common-ligatures", features: {"liga": 1, "clig": 1, "dlig": 0, "trad": 0}, invalid: true }, + { prop: "font-variant", value: "small-caps jis83 all-small-caps", features: {"smcp": 0, "c2sc": 0, "jp83": 0}, invalid: true }, + { prop: "font-variant", value: "lining-nums traditional slashed-zero ordinal normal", features: {"lnum": 0, "onum": 0, "zero": 0, "trad": 0}, invalid: true }, + { prop: "font-variant", value: "diagonal-fractions stacked-fractions", features: {"frac": 0, "afrc": 0}, invalid: true }, + { prop: "font-variant", value: "stacked-fractions diagonal-fractions historical-ligatures", features: {"frac": 0, "afrc": 0, "hlig": 0}, invalid: true }, + { prop: "font-variant", value: "super sub", features: {"subs": 0, "sups": 0}, invalid: true }, + { prop: "font-variant", value: "super historical-ligatures sub", features: {"subs": 0, "sups": 0, "hlig": 0}, invalid: true }, + { prop: "font-variant", value: "annotation(circled) annotation(circled)", features: {"nalt": 0, "lnum": 0, "onum": 0, "pnum": 0}, invalid: true }, + + // font-variant-alternates + // valid values + { prop: "font-variant-alternates", value: "normal", features: {"salt": 0, "swsh": 0} }, + { prop: "font-variant-alternates", value: "historical-forms", features: {"hist": 1, "hlig": 0} }, + { prop: "font-variant-alternates", value: "styleset(ok-alt-a, ok-alt-b)", features: {"ss01": 1, "ss02": 0, "ss03": 1, "ss04": 0, "ss05": 1, "ss19": 1, "ss20": 0} }, + { prop: "font-variant-alternates", value: "styleset(ok-alt-a, ok-alt-b) historical-forms", features: {"ss01": 1, "ss02": 0, "ss03": 1, "ss04": 0, "ss05": 1, "ss19": 1, "ss20": 0, "hist": 1, "hlig": 0} }, + { prop: "font-variant-alternates", value: "historical-forms styleset(ok-alt-a, ok-alt-b)", features: {"ss01": 1, "ss02": 0, "ss03": 1, "ss04": 0, "ss05": 1, "ss19": 1, "ss20": 0, "hist": 1, "hlig": 0} }, + { prop: "font-variant-alternates", value: "character-variant(ok-1)", features: {"cv78": 2, "cv79": 0, "cv77": 0} }, + { prop: "font-variant-alternates", value: "character-variant(ok-1, ok-3)", features: {"cv78": 2, "cv79": 0, "cv77": 0, "cv23": 1, "cv22": 0, "cv24": 0} }, + { prop: "font-variant-alternates", value: "annotation(circled)", features: {"nalt": 1} }, + { prop: "font-variant-alternates", value: "styleset(out-of-bounds1, out-of-bounds2)", features: {"ss00": 0, "ss01": 0, "ss99": 0} }, // out-of-bounds values but not invalid syntax + { prop: "font-variant-alternates", value: "styleset(circled)", features: {"nalt": 0, "ss00": 0, "ss01": 0} }, // circled defined for annotation not styleset + { prop: "font-variant-alternates", value: "styleset(scope-test1)", features: {"ss23": 1, "ss24": 0} }, + { prop: "font-variant-alternates", value: "character-variant(scope-test1)", features: {"cv23": 0, "cv24": 1} }, + { prop: "font-variant-alternates", value: "styleset(scope-test2)", features: {"ss23": 0, "ss24": 1, "ss01": 1} }, + { prop: "font-variant-alternates", value: "character-variant(scope-test2)", features: {"cv23": 2, "cv24": 0, "cv01": 0} }, + { prop: "font-variant-alternates", value: "character-variant(overlap1, overlap2)", features: {"cv23": 2} }, + { prop: "font-variant-alternates", value: "character-variant(overlap2, overlap1)", features: {"cv23": 1} }, + + // invalid values + { prop: "font-variant-alternates", value: "historical-forms normal", features: {"hist": 0}, invalid: true }, + { prop: "font-variant-alternates", value: "historical-forms historical-forms", features: {"hist": 0}, invalid: true }, + { prop: "font-variant-alternates", value: "swash", features: {"swsh": 0}, invalid: true }, + { prop: "font-variant-alternates", value: "swash(3)", features: {"swsh": 0}, invalid: true }, + { prop: "font-variant-alternates", value: "annotation(a, b)", features: {"nalt": 0}, invalid: true }, + { prop: "font-variant-alternates", value: "ornaments(a,b)", features: {"ornm": 0, "nalt": 0}, invalid: true }, + + // font-variant-caps + // valid values + { prop: "font-variant-caps", value: "normal", features: {"smcp": 0} }, + { prop: "font-variant-caps", value: "small-caps", features: {"smcp": 1, "c2sc": 0} }, + { prop: "font-variant-caps", value: "all-small-caps", features: {"smcp": 1, "c2sc": 1, "pcap": 0} }, + { prop: "font-variant-caps", value: "petite-caps", features: {"pcap": 1, "smcp": 0} }, + { prop: "font-variant-caps", value: "all-petite-caps", features: {"c2pc": 1, "pcap": 1, "smcp": 0} }, + { prop: "font-variant-caps", value: "titling-caps", features: {"titl": 1, "smcp": 0} }, + { prop: "font-variant-caps", value: "unicase", features: {"unic": 1, "titl": 0} }, + + // invalid values + { prop: "font-variant-caps", value: "normal small-caps", features: {"smcp": 0}, invalid: true }, + { prop: "font-variant-caps", value: "small-caps potato", features: {"smcp": 0}, invalid: true }, + { prop: "font-variant-caps", value: "small-caps petite-caps", features: {"smcp": 0, "pcap": 0}, invalid: true }, + { prop: "font-variant-caps", value: "small-caps all-small-caps", features: {"smcp": 0, "c2sc": 0}, invalid: true }, + { prop: "font-variant-caps", value: "small-cap", features: {"smcp": 0}, invalid: true }, + + // font-variant-east-asian + // valid values + { prop: "font-variant-east-asian", value: "jis78", features: {"jp78": 1, "jp04": 0} }, + { prop: "font-variant-east-asian", value: "jis83", features: {"jp83": 1, "jp04": 0} }, + { prop: "font-variant-east-asian", value: "jis90", features: {"jp90": 1, "jp04": 0} }, + { prop: "font-variant-east-asian", value: "jis04", features: {"jp04": 1, "jp78": 0} }, + { prop: "font-variant-east-asian", value: "simplified", features: {"smpl": 1, "jp04": 0} }, + { prop: "font-variant-east-asian", value: "traditional", features: {"trad": 1, "jp04": 0} }, + { prop: "font-variant-east-asian", value: "full-width", features: {"fwid": 1, "jp04": 0} }, + { prop: "font-variant-east-asian", value: "proportional-width", features: {"pwid": 1, "jp04": 0} }, + { prop: "font-variant-east-asian", value: "ruby", features: {"ruby": 1, "jp04": 0} }, + { prop: "font-variant-east-asian", value: "jis78 full-width", features: {"jp78": 1, "fwid": 1, "jp83": 0} }, + { prop: "font-variant-east-asian", value: "jis78 full-width ruby", features: {"jp78": 1, "fwid": 1, "jp83": 0, "ruby": 1} }, + { prop: "font-variant-east-asian", value: "simplified proportional-width", features: {"smpl": 1, "pwid": 1, "jp83": 0} }, + { prop: "font-variant-east-asian", value: "ruby simplified", features: {"ruby": 1, "smpl": 1, "trad": 0} }, + + // invalid values + { prop: "font-variant-east-asian", value: "ruby normal", features: {"ruby": 0}, invalid: true }, + { prop: "font-variant-east-asian", value: "jis90 jis04", features: {"jp90": 0, "jp04": 0}, invalid: true }, + { prop: "font-variant-east-asian", value: "simplified traditional", features: {"smpl": 0, "trad": 0}, invalid: true }, + { prop: "font-variant-east-asian", value: "full-width proportional-width", features: {"fwid": 0, "pwid": 0}, invalid: true }, + { prop: "font-variant-east-asian", value: "ruby simplified ruby", features: {"ruby": 0, "smpl": 0, "jp04": 0}, invalid: true }, + { prop: "font-variant-east-asian", value: "jis78 ruby simplified", features: {"ruby": 0, "smpl": 0, "jp78": 0}, invalid: true }, + + // font-variant-ligatures + // valid values + { prop: "font-variant-ligatures", value: "none", features: {"liga": 0, "dlig": 0, "clig": 0, "calt": 0, "hlig": 0} }, + { prop: "font-variant-ligatures", value: "normal", features: {"liga": 1, "dlig": 0} }, + { prop: "font-variant-ligatures", value: "common-ligatures", features: {"liga": 1, "clig": 1, "dlig": 0, "hlig": 0, "calt": 1} }, + { prop: "font-variant-ligatures", value: "no-common-ligatures", features: {"liga": 0, "clig": 0, "dlig": 0, "hlig": 0, "calt": 1} }, + { prop: "font-variant-ligatures", value: "discretionary-ligatures", features: {"liga": 1, "clig": 1, "dlig": 1, "hlig": 0, "calt": 1} }, + { prop: "font-variant-ligatures", value: "no-discretionary-ligatures", features: {"liga": 1, "clig": 1, "dlig": 0, "hlig": 0, "calt": 1} }, + { prop: "font-variant-ligatures", value: "historical-ligatures", features: {"liga": 1, "clig": 1, "dlig": 0, "hlig": 1, "calt": 1} }, + { prop: "font-variant-ligatures", value: "no-historical-ligatures", features: {"liga": 1, "clig": 1, "dlig": 0, "hlig": 0, "calt": 1} }, + { prop: "font-variant-ligatures", value: "contextual", features: {"liga": 1, "clig": 1, "dlig": 0, "hlig": 0, "calt": 1} }, + { prop: "font-variant-ligatures", value: "no-contextual", features: {"liga": 1, "clig": 1, "dlig": 0, "hlig": 0, "calt": 0} }, + { prop: "font-variant-ligatures", value: "common-ligatures no-discretionary-ligatures", features: {"liga": 1, "clig": 1, "dlig": 0, "hlig": 0, "calt": 1} }, + { prop: "font-variant-ligatures", value: "historical-ligatures no-common-ligatures", features: {"clig": 0, "liga": 0, "dlig": 0, "hlig": 1, "calt": 1} }, + { prop: "font-variant-ligatures", value: "no-historical-ligatures discretionary-ligatures", features: {"liga": 1, "clig": 1, "dlig": 1, "hlig": 0, "calt": 1} }, + { prop: "font-variant-ligatures", value: "common-ligatures no-discretionary-ligatures historical-ligatures no-contextual", features: {"clig": 1, "dlig": 0, "hlig": 1, "liga": 1, "calt": 0} }, + + // invalid values + { prop: "font-variant-ligatures", value: "common-ligatures none", features: {"liga": 1, "clig": 1, "dlig": 0}, invalid: true }, + { prop: "font-variant-ligatures", value: "none common-ligatures", features: {"liga": 1, "clig": 1, "dlig": 0}, invalid: true }, + { prop: "font-variant-ligatures", value: "common-ligatures normal", features: {"liga": 1, "clig": 1, "dlig": 0}, invalid: true }, + { prop: "font-variant-ligatures", value: "common-ligatures no-common-ligatures", features: {"liga": 1, "clig": 1, "dlig": 0}, invalid: true }, + { prop: "font-variant-ligatures", value: "common-ligatures common-ligatures", features: {"liga": 1, "clig": 1, "dlig": 0}, invalid: true }, + { prop: "font-variant-ligatures", value: "no-historical-ligatures historical-ligatures", features: {"liga": 1, "clig": 1, "dlig": 0, "hlig": 0}, invalid: true }, + { prop: "font-variant-ligatures", value: "no-contextual contextual", features: {"liga": 1, "clig": 1, "dlig": 0, "hlig": 0}, invalid: true }, + { prop: "font-variant-ligatures", value: "no-discretionary-ligatures discretionary-ligatures", features: {"liga": 1, "clig": 1, "dlig": 0}, invalid: true }, + { prop: "font-variant-ligatures", value: "common-ligatures no-discretionary-ligatures no-common-ligatures", features: {"liga": 1, "clig": 1, "dlig": 0}, invalid: true }, + + // font-variant-numeric + // valid values + { prop: "font-variant-numeric", value: "normal", features: {"lnum": 0, "tnum": 0, "pnum": 0, "onum": 0} }, + { prop: "font-variant-numeric", value: "lining-nums", features: {"lnum": 1, "onum": 0, "pnum": 0} }, + { prop: "font-variant-numeric", value: "oldstyle-nums", features: {"lnum": 0, "onum": 1, "pnum": 0} }, + { prop: "font-variant-numeric", value: "proportional-nums", features: {"lnum": 0, "onum": 0, "pnum": 1, "tnum": 0} }, + { prop: "font-variant-numeric", value: "proportional-nums oldstyle-nums", features: {"lnum": 0, "onum": 1, "pnum": 1, "tnum": 0} }, + { prop: "font-variant-numeric", value: "tabular-nums", features: {"tnum": 1, "onum": 0, "pnum": 0} }, + { prop: "font-variant-numeric", value: "diagonal-fractions", features: {"frac": 1, "afrc": 0, "pnum": 0} }, + { prop: "font-variant-numeric", value: "stacked-fractions", features: {"frac": 0, "afrc": 1, "pnum": 0} }, + { prop: "font-variant-numeric", value: "slashed-zero", features: {"zero": 1, "pnum": 0} }, + { prop: "font-variant-numeric", value: "ordinal", features: {"ordn": 1, "pnum": 0} }, + { prop: "font-variant-numeric", value: "lining-nums diagonal-fractions", features: {"frac": 1, "afrc": 0, "lnum": 1} }, + { prop: "font-variant-numeric", value: "tabular-nums stacked-fractions", features: {"frac": 0, "afrc": 1, "tnum": 1} }, + { prop: "font-variant-numeric", value: "tabular-nums slashed-zero stacked-fractions", features: {"frac": 0, "afrc": 1, "tnum": 1, "zero": 1} }, + { prop: "font-variant-numeric", value: "proportional-nums slashed-zero diagonal-fractions oldstyle-nums ordinal", features: {"frac": 1, "afrc": 0, "tnum": 0, "pnum": 1, "onum": 1, "ordn": 1, "zero": 1} }, + + // invalid values + { prop: "font-variant-numeric", value: "lining-nums normal", features: {"lnum": 0, "onum": 0}, invalid: true }, + { prop: "font-variant-numeric", value: "lining-nums oldstyle-nums", features: {"lnum": 0, "onum": 0}, invalid: true }, + { prop: "font-variant-numeric", value: "lining-nums normal slashed-zero ordinal", features: {"lnum": 0, "onum": 0, "zero": 0}, invalid: true }, + { prop: "font-variant-numeric", value: "proportional-nums tabular-nums", features: {"pnum": 0, "tnum": 0}, invalid: true }, + { prop: "font-variant-numeric", value: "diagonal-fractions stacked-fractions", features: {"frac": 0, "afrc": 0}, invalid: true }, + { prop: "font-variant-numeric", value: "slashed-zero diagonal-fractions slashed-zero", features: {"frac": 0, "afrc": 0, "zero": 0}, invalid: true }, + { prop: "font-variant-numeric", value: "lining-nums slashed-zero diagonal-fractions oldstyle-nums", features: {"frac": 0, "afrc": 0, "zero": 0, "onum": 0}, invalid: true }, + + // font-variant-position + // valid values + { prop: "font-variant-position", value: "normal", features: {"subs": 0, "sups": 0} }, + + // note: because of fallback, can *only* test activated features here + { prop: "font-variant-position", value: "super", features: {"sups": 1} }, + { prop: "font-variant-position", value: "sub", features: {"subs": 1} }, + + // invalid values + { prop: "font-variant-position", value: "super sub", features: {"subs": 0, "sups": 0}, invalid: true }, +]; + +// note: the code below requires an array "gFeatures" from : +// layout/reftests/fonts/gsubtest/gsubtest-features.js + +// The font defines feature lookups for all OpenType features for a +// specific set of PUA codepoints, as listed in the gFeatures array. +// Using these codepoints and feature combinations, tests can be +// constructed to detect when certain features are enabled or not. + +// return a created table containing tests for a given property +// +// Ex: { prop: "font-variant-ligatures", value: "common-ligatures", features: {"liga": 1, "clig": 1, "dlig": 0, "hlig": 0} } +// +// This means that for the property 'font-variant-ligatures' with the value 'common-ligatures', the features listed should +// either be explicitly enabled or disabled. + +// propData is the prop/value list with corresponding feature assertions +// whichProp is either "all" or a specific subproperty (i.e. "font-variant-position") +// isRef is true when this is the reference +// debug outputs the prop/value pair along with the tests + +// default PASS codepoint used for reference rendering +// need to use a PUA codepoint to avoid problems related to Freetype auto-hinting +const kRefCodepoint = 0xe00c; + +function createFeatureTestTable(propData, whichProp, isRef, debug) +{ + var table = document.createElement("table"); + + if (typeof(isRef) == "undefined") { + isRef = false; + } + + if (typeof(debug) == "undefined") { + debug = false; + } + + var doAll = (whichProp == "all"); + for (var i in propData) { + var data = propData[i]; + + if (!doAll && data.prop != whichProp) continue; + + var row = document.createElement("tr"); + var invalid = false; + if ("invalid" in data) { + invalid = true; + row.className = "invalid"; + } + + var cell = document.createElement("td"); + cell.className = "prop"; + var styledecl = gPrefix + data.prop + ": " + data.value + ";"; + cell.innerHTML = styledecl; + row.appendChild(cell); + if (debug) { + table.appendChild(row); + } + + row = document.createElement("tr"); + if (invalid) { + row.className = "invalid"; + } + + cell = document.createElement("td"); + cell.className = "features"; + if (!isRef) { + cell.style.cssText = styledecl; + } + + for (var f in data.features) { + var feature = data.features[f]; + + var cp, unsupported = "F".charCodeAt(0); + var basecp = gFeatures[f]; + + if (typeof(basecp) == "undefined") { + cp = unsupported; + } else { + switch(feature) { + case 0: + cp = basecp; + break; + case 1: + cp = basecp + 1; + break; + case 2: + cp = basecp + 2; + break; + case 3: + cp = basecp + 3; + break; + default: + cp = basecp + 1; + break; + } + } + + var span = document.createElement("span"); + var cpOut = (isRef ? kRefCodepoint : cp); + span.innerHTML = "&#x" + cpOut.toString(16) + ";"; + span.title = f + "=" + feature; + cell.appendChild(span); + } + row.appendChild(cell); + table.appendChild(row); + } + + return table; +} + + diff --git a/layout/reftests/font-features/font-variant-ligatures-ref.html b/layout/reftests/font-features/font-variant-ligatures-ref.html new file mode 100644 index 000000000..525f8d50b --- /dev/null +++ b/layout/reftests/font-features/font-variant-ligatures-ref.html @@ -0,0 +1,16 @@ + + + +font-variant-ligatures test + + + + + + +
+ + + diff --git a/layout/reftests/font-features/font-variant-ligatures.html b/layout/reftests/font-features/font-variant-ligatures.html new file mode 100644 index 000000000..7547c48c6 --- /dev/null +++ b/layout/reftests/font-features/font-variant-ligatures.html @@ -0,0 +1,16 @@ + + + +font-variant-ligatures test + + + + + + +
+ + + diff --git a/layout/reftests/font-features/font-variant-numeric-ref.html b/layout/reftests/font-features/font-variant-numeric-ref.html new file mode 100644 index 000000000..795216b24 --- /dev/null +++ b/layout/reftests/font-features/font-variant-numeric-ref.html @@ -0,0 +1,16 @@ + + + +font-variant-numeric test + + + + + + +
+ + + diff --git a/layout/reftests/font-features/font-variant-numeric.html b/layout/reftests/font-features/font-variant-numeric.html new file mode 100644 index 000000000..5d40163ba --- /dev/null +++ b/layout/reftests/font-features/font-variant-numeric.html @@ -0,0 +1,16 @@ + + + +font-variant-numeric test + + + + + + +
+ + + diff --git a/layout/reftests/font-features/font-variant-position-ref.html b/layout/reftests/font-features/font-variant-position-ref.html new file mode 100644 index 000000000..aaf18aec6 --- /dev/null +++ b/layout/reftests/font-features/font-variant-position-ref.html @@ -0,0 +1,16 @@ + + + +font-variant-position test + + + + + + +
+ + + diff --git a/layout/reftests/font-features/font-variant-position.html b/layout/reftests/font-features/font-variant-position.html new file mode 100644 index 000000000..f0d63ddb9 --- /dev/null +++ b/layout/reftests/font-features/font-variant-position.html @@ -0,0 +1,16 @@ + + + +font-variant-position test + + + + + + +
+ + + diff --git a/layout/reftests/font-features/font-variant-ref.html b/layout/reftests/font-features/font-variant-ref.html new file mode 100644 index 000000000..6fd182e87 --- /dev/null +++ b/layout/reftests/font-features/font-variant-ref.html @@ -0,0 +1,16 @@ + + + +font-variant shorthand test + + + + + + +
+ + + diff --git a/layout/reftests/font-features/font-variant.html b/layout/reftests/font-features/font-variant.html new file mode 100644 index 000000000..bde0cd6c2 --- /dev/null +++ b/layout/reftests/font-features/font-variant.html @@ -0,0 +1,16 @@ + + + +font-variant shorthand test + + + + + + +
+ + + diff --git a/layout/reftests/font-features/fwid-spaces-ref.html b/layout/reftests/font-features/fwid-spaces-ref.html new file mode 100644 index 000000000..5183bf1d4 --- /dev/null +++ b/layout/reftests/font-features/fwid-spaces-ref.html @@ -0,0 +1,37 @@ + + + +Full-width variations of regular spaces + + + + + + +

Rows should all be the same length:

+
+
 a b c A B C 
+
 a b c A B C 
+
ba bA bb bB c
+
ba bA bb bB c
+
+ + \ No newline at end of file diff --git a/layout/reftests/font-features/fwid-spaces.html b/layout/reftests/font-features/fwid-spaces.html new file mode 100644 index 000000000..7c8c55fe0 --- /dev/null +++ b/layout/reftests/font-features/fwid-spaces.html @@ -0,0 +1,39 @@ + + + +Full-width variations of regular spaces + + + + + + +

Rows should all be the same length:

+
+
 a b c A B C 
+
 a b c A B C 
+
ba bA bb bB c
+
ba bA bb bB c
+
+ + \ No newline at end of file diff --git a/layout/reftests/font-features/kerning-sanity-check-default.html b/layout/reftests/font-features/kerning-sanity-check-default.html new file mode 100644 index 000000000..aa2f1afbe --- /dev/null +++ b/layout/reftests/font-features/kerning-sanity-check-default.html @@ -0,0 +1,37 @@ + + + +kerning sanity checks + + + + + +
+
AWAY
+
+ + \ No newline at end of file diff --git a/layout/reftests/font-features/kerning-sanity-check-kern.html b/layout/reftests/font-features/kerning-sanity-check-kern.html new file mode 100644 index 000000000..66225cd37 --- /dev/null +++ b/layout/reftests/font-features/kerning-sanity-check-kern.html @@ -0,0 +1,38 @@ + + + +kerning sanity checks + + + + + +
+
AWAY
+
+ + \ No newline at end of file diff --git a/layout/reftests/font-features/kerning-sanity-check-nokern.html b/layout/reftests/font-features/kerning-sanity-check-nokern.html new file mode 100644 index 000000000..1b49441f5 --- /dev/null +++ b/layout/reftests/font-features/kerning-sanity-check-nokern.html @@ -0,0 +1,38 @@ + + + +kerning sanity checks + + + + + +
+
AWAY
+
+ + \ No newline at end of file diff --git a/layout/reftests/font-features/kerning-spaces-arial-default.html b/layout/reftests/font-features/kerning-spaces-arial-default.html new file mode 100644 index 000000000..995184318 --- /dev/null +++ b/layout/reftests/font-features/kerning-spaces-arial-default.html @@ -0,0 +1,44 @@ + + + +testing contextual kerning with spaces + + + + + +
+
Q A Q
+
Q L Q
+
Q P Q
+
Q T Q
+
Q Y Q
+
Q Α Q
+
Q Δ Q
+
Q Λ Q
+
Q Ρ Q
+
Q Τ Q
+
Q Υ Q
+
Q Ϋ Q
+
Q ’ Q
+
+ + \ No newline at end of file diff --git a/layout/reftests/font-features/kerning-spaces-arial-kern.html b/layout/reftests/font-features/kerning-spaces-arial-kern.html new file mode 100644 index 000000000..7b859073d --- /dev/null +++ b/layout/reftests/font-features/kerning-spaces-arial-kern.html @@ -0,0 +1,45 @@ + + + +testing contextual kerning with spaces + + + + + +
+
Q A Q
+
Q L Q
+
Q P Q
+
Q T Q
+
Q Y Q
+
Q Α Q
+
Q Δ Q
+
Q Λ Q
+
Q Ρ Q
+
Q Τ Q
+
Q Υ Q
+
Q Ϋ Q
+
Q ’ Q
+
+ + \ No newline at end of file diff --git a/layout/reftests/font-features/kerning-spaces-arial-nokern.html b/layout/reftests/font-features/kerning-spaces-arial-nokern.html new file mode 100644 index 000000000..d73007bac --- /dev/null +++ b/layout/reftests/font-features/kerning-spaces-arial-nokern.html @@ -0,0 +1,45 @@ + + + +testing contextual kerning with spaces + + + + + +
+
Q A Q
+
Q L Q
+
Q P Q
+
Q T Q
+
Q Y Q
+
Q Α Q
+
Q Δ Q
+
Q Λ Q
+
Q Ρ Q
+
Q Τ Q
+
Q Υ Q
+
Q Ϋ Q
+
Q ’ Q
+
+ + \ No newline at end of file diff --git a/layout/reftests/font-features/kerning-spaces-tnr-default.html b/layout/reftests/font-features/kerning-spaces-tnr-default.html new file mode 100644 index 000000000..c1b1eeb98 --- /dev/null +++ b/layout/reftests/font-features/kerning-spaces-tnr-default.html @@ -0,0 +1,46 @@ + + + +testing contextual kerning with spaces + + + + + +
+
Q A Q
+
Q L Q
+
Q P Q
+
Q T Q
+
Q V Q
+
Q W Q
+
Q Y Q
+
Q Ά Q
+
Q Α Q
+
Q Δ Q
+
Q Λ Q
+
Q Τ Q
+
Q Υ Q
+
Q Ϋ Q
+
Q ’ Q
+
+ + \ No newline at end of file diff --git a/layout/reftests/font-features/kerning-spaces-tnr-kern.html b/layout/reftests/font-features/kerning-spaces-tnr-kern.html new file mode 100644 index 000000000..18dbc1861 --- /dev/null +++ b/layout/reftests/font-features/kerning-spaces-tnr-kern.html @@ -0,0 +1,47 @@ + + + +testing contextual kerning with spaces + + + + + +
+
Q A Q
+
Q L Q
+
Q P Q
+
Q T Q
+
Q V Q
+
Q W Q
+
Q Y Q
+
Q Ά Q
+
Q Α Q
+
Q Δ Q
+
Q Λ Q
+
Q Τ Q
+
Q Υ Q
+
Q Ϋ Q
+
Q ’ Q
+
+ + \ No newline at end of file diff --git a/layout/reftests/font-features/kerning-spaces-tnr-nokern.html b/layout/reftests/font-features/kerning-spaces-tnr-nokern.html new file mode 100644 index 000000000..0e033454c --- /dev/null +++ b/layout/reftests/font-features/kerning-spaces-tnr-nokern.html @@ -0,0 +1,47 @@ + + + +testing contextual kerning with spaces + + + + + +
+
Q A Q
+
Q L Q
+
Q P Q
+
Q T Q
+
Q V Q
+
Q W Q
+
Q Y Q
+
Q Ά Q
+
Q Α Q
+
Q Δ Q
+
Q Λ Q
+
Q Τ Q
+
Q Υ Q
+
Q Ϋ Q
+
Q ’ Q
+
+ + \ No newline at end of file diff --git a/layout/reftests/font-features/reftest-stylo.list b/layout/reftests/font-features/reftest-stylo.list new file mode 100644 index 000000000..e8357d035 --- /dev/null +++ b/layout/reftests/font-features/reftest-stylo.list @@ -0,0 +1,137 @@ +# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing +# Tests for opentype font feature control (bug 511339) +# +# These rely on the Linux Libertine font (loaded via @font-face) +# to ensure that features are present. + +# check that Turkish language causes a change in rendering (no fi ligature) +# (also works via Pango) +skip-if(B2G||Mulet) HTTP(..) == font-features-turkish.html font-features-turkish.html +# bug 773482 +# Initial mulet triage: parity with B2G/B2G Desktop + +# check that disabling ligatures causes a change +HTTP(..) == font-features-noliga.html font-features-noliga.html + +# check that enabling optional ligatures causes a change +HTTP(..) == font-features-hlig.html font-features-hlig.html + +# compare Turkish rendering with reference using ZWNJ to break the ligature +HTTP(..) == font-features-turkish.html font-features-turkish.html + +# compare Turkish rendering with explicitly disabled ligatures +HTTP(..) == font-features-turkish.html font-features-turkish.html + +# The following should pass even if feature support isn't available, +# because both testcase and reference will have the default rendering, +# though they're not really meaningful unless the tests above passed already. + +# compare feature specified within @font-face to same feature in style rule +HTTP(..) == font-features-hlig-2.html font-features-hlig-2.html +HTTP(..) == font-features-hlig-4.html font-features-hlig-4.html +HTTP(..) == font-features-hlig-5.html font-features-hlig-5.html +HTTP(..) == font-features-ligatures-none.html font-features-ligatures-none.html + +# check that feature in style rule overrides @font-face +skip-if(B2G||Mulet) HTTP(..) == font-features-hlig-3.html font-features-hlig-3.html +# bug 773482 +# Initial mulet triage: parity with B2G/B2G Desktop + +# compare font-language-override rendering to lang-tagged rendering +skip-if(B2G||Mulet) HTTP(..) == font-features-turkish-override-1.html font-features-turkish-override-1.html +# bug 773482 +# Initial mulet triage: parity with B2G/B2G Desktop +HTTP(..) == font-features-turkish-override-2.html font-features-turkish-override-2.html + +# check use of font-language-override to override explicit lang tag +HTTP(..) == font-features-turkish-override-3.html font-features-turkish-override-3.html +HTTP(..) == font-features-turkish-override-4.html font-features-turkish-override-4.html +skip-if(B2G||Mulet) HTTP(..) == font-features-turkish-override-5.html font-features-turkish-override-5.html +# bug 773482 +# Initial mulet triage: parity with B2G/B2G Desktop + +# check that last value wins if a feature is repeated +HTTP(..) == font-features-order-1.html font-features-order-1.html +HTTP(..) == font-features-order-2.html font-features-order-2.html + +# check priority of feature settings vs. font-variant subproperty +HTTP(..) == font-features-order-3.html font-features-order-3.html +HTTP(..) == font-features-order-4.html font-features-order-4.html +HTTP(..) == font-features-order-5.html font-features-order-5.html + +# check priority involving feature settings and font-variant-alternates +HTTP(..) == alternates-order.html alternates-order.html + +# check that font-specific values line up with @font-face feature settings +HTTP(..) == annotations.html annotations.html + +# font-variant subproperties +# test for specific features being on and others off, based on prop values +# (debug problems with font-variant-debug.html which displays all props) +skip == font-variant-alternates.html font-variant-alternates.html +# MULET: Bug 1144079: Re-enable Mulet mochitests and reftests taskcluster-specific disables +skip == font-variant-caps.html font-variant-caps.html +# MULET: Bug 1144079: Re-enable Mulet mochitests and reftests taskcluster-specific disables +skip == font-variant-east-asian.html font-variant-east-asian.html +# MULET: Bug 1144079: Re-enable Mulet mochitests and reftests taskcluster-specific disables +skip == font-variant-ligatures.html font-variant-ligatures.html +# MULET: Bug 1144079: Re-enable Mulet mochitests and reftests taskcluster-specific disables +skip == font-variant-numeric.html font-variant-numeric.html +# MULET: Bug 1144079: Re-enable Mulet mochitests and reftests taskcluster-specific disables +skip == font-variant-position.html font-variant-position.html +# MULET: Bug 1144079: Re-enable Mulet mochitests and reftests taskcluster-specific disables + +# font-kerning +HTTP(..) == font-kerning-normal.html font-kerning-normal.html +HTTP(..) == font-kerning-auto.html font-kerning-auto.html +HTTP(..) == font-kerning-auto.html font-kerning-auto.html +HTTP(..) == font-kerning-normal.html font-kerning-normal.html +HTTP(..) == font-kerning-none.html font-kerning-none.html +HTTP(..) == font-kerning-1.html font-kerning-1.html +HTTP(..) == font-kerning-2.html font-kerning-2.html +HTTP(..) == font-kerning-3.html font-kerning-3.html +HTTP(..) == font-kerning-table-none.html font-kerning-table-none.html + +# sanity check for kerning - with no spaces, kerning should occur +HTTP(..) == kerning-sanity-check-kern.html kerning-sanity-check-kern.html +HTTP(..) == kerning-sanity-check-nokern.html kerning-sanity-check-nokern.html + +# OpenType features should work across inter-word spaces +HTTP(..) == font-features-across-space-1.html font-features-across-space-1.html +HTTP(..) == spacelookups.html spacelookups.html +# tests whether word cache is in use by testing for ignored space kerns +HTTP(..) == spacelookups-wordcache.html spacelookups-wordcache.html +# requires Japanese font with feature support, WinXP lacks one +random-if(!winWidget&&!cocoaWidget) fails-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) HTTP(..) == fwid-spaces.html fwid-spaces.html +# Arial/Times New Roman on Win7+/OSX 10.6+ have kerning pairs that include spaces +random-if(!winWidget&&!cocoaWidget) fails-if(winWidget||cocoaWidget) random-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) HTTP(..) == kerning-spaces-arial-nokern.html kerning-spaces-arial-nokern.html +random-if(!winWidget&&!cocoaWidget) fails-if(winWidget||cocoaWidget) random-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) HTTP(..) == kerning-spaces-arial-kern.html kerning-spaces-arial-kern.html +random-if(!winWidget&&!cocoaWidget) fails-if(winWidget||cocoaWidget) random-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) HTTP(..) == kerning-spaces-tnr-nokern.html kerning-spaces-tnr-nokern.html +random-if(!winWidget&&!cocoaWidget) fails-if(winWidget||cocoaWidget) random-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) HTTP(..) == kerning-spaces-tnr-kern.html kerning-spaces-tnr-kern.html + +# font-variant-caps fallback +# -- sanity check - none of these should look like the default rendering +HTTP(..) == caps-fallback-smallcaps1.html caps-fallback-smallcaps1.html +HTTP(..) == caps-fallback-smallcaps2.html caps-fallback-smallcaps2.html +HTTP(..) == caps-fallback-petitecaps.html caps-fallback-petitecaps.html +HTTP(..) == caps-fallback-allsmallcaps.html caps-fallback-allsmallcaps.html +HTTP(..) == caps-fallback-allpetitecaps.html caps-fallback-allpetitecaps.html +# -- normal or fallback rendering +HTTP(..) == caps-fallback-smallcaps1.html caps-fallback-smallcaps1.html +HTTP(..) == caps-fallback-smallcaps2.html caps-fallback-smallcaps2.html +HTTP(..) == caps-fallback-petitecaps.html caps-fallback-petitecaps.html +HTTP(..) == caps-fallback-allsmallcaps.html caps-fallback-allsmallcaps.html +HTTP(..) == caps-fallback-allpetitecaps.html caps-fallback-allpetitecaps.html + +# font-variant-position fallback +random-if(cocoaWidget||Android) HTTP(..) == subsuper-fallback.html subsuper-fallback.html +# bug 1139269 +HTTP(..) == subsuper-fallback.html subsuper-fallback.html +HTTP(..) == subsuper-fallback.html subsuper-fallback.html +HTTP(..) == subsuper-fallback.html subsuper-fallback.html +HTTP(..) == subsuper-fallback-omega.html subsuper-fallback-omega.html +HTTP(..) == subsuper-nofallback.html subsuper-nofallback.html +random-if(cocoaWidget) HTTP(..) == subsuper-nofallback.html subsuper-nofallback.html +# bug 1139269 +HTTP(..) == subsuper-nofallback.html subsuper-nofallback.html +HTTP(..) == subsuper-fallback-size.html subsuper-fallback-size.html diff --git a/layout/reftests/font-features/reftest.list b/layout/reftests/font-features/reftest.list new file mode 100644 index 000000000..e91d864db --- /dev/null +++ b/layout/reftests/font-features/reftest.list @@ -0,0 +1,120 @@ +# Tests for opentype font feature control (bug 511339) +# +# These rely on the Linux Libertine font (loaded via @font-face) +# to ensure that features are present. + +# check that Turkish language causes a change in rendering (no fi ligature) +# (also works via Pango) +HTTP(..) != font-features-turkish.html font-features-ref.html + +# check that disabling ligatures causes a change +HTTP(..) != font-features-noliga.html font-features-ref.html + +# check that enabling optional ligatures causes a change +HTTP(..) != font-features-hlig.html font-features-ref.html + +# compare Turkish rendering with reference using ZWNJ to break the ligature +HTTP(..) == font-features-turkish.html font-features-turkish-ref.html + +# compare Turkish rendering with explicitly disabled ligatures +HTTP(..) == font-features-turkish.html font-features-noliga.html + +# The following should pass even if feature support isn't available, +# because both testcase and reference will have the default rendering, +# though they're not really meaningful unless the tests above passed already. + +# compare feature specified within @font-face to same feature in style rule +HTTP(..) == font-features-hlig-2.html font-features-hlig.html +HTTP(..) == font-features-hlig-4.html font-features-hlig.html +HTTP(..) != font-features-hlig-5.html font-features-hlig.html +HTTP(..) == font-features-ligatures-none.html font-features-noliga.html + +# check that feature in style rule overrides @font-face +HTTP(..) == font-features-hlig-3.html font-features-noliga.html + +# compare font-language-override rendering to lang-tagged rendering +HTTP(..) == font-features-turkish-override-1.html font-features-turkish.html +HTTP(..) == font-features-turkish-override-2.html font-features-turkish.html + +# check use of font-language-override to override explicit lang tag +HTTP(..) == font-features-turkish-override-3.html font-features-ref.html +HTTP(..) == font-features-turkish-override-4.html font-features-ref.html +HTTP(..) == font-features-turkish-override-5.html font-features-turkish.html + +# check that last value wins if a feature is repeated +HTTP(..) == font-features-order-1.html font-features-ref.html +HTTP(..) == font-features-order-2.html font-features-noliga.html + +# check priority of feature settings vs. font-variant subproperty +HTTP(..) == font-features-order-3.html font-features-noliga.html +HTTP(..) == font-features-order-4.html font-features-noliga.html +HTTP(..) == font-features-order-5.html font-features-hlig.html + +# check priority involving feature settings and font-variant-alternates +HTTP(..) == alternates-order.html alternates-order-ref.html + +# check that font-specific values line up with @font-face feature settings +HTTP(..) == annotations.html annotations-ref.html + +# font-variant subproperties +# test for specific features being on and others off, based on prop values +# (debug problems with font-variant-debug.html which displays all props) +HTTP(..) == font-variant-alternates.html font-variant-alternates-ref.html +HTTP(..) == font-variant-caps.html font-variant-caps-ref.html +HTTP(..) == font-variant-east-asian.html font-variant-east-asian-ref.html +HTTP(..) == font-variant-ligatures.html font-variant-ligatures-ref.html +HTTP(..) == font-variant-numeric.html font-variant-numeric-ref.html +HTTP(..) == font-variant-position.html font-variant-position-ref.html + +# font-kerning +HTTP(..) != font-kerning-normal.html font-kerning-none.html +HTTP(..) != font-kerning-auto.html font-kerning-none.html +HTTP(..) == font-kerning-auto.html font-kerning-normal.html +HTTP(..) == font-kerning-normal.html font-kerning-kern.html +HTTP(..) == font-kerning-none.html font-kerning-nokern.html +HTTP(..) == font-kerning-1.html font-kerning-none.html +HTTP(..) == font-kerning-2.html font-kerning-normal.html +HTTP(..) == font-kerning-3.html font-kerning-none.html +HTTP(..) != font-kerning-table-none.html font-kerning-table-normal.html + +# sanity check for kerning - with no spaces, kerning should occur +HTTP(..) == kerning-sanity-check-kern.html kerning-sanity-check-default.html +HTTP(..) != kerning-sanity-check-nokern.html kerning-sanity-check-default.html + +# OpenType features should work across inter-word spaces +HTTP(..) == font-features-across-space-1.html font-features-across-space-1-ref.html +HTTP(..) == spacelookups.html spacelookups-ref.html +# tests whether word cache is in use by testing for ignored space kerns +HTTP(..) == spacelookups-wordcache.html spacelookups-wordcache-ref.html +# requires Japanese font with feature support, WinXP lacks one +random-if(!winWidget&&!cocoaWidget) fails-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) HTTP(..) == fwid-spaces.html fwid-spaces-ref.html +# Arial/Times New Roman on Win7+/OSX 10.6+ have kerning pairs that include spaces +random-if(!winWidget&&!cocoaWidget) fails-if(winWidget||cocoaWidget) random-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) HTTP(..) != kerning-spaces-arial-nokern.html kerning-spaces-arial-default.html +random-if(!winWidget&&!cocoaWidget) fails-if(winWidget||cocoaWidget) random-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) HTTP(..) == kerning-spaces-arial-kern.html kerning-spaces-arial-default.html +random-if(!winWidget&&!cocoaWidget) fails-if(winWidget||cocoaWidget) random-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) HTTP(..) != kerning-spaces-tnr-nokern.html kerning-spaces-tnr-default.html +random-if(!winWidget&&!cocoaWidget) fails-if(winWidget||cocoaWidget) random-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) HTTP(..) == kerning-spaces-tnr-kern.html kerning-spaces-tnr-default.html + +# font-variant-caps fallback +# -- sanity check - none of these should look like the default rendering +HTTP(..) != caps-fallback-smallcaps1.html caps-fallback-default.html +HTTP(..) != caps-fallback-smallcaps2.html caps-fallback-default.html +HTTP(..) != caps-fallback-petitecaps.html caps-fallback-default.html +HTTP(..) != caps-fallback-allsmallcaps.html caps-fallback-default.html +HTTP(..) != caps-fallback-allpetitecaps.html caps-fallback-default.html +# -- normal or fallback rendering +HTTP(..) == caps-fallback-smallcaps1.html caps-fallback-smcp.html +HTTP(..) == caps-fallback-smallcaps2.html caps-fallback-smcp.html +HTTP(..) == caps-fallback-petitecaps.html caps-fallback-smcp.html +HTTP(..) == caps-fallback-allsmallcaps.html caps-fallback-smcpc2sc.html +HTTP(..) == caps-fallback-allpetitecaps.html caps-fallback-smcpc2sc.html + +# font-variant-position fallback +random-if(cocoaWidget||Android) HTTP(..) == subsuper-fallback.html subsuper-fallback-ref.html # bug 1139269 +HTTP(..) != subsuper-fallback.html subsuper-fallback-notref1.html +HTTP(..) != subsuper-fallback.html subsuper-fallback-notref2.html +HTTP(..) != subsuper-fallback.html subsuper-fallback-notref3.html +HTTP(..) != subsuper-fallback-omega.html subsuper-fallback-omega-notref.html +HTTP(..) == subsuper-nofallback.html subsuper-nofallback-ref1.html +random-if(cocoaWidget) HTTP(..) == subsuper-nofallback.html subsuper-nofallback-ref2.html # bug 1139269 +HTTP(..) != subsuper-nofallback.html subsuper-nofallback-notref.html +HTTP(..) == subsuper-fallback-size.html subsuper-fallback-size-ref.html diff --git a/layout/reftests/font-features/spacelookups-ref.html b/layout/reftests/font-features/spacelookups-ref.html new file mode 100644 index 000000000..020671730 --- /dev/null +++ b/layout/reftests/font-features/spacelookups-ref.html @@ -0,0 +1,33 @@ + + + +contextual substitutions for fonts with spaces in lookups + + + + + + +
+ + + + + + +
+ + diff --git a/layout/reftests/font-features/spacelookups-wordcache-ref.html b/layout/reftests/font-features/spacelookups-wordcache-ref.html new file mode 100644 index 000000000..cd6af0cf4 --- /dev/null +++ b/layout/reftests/font-features/spacelookups-wordcache-ref.html @@ -0,0 +1,81 @@ + + + +contextual substitutions for fonts with spaces in lookups + + + + + + +
+

     

+

     

+

     

+

     

+

     

+

     

+

     

+

     

+

     

+
+ + diff --git a/layout/reftests/font-features/spacelookups-wordcache.html b/layout/reftests/font-features/spacelookups-wordcache.html new file mode 100644 index 000000000..a3bd642b2 --- /dev/null +++ b/layout/reftests/font-features/spacelookups-wordcache.html @@ -0,0 +1,76 @@ + + + +contextual substitutions for fonts with spaces in lookups + + + + + + + +
+

latn-script default-script fra-lang default-lang non-default-feature default-feature

+

latn-script default-script fra-lang default-lang non-default-feature default-feature

+

latn-script default-script fra-lang default-lang non-default-feature default-feature

+

latn-script default-script fra-lang default-lang non-default-feature default-feature

+

latn-script default-script fra-lang default-lang non-default-feature default-feature

+

latn-script default-script fra-lang default-lang non-default-feature default-feature

+

latn-script default-script fra-lang default-lang non-default-feature default-feature

+

latn-script default-script fra-lang default-lang non-default-feature default-feature

+

latn-script default-script fra-lang default-lang non-default-feature default-feature

+
+ + diff --git a/layout/reftests/font-features/spacelookups.html b/layout/reftests/font-features/spacelookups.html new file mode 100644 index 000000000..ab22ac979 --- /dev/null +++ b/layout/reftests/font-features/spacelookups.html @@ -0,0 +1,82 @@ + + + +contextual substitutions for fonts with spaces in lookups + + + + + + + + + + + + +
+default-script default-lang default-feature +default-script default-lang non-default-feature +latn-script default-lang default-feature +latn-script default-lang non-default-feature +latn-script fra-lang default-feature +latn-script fra-lang non-default-feature +
+ + diff --git a/layout/reftests/font-features/subsuper-fallback-notref1.html b/layout/reftests/font-features/subsuper-fallback-notref1.html new file mode 100644 index 000000000..375d855fd --- /dev/null +++ b/layout/reftests/font-features/subsuper-fallback-notref1.html @@ -0,0 +1,32 @@ + + + +font-variant-position fallback + + + + +

All the subscripts and superscripts should display with synthesized glyphs:

+

3nC2n n3Cn2

+

C π3Cπ2

+

3💩C2💩 💩3C💩2

+ + diff --git a/layout/reftests/font-features/subsuper-fallback-notref2.html b/layout/reftests/font-features/subsuper-fallback-notref2.html new file mode 100644 index 000000000..40a89965b --- /dev/null +++ b/layout/reftests/font-features/subsuper-fallback-notref2.html @@ -0,0 +1,32 @@ + + + +font-variant-position fallback + + + + +

All the subscripts and superscripts should display with synthesized glyphs:

+

₃nC²n n₃C

+

₃πC²π π₃Cπ²

+

₃💩C²💩 💩₃C💩²

+ + diff --git a/layout/reftests/font-features/subsuper-fallback-notref3.html b/layout/reftests/font-features/subsuper-fallback-notref3.html new file mode 100644 index 000000000..945c8b8a5 --- /dev/null +++ b/layout/reftests/font-features/subsuper-fallback-notref3.html @@ -0,0 +1,41 @@ + + + +font-variant-position fallback + + + + +

All the subscripts and superscripts should display with synthesized glyphs:

+

₃nC²n n₃C

+

₃πC²π π₃Cπ²

+

3💩C2💩 💩3C💩2

+ + diff --git a/layout/reftests/font-features/subsuper-fallback-omega-notref.html b/layout/reftests/font-features/subsuper-fallback-omega-notref.html new file mode 100644 index 000000000..3ecc8a3ff --- /dev/null +++ b/layout/reftests/font-features/subsuper-fallback-omega-notref.html @@ -0,0 +1,30 @@ + + + +font-variant-position fallback + + + + +

+

e₂

+ + diff --git a/layout/reftests/font-features/subsuper-fallback-omega.html b/layout/reftests/font-features/subsuper-fallback-omega.html new file mode 100644 index 000000000..f27af2d48 --- /dev/null +++ b/layout/reftests/font-features/subsuper-fallback-omega.html @@ -0,0 +1,32 @@ + + + +font-variant-position fallback + + + + +

e

+

e

+ + diff --git a/layout/reftests/font-features/subsuper-fallback-ref.html b/layout/reftests/font-features/subsuper-fallback-ref.html new file mode 100644 index 000000000..32b665a51 --- /dev/null +++ b/layout/reftests/font-features/subsuper-fallback-ref.html @@ -0,0 +1,34 @@ + + + +font-variant-position fallback + + + + +

All the subscripts and superscripts should display with synthesized glyphs:

+

3nC2n n3Cn2

+

C π3Cπ2

+

3💩C2💩 💩3C💩2

+ + diff --git a/layout/reftests/font-features/subsuper-fallback-size-ref.html b/layout/reftests/font-features/subsuper-fallback-size-ref.html new file mode 100644 index 000000000..e6e911194 --- /dev/null +++ b/layout/reftests/font-features/subsuper-fallback-size-ref.html @@ -0,0 +1,36 @@ + + + +font-variant-position fallback + + + + +

The black bars should NOT be the same length

+

 XXXXXXXXXX 

+

 XXXXXXXXX

+

 XXXXXXXXX

+ + diff --git a/layout/reftests/font-features/subsuper-fallback-size.html b/layout/reftests/font-features/subsuper-fallback-size.html new file mode 100644 index 000000000..e042319cb --- /dev/null +++ b/layout/reftests/font-features/subsuper-fallback-size.html @@ -0,0 +1,37 @@ + + + +font-variant-position fallback + + + + +

The black bars should NOT be the same length

+

 XXXXXXXXXX 

+

 XXXXXXXXX

+

 XXXXXXXXX

+ + diff --git a/layout/reftests/font-features/subsuper-fallback.html b/layout/reftests/font-features/subsuper-fallback.html new file mode 100644 index 000000000..28092d90c --- /dev/null +++ b/layout/reftests/font-features/subsuper-fallback.html @@ -0,0 +1,34 @@ + + + +font-variant-position fallback + + + + +

All the subscripts and superscripts should display with synthesized glyphs:

+

3nC2n n3Cn2

+

C π3Cπ2

+

3💩C2💩 💩3C💩2

+ + diff --git a/layout/reftests/font-features/subsuper-nofallback-notref.html b/layout/reftests/font-features/subsuper-nofallback-notref.html new file mode 100644 index 000000000..5dfd66218 --- /dev/null +++ b/layout/reftests/font-features/subsuper-nofallback-notref.html @@ -0,0 +1,34 @@ + + + +font-variant-position fallback + + + + +

All the subscripts and superscripts should display with variant glyphs:

+

+3C2 +(3)C(2) +21+3C45 +

+ + diff --git a/layout/reftests/font-features/subsuper-nofallback-ref1.html b/layout/reftests/font-features/subsuper-nofallback-ref1.html new file mode 100644 index 000000000..2c015d026 --- /dev/null +++ b/layout/reftests/font-features/subsuper-nofallback-ref1.html @@ -0,0 +1,43 @@ + + + +font-variant-position fallback + + + + +

All the subscripts and superscripts should display with variant glyphs:

+

+3C2 +(3)C(2) +21+3C45 +

+ + diff --git a/layout/reftests/font-features/subsuper-nofallback-ref2.html b/layout/reftests/font-features/subsuper-nofallback-ref2.html new file mode 100644 index 000000000..332e03177 --- /dev/null +++ b/layout/reftests/font-features/subsuper-nofallback-ref2.html @@ -0,0 +1,35 @@ + + + +font-variant-position fallback + + + + +

All the subscripts and superscripts should display with variant glyphs:

+

+C² +₍₃₎C⁽²⁾ +₂₁₊₃C⁴⁵ +

+ + diff --git a/layout/reftests/font-features/subsuper-nofallback.html b/layout/reftests/font-features/subsuper-nofallback.html new file mode 100644 index 000000000..92d1ccd3f --- /dev/null +++ b/layout/reftests/font-features/subsuper-nofallback.html @@ -0,0 +1,36 @@ + + + +font-variant-position fallback + + + + +

All the subscripts and superscripts should display with variant glyphs:

+

+3C2 +(3)C(2) +21+3C45 +

+ + -- cgit v1.2.3