diff --git a/layout/reftests/margin-collapsing/block-abs-pos-1-ref.html b/layout/reftests/margin-collapsing/block-abs-pos-1-ref.html
new file mode 100644
index 000000000000..29baa5a6b1fb
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-abs-pos-1-ref.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-abs-pos-1.html b/layout/reftests/margin-collapsing/block-abs-pos-1.html
new file mode 100644
index 000000000000..f5d24a21e043
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-abs-pos-1.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-abs-pos-2-ref.html b/layout/reftests/margin-collapsing/block-abs-pos-2-ref.html
new file mode 100644
index 000000000000..a07680826009
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-abs-pos-2-ref.html
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-abs-pos-2.html b/layout/reftests/margin-collapsing/block-abs-pos-2.html
new file mode 100644
index 000000000000..eaa42ea9dcba
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-abs-pos-2.html
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-float-1a-ref.html b/layout/reftests/margin-collapsing/block-float-1a-ref.html
new file mode 100644
index 000000000000..8b0ff829471d
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-float-1a-ref.html
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-float-1a.html b/layout/reftests/margin-collapsing/block-float-1a.html
new file mode 100644
index 000000000000..80ea403522de
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-float-1a.html
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-float-1b-ref.html b/layout/reftests/margin-collapsing/block-float-1b-ref.html
new file mode 100644
index 000000000000..05a70dcfeef1
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-float-1b-ref.html
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-float-1b.html b/layout/reftests/margin-collapsing/block-float-1b.html
new file mode 100644
index 000000000000..5682f9f19948
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-float-1b.html
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-float-2a-ref.html b/layout/reftests/margin-collapsing/block-float-2a-ref.html
new file mode 100644
index 000000000000..dd35cc69d051
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-float-2a-ref.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-float-2a.html b/layout/reftests/margin-collapsing/block-float-2a.html
new file mode 100644
index 000000000000..b429f911b12b
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-float-2a.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-float-2b-ref.html b/layout/reftests/margin-collapsing/block-float-2b-ref.html
new file mode 100644
index 000000000000..030ed84644ca
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-float-2b-ref.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-float-2b.html b/layout/reftests/margin-collapsing/block-float-2b.html
new file mode 100644
index 000000000000..db0c80c5cc24
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-float-2b.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-html-body-1-ref.html b/layout/reftests/margin-collapsing/block-html-body-1-ref.html
new file mode 100644
index 000000000000..1d898d317e08
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-html-body-1-ref.html
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-html-body-1.html b/layout/reftests/margin-collapsing/block-html-body-1.html
new file mode 100644
index 000000000000..c0b07ed16c3a
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-html-body-1.html
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-negative-1-ref.html b/layout/reftests/margin-collapsing/block-negative-1-ref.html
new file mode 100644
index 000000000000..cb8de3293a7a
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-negative-1-ref.html
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-negative-1a.html b/layout/reftests/margin-collapsing/block-negative-1a.html
new file mode 100644
index 000000000000..de0be2bece52
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-negative-1a.html
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-negative-1b.html b/layout/reftests/margin-collapsing/block-negative-1b.html
new file mode 100644
index 000000000000..f1eed8c0fb8e
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-negative-1b.html
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-negative-2-ref.html b/layout/reftests/margin-collapsing/block-negative-2-ref.html
new file mode 100644
index 000000000000..90571cbd82c7
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-negative-2-ref.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-negative-2a.html b/layout/reftests/margin-collapsing/block-negative-2a.html
new file mode 100644
index 000000000000..995a0805ade2
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-negative-2a.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-negative-2b.html b/layout/reftests/margin-collapsing/block-negative-2b.html
new file mode 100644
index 000000000000..96e43a985cc3
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-negative-2b.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-no-content-1-ref.html b/layout/reftests/margin-collapsing/block-no-content-1-ref.html
new file mode 100644
index 000000000000..fdea562b463c
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-no-content-1-ref.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-no-content-1a.html b/layout/reftests/margin-collapsing/block-no-content-1a.html
new file mode 100644
index 000000000000..d5ec65a2b554
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-no-content-1a.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-no-content-1b.html b/layout/reftests/margin-collapsing/block-no-content-1b.html
new file mode 100644
index 000000000000..b1da6e13cb98
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-no-content-1b.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-no-content-1c.html b/layout/reftests/margin-collapsing/block-no-content-1c.html
new file mode 100644
index 000000000000..59d6b7d785c3
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-no-content-1c.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-no-content-2-ref.html b/layout/reftests/margin-collapsing/block-no-content-2-ref.html
new file mode 100644
index 000000000000..8e105d1e6227
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-no-content-2-ref.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-no-content-2a.html b/layout/reftests/margin-collapsing/block-no-content-2a.html
new file mode 100644
index 000000000000..ed4ff0cf3b79
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-no-content-2a.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-no-content-2b.html b/layout/reftests/margin-collapsing/block-no-content-2b.html
new file mode 100644
index 000000000000..10cb3de473a6
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-no-content-2b.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-no-content-2c.html b/layout/reftests/margin-collapsing/block-no-content-2c.html
new file mode 100644
index 000000000000..304949c3d5f8
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-no-content-2c.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-no-content-2d.html b/layout/reftests/margin-collapsing/block-no-content-2d.html
new file mode 100644
index 000000000000..858a8412d8a7
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-no-content-2d.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-no-content-3-ref.html b/layout/reftests/margin-collapsing/block-no-content-3-ref.html
new file mode 100644
index 000000000000..5aa19b4fc8ff
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-no-content-3-ref.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-no-content-3.html b/layout/reftests/margin-collapsing/block-no-content-3.html
new file mode 100644
index 000000000000..348eaabb073d
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-no-content-3.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-no-content-4-ref.html b/layout/reftests/margin-collapsing/block-no-content-4-ref.html
new file mode 100644
index 000000000000..2e813c67b817
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-no-content-4-ref.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-no-content-4.html b/layout/reftests/margin-collapsing/block-no-content-4.html
new file mode 100644
index 000000000000..8c0f55cd8ef2
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-no-content-4.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-non-sibling-1-ref.html b/layout/reftests/margin-collapsing/block-non-sibling-1-ref.html
new file mode 100644
index 000000000000..5226bcf1dd43
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-non-sibling-1-ref.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-non-sibling-1a.html b/layout/reftests/margin-collapsing/block-non-sibling-1a.html
new file mode 100644
index 000000000000..6d712e621c78
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-non-sibling-1a.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-non-sibling-1b.html b/layout/reftests/margin-collapsing/block-non-sibling-1b.html
new file mode 100644
index 000000000000..7e9c592d6c47
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-non-sibling-1b.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-non-sibling-1c.html b/layout/reftests/margin-collapsing/block-non-sibling-1c.html
new file mode 100644
index 000000000000..c25be8039fb4
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-non-sibling-1c.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-non-sibling-1d.html b/layout/reftests/margin-collapsing/block-non-sibling-1d.html
new file mode 100644
index 000000000000..8650481f03a3
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-non-sibling-1d.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-non-sibling-1e.html b/layout/reftests/margin-collapsing/block-non-sibling-1e.html
new file mode 100644
index 000000000000..0d9affe5f7e9
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-non-sibling-1e.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-non-sibling-1f.html b/layout/reftests/margin-collapsing/block-non-sibling-1f.html
new file mode 100644
index 000000000000..819f360dc6d9
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-non-sibling-1f.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-non-sibling-2-ref.html b/layout/reftests/margin-collapsing/block-non-sibling-2-ref.html
new file mode 100644
index 000000000000..5226bcf1dd43
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-non-sibling-2-ref.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-non-sibling-2a.html b/layout/reftests/margin-collapsing/block-non-sibling-2a.html
new file mode 100644
index 000000000000..b4f60cedd3f6
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-non-sibling-2a.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-non-sibling-2b.html b/layout/reftests/margin-collapsing/block-non-sibling-2b.html
new file mode 100644
index 000000000000..b07ee8f4eb2e
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-non-sibling-2b.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-non-sibling-2c.html b/layout/reftests/margin-collapsing/block-non-sibling-2c.html
new file mode 100644
index 000000000000..caead0a0338a
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-non-sibling-2c.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-non-sibling-2d.html b/layout/reftests/margin-collapsing/block-non-sibling-2d.html
new file mode 100644
index 000000000000..533f9b0cf1c0
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-non-sibling-2d.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-non-sibling-2e.html b/layout/reftests/margin-collapsing/block-non-sibling-2e.html
new file mode 100644
index 000000000000..c83153d8ec5b
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-non-sibling-2e.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-non-sibling-2f.html b/layout/reftests/margin-collapsing/block-non-sibling-2f.html
new file mode 100644
index 000000000000..e1a8729d4781
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-non-sibling-2f.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-non-sibling-3-ref.html b/layout/reftests/margin-collapsing/block-non-sibling-3-ref.html
new file mode 100644
index 000000000000..3ac1546ff99b
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-non-sibling-3-ref.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-non-sibling-3a.html b/layout/reftests/margin-collapsing/block-non-sibling-3a.html
new file mode 100644
index 000000000000..b1de119af149
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-non-sibling-3a.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-non-sibling-3b.html b/layout/reftests/margin-collapsing/block-non-sibling-3b.html
new file mode 100644
index 000000000000..f802db179b66
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-non-sibling-3b.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-non-sibling-3c.html b/layout/reftests/margin-collapsing/block-non-sibling-3c.html
new file mode 100644
index 000000000000..6c7a869a0b77
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-non-sibling-3c.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-non-sibling-3d.html b/layout/reftests/margin-collapsing/block-non-sibling-3d.html
new file mode 100644
index 000000000000..39ae7971d398
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-non-sibling-3d.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-overflow-1-ref.html b/layout/reftests/margin-collapsing/block-overflow-1-ref.html
new file mode 100644
index 000000000000..3f843f656d57
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-overflow-1-ref.html
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-overflow-1.html b/layout/reftests/margin-collapsing/block-overflow-1.html
new file mode 100644
index 000000000000..b586319b2434
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-overflow-1.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-overflow-2-ref.html b/layout/reftests/margin-collapsing/block-overflow-2-ref.html
new file mode 100644
index 000000000000..17bb26f9b98b
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-overflow-2-ref.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-overflow-2.html b/layout/reftests/margin-collapsing/block-overflow-2.html
new file mode 100644
index 000000000000..c96a58e59e6b
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-overflow-2.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-overflow-3-ref.html b/layout/reftests/margin-collapsing/block-overflow-3-ref.html
new file mode 100644
index 000000000000..ac9fe009fb74
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-overflow-3-ref.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-overflow-3.html b/layout/reftests/margin-collapsing/block-overflow-3.html
new file mode 100644
index 000000000000..85ecfded27b2
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-overflow-3.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-overflow-4-ref.html b/layout/reftests/margin-collapsing/block-overflow-4-ref.html
new file mode 100644
index 000000000000..07a1ed284e1e
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-overflow-4-ref.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-overflow-4.html b/layout/reftests/margin-collapsing/block-overflow-4.html
new file mode 100644
index 000000000000..2a5c5ecb9118
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-overflow-4.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-overflow-5-ref.html b/layout/reftests/margin-collapsing/block-overflow-5-ref.html
new file mode 100644
index 000000000000..7657d7e43638
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-overflow-5-ref.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-overflow-5a.html b/layout/reftests/margin-collapsing/block-overflow-5a.html
new file mode 100644
index 000000000000..9ae46036a1d0
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-overflow-5a.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-overflow-5b.html b/layout/reftests/margin-collapsing/block-overflow-5b.html
new file mode 100644
index 000000000000..133c14cd66f6
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-overflow-5b.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-overflow-5c-ref.html b/layout/reftests/margin-collapsing/block-overflow-5c-ref.html
new file mode 100644
index 000000000000..017ce7bb5e31
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-overflow-5c-ref.html
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-overflow-5c.html b/layout/reftests/margin-collapsing/block-overflow-5c.html
new file mode 100644
index 000000000000..4982197c2014
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-overflow-5c.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-overflow-5d.html b/layout/reftests/margin-collapsing/block-overflow-5d.html
new file mode 100644
index 000000000000..4f16a7ec996b
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-overflow-5d.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-percent-1-ref.html b/layout/reftests/margin-collapsing/block-percent-1-ref.html
new file mode 100644
index 000000000000..0cb3758bcbd1
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-percent-1-ref.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-percent-1.html b/layout/reftests/margin-collapsing/block-percent-1.html
new file mode 100644
index 000000000000..3208df1b0961
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-percent-1.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-root-1a-ref.html b/layout/reftests/margin-collapsing/block-root-1a-ref.html
new file mode 100644
index 000000000000..6906ed3aa9e5
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-root-1a-ref.html
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-root-1a.html b/layout/reftests/margin-collapsing/block-root-1a.html
new file mode 100644
index 000000000000..70781b9c74db
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-root-1a.html
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-root-1b-ref.html b/layout/reftests/margin-collapsing/block-root-1b-ref.html
new file mode 100644
index 000000000000..fe648e601e29
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-root-1b-ref.html
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-root-1b.html b/layout/reftests/margin-collapsing/block-root-1b.html
new file mode 100644
index 000000000000..c8e6bea1d9e9
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-root-1b.html
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-sibling-1-ref.html b/layout/reftests/margin-collapsing/block-sibling-1-ref.html
new file mode 100644
index 000000000000..7c5c4e732806
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-sibling-1-ref.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-sibling-1a.html b/layout/reftests/margin-collapsing/block-sibling-1a.html
new file mode 100644
index 000000000000..a0f9cfcf94c1
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-sibling-1a.html
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-sibling-1b.html b/layout/reftests/margin-collapsing/block-sibling-1b.html
new file mode 100644
index 000000000000..051b046c066e
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-sibling-1b.html
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-sibling-1c.html b/layout/reftests/margin-collapsing/block-sibling-1c.html
new file mode 100644
index 000000000000..842a698f8767
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-sibling-1c.html
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-sibling-2-ref.html b/layout/reftests/margin-collapsing/block-sibling-2-ref.html
new file mode 100644
index 000000000000..dbe785d271c0
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-sibling-2-ref.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-sibling-2.html b/layout/reftests/margin-collapsing/block-sibling-2.html
new file mode 100644
index 000000000000..9dc60df51c07
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-sibling-2.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-zero-height-1a-ref.html b/layout/reftests/margin-collapsing/block-zero-height-1a-ref.html
new file mode 100644
index 000000000000..3c16bc617dc3
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-zero-height-1a-ref.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-zero-height-1a.html b/layout/reftests/margin-collapsing/block-zero-height-1a.html
new file mode 100644
index 000000000000..871a556f5e39
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-zero-height-1a.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-zero-height-1b-ref.html b/layout/reftests/margin-collapsing/block-zero-height-1b-ref.html
new file mode 100644
index 000000000000..9a976b3efa27
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-zero-height-1b-ref.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-zero-height-1b.html b/layout/reftests/margin-collapsing/block-zero-height-1b.html
new file mode 100644
index 000000000000..8db97a5b3653
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-zero-height-1b.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-zero-height-2a-ref.html b/layout/reftests/margin-collapsing/block-zero-height-2a-ref.html
new file mode 100644
index 000000000000..74f4601c8715
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-zero-height-2a-ref.html
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-zero-height-2a.html b/layout/reftests/margin-collapsing/block-zero-height-2a.html
new file mode 100644
index 000000000000..1f4cc6f3a3e4
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-zero-height-2a.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-zero-height-2b-ref.html b/layout/reftests/margin-collapsing/block-zero-height-2b-ref.html
new file mode 100644
index 000000000000..6d1914451a42
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-zero-height-2b-ref.html
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-zero-height-2b.html b/layout/reftests/margin-collapsing/block-zero-height-2b.html
new file mode 100644
index 000000000000..b2e0647826b2
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-zero-height-2b.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-zero-height-2c-ref.html b/layout/reftests/margin-collapsing/block-zero-height-2c-ref.html
new file mode 100644
index 000000000000..78ed9af998d2
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-zero-height-2c-ref.html
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/block-zero-height-2c.html b/layout/reftests/margin-collapsing/block-zero-height-2c.html
new file mode 100644
index 000000000000..14153a324825
--- /dev/null
+++ b/layout/reftests/margin-collapsing/block-zero-height-2c.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/inline-block-child-1-ref.html b/layout/reftests/margin-collapsing/inline-block-child-1-ref.html
new file mode 100644
index 000000000000..dc20bc3dc0f8
--- /dev/null
+++ b/layout/reftests/margin-collapsing/inline-block-child-1-ref.html
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/inline-block-child-1.html b/layout/reftests/margin-collapsing/inline-block-child-1.html
new file mode 100644
index 000000000000..86949433cbd3
--- /dev/null
+++ b/layout/reftests/margin-collapsing/inline-block-child-1.html
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/inline-block-sibling-1-ref.html b/layout/reftests/margin-collapsing/inline-block-sibling-1-ref.html
new file mode 100644
index 000000000000..c867d54bd515
--- /dev/null
+++ b/layout/reftests/margin-collapsing/inline-block-sibling-1-ref.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/inline-block-sibling-1a.html b/layout/reftests/margin-collapsing/inline-block-sibling-1a.html
new file mode 100644
index 000000000000..14963f9fb810
--- /dev/null
+++ b/layout/reftests/margin-collapsing/inline-block-sibling-1a.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/inline-block-sibling-1b.html b/layout/reftests/margin-collapsing/inline-block-sibling-1b.html
new file mode 100644
index 000000000000..994617d20cc2
--- /dev/null
+++ b/layout/reftests/margin-collapsing/inline-block-sibling-1b.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/inline-block-sibling-1c.html b/layout/reftests/margin-collapsing/inline-block-sibling-1c.html
new file mode 100644
index 000000000000..4f9eee5ad835
--- /dev/null
+++ b/layout/reftests/margin-collapsing/inline-block-sibling-1c.html
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/margin-collapsing/reftest.list b/layout/reftests/margin-collapsing/reftest.list
index e69de29bb2d1..4688c40aeba2 100644
--- a/layout/reftests/margin-collapsing/reftest.list
+++ b/layout/reftests/margin-collapsing/reftest.list
@@ -0,0 +1,62 @@
+== block-sibling-1a.html block-sibling-1-ref.html
+== block-sibling-1b.html block-sibling-1-ref.html
+== block-sibling-1c.html block-sibling-1-ref.html
+== block-sibling-2.html block-sibling-2-ref.html
+== block-negative-1a.html block-negative-1-ref.html
+== block-negative-1b.html block-negative-1-ref.html
+== block-negative-2a.html block-negative-2-ref.html
+== block-negative-2b.html block-negative-2-ref.html
+== block-non-sibling-1a.html block-non-sibling-1-ref.html
+== block-non-sibling-1b.html block-non-sibling-1-ref.html
+== block-non-sibling-1c.html block-non-sibling-1-ref.html
+== block-non-sibling-1d.html block-non-sibling-1-ref.html
+== block-non-sibling-1e.html block-non-sibling-1-ref.html
+== block-non-sibling-1f.html block-non-sibling-1-ref.html
+== block-non-sibling-2a.html block-non-sibling-2-ref.html
+== block-non-sibling-2b.html block-non-sibling-2-ref.html
+== block-non-sibling-2c.html block-non-sibling-2-ref.html
+== block-non-sibling-2d.html block-non-sibling-2-ref.html
+== block-non-sibling-2e.html block-non-sibling-2-ref.html
+== block-non-sibling-2f.html block-non-sibling-2-ref.html
+== block-non-sibling-3a.html block-non-sibling-3-ref.html
+== block-non-sibling-3b.html block-non-sibling-3-ref.html
+== block-non-sibling-3c.html block-non-sibling-3-ref.html
+== block-non-sibling-3d.html block-non-sibling-3-ref.html
+== block-float-1a.html block-float-1a-ref.html
+== block-float-1b.html block-float-1b-ref.html
+== block-float-2a.html block-float-2a-ref.html
+== block-float-2b.html block-float-2b-ref.html
+== block-overflow-1.html block-overflow-1-ref.html
+== block-overflow-2.html block-overflow-2-ref.html
+== block-overflow-3.html block-overflow-3-ref.html
+== block-overflow-4.html block-overflow-4-ref.html
+== block-overflow-5a.html block-overflow-5-ref.html
+== block-overflow-5b.html block-overflow-5-ref.html
+== block-overflow-5c.html block-overflow-5c-ref.html
+== block-overflow-5d.html block-overflow-5-ref.html
+== block-abs-pos-1.html block-abs-pos-1-ref.html
+== block-abs-pos-2.html block-abs-pos-2-ref.html
+== inline-block-sibling-1a.html inline-block-sibling-1-ref.html
+== inline-block-sibling-1b.html inline-block-sibling-1-ref.html
+== inline-block-sibling-1c.html inline-block-sibling-1-ref.html
+== inline-block-child-1.html inline-block-child-1-ref.html
+== block-no-content-1a.html block-no-content-1-ref.html
+== block-no-content-1b.html block-no-content-1-ref.html
+== block-no-content-1c.html block-no-content-1-ref.html
+== block-no-content-2a.html block-no-content-2-ref.html
+== block-no-content-2b.html block-no-content-2-ref.html
+== block-no-content-2c.html block-no-content-2-ref.html
+== block-no-content-2d.html block-no-content-2-ref.html
+== block-no-content-3.html block-no-content-3-ref.html
+== block-zero-height-1a.html block-zero-height-1a-ref.html
+== block-zero-height-1b.html block-zero-height-1b-ref.html
+== block-no-content-4.html block-no-content-4-ref.html
+== block-zero-height-2a.html block-zero-height-2a-ref.html
+== block-zero-height-2b.html block-zero-height-2b-ref.html
+== block-zero-height-2c.html block-zero-height-2c-ref.html
+# missing tests of clearing elements after a float.
+== block-root-1a.html block-root-1a-ref.html
+== block-root-1b.html block-root-1b-ref.html
+== block-html-body-1.html block-html-body-1-ref.html
+# missing tests of min-height, max-height, etc.
+== block-used-value-1.html block-used-value-1-ref.html