summaryrefslogtreecommitdiffstats
path: root/layout/reftests/indic-shaping
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /layout/reftests/indic-shaping
parentInitial commit. (diff)
downloadfirefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz
firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'layout/reftests/indic-shaping')
-rw-r--r--layout/reftests/indic-shaping/686225-1-bangla-aat-notref.html5
-rw-r--r--layout/reftests/indic-shaping/686225-1-bangla-aat.html5
-rw-r--r--layout/reftests/indic-shaping/686225-2-kannada-aat-notref.html5
-rw-r--r--layout/reftests/indic-shaping/686225-2-kannada-aat.html5
-rw-r--r--layout/reftests/indic-shaping/balinese-1-ref.html19
-rw-r--r--layout/reftests/indic-shaping/balinese-1.html19
-rw-r--r--layout/reftests/indic-shaping/bengali-1-ref.html27
-rw-r--r--layout/reftests/indic-shaping/bengali-1a.html27
-rw-r--r--layout/reftests/indic-shaping/bengali-1b.html27
-rw-r--r--layout/reftests/indic-shaping/bengali-2-ref.html28
-rw-r--r--layout/reftests/indic-shaping/bengali-2a.html28
-rw-r--r--layout/reftests/indic-shaping/bengali-2b.html28
-rw-r--r--layout/reftests/indic-shaping/bengali-3-ref.html27
-rw-r--r--layout/reftests/indic-shaping/bengali-3a.html27
-rw-r--r--layout/reftests/indic-shaping/bengali-3b.html27
-rw-r--r--layout/reftests/indic-shaping/bengali-3c.html27
-rw-r--r--layout/reftests/indic-shaping/devanagari-1-ref.html27
-rw-r--r--layout/reftests/indic-shaping/devanagari-1a.html27
-rw-r--r--layout/reftests/indic-shaping/devanagari-1b.html27
-rw-r--r--layout/reftests/indic-shaping/devanagari-2-ref.html27
-rw-r--r--layout/reftests/indic-shaping/devanagari-2.html27
-rw-r--r--layout/reftests/indic-shaping/devanagari-3-ref.html27
-rw-r--r--layout/reftests/indic-shaping/devanagari-3a.html27
-rw-r--r--layout/reftests/indic-shaping/devanagari-3b.html27
-rw-r--r--layout/reftests/indic-shaping/devanagari-4-notref.html27
-rw-r--r--layout/reftests/indic-shaping/devanagari-4.html27
-rw-r--r--layout/reftests/indic-shaping/gujarati-1-ref.html27
-rw-r--r--layout/reftests/indic-shaping/gujarati-1a.html27
-rw-r--r--layout/reftests/indic-shaping/gujarati-1b.html27
-rw-r--r--layout/reftests/indic-shaping/gujarati-2-ref.html27
-rw-r--r--layout/reftests/indic-shaping/gujarati-2.html27
-rw-r--r--layout/reftests/indic-shaping/gujarati-3-ref.html27
-rw-r--r--layout/reftests/indic-shaping/gujarati-3a.html27
-rw-r--r--layout/reftests/indic-shaping/gujarati-3b.html27
-rw-r--r--layout/reftests/indic-shaping/gujarati-4-notref.html27
-rw-r--r--layout/reftests/indic-shaping/gujarati-4.html27
-rw-r--r--layout/reftests/indic-shaping/reftest.list27
37 files changed, 898 insertions, 0 deletions
diff --git a/layout/reftests/indic-shaping/686225-1-bangla-aat-notref.html b/layout/reftests/indic-shaping/686225-1-bangla-aat-notref.html
new file mode 100644
index 0000000000..bf4825762f
--- /dev/null
+++ b/layout/reftests/indic-shaping/686225-1-bangla-aat-notref.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<div style="font:36px Bangla MN">
+&#x09ad;&#x09be;&#x09b2;&#x200c;&#x09cb;&#x09be;
+</div>
diff --git a/layout/reftests/indic-shaping/686225-1-bangla-aat.html b/layout/reftests/indic-shaping/686225-1-bangla-aat.html
new file mode 100644
index 0000000000..9694d8f3e7
--- /dev/null
+++ b/layout/reftests/indic-shaping/686225-1-bangla-aat.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<div style="font:36px Bangla MN">
+&#x09AD;&#x09BE;&#x09B2;&#x09CB;
+</div>
diff --git a/layout/reftests/indic-shaping/686225-2-kannada-aat-notref.html b/layout/reftests/indic-shaping/686225-2-kannada-aat-notref.html
new file mode 100644
index 0000000000..b8a8107efc
--- /dev/null
+++ b/layout/reftests/indic-shaping/686225-2-kannada-aat-notref.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<div style="font:36px Kannada MN">
+&#x0C95;&#x200c;&#x0CC0;&#x0CD5;
+</div>
diff --git a/layout/reftests/indic-shaping/686225-2-kannada-aat.html b/layout/reftests/indic-shaping/686225-2-kannada-aat.html
new file mode 100644
index 0000000000..fcaddfb260
--- /dev/null
+++ b/layout/reftests/indic-shaping/686225-2-kannada-aat.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<div style="font:36px Kannada MN">
+&#x0C95;&#x0CC0;
+</div>
diff --git a/layout/reftests/indic-shaping/balinese-1-ref.html b/layout/reftests/indic-shaping/balinese-1-ref.html
new file mode 100644
index 0000000000..478d8401b9
--- /dev/null
+++ b/layout/reftests/indic-shaping/balinese-1-ref.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<style>
+@font-face {
+ font-family: test;
+ src: url(../fonts/NotoSansBalinese-Regular.ttf);
+}
+body {
+ font: 36px test;
+}
+</style>
+</head>
+<body>
+&#x1B33;&#x1B3E;&#x1B35;
+&#x1B26;&#x1B3F;&#x1B35;
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/balinese-1.html b/layout/reftests/indic-shaping/balinese-1.html
new file mode 100644
index 0000000000..db2e8849b1
--- /dev/null
+++ b/layout/reftests/indic-shaping/balinese-1.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<style>
+@font-face {
+ font-family: test;
+ src: url(../fonts/NotoSansBalinese-Regular.ttf);
+}
+body {
+ font: 36px test;
+}
+</style>
+</head>
+<body>
+&#x1B33;&#x1B40;
+&#x1B26;&#x1B41;
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/bengali-1-ref.html b/layout/reftests/indic-shaping/bengali-1-ref.html
new file mode 100644
index 0000000000..d629909b1b
--- /dev/null
+++ b/layout/reftests/indic-shaping/bengali-1-ref.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Bengali shaping</title>
+<style>
+@font-face {
+ font-family: lohit-bn;
+ src: url(../fonts/ttf-indic/lohit_bn.ttf);
+}
+body {
+ font-family: lohit-bn;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- Ra that forms Reph should not contribute any width -->
+<div>
+!<span class="w">&#x09AE;</span>!
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/bengali-1a.html b/layout/reftests/indic-shaping/bengali-1a.html
new file mode 100644
index 0000000000..1c9c8d0d97
--- /dev/null
+++ b/layout/reftests/indic-shaping/bengali-1a.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Bengali shaping</title>
+<style>
+@font-face {
+ font-family: lohit-bn;
+ src: url(../fonts/ttf-indic/lohit_bn.ttf);
+}
+body {
+ font-family: lohit-bn;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- Ra that forms Reph should not contribute any width -->
+<div>
+!<span class="w">&#x09B0;&#x09CD;&#x09AE;</span>!
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/bengali-1b.html b/layout/reftests/indic-shaping/bengali-1b.html
new file mode 100644
index 0000000000..369b1527af
--- /dev/null
+++ b/layout/reftests/indic-shaping/bengali-1b.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Bengali shaping</title>
+<style>
+@font-face {
+ font-family: lohit-bn;
+ src: url(../fonts/ttf-indic/lohit_bn.ttf);
+}
+body {
+ font-family: lohit-bn;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- Suppressing Reph so that the Ra does occupy space -->
+<div>
+!<span class="w">&#x09B0;&#x09CD;&#x200C;&#x09AE;</span>!
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/bengali-2-ref.html b/layout/reftests/indic-shaping/bengali-2-ref.html
new file mode 100644
index 0000000000..40664abe92
--- /dev/null
+++ b/layout/reftests/indic-shaping/bengali-2-ref.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Bengali shaping</title>
+<style>
+@font-face {
+ font-family: lohit-bn;
+ src: url(../fonts/ttf-indic/lohit_bn.ttf);
+}
+body {
+ font-family: lohit-bn;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- subjoined Ra forms ligate with the consonant and generally modify its width,
+ so we expect "bra" to differ from both "b" and "b-halant-ra" -->
+<div>
+!<span class="w">&#x09AC;&#x09CD;&#x09B0;</span>!
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/bengali-2a.html b/layout/reftests/indic-shaping/bengali-2a.html
new file mode 100644
index 0000000000..3af0df97d1
--- /dev/null
+++ b/layout/reftests/indic-shaping/bengali-2a.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Bengali shaping</title>
+<style>
+@font-face {
+ font-family: lohit-bn;
+ src: url(../fonts/ttf-indic/lohit_bn.ttf);
+}
+body {
+ font-family: lohit-bn;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- subjoined Ra forms ligate with the consonant and generally modify its width,
+ so we expect "bra" to differ from both "b" and "b-halant-ra" -->
+<div>
+!<span class="w">&#x09AC;</span>!
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/bengali-2b.html b/layout/reftests/indic-shaping/bengali-2b.html
new file mode 100644
index 0000000000..6028e0054b
--- /dev/null
+++ b/layout/reftests/indic-shaping/bengali-2b.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Bengali shaping</title>
+<style>
+@font-face {
+ font-family: lohit-bn;
+ src: url(../fonts/ttf-indic/lohit_bn.ttf);
+}
+body {
+ font-family: lohit-bn;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- subjoined Ra forms ligate with the consonant and generally modify its width,
+ so we expect "bra" to differ from both "b" and "b-halant-ra" -->
+<div>
+!<span class="w">&#x09AC;&#x09CD;&#x200C;&#x09B0;</span>!
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/bengali-3-ref.html b/layout/reftests/indic-shaping/bengali-3-ref.html
new file mode 100644
index 0000000000..e5ae825fa4
--- /dev/null
+++ b/layout/reftests/indic-shaping/bengali-3-ref.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Bengali shaping</title>
+<style>
+@font-face {
+ font-family: lohit-bn;
+ src: url(../fonts/ttf-indic/lohit_bn.ttf);
+}
+body {
+ font-family: lohit-bn;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- two-part vowel sign encoded as its component parts -->
+<div>
+&#x0995;&#x09CD;&#x09B8;&#x09C7;&#x09BE;
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/bengali-3a.html b/layout/reftests/indic-shaping/bengali-3a.html
new file mode 100644
index 0000000000..59bf1ad51f
--- /dev/null
+++ b/layout/reftests/indic-shaping/bengali-3a.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Bengali shaping</title>
+<style>
+@font-face {
+ font-family: lohit-bn;
+ src: url(../fonts/ttf-indic/lohit_bn.ttf);
+}
+body {
+ font-family: lohit-bn;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- two-part vowel sign: surrounds consonant cluster -->
+<div>
+&#x0995;&#x09CD;&#x09B8;&#x09CB;
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/bengali-3b.html b/layout/reftests/indic-shaping/bengali-3b.html
new file mode 100644
index 0000000000..2e60382708
--- /dev/null
+++ b/layout/reftests/indic-shaping/bengali-3b.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Bengali shaping</title>
+<style>
+@font-face {
+ font-family: lohit-bn;
+ src: url(../fonts/ttf-indic/lohit_bn.ttf);
+}
+body {
+ font-family: lohit-bn;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- two-part vowel sign after cluster with ZWJ: surrounds entire cluster -->
+<div>
+&#x0995;&#x09CD;&#x200D;&#x09B8;&#x09CB;
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/bengali-3c.html b/layout/reftests/indic-shaping/bengali-3c.html
new file mode 100644
index 0000000000..d6570fe38b
--- /dev/null
+++ b/layout/reftests/indic-shaping/bengali-3c.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Bengali shaping</title>
+<style>
+@font-face {
+ font-family: lohit-bn;
+ src: url(../fonts/ttf-indic/lohit_bn.ttf);
+}
+body {
+ font-family: lohit-bn;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- two-part vowel sign after cluster with ZWNJ: surrounds last consonant only -->
+<div>
+&#x0995;&#x09CD;&#x200C;&#x09B8;&#x09CB;
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/devanagari-1-ref.html b/layout/reftests/indic-shaping/devanagari-1-ref.html
new file mode 100644
index 0000000000..36041afa58
--- /dev/null
+++ b/layout/reftests/indic-shaping/devanagari-1-ref.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Devanagari shaping</title>
+<style>
+@font-face {
+ font-family: lohit-hi;
+ src: url(../fonts/ttf-indic/lohit_hi.ttf);
+}
+body {
+ font-family: lohit-hi;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- Ra that forms Reph should not contribute any width -->
+<div>
+!<span class="w">&#x0939;</span>!
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/devanagari-1a.html b/layout/reftests/indic-shaping/devanagari-1a.html
new file mode 100644
index 0000000000..fd0fea49fb
--- /dev/null
+++ b/layout/reftests/indic-shaping/devanagari-1a.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Devanagari shaping</title>
+<style>
+@font-face {
+ font-family: lohit-hi;
+ src: url(../fonts/ttf-indic/lohit_hi.ttf);
+}
+body {
+ font-family: lohit-hi;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- Ra that forms Reph should not contribute any width -->
+<div>
+!<span class="w">&#x0930;&#x094D;&#x0939;</span>!
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/devanagari-1b.html b/layout/reftests/indic-shaping/devanagari-1b.html
new file mode 100644
index 0000000000..998032d8cf
--- /dev/null
+++ b/layout/reftests/indic-shaping/devanagari-1b.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Devanagari shaping</title>
+<style>
+@font-face {
+ font-family: lohit-hi;
+ src: url(../fonts/ttf-indic/lohit_hi.ttf);
+}
+body {
+ font-family: lohit-hi;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- Suppressing Reph so that the Ra does occupy space -->
+<div>
+!<span class="w">&#x0930;&#x094D;&#x200d;&#x0939;</span>!
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/devanagari-2-ref.html b/layout/reftests/indic-shaping/devanagari-2-ref.html
new file mode 100644
index 0000000000..86dccd8b7c
--- /dev/null
+++ b/layout/reftests/indic-shaping/devanagari-2-ref.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Devanagari shaping</title>
+<style>
+@font-face {
+ font-family: lohit-hi;
+ src: url(../fonts/ttf-indic/lohit_hi.ttf);
+}
+body {
+ font-family: lohit-hi;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- ttra has the same width as tta -->
+<div>
+!<span class="w">&#x091F;</span>!
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/devanagari-2.html b/layout/reftests/indic-shaping/devanagari-2.html
new file mode 100644
index 0000000000..18a5ea2a24
--- /dev/null
+++ b/layout/reftests/indic-shaping/devanagari-2.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Devanagari shaping</title>
+<style>
+@font-face {
+ font-family: lohit-hi;
+ src: url(../fonts/ttf-indic/lohit_hi.ttf);
+}
+body {
+ font-family: lohit-hi;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- ttra has the same width as tta -->
+<div>
+!<span class="w">&#x091F;&#x094D;&#x0930;</span>!
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/devanagari-3-ref.html b/layout/reftests/indic-shaping/devanagari-3-ref.html
new file mode 100644
index 0000000000..4c7af98dad
--- /dev/null
+++ b/layout/reftests/indic-shaping/devanagari-3-ref.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Devanagari shaping</title>
+<style>
+@font-face {
+ font-family: lohit-hi;
+ src: url(../fonts/ttf-indic/lohit_hi.ttf);
+}
+body {
+ font-family: lohit-hi;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- ska does not have the same width as saka, unless rendered with visible halant -->
+<div>
+!<span class="w">&#x0938;&#x0915;</span>!
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/devanagari-3a.html b/layout/reftests/indic-shaping/devanagari-3a.html
new file mode 100644
index 0000000000..6727fa061e
--- /dev/null
+++ b/layout/reftests/indic-shaping/devanagari-3a.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Devanagari shaping</title>
+<style>
+@font-face {
+ font-family: lohit-hi;
+ src: url(../fonts/ttf-indic/lohit_hi.ttf);
+}
+body {
+ font-family: lohit-hi;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- ska does not have the same width as saka, unless rendered with visible halant -->
+<div>
+!<span class="w">&#x0938;&#x094D;&#x0915;</span>!
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/devanagari-3b.html b/layout/reftests/indic-shaping/devanagari-3b.html
new file mode 100644
index 0000000000..2a713d3c34
--- /dev/null
+++ b/layout/reftests/indic-shaping/devanagari-3b.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Devanagari shaping</title>
+<style>
+@font-face {
+ font-family: lohit-hi;
+ src: url(../fonts/ttf-indic/lohit_hi.ttf);
+}
+body {
+ font-family: lohit-hi;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- ska does not have the same width as saka, unless rendered with visible halant -->
+<div>
+!<span class="w">&#x0938;&#x094D;&#x200c;&#x0915;</span>!
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/devanagari-4-notref.html b/layout/reftests/indic-shaping/devanagari-4-notref.html
new file mode 100644
index 0000000000..a556e21974
--- /dev/null
+++ b/layout/reftests/indic-shaping/devanagari-4-notref.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Devanagari shaping</title>
+<style>
+@font-face {
+ font-family: lohit-hi;
+ src: url(../fonts/ttf-indic/lohit_hi.ttf);
+}
+body {
+ font-family: lohit-hi;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- presence of ZWNJ alters placement of the short-I matra -->
+<div>
+&#x0921;&#x094D;&#x0938;&#x093F;
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/devanagari-4.html b/layout/reftests/indic-shaping/devanagari-4.html
new file mode 100644
index 0000000000..30a54ac1da
--- /dev/null
+++ b/layout/reftests/indic-shaping/devanagari-4.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Devanagari shaping</title>
+<style>
+@font-face {
+ font-family: lohit-hi;
+ src: url(../fonts/ttf-indic/lohit_hi.ttf);
+}
+body {
+ font-family: lohit-hi;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- presence of ZWNJ alters placement of the short-I matra -->
+<div>
+&#x0921;&#x094D;&#x200C;&#x0938;&#x093F;
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/gujarati-1-ref.html b/layout/reftests/indic-shaping/gujarati-1-ref.html
new file mode 100644
index 0000000000..cf17a15e22
--- /dev/null
+++ b/layout/reftests/indic-shaping/gujarati-1-ref.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Gujarati shaping</title>
+<style>
+@font-face {
+ font-family: lohit-gu;
+ src: url(../fonts/ttf-indic/lohit_gu.ttf);
+}
+body {
+ font-family: lohit-gu;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- Ra that forms Reph should not contribute any width -->
+<div>
+!<span class="w">&#x0AB9;</span>!
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/gujarati-1a.html b/layout/reftests/indic-shaping/gujarati-1a.html
new file mode 100644
index 0000000000..acb0c253fc
--- /dev/null
+++ b/layout/reftests/indic-shaping/gujarati-1a.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Gujarati shaping</title>
+<style>
+@font-face {
+ font-family: lohit-gu;
+ src: url(../fonts/ttf-indic/lohit_gu.ttf);
+}
+body {
+ font-family: lohit-gu;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- Ra that forms Reph should not contribute any width -->
+<div>
+!<span class="w">&#x0AB0;&#x0ACD;&#x0AB9;</span>!
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/gujarati-1b.html b/layout/reftests/indic-shaping/gujarati-1b.html
new file mode 100644
index 0000000000..60e0a6f5cf
--- /dev/null
+++ b/layout/reftests/indic-shaping/gujarati-1b.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Gujarati shaping</title>
+<style>
+@font-face {
+ font-family: lohit-gu;
+ src: url(../fonts/ttf-indic/lohit_gu.ttf);
+}
+body {
+ font-family: lohit-gu;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- Suppressing Reph so that the Ra does occupy space -->
+<div>
+!<span class="w">&#x0AB0;&#x0ACD;&#x200d;&#x0AB9;</span>!
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/gujarati-2-ref.html b/layout/reftests/indic-shaping/gujarati-2-ref.html
new file mode 100644
index 0000000000..36813b8026
--- /dev/null
+++ b/layout/reftests/indic-shaping/gujarati-2-ref.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Gujarati shaping</title>
+<style>
+@font-face {
+ font-family: lohit-gu;
+ src: url(../fonts/ttf-indic/lohit_gu.ttf);
+}
+body {
+ font-family: lohit-gu;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- ddra has the same width as dda -->
+<div>
+!<span class="w">&#x0AA1;</span>!
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/gujarati-2.html b/layout/reftests/indic-shaping/gujarati-2.html
new file mode 100644
index 0000000000..cd28303106
--- /dev/null
+++ b/layout/reftests/indic-shaping/gujarati-2.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Gujarati shaping</title>
+<style>
+@font-face {
+ font-family: lohit-gu;
+ src: url(../fonts/ttf-indic/lohit_gu.ttf);
+}
+body {
+ font-family: lohit-gu;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- ddra has the same width as dda -->
+<div>
+!<span class="w">&#x0AA1;&#x0ACD;&#x0AB0;</span>!
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/gujarati-3-ref.html b/layout/reftests/indic-shaping/gujarati-3-ref.html
new file mode 100644
index 0000000000..cd828861a1
--- /dev/null
+++ b/layout/reftests/indic-shaping/gujarati-3-ref.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Gujarati shaping</title>
+<style>
+@font-face {
+ font-family: lohit-gu;
+ src: url(../fonts/ttf-indic/lohit_gu.ttf);
+}
+body {
+ font-family: lohit-gu;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- ska does not have the same width as saka, unless rendered with visible halant -->
+<div>
+!<span class="w">&#x0AB8;&#x0A95;</span>!
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/gujarati-3a.html b/layout/reftests/indic-shaping/gujarati-3a.html
new file mode 100644
index 0000000000..c470a04eaa
--- /dev/null
+++ b/layout/reftests/indic-shaping/gujarati-3a.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Gujarati shaping</title>
+<style>
+@font-face {
+ font-family: lohit-gu;
+ src: url(../fonts/ttf-indic/lohit_gu.ttf);
+}
+body {
+ font-family: lohit-gu;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- ska does not have the same width as saka, unless rendered with visible halant -->
+<div>
+!<span class="w">&#x0AB8;&#x0ACD;&#x0A95;</span>!
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/gujarati-3b.html b/layout/reftests/indic-shaping/gujarati-3b.html
new file mode 100644
index 0000000000..629a9440dc
--- /dev/null
+++ b/layout/reftests/indic-shaping/gujarati-3b.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Gujarati shaping</title>
+<style>
+@font-face {
+ font-family: lohit-gu;
+ src: url(../fonts/ttf-indic/lohit_gu.ttf);
+}
+body {
+ font-family: lohit-gu;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- ska does not have the same width as saka, unless rendered with visible halant -->
+<div>
+!<span class="w">&#x0AB8;&#x0ACD;&#x200c;&#x0A95;</span>!
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/gujarati-4-notref.html b/layout/reftests/indic-shaping/gujarati-4-notref.html
new file mode 100644
index 0000000000..a46b8ec839
--- /dev/null
+++ b/layout/reftests/indic-shaping/gujarati-4-notref.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Gujarati shaping</title>
+<style>
+@font-face {
+ font-family: lohit-gu;
+ src: url(../fonts/ttf-indic/lohit_gu.ttf);
+}
+body {
+ font-family: lohit-gu;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- presence of ZWNJ alters placement of the short-I matra -->
+<div>
+&#x0AA1;&#x0ACD;&#x0AB8;&#x0ABF;
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/gujarati-4.html b/layout/reftests/indic-shaping/gujarati-4.html
new file mode 100644
index 0000000000..b7aa34eba3
--- /dev/null
+++ b/layout/reftests/indic-shaping/gujarati-4.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Simple Gujarati shaping</title>
+<style>
+@font-face {
+ font-family: lohit-gu;
+ src: url(../fonts/ttf-indic/lohit_gu.ttf);
+}
+body {
+ font-family: lohit-gu;
+ font-size: 36px;
+ margin: 18px;
+}
+.w {
+ color: white;
+}
+</style>
+</head>
+<body>
+<!-- presence of ZWNJ alters placement of the short-I matra -->
+<div>
+&#x0AA1;&#x0ACD;&#x200C;&#x0AB8;&#x0ABF;
+</div>
+</body>
+</html>
diff --git a/layout/reftests/indic-shaping/reftest.list b/layout/reftests/indic-shaping/reftest.list
new file mode 100644
index 0000000000..c7b902a972
--- /dev/null
+++ b/layout/reftests/indic-shaping/reftest.list
@@ -0,0 +1,27 @@
+== devanagari-1a.html devanagari-1-ref.html
+!= devanagari-1b.html devanagari-1-ref.html
+== devanagari-2.html devanagari-2-ref.html
+!= devanagari-3a.html devanagari-3-ref.html
+== devanagari-3b.html devanagari-3-ref.html
+!= devanagari-4.html devanagari-4-notref.html
+
+== gujarati-1a.html gujarati-1-ref.html
+!= gujarati-1b.html gujarati-1-ref.html
+== gujarati-2.html gujarati-2-ref.html
+!= gujarati-3a.html gujarati-3-ref.html
+fuzzy-if(gtkWidget,255-255,46-46) == gujarati-3b.html gujarati-3-ref.html # gtkWidget, Bug 1600777
+!= gujarati-4.html gujarati-4-notref.html
+
+== bengali-1a.html bengali-1-ref.html
+!= bengali-1b.html bengali-1-ref.html
+!= bengali-2a.html bengali-2-ref.html
+!= bengali-2b.html bengali-2-ref.html
+== bengali-3a.html bengali-3-ref.html
+!= bengali-3b.html bengali-3-ref.html
+!= bengali-3c.html bengali-3-ref.html
+!= bengali-3c.html bengali-3b.html
+
+!= 686225-1-bangla-aat.html 686225-1-bangla-aat-notref.html
+!= 686225-2-kannada-aat.html 686225-2-kannada-aat-notref.html
+
+== balinese-1.html balinese-1-ref.html