[LayoutNG] Resolve auto inline margins on root.

The root HTML element is in a unique situation in LayoutNG, in that its
parent is a regular block container that is laid out by the legacy
engine. In legacy, block container layout expects the children to set
their own margin. Make sure that we do this.

Bug: 978702
Change-Id: I84b8e36bd706e3c01096cd9bd75a0747ddf265ff
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1683973
Reviewed-by: Koji Ishii <kojii@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#673733}
diff --git a/css/CSS2/normal-flow/auto-margins-root-element.html b/css/CSS2/normal-flow/auto-margins-root-element.html
new file mode 100644
index 0000000..8d9aaf4
--- /dev/null
+++ b/css/CSS2/normal-flow/auto-margins-root-element.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
+<link rel="help" href="https://www.w3.org/TR/CSS22/visudet.html#blockwidth">
+<style>
+  html {
+      width: 100px;
+      margin-left: auto;
+  }
+  body { /* Just to make testharness display nicely. */
+      position: absolute;
+      left: 0;
+      right: 0;
+  }
+</style>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+  test(()=> {
+      var viewport_width = window.innerWidth;
+      var html = document.documentElement;
+      assert_equals(html.offsetLeft, viewport_width - 100);
+  }, "Root element auto margins resolve");
+</script>