浏览代码

LibGfx+LibWeb: Draw glyph runs with subpixel accuracy

This improves the quality of our font rendering, especially when
animations are involved. Relevant changes:

  * Skia fonts have their subpixel flag set, which means that individual
    glyphs are rendered at subpixel offsets causing glyph runs as a
    whole to look better.

  * Fragment offsets are no longer rounded to whole device pixels, and
    instead the floating point offset is kept. This allows us to pass
    through the floating point baseline position all the way to the Skia
    calls, which already expected that to be a float position.

The `scrollable-contains-table.html` ref test needed different table
headings since they would slightly inflate the column size in the test
file, but not the reference.
Jelle Raaijmakers 7 月之前
父节点
当前提交
4d9f17eddf
共有 83 个文件被更改,包括 524 次插入525 次删除
  1. 3 1
      Libraries/LibGfx/Font/ScaledFontSkia.cpp
  2. 0 2
      Libraries/LibWeb/Layout/LineBoxFragment.cpp
  3. 1 1
      Libraries/LibWeb/Layout/LineBuilder.cpp
  4. 0 3
      Libraries/LibWeb/Layout/Node.h
  5. 5 2
      Libraries/LibWeb/Painting/BackgroundPainting.cpp
  6. 3 3
      Libraries/LibWeb/Painting/Command.h
  7. 1 1
      Libraries/LibWeb/Painting/DisplayListPlayerSkia.cpp
  8. 4 4
      Libraries/LibWeb/Painting/DisplayListRecorder.cpp
  9. 2 4
      Libraries/LibWeb/Painting/DisplayListRecorder.h
  10. 7 5
      Libraries/LibWeb/Painting/PaintableBox.cpp
  11. 7 8
      Libraries/LibWeb/Painting/ShadowPainting.cpp
  12. 10 10
      Tests/LibWeb/Layout/expected/acid1.txt
  13. 3 3
      Tests/LibWeb/Layout/expected/block-and-inline/atomic-inline-with-white-space-nowrap.txt
  14. 2 2
      Tests/LibWeb/Layout/expected/block-and-inline/bfc-consider-all-currently-stacked-floats.txt
  15. 9 9
      Tests/LibWeb/Layout/expected/block-and-inline/button-baseline-align.txt
  16. 1 1
      Tests/LibWeb/Layout/expected/block-and-inline/button-should-have-vertically-aligned-content.txt
  17. 1 1
      Tests/LibWeb/Layout/expected/block-and-inline/button-width.txt
  18. 15 15
      Tests/LibWeb/Layout/expected/block-and-inline/button-with-block-content-baseline-align.txt
  19. 6 6
      Tests/LibWeb/Layout/expected/block-and-inline/columns-33-percent-width.txt
  20. 1 1
      Tests/LibWeb/Layout/expected/block-and-inline/float-3.txt
  21. 3 3
      Tests/LibWeb/Layout/expected/block-and-inline/float-4.txt
  22. 81 81
      Tests/LibWeb/Layout/expected/block-and-inline/float-left-and-right-with-justified-text-in-between.txt
  23. 1 1
      Tests/LibWeb/Layout/expected/block-and-inline/float-stress-1.txt
  24. 13 13
      Tests/LibWeb/Layout/expected/block-and-inline/inline-block-baseline-1.txt
  25. 14 14
      Tests/LibWeb/Layout/expected/block-and-inline/inline-block-baseline-2.txt
  26. 3 3
      Tests/LibWeb/Layout/expected/block-and-inline/inline-block-vertical-align-middle.txt
  27. 5 5
      Tests/LibWeb/Layout/expected/block-and-inline/inline-box-positioned-with-top-left.txt
  28. 4 4
      Tests/LibWeb/Layout/expected/block-and-inline/inline-box-with-vertical-margins-vertical-align-top.txt
  29. 4 4
      Tests/LibWeb/Layout/expected/block-and-inline/inline-box-with-vertical-margins.txt
  30. 1 1
      Tests/LibWeb/Layout/expected/block-and-inline/leading-margin-on-inline-content-that-starts-with-collapsible-whitespace.txt
  31. 4 4
      Tests/LibWeb/Layout/expected/block-and-inline/relpos-inline-element-js-offsets.txt
  32. 3 3
      Tests/LibWeb/Layout/expected/block-and-inline/relpos-inline-elements.txt
  33. 1 1
      Tests/LibWeb/Layout/expected/br-should-not-generate-pseudo-before.txt
  34. 1 1
      Tests/LibWeb/Layout/expected/css-all-unset.txt
  35. 10 10
      Tests/LibWeb/Layout/expected/css-counters/basic.txt
  36. 13 13
      Tests/LibWeb/Layout/expected/css-counters/counters-function.txt
  37. 5 5
      Tests/LibWeb/Layout/expected/css-counters/hidden-elements.txt
  38. 9 9
      Tests/LibWeb/Layout/expected/css-dir-selector.txt
  39. 4 4
      Tests/LibWeb/Layout/expected/css-font-size-math.txt
  40. 44 44
      Tests/LibWeb/Layout/expected/css-quotes-nesting.txt
  41. 30 30
      Tests/LibWeb/Layout/expected/div_align.txt
  42. 4 4
      Tests/LibWeb/Layout/expected/div_align_nested.txt
  43. 4 4
      Tests/LibWeb/Layout/expected/flex/flex-item-min-width-fit-content.txt
  44. 4 4
      Tests/LibWeb/Layout/expected/font-fractional-size.txt
  45. 6 6
      Tests/LibWeb/Layout/expected/font-with-many-normal-values.txt
  46. 1 1
      Tests/LibWeb/Layout/expected/grid/auto-fill-and-named-line-placement.txt
  47. 8 8
      Tests/LibWeb/Layout/expected/grid/fixed-tracks-followed-by-repeat-auto-fill.txt
  48. 1 1
      Tests/LibWeb/Layout/expected/grid/grid-item-fixed-paddings.txt
  49. 2 2
      Tests/LibWeb/Layout/expected/grid/item-with-percentage-max-width.txt
  50. 1 1
      Tests/LibWeb/Layout/expected/height-of-absolute-position-box-with-padding.txt
  51. 4 4
      Tests/LibWeb/Layout/expected/input-as-button-align-center.txt
  52. 25 25
      Tests/LibWeb/Layout/expected/input-file.txt
  53. 1 1
      Tests/LibWeb/Layout/expected/letter-spacing-end-of-line-001.txt
  54. 2 2
      Tests/LibWeb/Layout/expected/nowrap-and-no-line-break-opportunity.txt
  55. 4 4
      Tests/LibWeb/Layout/expected/replaced-box-with-vertical-margins.txt
  56. 2 2
      Tests/LibWeb/Layout/expected/table/basic.txt
  57. 12 12
      Tests/LibWeb/Layout/expected/table/border-collapse-is-inherited.txt
  58. 11 11
      Tests/LibWeb/Layout/expected/table/border-spacing-colspan.txt
  59. 11 11
      Tests/LibWeb/Layout/expected/table/border-spacing-rowspan.txt
  60. 12 12
      Tests/LibWeb/Layout/expected/table/border-spacing.txt
  61. 2 2
      Tests/LibWeb/Layout/expected/table/bottom-caption.txt
  62. 6 6
      Tests/LibWeb/Layout/expected/table/cell-relative-to-specified-table-width.txt
  63. 5 5
      Tests/LibWeb/Layout/expected/table/colspan-percentage-width.txt
  64. 3 3
      Tests/LibWeb/Layout/expected/table/colspan-weighted-width-distribution.txt
  65. 2 2
      Tests/LibWeb/Layout/expected/table/colspan-width-distribution.txt
  66. 5 5
      Tests/LibWeb/Layout/expected/table/colspan-with-trailing-characters.txt
  67. 1 1
      Tests/LibWeb/Layout/expected/table/long-caption-increases-width.txt
  68. 3 3
      Tests/LibWeb/Layout/expected/table/percentage-width-columns.txt
  69. 13 13
      Tests/LibWeb/Layout/expected/table/rowspan-with-trailing-characters.txt
  70. 25 25
      Tests/LibWeb/Layout/expected/text-align-justify-with-forced-break.txt
  71. 3 3
      Tests/LibWeb/Layout/expected/vertical-align-middle.txt
  72. 3 3
      Tests/LibWeb/Layout/expected/writing-modes-direction-inline.txt
  73. 4 4
      Tests/LibWeb/Ref/input/scrollable-contains-table.html
  74. 二进制
      Tests/LibWeb/Screenshot/images/alt-frame.png
  75. 二进制
      Tests/LibWeb/Screenshot/images/css-background-clip-text.png
  76. 二进制
      Tests/LibWeb/Screenshot/images/css-color-functions-ref.png
  77. 二进制
      Tests/LibWeb/Screenshot/images/css-transform-box-ref.png
  78. 二进制
      Tests/LibWeb/Screenshot/images/inline-node-ref.png
  79. 二进制
      Tests/LibWeb/Screenshot/images/input-placeholder-ref.png
  80. 二进制
      Tests/LibWeb/Screenshot/images/object-fit-position.png
  81. 二进制
      Tests/LibWeb/Screenshot/images/text-decorations.png
  82. 二进制
      Tests/LibWeb/Screenshot/images/text-direction-ref.png
  83. 二进制
      Tests/LibWeb/Screenshot/images/text-shadow-ref.png

+ 3 - 1
Libraries/LibGfx/Font/ScaledFontSkia.cpp

@@ -15,7 +15,9 @@ namespace Gfx {
 SkFont ScaledFont::skia_font(float scale) const
 {
     auto const& sk_typeface = verify_cast<TypefaceSkia>(*m_typeface).sk_typeface();
-    return SkFont { sk_ref_sp(sk_typeface), pixel_size() * scale };
+    auto sk_font = SkFont { sk_ref_sp(sk_typeface), pixel_size() * scale };
+    sk_font.setSubpixel(true);
+    return sk_font;
 }
 
 }

+ 0 - 2
Libraries/LibWeb/Layout/LineBoxFragment.cpp

@@ -5,10 +5,8 @@
  */
 
 #include <AK/Utf8View.h>
-#include <LibWeb/DOM/Range.h>
 #include <LibWeb/Layout/LayoutState.h>
 #include <LibWeb/Layout/TextNode.h>
-#include <LibWeb/Layout/Viewport.h>
 #include <ctype.h>
 
 namespace Web::Layout {

+ 1 - 1
Libraries/LibWeb/Layout/LineBuilder.cpp

@@ -269,7 +269,7 @@ void LineBuilder::update_last_line()
     for (size_t i = 0; i < line_box.fragments().size(); ++i) {
         auto& fragment = line_box.fragments()[i];
 
-        CSSPixels new_fragment_inline_offset = round(inline_offset + fragment.inline_offset());
+        CSSPixels new_fragment_inline_offset = inline_offset + fragment.inline_offset();
         CSSPixels new_fragment_block_offset = 0;
 
         auto block_offset_value_for_alignment = [&](CSS::VerticalAlign vertical_align) {

+ 0 - 3
Libraries/LibWeb/Layout/Node.h

@@ -7,10 +7,7 @@
 #pragma once
 
 #include <AK/NonnullRefPtr.h>
-#include <AK/TypeCasts.h>
 #include <AK/Vector.h>
-#include <LibGC/Root.h>
-#include <LibGfx/Rect.h>
 #include <LibJS/Heap/Cell.h>
 #include <LibWeb/CSS/ComputedValues.h>
 #include <LibWeb/CSS/StyleComputer.h>

+ 5 - 2
Libraries/LibWeb/Painting/BackgroundPainting.cpp

@@ -29,9 +29,12 @@ static RefPtr<DisplayList> compute_text_clip_paths(PaintContext& context, Painta
         auto fragment_absolute_rect = fragment.absolute_rect();
         auto fragment_absolute_device_rect = context.enclosing_device_rect(fragment_absolute_rect);
 
-        DevicePixelPoint baseline_start { fragment_absolute_device_rect.x(), fragment_absolute_device_rect.y() + context.rounded_device_pixels(fragment.baseline()) };
         auto scale = context.device_pixels_per_css_pixel();
-        display_list_recorder.draw_text_run(baseline_start.to_type<int>(), *glyph_run, Gfx::Color::Black, fragment_absolute_device_rect.to_type<int>(), scale, fragment.orientation());
+        auto baseline_start = Gfx::FloatPoint {
+            fragment_absolute_rect.x().to_float(),
+            fragment_absolute_rect.y().to_float() + fragment.baseline().to_float(),
+        } * scale;
+        display_list_recorder.draw_text_run(baseline_start, *glyph_run, Gfx::Color::Black, fragment_absolute_device_rect.to_type<int>(), scale, fragment.orientation());
     };
 
     paintable.for_each_in_inclusive_subtree([&](auto& paintable) {

+ 3 - 3
Libraries/LibWeb/Painting/Command.h

@@ -164,12 +164,12 @@ struct PaintTextShadow {
     double glyph_run_scale { 1 };
     Gfx::IntRect shadow_bounding_rect;
     Gfx::IntRect text_rect;
-    Gfx::IntPoint draw_location;
+    Gfx::FloatPoint draw_location;
     int blur_radius;
     Color color;
 
-    [[nodiscard]] Gfx::IntRect bounding_rect() const { return { draw_location, shadow_bounding_rect.size() }; }
-    void translate_by(Gfx::IntPoint const& offset) { draw_location.translate_by(offset); }
+    [[nodiscard]] Gfx::IntRect bounding_rect() const { return { draw_location.to_type<int>(), shadow_bounding_rect.size() }; }
+    void translate_by(Gfx::IntPoint const& offset) { draw_location.translate_by(offset.to_type<float>()); }
 };
 
 struct FillRectWithRoundedCorners {

+ 1 - 1
Libraries/LibWeb/Painting/DisplayListPlayerSkia.cpp

@@ -504,7 +504,7 @@ void DisplayListPlayerSkia::paint_text_shadow(PaintTextShadow const& command)
         .glyph_run = command.glyph_run,
         .scale = command.glyph_run_scale,
         .rect = command.text_rect,
-        .translation = command.draw_location.to_type<float>() + command.text_rect.location().to_type<float>(),
+        .translation = command.draw_location + command.text_rect.location().to_type<float>(),
         .color = command.color,
     });
     canvas.restore();

+ 4 - 4
Libraries/LibWeb/Painting/DisplayListRecorder.cpp

@@ -244,10 +244,10 @@ void DisplayListRecorder::draw_text(Gfx::IntRect const& rect, String raw_text, G
     }
     auto metrics = font.pixel_metrics();
     float baseline_y = static_cast<float>(rect.y()) + metrics.ascent + (static_cast<float>(rect.height()) - (metrics.ascent + metrics.descent)) / 2.0f;
-    draw_text_run(Gfx::IntPoint(roundf(baseline_x), roundf(baseline_y)), *glyph_run, color, rect, 1.0, Orientation::Horizontal);
+    draw_text_run({ baseline_x, baseline_y }, *glyph_run, color, rect, 1.0, Orientation::Horizontal);
 }
 
-void DisplayListRecorder::draw_text_run(Gfx::IntPoint baseline_start, Gfx::GlyphRun const& glyph_run, Color color, Gfx::IntRect const& rect, double scale, Orientation orientation)
+void DisplayListRecorder::draw_text_run(Gfx::FloatPoint baseline_start, Gfx::GlyphRun const& glyph_run, Color color, Gfx::IntRect const& rect, double scale, Orientation orientation)
 {
     if (rect.is_empty())
         return;
@@ -255,7 +255,7 @@ void DisplayListRecorder::draw_text_run(Gfx::IntPoint baseline_start, Gfx::Glyph
         .glyph_run = glyph_run,
         .scale = scale,
         .rect = rect,
-        .translation = baseline_start.to_type<float>(),
+        .translation = baseline_start,
         .color = color,
         .orientation = orientation,
     });
@@ -331,7 +331,7 @@ void DisplayListRecorder::paint_inner_box_shadow_params(PaintBoxShadowParams par
     append(PaintInnerBoxShadow { .box_shadow_params = params });
 }
 
-void DisplayListRecorder::paint_text_shadow(int blur_radius, Gfx::IntRect bounding_rect, Gfx::IntRect text_rect, Gfx::GlyphRun const& glyph_run, double glyph_run_scale, Color color, Gfx::IntPoint draw_location)
+void DisplayListRecorder::paint_text_shadow(int blur_radius, Gfx::IntRect bounding_rect, Gfx::IntRect text_rect, Gfx::GlyphRun const& glyph_run, double glyph_run_scale, Color color, Gfx::FloatPoint draw_location)
 {
     append(PaintTextShadow {
         .glyph_run = glyph_run,

+ 2 - 4
Libraries/LibWeb/Painting/DisplayListRecorder.h

@@ -8,8 +8,6 @@
 
 #include <AK/Forward.h>
 #include <AK/NonnullRefPtr.h>
-#include <AK/SegmentedVector.h>
-#include <AK/Utf8View.h>
 #include <AK/Vector.h>
 #include <LibGfx/Color.h>
 #include <LibGfx/Forward.h>
@@ -106,7 +104,7 @@ public:
     void draw_text(Gfx::IntRect const&, String, Gfx::Font const&, Gfx::TextAlignment, Color);
 
     // Streamlined text drawing routine that does no wrapping/elision/alignment.
-    void draw_text_run(Gfx::IntPoint baseline_start, Gfx::GlyphRun const& glyph_run, Color color, Gfx::IntRect const& rect, double scale, Gfx::Orientation);
+    void draw_text_run(Gfx::FloatPoint baseline_start, Gfx::GlyphRun const& glyph_run, Color color, Gfx::IntRect const& rect, double scale, Gfx::Orientation);
 
     void add_clip_rect(Gfx::IntRect const& rect);
 
@@ -137,7 +135,7 @@ public:
 
     void paint_outer_box_shadow_params(PaintBoxShadowParams params);
     void paint_inner_box_shadow_params(PaintBoxShadowParams params);
-    void paint_text_shadow(int blur_radius, Gfx::IntRect bounding_rect, Gfx::IntRect text_rect, Gfx::GlyphRun const&, double glyph_run_scale, Color color, Gfx::IntPoint draw_location);
+    void paint_text_shadow(int blur_radius, Gfx::IntRect bounding_rect, Gfx::IntRect text_rect, Gfx::GlyphRun const&, double glyph_run_scale, Color color, Gfx::FloatPoint draw_location);
 
     void fill_rect_with_rounded_corners(Gfx::IntRect const& rect, Color color, CornerRadius top_left_radius, CornerRadius top_right_radius, CornerRadius bottom_right_radius, CornerRadius bottom_left_radius);
     void fill_rect_with_rounded_corners(Gfx::IntRect const& a_rect, Color color, int radius);

+ 7 - 5
Libraries/LibWeb/Painting/PaintableBox.cpp

@@ -683,16 +683,19 @@ void paint_text_fragment(PaintContext& context, TextPaintable const& paintable,
         if (!glyph_run)
             return;
 
-        DevicePixelPoint baseline_start { fragment_absolute_device_rect.x(), fragment_absolute_device_rect.y() + context.rounded_device_pixels(fragment.baseline()) };
         auto scale = context.device_pixels_per_css_pixel();
-        painter.draw_text_run(baseline_start.to_type<int>(), *glyph_run, paintable.computed_values().webkit_text_fill_color(), fragment_absolute_device_rect.to_type<int>(), scale, fragment.orientation());
+        auto baseline_start = Gfx::FloatPoint {
+            fragment_absolute_rect.x().to_float(),
+            fragment_absolute_rect.y().to_float() + fragment.baseline().to_float(),
+        } * scale;
+        painter.draw_text_run(baseline_start, *glyph_run, paintable.computed_values().webkit_text_fill_color(), fragment_absolute_device_rect.to_type<int>(), scale, fragment.orientation());
 
         auto selection_rect = context.enclosing_device_rect(fragment.selection_rect()).to_type<int>();
         if (!selection_rect.is_empty()) {
             painter.fill_rect(selection_rect, CSS::SystemColor::highlight());
             DisplayListRecorderStateSaver saver(painter);
             painter.add_clip_rect(selection_rect);
-            painter.draw_text_run(baseline_start.to_type<int>(), *glyph_run, CSS::SystemColor::highlight_text(), fragment_absolute_device_rect.to_type<int>(), scale, fragment.orientation());
+            painter.draw_text_run(baseline_start, *glyph_run, CSS::SystemColor::highlight_text(), fragment_absolute_device_rect.to_type<int>(), scale, fragment.orientation());
         }
 
         paint_text_decoration(context, paintable, fragment);
@@ -744,9 +747,8 @@ void PaintableWithLines::paint(PaintContext& context, PaintPhase phase) const
     // So, we paint the shadows before painting any text.
     // FIXME: Find a smarter way to do this?
     if (phase == PaintPhase::Foreground) {
-        for (auto& fragment : fragments()) {
+        for (auto& fragment : fragments())
             paint_text_shadow(context, fragment, fragment.shadows());
-        }
     }
 
     for (auto const& fragment : m_fragments) {

+ 7 - 8
Libraries/LibWeb/Painting/ShadowPainting.cpp

@@ -74,13 +74,10 @@ void paint_text_shadow(PaintContext& context, PaintableFragment const& fragment,
 
     auto fragment_width = context.enclosing_device_pixels(fragment.width()).value();
     auto fragment_height = context.enclosing_device_pixels(fragment.height()).value();
-    auto draw_rect = context.enclosing_device_rect(fragment.absolute_rect()).to_type<int>();
     auto fragment_baseline = context.rounded_device_pixels(fragment.baseline()).value();
 
     // Note: Box-shadow layers are ordered front-to-back, so we paint them in reverse
     for (auto& layer : shadow_layers.in_reverse()) {
-        int offset_x = context.rounded_device_pixels(layer.offset_x).value();
-        int offset_y = context.rounded_device_pixels(layer.offset_y).value();
         int blur_radius = context.rounded_device_pixels(layer.blur_radius).value();
 
         // Space around the painted text to allow it to blur.
@@ -95,12 +92,14 @@ void paint_text_shadow(PaintContext& context, PaintableFragment const& fragment,
             text_rect.width() + margin + margin,
             text_rect.height() + margin + margin
         };
-        Gfx::IntPoint draw_location {
-            draw_rect.x() + offset_x - margin,
-            draw_rect.y() + offset_y - margin
-        };
 
-        context.display_list_recorder().paint_text_shadow(blur_radius, bounding_rect, text_rect.translated(0, fragment_baseline), *glyph_run, context.device_pixels_per_css_pixel(), layer.color, draw_location);
+        auto scale = context.device_pixels_per_css_pixel();
+        auto draw_location = Gfx::FloatPoint {
+            fragment.absolute_rect().x() + layer.offset_x - margin,
+            fragment.absolute_rect().y() + layer.offset_y - margin,
+        } * scale;
+
+        context.display_list_recorder().paint_text_shadow(blur_radius, bounding_rect, text_rect.translated(0, fragment_baseline), *glyph_run, scale, layer.color, draw_location);
     }
 }
 

+ 10 - 10
Tests/LibWeb/Layout/expected/acid1.txt

@@ -38,16 +38,16 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <p> at (235,65) content-size 139.96875x19 children: inline
                 frag 0 from TextNode start: 1, length: 5, rect: [235,65 27.5x19] baseline: 12.5
                     "bang "
-                frag 1 from RadioButton start: 0, length: 0, rect: [263,65 12x12] baseline: 12
+                frag 1 from RadioButton start: 0, length: 0, rect: [262.5,65 12x12] baseline: 12
                 TextNode <#text>
-                RadioButton <input> at (263,65) content-size 12x12 inline-block children: not-inline
+                RadioButton <input> at (262.5,65) content-size 12x12 inline-block children: not-inline
                 TextNode <#text>
               BlockContainer <p> at (235,84) content-size 139.96875x19 children: inline
                 frag 0 from TextNode start: 1, length: 8, rect: [235,84 45.171875x19] baseline: 12.5
                     "whimper "
-                frag 1 from RadioButton start: 0, length: 0, rect: [280,84 12x12] baseline: 12
+                frag 1 from RadioButton start: 0, length: 0, rect: [280.171875,84 12x12] baseline: 12
                 TextNode <#text>
-                RadioButton <input> at (280,84) content-size 12x12 inline-block children: not-inline
+                RadioButton <input> at (280.171875,84) content-size 12x12 inline-block children: not-inline
                 TextNode <#text>
               BlockContainer <(anonymous)> at (235,103) content-size 139.96875x0 children: inline
                 TextNode <#text>
@@ -95,22 +95,22 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
             "agents should be able to render the document elements above this paragraph"
         frag 2 from TextNode start: 167, length: 43, rect: [20,361 207.9375x13] baseline: 9.5
             "indistinguishably (to the pixel) from this "
-        frag 3 from TextNode start: 0, length: 31, rect: [331,361 159.671875x13] baseline: 9.5
+        frag 3 from TextNode start: 0, length: 31, rect: [330.96875,361 159.671875x13] baseline: 9.5
             " (except font rasterization and"
         frag 4 from TextNode start: 32, length: 89, rect: [20,374 465.09375x13] baseline: 9.5
             "form widgets). All discrepancies should be traceable to CSS1 implementation shortcomings."
         frag 5 from TextNode start: 122, length: 67, rect: [20,387 345.59375x13] baseline: 9.5
             "Once you have finished evaluating this test, you can return to the "
-        frag 6 from TextNode start: 0, length: 1, rect: [426,387 2.71875x13] baseline: 9.5
+        frag 6 from TextNode start: 0, length: 1, rect: [425.5,387 2.71875x13] baseline: 9.5
             "."
         TextNode <#text>
         InlineNode <a>
-          frag 0 from TextNode start: 0, length: 20, rect: [228,361 103.03125x13] baseline: 9.5
+          frag 0 from TextNode start: 0, length: 20, rect: [227.9375,361 103.03125x13] baseline: 9.5
               "reference rendering,"
           TextNode <#text>
         TextNode <#text>
         InlineNode <a>
-          frag 0 from TextNode start: 0, length: 11, rect: [366,387 59.90625x13] baseline: 9.5
+          frag 0 from TextNode start: 0, length: 11, rect: [365.59375,387 59.90625x13] baseline: 9.5
               "parent page"
           TextNode <#text>
         TextNode <#text>
@@ -138,10 +138,10 @@ ViewportPaintable (Viewport<#document>) [0,0 800x600]
                 PaintableWithLines (InlineNode<FORM>)
               PaintableWithLines (BlockContainer<P>) [235,65 139.96875x19]
                 TextPaintable (TextNode<#text>)
-                RadioButtonPaintable (RadioButton<INPUT>) [263,65 12x12]
+                RadioButtonPaintable (RadioButton<INPUT>) [262.5,65 12x12]
               PaintableWithLines (BlockContainer<P>) [235,84 139.96875x19]
                 TextPaintable (TextNode<#text>)
-                RadioButtonPaintable (RadioButton<INPUT>) [280,84 12x12]
+                RadioButtonPaintable (RadioButton<INPUT>) [280.171875,84 12x12]
               PaintableWithLines (BlockContainer(anonymous)) [235,103 139.96875x0]
             PaintableWithLines (BlockContainer<LI>) [394.96875,45 80x120]
               TextPaintable (TextNode<#text>)

+ 3 - 3
Tests/LibWeb/Layout/expected/block-and-inline/atomic-inline-with-white-space-nowrap.txt

@@ -4,9 +4,9 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
       BlockContainer <div> at (8,8) content-size 37.15625x17 children: inline
         frag 0 from TextNode start: 0, length: 3, rect: [8,8 27.15625x17] baseline: 13.296875
             "foo"
-        frag 1 from ImageBox start: 0, length: 0, rect: [35,11 10x10] baseline: 10
+        frag 1 from ImageBox start: 0, length: 0, rect: [35.15625,11 10x10] baseline: 10
         TextNode <#text>
-        ImageBox <img> at (35,11) content-size 10x10 children: not-inline
+        ImageBox <img> at (35.15625,11) content-size 10x10 children: not-inline
         TextNode <#text>
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
@@ -14,4 +14,4 @@ ViewportPaintable (Viewport<#document>) [0,0 800x600]
     PaintableWithLines (BlockContainer<BODY>) [8,8 37.15625x17]
       PaintableWithLines (BlockContainer<DIV>) [8,8 37.15625x17]
         TextPaintable (TextNode<#text>)
-        ImagePaintable (ImageBox<IMG>) [35,11 10x10]
+        ImagePaintable (ImageBox<IMG>) [35.15625,11 10x10]

+ 2 - 2
Tests/LibWeb/Layout/expected/block-and-inline/bfc-consider-all-currently-stacked-floats.txt

@@ -9,12 +9,12 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
             "xxx"
         TextNode <#text>
       BlockContainer <(anonymous)> at (8,8) content-size 784x17 children: inline
-        frag 0 from TextNode start: 1, length: 3, rect: [137,8 27.640625x17] baseline: 13.296875
+        frag 0 from TextNode start: 1, length: 3, rect: [137.109375,8 27.640625x17] baseline: 13.296875
             "bar"
         TextNode <#text>
         TextNode <#text>
       BlockContainer <div> at (8,25) content-size 784x17 children: inline
-        frag 0 from TextNode start: 1, length: 3, rect: [130,25 27.203125x17] baseline: 13.296875
+        frag 0 from TextNode start: 1, length: 3, rect: [129.515625,25 27.203125x17] baseline: 13.296875
             "baz"
         TextNode <#text>
         BlockContainer <div.yyy> at (108,25) content-size 21.515625x17 floating [BFC] children: inline

+ 9 - 9
Tests/LibWeb/Layout/expected/block-and-inline/button-baseline-align.txt

@@ -4,19 +4,19 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
       frag 0 from BlockContainer start: 0, length: 0, rect: [8,8 61.1875x48] baseline: 36
       BlockContainer <div.ib> at (8,8) content-size 61.1875x48 inline-block [BFC] children: inline
         frag 0 from BlockContainer start: 0, length: 0, rect: [9,27 17.828125x22] baseline: 18
-        frag 1 from TextNode start: 0, length: 1, rect: [28,30 8x17] baseline: 13.296875
+        frag 1 from TextNode start: 0, length: 1, rect: [27.828125,30 8x17] baseline: 13.296875
             " "
-        frag 2 from BlockContainer start: 0, length: 0, rect: [41,10 23.359375x44] baseline: 36
+        frag 2 from BlockContainer start: 0, length: 0, rect: [40.828125,10 23.359375x44] baseline: 36
         TextNode <#text>
         BlockContainer <div.label> at (9,27) content-size 17.828125x22 inline-block [BFC] children: inline
           frag 0 from TextNode start: 0, length: 1, rect: [9,27 17.828125x22] baseline: 17
               "A"
           TextNode <#text>
         TextNode <#text>
-        BlockContainer <button> at (41,10) content-size 23.359375x44 inline-block [BFC] children: not-inline
-          BlockContainer <(anonymous)> at (41,10) content-size 23.359375x44 flex-container(column) [FFC] children: not-inline
-            BlockContainer <(anonymous)> at (41,10) content-size 23.359375x44 flex-item [BFC] children: inline
-              frag 0 from TextNode start: 0, length: 1, rect: [41,10 23.359375x44] baseline: 34
+        BlockContainer <button> at (40.828125,10) content-size 23.359375x44 inline-block [BFC] children: not-inline
+          BlockContainer <(anonymous)> at (40.828125,10) content-size 23.359375x44 flex-container(column) [FFC] children: not-inline
+            BlockContainer <(anonymous)> at (40.828125,10) content-size 23.359375x44 flex-item [BFC] children: inline
+              frag 0 from TextNode start: 0, length: 1, rect: [40.828125,10 23.359375x44] baseline: 34
                   "B"
               TextNode <#text>
         TextNode <#text>
@@ -28,7 +28,7 @@ ViewportPaintable (Viewport<#document>) [0,0 800x600]
         PaintableWithLines (BlockContainer<DIV>.label) [8,26 19.828125x24]
           TextPaintable (TextNode<#text>)
         TextPaintable (TextNode<#text>)
-        PaintableWithLines (BlockContainer<BUTTON>) [36,8 33.359375x48]
-          PaintableWithLines (BlockContainer(anonymous)) [41,10 23.359375x44]
-            PaintableWithLines (BlockContainer(anonymous)) [41,10 23.359375x44]
+        PaintableWithLines (BlockContainer<BUTTON>) [35.828125,8 33.359375x48]
+          PaintableWithLines (BlockContainer(anonymous)) [40.828125,10 23.359375x44]
+            PaintableWithLines (BlockContainer(anonymous)) [40.828125,10 23.359375x44]
               TextPaintable (TextNode<#text>)

+ 1 - 1
Tests/LibWeb/Layout/expected/block-and-inline/button-should-have-vertically-aligned-content.txt

@@ -15,7 +15,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
             BlockContainer <(anonymous)> at (22,66.5) content-size 48.6875x0 children: inline
               TextNode <#text>
             BlockContainer <div.border-black> at (32,76.5) content-size 28.6875x100 children: inline
-              frag 0 from TextNode start: 1, length: 3, rect: [32,76.5 28.4375x17] baseline: 13.296875
+              frag 0 from TextNode start: 1, length: 3, rect: [32.125,76.5 28.4375x17] baseline: 13.296875
                   "two"
               TextNode <#text>
             BlockContainer <(anonymous)> at (22,186.5) content-size 48.6875x0 children: inline

+ 1 - 1
Tests/LibWeb/Layout/expected/block-and-inline/button-width.txt

@@ -4,7 +4,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
       BlockContainer <button.btn.fixed-width> at (13,10) content-size 190x17 children: not-inline
         BlockContainer <(anonymous)> at (13,10) content-size 190x17 flex-container(column) [FFC] children: not-inline
           BlockContainer <(anonymous)> at (13,10) content-size 190x17 flex-item [BFC] children: inline
-            frag 0 from TextNode start: 0, length: 11, rect: [61,10 94.921875x17] baseline: 13.296875
+            frag 0 from TextNode start: 0, length: 11, rect: [60.53125,10 94.921875x17] baseline: 13.296875
                 "200px width"
             TextNode <#text>
       BlockContainer <button.btn> at (13,31) content-size 324.671875x17 children: not-inline

+ 15 - 15
Tests/LibWeb/Layout/expected/block-and-inline/button-with-block-content-baseline-align.txt

@@ -4,25 +4,25 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
       frag 0 from BlockContainer start: 0, length: 0, rect: [8,8 61.1875x48] baseline: 36
       BlockContainer <div.ib> at (8,8) content-size 61.1875x48 inline-block [BFC] children: inline
         frag 0 from BlockContainer start: 0, length: 0, rect: [9,27 17.828125x22] baseline: 18
-        frag 1 from TextNode start: 0, length: 1, rect: [28,30 8x17] baseline: 13.296875
+        frag 1 from TextNode start: 0, length: 1, rect: [27.828125,30 8x17] baseline: 13.296875
             " "
-        frag 2 from BlockContainer start: 0, length: 0, rect: [41,10 23.359375x44] baseline: 36
+        frag 2 from BlockContainer start: 0, length: 0, rect: [40.828125,10 23.359375x44] baseline: 36
         TextNode <#text>
         BlockContainer <div.label> at (9,27) content-size 17.828125x22 inline-block [BFC] children: inline
           frag 0 from TextNode start: 0, length: 1, rect: [9,27 17.828125x22] baseline: 17
               "A"
           TextNode <#text>
         TextNode <#text>
-        BlockContainer <button> at (41,10) content-size 23.359375x44 inline-block [BFC] children: not-inline
-          BlockContainer <(anonymous)> at (41,10) content-size 23.359375x44 flex-container(column) [FFC] children: not-inline
-            BlockContainer <(anonymous)> at (41,10) content-size 23.359375x44 flex-item [BFC] children: not-inline
-              BlockContainer <(anonymous)> at (41,10) content-size 23.359375x0 children: inline
+        BlockContainer <button> at (40.828125,10) content-size 23.359375x44 inline-block [BFC] children: not-inline
+          BlockContainer <(anonymous)> at (40.828125,10) content-size 23.359375x44 flex-container(column) [FFC] children: not-inline
+            BlockContainer <(anonymous)> at (40.828125,10) content-size 23.359375x44 flex-item [BFC] children: not-inline
+              BlockContainer <(anonymous)> at (40.828125,10) content-size 23.359375x0 children: inline
                 TextNode <#text>
-              BlockContainer <div> at (41,10) content-size 23.359375x44 children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [41,10 23.359375x44] baseline: 34
+              BlockContainer <div> at (40.828125,10) content-size 23.359375x44 children: inline
+                frag 0 from TextNode start: 0, length: 1, rect: [40.828125,10 23.359375x44] baseline: 34
                     "B"
                 TextNode <#text>
-              BlockContainer <(anonymous)> at (41,54) content-size 23.359375x0 children: inline
+              BlockContainer <(anonymous)> at (40.828125,54) content-size 23.359375x0 children: inline
                 TextNode <#text>
         TextNode <#text>
 
@@ -33,10 +33,10 @@ ViewportPaintable (Viewport<#document>) [0,0 800x600]
         PaintableWithLines (BlockContainer<DIV>.label) [8,26 19.828125x24]
           TextPaintable (TextNode<#text>)
         TextPaintable (TextNode<#text>)
-        PaintableWithLines (BlockContainer<BUTTON>) [36,8 33.359375x48]
-          PaintableWithLines (BlockContainer(anonymous)) [41,10 23.359375x44]
-            PaintableWithLines (BlockContainer(anonymous)) [41,10 23.359375x44]
-              PaintableWithLines (BlockContainer(anonymous)) [41,10 23.359375x0]
-              PaintableWithLines (BlockContainer<DIV>) [41,10 23.359375x44]
+        PaintableWithLines (BlockContainer<BUTTON>) [35.828125,8 33.359375x48]
+          PaintableWithLines (BlockContainer(anonymous)) [40.828125,10 23.359375x44]
+            PaintableWithLines (BlockContainer(anonymous)) [40.828125,10 23.359375x44]
+              PaintableWithLines (BlockContainer(anonymous)) [40.828125,10 23.359375x0]
+              PaintableWithLines (BlockContainer<DIV>) [40.828125,10 23.359375x44]
                 TextPaintable (TextNode<#text>)
-              PaintableWithLines (BlockContainer(anonymous)) [41,54 23.359375x0]
+              PaintableWithLines (BlockContainer(anonymous)) [40.828125,54 23.359375x0]

+ 6 - 6
Tests/LibWeb/Layout/expected/block-and-inline/columns-33-percent-width.txt

@@ -2,15 +2,15 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
   BlockContainer <html> at (0,0) content-size 800x116 [BFC] children: not-inline
     BlockContainer <body> at (8,8) content-size 620x100 children: inline
       frag 0 from BlockContainer start: 0, length: 0, rect: [8,8 206.65625x100] baseline: 100
-      frag 1 from BlockContainer start: 0, length: 0, rect: [215,8 206.65625x100] baseline: 100
-      frag 2 from BlockContainer start: 0, length: 0, rect: [421,8 206.65625x100] baseline: 100
+      frag 1 from BlockContainer start: 0, length: 0, rect: [214.65625,8 206.65625x100] baseline: 100
+      frag 2 from BlockContainer start: 0, length: 0, rect: [421.3125,8 206.65625x100] baseline: 100
       BlockContainer <div> at (8,8) content-size 206.65625x100 inline-block [BFC] children: not-inline
-      BlockContainer <div> at (215,8) content-size 206.65625x100 inline-block [BFC] children: not-inline
-      BlockContainer <div> at (421,8) content-size 206.65625x100 inline-block [BFC] children: not-inline
+      BlockContainer <div> at (214.65625,8) content-size 206.65625x100 inline-block [BFC] children: not-inline
+      BlockContainer <div> at (421.3125,8) content-size 206.65625x100 inline-block [BFC] children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x116]
     PaintableWithLines (BlockContainer<BODY>) [8,8 620x100]
       PaintableWithLines (BlockContainer<DIV>) [8,8 206.65625x100]
-      PaintableWithLines (BlockContainer<DIV>) [215,8 206.65625x100]
-      PaintableWithLines (BlockContainer<DIV>) [421,8 206.65625x100]
+      PaintableWithLines (BlockContainer<DIV>) [214.65625,8 206.65625x100]
+      PaintableWithLines (BlockContainer<DIV>) [421.3125,8 206.65625x100]

+ 1 - 1
Tests/LibWeb/Layout/expected/block-and-inline/float-3.txt

@@ -16,7 +16,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
           TextNode <#text>
           TextNode <#text>
         BlockContainer <div#text> at (9,109) content-size 778x17 children: inline
-          frag 0 from TextNode start: 0, length: 6, rect: [371,109 54.796875x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 6, rect: [370.59375,109 54.796875x17] baseline: 13.296875
               "foobar"
           TextNode <#text>
         BlockContainer <(anonymous)> at (9,126) content-size 778x0 children: inline

+ 3 - 3
Tests/LibWeb/Layout/expected/block-and-inline/float-4.txt

@@ -5,17 +5,17 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
     BlockContainer <body> at (8,8) content-size 780x0 children: inline
       TextNode <#text>
       BlockContainer <div.left> at (9,9) content-size 50x50 floating [BFC] children: inline
-        frag 0 from TextNode start: 0, length: 5, rect: [14,9 39.21875x17] baseline: 13.296875
+        frag 0 from TextNode start: 0, length: 5, rect: [14.390625,9 39.21875x17] baseline: 13.296875
             "Left1"
         TextNode <#text>
       TextNode <#text>
       BlockContainer <div.right> at (737,9) content-size 50x50 floating [BFC] children: inline
-        frag 0 from TextNode start: 0, length: 6, rect: [738,9 48.3125x17] baseline: 13.296875
+        frag 0 from TextNode start: 0, length: 6, rect: [737.84375,9 48.3125x17] baseline: 13.296875
             "Right1"
         TextNode <#text>
       TextNode <#text>
       BlockContainer <div.left> at (61,9) content-size 50x50 floating [BFC] children: inline
-        frag 0 from TextNode start: 0, length: 5, rect: [65,9 41.6875x17] baseline: 13.296875
+        frag 0 from TextNode start: 0, length: 5, rect: [65.15625,9 41.6875x17] baseline: 13.296875
             "Left2"
         TextNode <#text>
       TextNode <#text>

+ 81 - 81
Tests/LibWeb/Layout/expected/block-and-inline/float-left-and-right-with-justified-text-in-between.txt

@@ -3,157 +3,157 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
     BlockContainer <body> at (252,10) content-size 538x400 children: inline
       frag 0 from TextNode start: 1, length: 5, rect: [554,10 63.71875x22] baseline: 17
           "Lorem"
-      frag 1 from TextNode start: 6, length: 1, rect: [618,10 12.53125x22] baseline: 17
+      frag 1 from TextNode start: 6, length: 1, rect: [617.71875,10 12.53125x22] baseline: 17
           " "
-      frag 2 from TextNode start: 7, length: 5, rect: [630.53125,10 56.625x22] baseline: 17
+      frag 2 from TextNode start: 7, length: 5, rect: [630.25,10 56.625x22] baseline: 17
           "ipsum"
-      frag 3 from TextNode start: 12, length: 1, rect: [686.53125,10 12.53125x22] baseline: 17
+      frag 3 from TextNode start: 12, length: 1, rect: [686.875,10 12.53125x22] baseline: 17
           " "
-      frag 4 from TextNode start: 13, length: 5, rect: [699.0625,10 52.0625x22] baseline: 17
+      frag 4 from TextNode start: 13, length: 5, rect: [699.40625,10 52.0625x22] baseline: 17
           "dolor"
-      frag 5 from TextNode start: 18, length: 1, rect: [751.0625,10 12.53125x22] baseline: 17
+      frag 5 from TextNode start: 18, length: 1, rect: [751.46875,10 12.53125x22] baseline: 17
           " "
-      frag 6 from TextNode start: 19, length: 3, rect: [763.59375,10 25.96875x22] baseline: 17
+      frag 6 from TextNode start: 19, length: 3, rect: [764,10 25.96875x22] baseline: 17
           "sit"
       frag 7 from TextNode start: 23, length: 4, rect: [554,32 46.421875x22] baseline: 17
           "amet"
-      frag 8 from TextNode start: 27, length: 1, rect: [600,32 6.3125x22] baseline: 17
+      frag 8 from TextNode start: 27, length: 1, rect: [600.421875,32 6.3125x22] baseline: 17
           ","
-      frag 9 from TextNode start: 28, length: 1, rect: [607,32 62.1875x22] baseline: 17
+      frag 9 from TextNode start: 28, length: 1, rect: [606.734375,32 62.1875x22] baseline: 17
           " "
-      frag 10 from TextNode start: 29, length: 11, rect: [669.1875,32 121.078125x22] baseline: 17
+      frag 10 from TextNode start: 29, length: 11, rect: [668.921875,32 121.078125x22] baseline: 17
           "consectetur"
       frag 11 from TextNode start: 41, length: 10, rect: [554,54 94.671875x22] baseline: 17
           "adipiscing"
-      frag 12 from TextNode start: 51, length: 1, rect: [649,54 105.40625x22] baseline: 17
+      frag 12 from TextNode start: 51, length: 1, rect: [648.671875,54 105.40625x22] baseline: 17
           " "
-      frag 13 from TextNode start: 52, length: 4, rect: [754.40625,54 30.484375x22] baseline: 17
+      frag 13 from TextNode start: 52, length: 4, rect: [754.078125,54 30.484375x22] baseline: 17
           "elit"
-      frag 14 from TextNode start: 56, length: 1, rect: [784.40625,54 5.4375x22] baseline: 17
+      frag 14 from TextNode start: 56, length: 1, rect: [784.5625,54 5.4375x22] baseline: 17
           "."
       frag 15 from TextNode start: 58, length: 11, rect: [554,76 123.375x22] baseline: 17
           "Suspendisse"
-      frag 16 from TextNode start: 69, length: 1, rect: [677,76 100.9375x22] baseline: 17
+      frag 16 from TextNode start: 69, length: 1, rect: [677.375,76 100.9375x22] baseline: 17
           " "
-      frag 17 from TextNode start: 70, length: 1, rect: [777.9375,76 11.6875x22] baseline: 17
+      frag 17 from TextNode start: 70, length: 1, rect: [778.3125,76 11.6875x22] baseline: 17
           "a"
       frag 18 from TextNode start: 72, length: 8, rect: [554,98 82.078125x22] baseline: 17
           "placerat"
-      frag 19 from TextNode start: 80, length: 1, rect: [636,98 29.625x22] baseline: 17
+      frag 19 from TextNode start: 80, length: 1, rect: [636.078125,98 29.625x22] baseline: 17
           " "
-      frag 20 from TextNode start: 81, length: 6, rect: [665.625,98 67.5625x22] baseline: 17
+      frag 20 from TextNode start: 81, length: 6, rect: [665.703125,98 67.5625x22] baseline: 17
           "mauris"
-      frag 21 from TextNode start: 87, length: 1, rect: [733.625,98 6.3125x22] baseline: 17
+      frag 21 from TextNode start: 87, length: 1, rect: [733.265625,98 6.3125x22] baseline: 17
           ","
-      frag 22 from TextNode start: 88, length: 1, rect: [739.625,98 29.625x22] baseline: 17
+      frag 22 from TextNode start: 88, length: 1, rect: [739.578125,98 29.625x22] baseline: 17
           " "
-      frag 23 from TextNode start: 89, length: 2, rect: [769.25,98 20.78125x22] baseline: 17
+      frag 23 from TextNode start: 89, length: 2, rect: [769.203125,98 20.78125x22] baseline: 17
           "ut"
       frag 24 from TextNode start: 92, length: 9, rect: [554,120 101.3125x22] baseline: 17
           "elementum"
-      frag 25 from TextNode start: 101, length: 1, rect: [655,120 10.421875x22] baseline: 17
+      frag 25 from TextNode start: 101, length: 1, rect: [655.3125,120 10.421875x22] baseline: 17
           " "
-      frag 26 from TextNode start: 102, length: 2, rect: [665.421875,120 20.953125x22] baseline: 17
+      frag 26 from TextNode start: 102, length: 2, rect: [665.734375,120 20.953125x22] baseline: 17
           "mi"
-      frag 27 from TextNode start: 104, length: 1, rect: [686.421875,120 5.4375x22] baseline: 17
+      frag 27 from TextNode start: 104, length: 1, rect: [686.6875,120 5.4375x22] baseline: 17
           "."
-      frag 28 from TextNode start: 105, length: 1, rect: [692.421875,120 10.421875x22] baseline: 17
+      frag 28 from TextNode start: 105, length: 1, rect: [692.125,120 10.421875x22] baseline: 17
           " "
-      frag 29 from TextNode start: 106, length: 5, rect: [702.84375,120 56.234375x22] baseline: 17
+      frag 29 from TextNode start: 106, length: 5, rect: [702.546875,120 56.234375x22] baseline: 17
           "Morbi"
-      frag 30 from TextNode start: 111, length: 1, rect: [758.84375,120 10.421875x22] baseline: 17
+      frag 30 from TextNode start: 111, length: 1, rect: [758.78125,120 10.421875x22] baseline: 17
           " "
-      frag 31 from TextNode start: 112, length: 2, rect: [769.265625,120 20.78125x22] baseline: 17
+      frag 31 from TextNode start: 112, length: 2, rect: [769.203125,120 20.78125x22] baseline: 17
           "ut"
       frag 32 from TextNode start: 115, length: 8, rect: [554,142 78.78125x22] baseline: 17
           "vehicula"
-      frag 33 from TextNode start: 123, length: 1, rect: [633,142 27.21875x22] baseline: 17
+      frag 33 from TextNode start: 123, length: 1, rect: [632.78125,142 27.21875x22] baseline: 17
           " "
-      frag 34 from TextNode start: 124, length: 5, rect: [660.21875,142 56.625x22] baseline: 17
+      frag 34 from TextNode start: 124, length: 5, rect: [660,142 56.625x22] baseline: 17
           "ipsum"
-      frag 35 from TextNode start: 129, length: 1, rect: [716.21875,142 6.3125x22] baseline: 17
+      frag 35 from TextNode start: 129, length: 1, rect: [716.625,142 6.3125x22] baseline: 17
           ","
-      frag 36 from TextNode start: 130, length: 1, rect: [723.21875,142 27.21875x22] baseline: 17
+      frag 36 from TextNode start: 130, length: 1, rect: [722.9375,142 27.21875x22] baseline: 17
           " "
-      frag 37 from TextNode start: 131, length: 4, rect: [750.4375,142 39.84375x22] baseline: 17
+      frag 37 from TextNode start: 131, length: 4, rect: [750.15625,142 39.84375x22] baseline: 17
           "eget"
       frag 38 from TextNode start: 136, length: 8, rect: [554,164 82.078125x22] baseline: 17
           "placerat"
-      frag 39 from TextNode start: 144, length: 1, rect: [636,164 11.6875x22] baseline: 17
+      frag 39 from TextNode start: 144, length: 1, rect: [636.078125,164 11.6875x22] baseline: 17
           " "
-      frag 40 from TextNode start: 145, length: 5, rect: [647.6875,164 56.453125x22] baseline: 17
+      frag 40 from TextNode start: 145, length: 5, rect: [647.765625,164 56.453125x22] baseline: 17
           "augue"
-      frag 41 from TextNode start: 150, length: 1, rect: [704.6875,164 5.4375x22] baseline: 17
+      frag 41 from TextNode start: 150, length: 1, rect: [704.21875,164 5.4375x22] baseline: 17
           "."
-      frag 42 from TextNode start: 151, length: 1, rect: [709.6875,164 11.6875x22] baseline: 17
+      frag 42 from TextNode start: 151, length: 1, rect: [709.65625,164 11.6875x22] baseline: 17
           " "
-      frag 43 from TextNode start: 152, length: 7, rect: [721.375,164 68.640625x22] baseline: 17
+      frag 43 from TextNode start: 152, length: 7, rect: [721.34375,164 68.640625x22] baseline: 17
           "Integer"
       frag 44 from TextNode start: 160, length: 6, rect: [554,186 70.296875x22] baseline: 17
           "rutrum"
-      frag 45 from TextNode start: 166, length: 1, rect: [624,186 21x22] baseline: 17
+      frag 45 from TextNode start: 166, length: 1, rect: [624.296875,186 21x22] baseline: 17
           " "
-      frag 46 from TextNode start: 167, length: 4, rect: [645,186 35.109375x22] baseline: 17
+      frag 46 from TextNode start: 167, length: 4, rect: [645.296875,186 35.109375x22] baseline: 17
           "nisi"
-      frag 47 from TextNode start: 171, length: 1, rect: [680,186 21x22] baseline: 17
+      frag 47 from TextNode start: 171, length: 1, rect: [680.40625,186 21x22] baseline: 17
           " "
-      frag 48 from TextNode start: 172, length: 4, rect: [701,186 39.84375x22] baseline: 17
+      frag 48 from TextNode start: 172, length: 4, rect: [701.40625,186 39.84375x22] baseline: 17
           "eget"
-      frag 49 from TextNode start: 176, length: 1, rect: [741,186 21x22] baseline: 17
+      frag 49 from TextNode start: 176, length: 1, rect: [741.25,186 21x22] baseline: 17
           " "
-      frag 50 from TextNode start: 177, length: 3, rect: [762,186 27.734375x22] baseline: 17
+      frag 50 from TextNode start: 177, length: 3, rect: [762.25,186 27.734375x22] baseline: 17
           "dui"
       frag 51 from TextNode start: 181, length: 6, rect: [252,212 62.671875x22] baseline: 17
           "dictum"
-      frag 52 from TextNode start: 187, length: 1, rect: [315,212 6.3125x22] baseline: 17
+      frag 52 from TextNode start: 187, length: 1, rect: [314.671875,212 6.3125x22] baseline: 17
           ","
-      frag 53 from TextNode start: 188, length: 1, rect: [321,212 23.578125x22] baseline: 17
+      frag 53 from TextNode start: 188, length: 1, rect: [320.984375,212 23.578125x22] baseline: 17
           " "
-      frag 54 from TextNode start: 189, length: 2, rect: [344.578125,212 23.109375x22] baseline: 17
+      frag 54 from TextNode start: 189, length: 2, rect: [344.5625,212 23.109375x22] baseline: 17
           "eu"
-      frag 55 from TextNode start: 191, length: 1, rect: [367.578125,212 23.578125x22] baseline: 17
+      frag 55 from TextNode start: 191, length: 1, rect: [367.671875,212 23.578125x22] baseline: 17
           " "
-      frag 56 from TextNode start: 192, length: 8, rect: [391.15625,212 96.75x22] baseline: 17
+      frag 56 from TextNode start: 192, length: 8, rect: [391.25,212 96.75x22] baseline: 17
           "accumsan"
       frag 57 from TextNode start: 201, length: 4, rect: [252,234 43.875x22] baseline: 17
           "enim"
-      frag 58 from TextNode start: 205, length: 1, rect: [296,234 37.875x22] baseline: 17
+      frag 58 from TextNode start: 205, length: 1, rect: [295.875,234 37.875x22] baseline: 17
           " "
-      frag 59 from TextNode start: 206, length: 9, rect: [333.875,234 88.21875x22] baseline: 17
+      frag 59 from TextNode start: 206, length: 9, rect: [333.75,234 88.21875x22] baseline: 17
           "tristique"
-      frag 60 from TextNode start: 215, length: 1, rect: [421.875,234 5.4375x22] baseline: 17
+      frag 60 from TextNode start: 215, length: 1, rect: [421.96875,234 5.4375x22] baseline: 17
           "."
-      frag 61 from TextNode start: 216, length: 1, rect: [427.875,234 37.875x22] baseline: 17
+      frag 61 from TextNode start: 216, length: 1, rect: [427.40625,234 37.875x22] baseline: 17
           " "
-      frag 62 from TextNode start: 217, length: 2, rect: [465.75,234 22.703125x22] baseline: 17
+      frag 62 from TextNode start: 217, length: 2, rect: [465.28125,234 22.703125x22] baseline: 17
           "Ut"
       frag 63 from TextNode start: 220, length: 8, rect: [252,256 80.046875x22] baseline: 17
           "lobortis"
-      frag 64 from TextNode start: 228, length: 1, rect: [332,256 30.328125x22] baseline: 17
+      frag 64 from TextNode start: 228, length: 1, rect: [332.046875,256 30.328125x22] baseline: 17
           " "
-      frag 65 from TextNode start: 229, length: 5, rect: [362.328125,256 55.4375x22] baseline: 17
+      frag 65 from TextNode start: 229, length: 5, rect: [362.375,256 55.4375x22] baseline: 17
           "lorem"
-      frag 66 from TextNode start: 234, length: 1, rect: [417.328125,256 30.328125x22] baseline: 17
+      frag 66 from TextNode start: 234, length: 1, rect: [417.8125,256 30.328125x22] baseline: 17
           " "
-      frag 67 from TextNode start: 235, length: 4, rect: [447.65625,256 39.84375x22] baseline: 17
+      frag 67 from TextNode start: 235, length: 4, rect: [448.140625,256 39.84375x22] baseline: 17
           "eget"
       frag 68 from TextNode start: 240, length: 3, rect: [252,278 31.171875x22] baseline: 17
           "est"
-      frag 69 from TextNode start: 243, length: 1, rect: [283,278 16.5x22] baseline: 17
+      frag 69 from TextNode start: 243, length: 1, rect: [283.171875,278 16.5x22] baseline: 17
           " "
-      frag 70 from TextNode start: 244, length: 9, rect: [299.5,278 91.484375x22] baseline: 17
+      frag 70 from TextNode start: 244, length: 9, rect: [299.671875,278 91.484375x22] baseline: 17
           "vulputate"
-      frag 71 from TextNode start: 253, length: 1, rect: [391.5,278 16.5x22] baseline: 17
+      frag 71 from TextNode start: 253, length: 1, rect: [391.15625,278 16.5x22] baseline: 17
           " "
-      frag 72 from TextNode start: 254, length: 7, rect: [408,278 74.90625x22] baseline: 17
+      frag 72 from TextNode start: 254, length: 7, rect: [407.65625,278 74.90625x22] baseline: 17
           "egestas"
-      frag 73 from TextNode start: 261, length: 1, rect: [483,278 5.4375x22] baseline: 17
+      frag 73 from TextNode start: 261, length: 1, rect: [482.5625,278 5.4375x22] baseline: 17
           "."
       frag 74 from TextNode start: 263, length: 7, rect: [252,300 68.640625x22] baseline: 17
           "Integer"
-      frag 75 from TextNode start: 270, length: 1, rect: [321,300 16.390625x22] baseline: 17
+      frag 75 from TextNode start: 270, length: 1, rect: [320.640625,300 16.390625x22] baseline: 17
           " "
-      frag 76 from TextNode start: 271, length: 7, rect: [337.390625,300 71.359375x22] baseline: 17
+      frag 76 from TextNode start: 271, length: 7, rect: [337.03125,300 71.359375x22] baseline: 17
           "laoreet"
       frag 77 from TextNode start: 278, length: 1, rect: [408.390625,300 16.390625x22] baseline: 17
           " "
@@ -161,45 +161,45 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
           "lacinia"
       frag 79 from TextNode start: 287, length: 4, rect: [252,322 43.1875x22] baseline: 17
           "ante"
-      frag 80 from TextNode start: 291, length: 1, rect: [295,322 16.640625x22] baseline: 17
+      frag 80 from TextNode start: 291, length: 1, rect: [295.1875,322 16.640625x22] baseline: 17
           " "
-      frag 81 from TextNode start: 292, length: 7, rect: [311.640625,322 74.046875x22] baseline: 17
+      frag 81 from TextNode start: 292, length: 7, rect: [311.828125,322 74.046875x22] baseline: 17
           "sodales"
-      frag 82 from TextNode start: 299, length: 1, rect: [385.640625,322 16.640625x22] baseline: 17
+      frag 82 from TextNode start: 299, length: 1, rect: [385.875,322 16.640625x22] baseline: 17
           " "
-      frag 83 from TextNode start: 300, length: 8, rect: [402.28125,322 80.046875x22] baseline: 17
+      frag 83 from TextNode start: 300, length: 8, rect: [402.515625,322 80.046875x22] baseline: 17
           "lobortis"
-      frag 84 from TextNode start: 308, length: 1, rect: [482.28125,322 5.4375x22] baseline: 17
+      frag 84 from TextNode start: 308, length: 1, rect: [482.5625,322 5.4375x22] baseline: 17
           "."
       frag 85 from TextNode start: 310, length: 5, rect: [252,344 60.90625x22] baseline: 17
           "Donec"
-      frag 86 from TextNode start: 315, length: 1, rect: [313,344 38.828125x22] baseline: 17
+      frag 86 from TextNode start: 315, length: 1, rect: [312.90625,344 38.828125x22] baseline: 17
           " "
-      frag 87 from TextNode start: 316, length: 1, rect: [351.828125,344 11.6875x22] baseline: 17
+      frag 87 from TextNode start: 316, length: 1, rect: [351.734375,344 11.6875x22] baseline: 17
           "a"
-      frag 88 from TextNode start: 317, length: 1, rect: [363.828125,344 38.828125x22] baseline: 17
+      frag 88 from TextNode start: 317, length: 1, rect: [363.421875,344 38.828125x22] baseline: 17
           " "
-      frag 89 from TextNode start: 318, length: 9, rect: [402.65625,344 85.734375x22] baseline: 17
+      frag 89 from TextNode start: 318, length: 9, rect: [402.25,344 85.734375x22] baseline: 17
           "tincidunt"
       frag 90 from TextNode start: 328, length: 4, rect: [252,366 43.1875x22] baseline: 17
           "ante"
-      frag 91 from TextNode start: 332, length: 1, rect: [295,366 5.4375x22] baseline: 17
+      frag 91 from TextNode start: 332, length: 1, rect: [295.1875,366 5.4375x22] baseline: 17
           "."
-      frag 92 from TextNode start: 333, length: 1, rect: [301,366 11.609375x22] baseline: 17
+      frag 92 from TextNode start: 333, length: 1, rect: [300.625,366 11.609375x22] baseline: 17
           " "
-      frag 93 from TextNode start: 334, length: 9, rect: [312.609375,366 94.8125x22] baseline: 17
+      frag 93 from TextNode start: 334, length: 9, rect: [312.234375,366 94.8125x22] baseline: 17
           "Phasellus"
-      frag 94 from TextNode start: 343, length: 1, rect: [406.609375,366 11.609375x22] baseline: 17
+      frag 94 from TextNode start: 343, length: 1, rect: [407.046875,366 11.609375x22] baseline: 17
           " "
-      frag 95 from TextNode start: 344, length: 1, rect: [418.21875,366 11.6875x22] baseline: 17
+      frag 95 from TextNode start: 344, length: 1, rect: [418.65625,366 11.6875x22] baseline: 17
           "a"
-      frag 96 from TextNode start: 345, length: 1, rect: [430.21875,366 11.609375x22] baseline: 17
+      frag 96 from TextNode start: 345, length: 1, rect: [430.34375,366 11.609375x22] baseline: 17
           " "
-      frag 97 from TextNode start: 346, length: 4, rect: [441.828125,366 46.03125x22] baseline: 17
+      frag 97 from TextNode start: 346, length: 4, rect: [441.953125,366 46.03125x22] baseline: 17
           "arcu"
       frag 98 from TextNode start: 351, length: 6, rect: [252,388 65.125x22] baseline: 17
           "tortor"
-      frag 99 from TextNode start: 357, length: 1, rect: [317,388 5.4375x22] baseline: 17
+      frag 99 from TextNode start: 357, length: 1, rect: [317.125,388 5.4375x22] baseline: 17
           "."
       BlockContainer <div.left> at (253,11) content-size 300x200 floating [BFC] children: not-inline
       TextNode <#text>
@@ -208,7 +208,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600] overflow: [0,0 800x602]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x602]
-    PaintableWithLines (BlockContainer<BODY>) [251,9 540x402] overflow: [252,10 538.28125x400]
+    PaintableWithLines (BlockContainer<BODY>) [251,9 540x402]
       PaintableWithLines (BlockContainer<DIV>.left) [252,10 302x202]
       PaintableWithLines (BlockContainer<DIV>.right) [488,212 302x202]
       TextPaintable (TextNode<#text>)

+ 1 - 1
Tests/LibWeb/Layout/expected/block-and-inline/float-stress-1.txt

@@ -28,7 +28,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
             "bar baz foo bar baz foo bar"
         frag 11 from TextNode start: 57, length: 16, rect: [61,173 141.203125x16] baseline: 12.796875
             "baz foo bar baz "
-        frag 12 from TextNode start: 1, length: 11, rect: [202,173 98x16] baseline: 12.796875
+        frag 12 from TextNode start: 1, length: 11, rect: [202.203125,173 98x16] baseline: 12.796875
             "foo bar baz"
         frag 13 from TextNode start: 13, length: 12, rect: [61,189 106x16] baseline: 12.796875
             "foo bar baz "

+ 13 - 13
Tests/LibWeb/Layout/expected/block-and-inline/inline-block-baseline-1.txt

@@ -3,29 +3,29 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
     BlockContainer <body> at (10,10) content-size 780x92 children: inline
       frag 0 from TextNode start: 0, length: 13, rect: [10,32 103.140625x17] baseline: 13.296875
           "Hello friends"
-      frag 1 from BlockContainer start: 0, length: 0, rect: [114,11 202x90] baseline: 35.296875
+      frag 1 from BlockContainer start: 0, length: 0, rect: [114.140625,11 202x90] baseline: 35.296875
       TextNode <#text>
-      BlockContainer <div.ib> at (114,11) content-size 202x90 inline-block [BFC] children: not-inline
-        BlockContainer <div> at (115,12) content-size 200x17 children: inline
-          frag 0 from TextNode start: 0, length: 3, rect: [115,12 22.546875x17] baseline: 13.296875
+      BlockContainer <div.ib> at (114.140625,11) content-size 202x90 inline-block [BFC] children: not-inline
+        BlockContainer <div> at (115.140625,12) content-size 200x17 children: inline
+          frag 0 from TextNode start: 0, length: 3, rect: [115.140625,12 22.546875x17] baseline: 13.296875
               "1st"
           TextNode <#text>
-        BlockContainer <div> at (115,31) content-size 200x17 children: inline
-          frag 0 from TextNode start: 0, length: 3, rect: [115,31 26.28125x17] baseline: 13.296875
+        BlockContainer <div> at (115.140625,31) content-size 200x17 children: inline
+          frag 0 from TextNode start: 0, length: 3, rect: [115.140625,31 26.28125x17] baseline: 13.296875
               "2nd"
           TextNode <#text>
-        BlockContainer <div.whee> at (115,50) content-size 200x50 children: not-inline
-        BlockContainer <(anonymous)> at (114,101) content-size 202x0 children: inline
+        BlockContainer <div.whee> at (115.140625,50) content-size 200x50 children: not-inline
+        BlockContainer <(anonymous)> at (114.140625,101) content-size 202x0 children: inline
           TextNode <#text>
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600] overflow: [0,0 800x602]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x602]
     PaintableWithLines (BlockContainer<BODY>) [9,9 782x94]
       TextPaintable (TextNode<#text>)
-      PaintableWithLines (BlockContainer<DIV>.ib) [113,10 204x92]
-        PaintableWithLines (BlockContainer<DIV>) [114,11 202x19]
+      PaintableWithLines (BlockContainer<DIV>.ib) [113.140625,10 204x92]
+        PaintableWithLines (BlockContainer<DIV>) [114.140625,11 202x19]
           TextPaintable (TextNode<#text>)
-        PaintableWithLines (BlockContainer<DIV>) [114,30 202x19]
+        PaintableWithLines (BlockContainer<DIV>) [114.140625,30 202x19]
           TextPaintable (TextNode<#text>)
-        PaintableWithLines (BlockContainer<DIV>.whee) [114,49 202x52]
-        PaintableWithLines (BlockContainer(anonymous)) [114,101 202x0]
+        PaintableWithLines (BlockContainer<DIV>.whee) [114.140625,49 202x52]
+        PaintableWithLines (BlockContainer(anonymous)) [114.140625,101 202x0]

+ 14 - 14
Tests/LibWeb/Layout/expected/block-and-inline/inline-block-baseline-2.txt

@@ -3,33 +3,33 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
     BlockContainer <body> at (10,10) content-size 780x59 children: inline
       frag 0 from TextNode start: 0, length: 13, rect: [10,32 103.140625x17] baseline: 13.296875
           "Hello friends"
-      frag 1 from BlockContainer start: 0, length: 0, rect: [114,11 39.234375x57] baseline: 35.296875
+      frag 1 from BlockContainer start: 0, length: 0, rect: [114.140625,11 39.234375x57] baseline: 35.296875
       TextNode <#text>
-      BlockContainer <div.ib> at (114,11) content-size 39.234375x57 inline-block [BFC] children: not-inline
-        BlockContainer <div> at (115,12) content-size 37.234375x17 children: inline
-          frag 0 from TextNode start: 0, length: 3, rect: [115,12 22.546875x17] baseline: 13.296875
+      BlockContainer <div.ib> at (114.140625,11) content-size 39.234375x57 inline-block [BFC] children: not-inline
+        BlockContainer <div> at (115.140625,12) content-size 37.234375x17 children: inline
+          frag 0 from TextNode start: 0, length: 3, rect: [115.140625,12 22.546875x17] baseline: 13.296875
               "1st"
           TextNode <#text>
-        BlockContainer <div> at (115,31) content-size 37.234375x17 children: inline
-          frag 0 from TextNode start: 0, length: 3, rect: [115,31 26.28125x17] baseline: 13.296875
+        BlockContainer <div> at (115.140625,31) content-size 37.234375x17 children: inline
+          frag 0 from TextNode start: 0, length: 3, rect: [115.140625,31 26.28125x17] baseline: 13.296875
               "2nd"
           TextNode <#text>
-        BlockContainer <div.float> at (115,50) content-size 37.234375x17 floating [BFC] children: inline
-          frag 0 from TextNode start: 0, length: 5, rect: [115,50 37.234375x17] baseline: 13.296875
+        BlockContainer <div.float> at (115.140625,50) content-size 37.234375x17 floating [BFC] children: inline
+          frag 0 from TextNode start: 0, length: 5, rect: [115.140625,50 37.234375x17] baseline: 13.296875
               "float"
           TextNode <#text>
-        BlockContainer <(anonymous)> at (114,49) content-size 39.234375x0 children: inline
+        BlockContainer <(anonymous)> at (114.140625,49) content-size 39.234375x0 children: inline
           TextNode <#text>
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600] overflow: [0,0 800x602]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x602]
     PaintableWithLines (BlockContainer<BODY>) [9,9 782x61]
       TextPaintable (TextNode<#text>)
-      PaintableWithLines (BlockContainer<DIV>.ib) [113,10 41.234375x59]
-        PaintableWithLines (BlockContainer<DIV>) [114,11 39.234375x19]
+      PaintableWithLines (BlockContainer<DIV>.ib) [113.140625,10 41.234375x59]
+        PaintableWithLines (BlockContainer<DIV>) [114.140625,11 39.234375x19]
           TextPaintable (TextNode<#text>)
-        PaintableWithLines (BlockContainer<DIV>) [114,30 39.234375x19]
+        PaintableWithLines (BlockContainer<DIV>) [114.140625,30 39.234375x19]
           TextPaintable (TextNode<#text>)
-        PaintableWithLines (BlockContainer<DIV>.float) [114,49 39.234375x19]
+        PaintableWithLines (BlockContainer<DIV>.float) [114.140625,49 39.234375x19]
           TextPaintable (TextNode<#text>)
-        PaintableWithLines (BlockContainer(anonymous)) [114,49 39.234375x0]
+        PaintableWithLines (BlockContainer(anonymous)) [114.140625,49 39.234375x0]

+ 3 - 3
Tests/LibWeb/Layout/expected/block-and-inline/inline-block-vertical-align-middle.txt

@@ -4,13 +4,13 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
       InlineNode <span>
         frag 0 from TextNode start: 0, length: 4, rect: [8,49 35.15625x17] baseline: 13.296875
             "foo "
-        frag 1 from BlockContainer start: 0, length: 0, rect: [43,8 100x100] baseline: 54.296875
+        frag 1 from BlockContainer start: 0, length: 0, rect: [43.15625,8 100x100] baseline: 54.296875
         TextNode <#text>
-        BlockContainer <span.thing> at (43,8) content-size 100x100 inline-block [BFC] children: not-inline
+        BlockContainer <span.thing> at (43.15625,8) content-size 100x100 inline-block [BFC] children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x116]
     PaintableWithLines (BlockContainer<BODY>) [8,8 784x100]
       PaintableWithLines (InlineNode<SPAN>)
         TextPaintable (TextNode<#text>)
-        PaintableWithLines (BlockContainer<SPAN>.thing) [43,8 100x100]
+        PaintableWithLines (BlockContainer<SPAN>.thing) [43.15625,8 100x100]

+ 5 - 5
Tests/LibWeb/Layout/expected/block-and-inline/inline-box-positioned-with-top-left.txt

@@ -3,12 +3,12 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
     BlockContainer <body> at (8,8) content-size 784x20 children: inline
       frag 0 from TextNode start: 0, length: 14, rect: [8,8 112.421875x17] baseline: 13.296875
           "text text text"
-      frag 1 from BlockContainer start: 0, length: 0, rect: [120,8 110.375x20] baseline: 13.296875
-      frag 2 from TextNode start: 0, length: 16, rect: [231,8 129.546875x17] baseline: 13.296875
+      frag 1 from BlockContainer start: 0, length: 0, rect: [120.421875,8 110.375x20] baseline: 13.296875
+      frag 2 from TextNode start: 0, length: 16, rect: [230.796875,8 129.546875x17] baseline: 13.296875
           "more inline text"
       TextNode <#text>
-      BlockContainer <span.displaced_text> at (150,48) content-size 110.375x20 positioned inline-block [BFC] children: inline
-        frag 0 from TextNode start: 0, length: 14, rect: [150,48 110.375x17] baseline: 13.296875
+      BlockContainer <span.displaced_text> at (150.421875,48) content-size 110.375x20 positioned inline-block [BFC] children: inline
+        frag 0 from TextNode start: 0, length: 14, rect: [150.421875,48 110.375x17] baseline: 13.296875
             "displaced text"
         TextNode <#text>
       TextNode <#text>
@@ -17,6 +17,6 @@ ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x600]
     PaintableWithLines (BlockContainer<BODY>) [8,8 784x20]
       TextPaintable (TextNode<#text>)
-      PaintableWithLines (BlockContainer<SPAN>.displaced_text) [150,48 110.375x20]
+      PaintableWithLines (BlockContainer<SPAN>.displaced_text) [150.421875,48 110.375x20]
         TextPaintable (TextNode<#text>)
       TextPaintable (TextNode<#text>)

+ 4 - 4
Tests/LibWeb/Layout/expected/block-and-inline/inline-box-with-vertical-margins-vertical-align-top.txt

@@ -3,16 +3,16 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
     BlockContainer <body> at (8,8) content-size 784x175 children: inline
       frag 0 from TextNode start: 0, length: 6, rect: [8,8 43.125x17] baseline: 13.296875
           "Well, "
-      frag 1 from BlockContainer start: 0, length: 0, rect: [51,58 100x100] baseline: 0
-      frag 2 from TextNode start: 0, length: 9, rect: [151,8 67.703125x17] baseline: 13.296875
+      frag 1 from BlockContainer start: 0, length: 0, rect: [51.125,58 100x100] baseline: 0
+      frag 2 from TextNode start: 0, length: 9, rect: [151.125,8 67.703125x17] baseline: 13.296875
           " friends."
       TextNode <#text>
-      BlockContainer <div#inline-box> at (51,58) content-size 100x100 inline-block [BFC] children: not-inline
+      BlockContainer <div#inline-box> at (51.125,58) content-size 100x100 inline-block [BFC] children: not-inline
       TextNode <#text>
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x600]
     PaintableWithLines (BlockContainer<BODY>) [8,8 784x175]
       TextPaintable (TextNode<#text>)
-      PaintableWithLines (BlockContainer<DIV>#inline-box) [51,58 100x100]
+      PaintableWithLines (BlockContainer<DIV>#inline-box) [51.125,58 100x100]
       TextPaintable (TextNode<#text>)

+ 4 - 4
Tests/LibWeb/Layout/expected/block-and-inline/inline-box-with-vertical-margins.txt

@@ -3,16 +3,16 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
     BlockContainer <body> at (8,8) content-size 784x178 children: inline
       frag 0 from TextNode start: 0, length: 6, rect: [8,169 43.125x17] baseline: 13.296875
           "Well, "
-      frag 1 from BlockContainer start: 0, length: 0, rect: [51,58 100x100] baseline: 175
-      frag 2 from TextNode start: 0, length: 9, rect: [151,169 67.703125x17] baseline: 13.296875
+      frag 1 from BlockContainer start: 0, length: 0, rect: [51.125,58 100x100] baseline: 175
+      frag 2 from TextNode start: 0, length: 9, rect: [151.125,169 67.703125x17] baseline: 13.296875
           " friends."
       TextNode <#text>
-      BlockContainer <div#inline-box> at (51,58) content-size 100x100 inline-block [BFC] children: not-inline
+      BlockContainer <div#inline-box> at (51.125,58) content-size 100x100 inline-block [BFC] children: not-inline
       TextNode <#text>
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x600]
     PaintableWithLines (BlockContainer<BODY>) [8,8 784x178]
       TextPaintable (TextNode<#text>)
-      PaintableWithLines (BlockContainer<DIV>#inline-box) [51,58 100x100]
+      PaintableWithLines (BlockContainer<DIV>#inline-box) [51.125,58 100x100]
       TextPaintable (TextNode<#text>)

+ 1 - 1
Tests/LibWeb/Layout/expected/block-and-inline/leading-margin-on-inline-content-that-starts-with-collapsible-whitespace.txt

@@ -6,7 +6,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
             "Download "
         TextNode <#text>
       InlineNode <div>
-        frag 0 from TextNode start: 1, length: 4, rect: [150,8 39.5625x17] baseline: 13.296875
+        frag 0 from TextNode start: 1, length: 4, rect: [150.125,8 39.5625x17] baseline: 13.296875
             "News"
         TextNode <#text>
       TextNode <#text>

+ 4 - 4
Tests/LibWeb/Layout/expected/block-and-inline/relpos-inline-element-js-offsets.txt

@@ -7,11 +7,11 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               "well "
           TextNode <#text>
           InlineNode <b>
-            frag 0 from TextNode start: 0, length: 6, rect: [44,33 44.84375x17] baseline: 13.296875
+            frag 0 from TextNode start: 0, length: 6, rect: [44.40625,33 44.84375x17] baseline: 13.296875
                 "hello "
             TextNode <#text>
             InlineNode <i>
-              frag 0 from TextNode start: 0, length: 7, rect: [89,58 55.359375x17] baseline: 13.296875
+              frag 0 from TextNode start: 0, length: 7, rect: [89.25,58 55.359375x17] baseline: 13.296875
                   "friends"
               TextNode <#text>
         TextNode <#text>
@@ -26,8 +26,8 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               "well: 8, 8"
           frag 1 from TextNode start: 11, length: 13, rect: [8,126 95.359375x17] baseline: 13.296875
               "hello: 44, 33"
-          frag 2 from TextNode start: 25, length: 15, rect: [8,143 113.65625x17] baseline: 13.296875
-              "friends: 45, 25"
+          frag 2 from TextNode start: 25, length: 15, rect: [8,143 112.953125x17] baseline: 13.296875
+              "friends: 44, 25"
           TextNode <#text>
       BlockContainer <(anonymous)> at (8,176) content-size 784x0 children: inline
         TextNode <#text>

+ 3 - 3
Tests/LibWeb/Layout/expected/block-and-inline/relpos-inline-elements.txt

@@ -3,17 +3,17 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
     BlockContainer <body> at (8,8) content-size 784x17 children: inline
       frag 0 from TextNode start: 0, length: 4, rect: [8,8 35.15625x17] baseline: 13.296875
           "foo "
-      frag 1 from TextNode start: 0, length: 1, rect: [71,8 8x17] baseline: 13.296875
+      frag 1 from TextNode start: 0, length: 1, rect: [70.796875,8 8x17] baseline: 13.296875
           " "
       TextNode <#text>
       InlineNode <b>
-        frag 0 from TextNode start: 0, length: 3, rect: [43,33 27.640625x17] baseline: 13.296875
+        frag 0 from TextNode start: 0, length: 3, rect: [43.15625,33 27.640625x17] baseline: 13.296875
             "bar"
         TextNode <#text>
       TextNode <#text>
       InlineNode <b>
         InlineNode <i>
-          frag 0 from TextNode start: 0, length: 3, rect: [54,58 27.203125x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 3, rect: [53.796875,58 27.203125x17] baseline: 13.296875
               "baz"
           TextNode <#text>
       TextNode <#text>

+ 1 - 1
Tests/LibWeb/Layout/expected/br-should-not-generate-pseudo-before.txt

@@ -2,7 +2,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
   BlockContainer <html> at (0,0) content-size 800x83 [BFC] children: not-inline
     BlockContainer <body> at (8,16) content-size 784x67 children: not-inline
       BlockContainer <p> at (8,16) content-size 784x17 children: inline
-        frag 0 from TextNode start: 0, length: 36, rect: [19,16 300x17] baseline: 13.296875
+        frag 0 from TextNode start: 0, length: 36, rect: [18.625,16 300x17] baseline: 13.296875
             "P should generate a ::before pseudo."
         InlineNode <(anonymous)>
           frag 0 from TextNode start: 0, length: 1, rect: [8,16 10.625x17] baseline: 13.296875

+ 1 - 1
Tests/LibWeb/Layout/expected/css-all-unset.txt

@@ -6,7 +6,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
             "* { all: unset; } "
         TextNode <#text>
     InlineNode <body>
-      frag 0 from TextNode start: 0, length: 13, rect: [135,0 103.140625x17] baseline: 13.296875
+      frag 0 from TextNode start: 0, length: 13, rect: [134.984375,0 103.140625x17] baseline: 13.296875
           "Hello friends"
       TextNode <#text>
 

+ 10 - 10
Tests/LibWeb/Layout/expected/css-counters/basic.txt

@@ -3,7 +3,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
     BlockContainer <body> at (8,16) content-size 784x314 children: not-inline
       BlockContainer <div> at (8,16) content-size 784x149 children: not-inline
         BlockContainer <p> at (8,16) content-size 784x17 children: inline
-          frag 0 from TextNode start: 0, length: 5, rect: [37,16 44.75x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 5, rect: [36.8125,16 44.75x17] baseline: 13.296875
               "Never"
           InlineNode <(anonymous)>
             frag 0 from TextNode start: 0, length: 5, rect: [8,16 28.8125x17] baseline: 13.296875
@@ -11,7 +11,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
             TextNode <#text>
           TextNode <#text>
         BlockContainer <p> at (8,49) content-size 784x17 children: inline
-          frag 0 from TextNode start: 0, length: 5, rect: [39,49 52.15625x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 5, rect: [39.28125,49 52.15625x17] baseline: 13.296875
               "Gonna"
           InlineNode <(anonymous)>
             frag 0 from TextNode start: 0, length: 5, rect: [8,49 31.28125x17] baseline: 13.296875
@@ -19,7 +19,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
             TextNode <#text>
           TextNode <#text>
         BlockContainer <p> at (8,82) content-size 784x17 children: inline
-          frag 0 from TextNode start: 0, length: 4, rect: [40,82 34.71875x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 4, rect: [39.5625,82 34.71875x17] baseline: 13.296875
               "Give"
           InlineNode <(anonymous)>
             frag 0 from TextNode start: 0, length: 5, rect: [8,82 31.5625x17] baseline: 13.296875
@@ -27,7 +27,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
             TextNode <#text>
           TextNode <#text>
         BlockContainer <p> at (8,115) content-size 784x17 children: inline
-          frag 0 from TextNode start: 0, length: 3, rect: [38,115 31.21875x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 3, rect: [38.21875,115 31.21875x17] baseline: 13.296875
               "You"
           InlineNode <(anonymous)>
             frag 0 from TextNode start: 0, length: 5, rect: [8,115 30.21875x17] baseline: 13.296875
@@ -35,7 +35,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
             TextNode <#text>
           TextNode <#text>
         BlockContainer <p> at (8,148) content-size 784x17 children: inline
-          frag 0 from TextNode start: 0, length: 2, rect: [39,148 20.71875x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 2, rect: [38.921875,148 20.71875x17] baseline: 13.296875
               "Up"
           InlineNode <(anonymous)>
             frag 0 from TextNode start: 0, length: 5, rect: [8,148 30.921875x17] baseline: 13.296875
@@ -44,7 +44,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
           TextNode <#text>
       BlockContainer <div> at (8,181) content-size 784x149 children: not-inline
         BlockContainer <p> at (8,181) content-size 784x17 children: inline
-          frag 0 from TextNode start: 0, length: 5, rect: [39,181 44.75x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 5, rect: [39.28125,181 44.75x17] baseline: 13.296875
               "Never"
           InlineNode <(anonymous)>
             frag 0 from TextNode start: 0, length: 5, rect: [8,181 31.28125x17] baseline: 13.296875
@@ -52,7 +52,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
             TextNode <#text>
           TextNode <#text>
         BlockContainer <p> at (8,214) content-size 784x17 children: inline
-          frag 0 from TextNode start: 0, length: 5, rect: [42,214 52.15625x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 5, rect: [41.75,214 52.15625x17] baseline: 13.296875
               "Gonna"
           InlineNode <(anonymous)>
             frag 0 from TextNode start: 0, length: 5, rect: [8,214 33.75x17] baseline: 13.296875
@@ -60,7 +60,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
             TextNode <#text>
           TextNode <#text>
         BlockContainer <p> at (8,247) content-size 784x17 children: inline
-          frag 0 from TextNode start: 0, length: 3, rect: [42,247 26.4375x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 3, rect: [42.03125,247 26.4375x17] baseline: 13.296875
               "Let"
           InlineNode <(anonymous)>
             frag 0 from TextNode start: 0, length: 5, rect: [8,247 34.03125x17] baseline: 13.296875
@@ -68,7 +68,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
             TextNode <#text>
           TextNode <#text>
         BlockContainer <p> at (8,280) content-size 784x17 children: inline
-          frag 0 from TextNode start: 0, length: 3, rect: [41,280 31.21875x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 3, rect: [40.6875,280 31.21875x17] baseline: 13.296875
               "You"
           InlineNode <(anonymous)>
             frag 0 from TextNode start: 0, length: 5, rect: [8,280 32.6875x17] baseline: 13.296875
@@ -76,7 +76,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
             TextNode <#text>
           TextNode <#text>
         BlockContainer <p> at (8,313) content-size 784x17 children: inline
-          frag 0 from TextNode start: 0, length: 4, rect: [41,313 42.328125x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 4, rect: [41.390625,313 42.328125x17] baseline: 13.296875
               "Down"
           InlineNode <(anonymous)>
             frag 0 from TextNode start: 0, length: 5, rect: [8,313 33.390625x17] baseline: 13.296875

+ 13 - 13
Tests/LibWeb/Layout/expected/css-counters/counters-function.txt

@@ -5,7 +5,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
         BlockContainer <(anonymous)> at (24,8) content-size 768x0 children: inline
           TextNode <#text>
         BlockContainer <div.li> at (24,8) content-size 768x17 children: inline
-          frag 0 from TextNode start: 0, length: 1, rect: [42,8 14.265625x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 1, rect: [42.125,8 14.265625x17] baseline: 13.296875
               "A"
           InlineNode <(anonymous)>
             frag 0 from TextNode start: 0, length: 3, rect: [24,8 18.125x17] baseline: 13.296875
@@ -15,7 +15,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
         BlockContainer <(anonymous)> at (24,25) content-size 768x0 children: inline
           TextNode <#text>
         BlockContainer <div.li> at (24,25) content-size 768x17 children: inline
-          frag 0 from TextNode start: 0, length: 1, rect: [45,25 9.34375x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 1, rect: [44.59375,25 9.34375x17] baseline: 13.296875
               "B"
           InlineNode <(anonymous)>
             frag 0 from TextNode start: 0, length: 3, rect: [24,25 20.59375x17] baseline: 13.296875
@@ -25,7 +25,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
         BlockContainer <(anonymous)> at (24,42) content-size 768x0 children: inline
           TextNode <#text>
         BlockContainer <div.li> at (24,42) content-size 768x17 children: inline
-          frag 0 from TextNode start: 0, length: 1, rect: [45,42 10.3125x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 1, rect: [44.875,42 10.3125x17] baseline: 13.296875
               "C"
           InlineNode <(anonymous)>
             frag 0 from TextNode start: 0, length: 3, rect: [24,42 20.875x17] baseline: 13.296875
@@ -45,7 +45,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
             BlockContainer <(anonymous)> at (40,76) content-size 752x0 children: inline
               TextNode <#text>
             BlockContainer <div.li> at (40,76) content-size 752x17 children: inline
-              frag 0 from TextNode start: 0, length: 1, rect: [70,76 11.140625x17] baseline: 13.296875
+              frag 0 from TextNode start: 0, length: 1, rect: [70.21875,76 11.140625x17] baseline: 13.296875
                   "D"
               InlineNode <(anonymous)>
                 frag 0 from TextNode start: 0, length: 5, rect: [40,76 30.21875x17] baseline: 13.296875
@@ -55,7 +55,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
             BlockContainer <(anonymous)> at (40,93) content-size 752x0 children: inline
               TextNode <#text>
             BlockContainer <div.li> at (40,93) content-size 752x17 children: inline
-              frag 0 from TextNode start: 0, length: 1, rect: [73,93 11.859375x17] baseline: 13.296875
+              frag 0 from TextNode start: 0, length: 1, rect: [72.6875,93 11.859375x17] baseline: 13.296875
                   "E"
               InlineNode <(anonymous)>
                 frag 0 from TextNode start: 0, length: 5, rect: [40,93 32.6875x17] baseline: 13.296875
@@ -75,7 +75,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
                 BlockContainer <(anonymous)> at (56,127) content-size 736x0 children: inline
                   TextNode <#text>
                 BlockContainer <div.li> at (56,127) content-size 736x17 children: inline
-                  frag 0 from TextNode start: 0, length: 1, rect: [100,127 12.546875x17] baseline: 13.296875
+                  frag 0 from TextNode start: 0, length: 1, rect: [99.65625,127 12.546875x17] baseline: 13.296875
                       "F"
                   InlineNode <(anonymous)>
                     frag 0 from TextNode start: 0, length: 7, rect: [56,127 43.65625x17] baseline: 13.296875
@@ -85,7 +85,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
                 BlockContainer <(anonymous)> at (56,144) content-size 736x0 children: inline
                   TextNode <#text>
                 BlockContainer <div.li> at (56,144) content-size 736x17 children: inline
-                  frag 0 from TextNode start: 0, length: 1, rect: [102,144 13.234375x17] baseline: 13.296875
+                  frag 0 from TextNode start: 0, length: 1, rect: [102.125,144 13.234375x17] baseline: 13.296875
                       "G"
                   InlineNode <(anonymous)>
                     frag 0 from TextNode start: 0, length: 7, rect: [56,144 46.125x17] baseline: 13.296875
@@ -95,7 +95,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
                 BlockContainer <(anonymous)> at (56,161) content-size 736x0 children: inline
                   TextNode <#text>
                 BlockContainer <div.li> at (56,161) content-size 736x17 children: inline
-                  frag 0 from TextNode start: 0, length: 1, rect: [102,161 12.234375x17] baseline: 13.296875
+                  frag 0 from TextNode start: 0, length: 1, rect: [102.40625,161 12.234375x17] baseline: 13.296875
                       "H"
                   InlineNode <(anonymous)>
                     frag 0 from TextNode start: 0, length: 7, rect: [56,161 46.40625x17] baseline: 13.296875
@@ -109,7 +109,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
             BlockContainer <(anonymous)> at (40,178) content-size 752x0 children: inline
               TextNode <#text>
             BlockContainer <div.li> at (40,178) content-size 752x17 children: inline
-              frag 0 from TextNode start: 0, length: 1, rect: [72,178 4.59375x17] baseline: 13.296875
+              frag 0 from TextNode start: 0, length: 1, rect: [71.625,178 4.59375x17] baseline: 13.296875
                   "I"
               InlineNode <(anonymous)>
                 frag 0 from TextNode start: 0, length: 5, rect: [40,178 31.625x17] baseline: 13.296875
@@ -119,7 +119,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
             BlockContainer <(anonymous)> at (40,195) content-size 752x0 children: inline
               TextNode <#text>
             BlockContainer <div.li> at (40,195) content-size 752x17 children: inline
-              frag 0 from TextNode start: 0, length: 1, rect: [72,195 8.90625x17] baseline: 13.296875
+              frag 0 from TextNode start: 0, length: 1, rect: [72.328125,195 8.90625x17] baseline: 13.296875
                   "J"
               InlineNode <(anonymous)>
                 frag 0 from TextNode start: 0, length: 5, rect: [40,195 32.328125x17] baseline: 13.296875
@@ -133,7 +133,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
         BlockContainer <(anonymous)> at (24,212) content-size 768x0 children: inline
           TextNode <#text>
         BlockContainer <div.li> at (24,212) content-size 768x17 children: inline
-          frag 0 from TextNode start: 0, length: 1, rect: [44,212 9.8125x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 1, rect: [44.234375,212 9.8125x17] baseline: 13.296875
               "K"
           InlineNode <(anonymous)>
             frag 0 from TextNode start: 0, length: 3, rect: [24,212 20.234375x17] baseline: 13.296875
@@ -143,7 +143,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
         BlockContainer <(anonymous)> at (24,229) content-size 768x0 children: inline
           TextNode <#text>
         BlockContainer <div.li> at (24,229) content-size 768x17 children: inline
-          frag 0 from TextNode start: 0, length: 1, rect: [45,229 10.859375x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 1, rect: [44.515625,229 10.859375x17] baseline: 13.296875
               "L"
           InlineNode <(anonymous)>
             frag 0 from TextNode start: 0, length: 3, rect: [24,229 20.515625x17] baseline: 13.296875
@@ -153,7 +153,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
         BlockContainer <(anonymous)> at (24,246) content-size 768x0 children: inline
           TextNode <#text>
         BlockContainer <div.li> at (24,246) content-size 768x17 children: inline
-          frag 0 from TextNode start: 0, length: 1, rect: [45,246 11.765625x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 1, rect: [44.5,246 11.765625x17] baseline: 13.296875
               "M"
           InlineNode <(anonymous)>
             frag 0 from TextNode start: 0, length: 3, rect: [24,246 20.5x17] baseline: 13.296875

+ 5 - 5
Tests/LibWeb/Layout/expected/css-counters/hidden-elements.txt

@@ -2,7 +2,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
   BlockContainer <html> at (0,0) content-size 800x600 [BFC] children: not-inline
     BlockContainer <body> at (8,16) content-size 784x149 children: not-inline
       BlockContainer <p> at (8,16) content-size 784x17 children: inline
-        frag 0 from TextNode start: 0, length: 1, rect: [26,16 14.265625x17] baseline: 13.296875
+        frag 0 from TextNode start: 0, length: 1, rect: [26.125,16 14.265625x17] baseline: 13.296875
             "A"
         InlineNode <(anonymous)>
           frag 0 from TextNode start: 0, length: 3, rect: [8,16 18.125x17] baseline: 13.296875
@@ -10,7 +10,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
           TextNode <#text>
         TextNode <#text>
       BlockContainer <p> at (8,49) content-size 784x17 children: inline
-        frag 0 from TextNode start: 0, length: 1, rect: [29,49 9.34375x17] baseline: 13.296875
+        frag 0 from TextNode start: 0, length: 1, rect: [28.59375,49 9.34375x17] baseline: 13.296875
             "B"
         InlineNode <(anonymous)>
           frag 0 from TextNode start: 0, length: 3, rect: [8,49 20.59375x17] baseline: 13.296875
@@ -18,7 +18,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
           TextNode <#text>
         TextNode <#text>
       BlockContainer <p> at (8,82) content-size 784x17 children: inline
-        frag 0 from TextNode start: 0, length: 1, rect: [29,82 10.3125x17] baseline: 13.296875
+        frag 0 from TextNode start: 0, length: 1, rect: [28.875,82 10.3125x17] baseline: 13.296875
             "C"
         InlineNode <(anonymous)>
           frag 0 from TextNode start: 0, length: 3, rect: [8,82 20.875x17] baseline: 13.296875
@@ -26,7 +26,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
           TextNode <#text>
         TextNode <#text>
       BlockContainer <p> at (8,115) content-size 784x17 children: inline
-        frag 0 from TextNode start: 0, length: 1, rect: [28,115 11.140625x17] baseline: 13.296875
+        frag 0 from TextNode start: 0, length: 1, rect: [27.53125,115 11.140625x17] baseline: 13.296875
             "D"
         InlineNode <(anonymous)>
           frag 0 from TextNode start: 0, length: 3, rect: [8,115 19.53125x17] baseline: 13.296875
@@ -34,7 +34,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
           TextNode <#text>
         TextNode <#text>
       BlockContainer <p> at (8,148) content-size 784x17 children: inline
-        frag 0 from TextNode start: 0, length: 1, rect: [28,148 11.859375x17] baseline: 13.296875
+        frag 0 from TextNode start: 0, length: 1, rect: [28.234375,148 11.859375x17] baseline: 13.296875
             "E"
         InlineNode <(anonymous)>
           frag 0 from TextNode start: 0, length: 3, rect: [8,148 20.234375x17] baseline: 13.296875

+ 9 - 9
Tests/LibWeb/Layout/expected/css-dir-selector.txt

@@ -18,9 +18,9 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
       BlockContainer <(anonymous)> at (200,212) content-size 592x0 children: inline
         TextNode <#text>
       BlockContainer <div> at (401,213) content-size 100x100 children: inline
-        frag 0 from TextNode start: 0, length: 11, rect: [421,213 79.96875x17] baseline: 13.296875
+        frag 0 from TextNode start: 0, length: 11, rect: [421.03125,213 79.96875x17] baseline: 13.296875
             "Well, hello"
-        frag 1 from TextNode start: 12, length: 8, rect: [442,230 59.21875x17] baseline: 13.296875
+        frag 1 from TextNode start: 12, length: 8, rect: [441.78125,230 59.21875x17] baseline: 13.296875
             "friends!"
         TextNode <#text>
       BlockContainer <(anonymous)> at (200,314) content-size 592x0 children: inline
@@ -50,17 +50,17 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
       BlockContainer <(anonymous)> at (200,620) content-size 592x0 children: inline
         TextNode <#text>
       BlockContainer <div> at (401,621) content-size 100x100 children: inline
-        frag 0 from TextNode start: 0, length: 26, rect: [427,621 74.4375x17] baseline: 13.296875
+        frag 0 from TextNode start: 0, length: 26, rect: [426.5625,621 74.4375x17] baseline: 13.296875
             "حسنًا ، مرحباً"
-        frag 1 from TextNode start: 27, length: 25, rect: [423,638 78.125x17] baseline: 13.296875
+        frag 1 from TextNode start: 27, length: 25, rect: [422.875,638 78.125x17] baseline: 13.296875
             "أيها الأصدقاء"
         TextNode <#text>
       BlockContainer <(anonymous)> at (200,722) content-size 592x0 children: inline
         TextNode <#text>
       BlockContainer <div> at (401,723) content-size 100x100 children: inline
-        frag 0 from TextNode start: 0, length: 26, rect: [427,723 74.4375x17] baseline: 13.296875
+        frag 0 from TextNode start: 0, length: 26, rect: [426.5625,723 74.4375x17] baseline: 13.296875
             "حسنًا ، مرحباً"
-        frag 1 from TextNode start: 27, length: 25, rect: [423,740 78.125x17] baseline: 13.296875
+        frag 1 from TextNode start: 27, length: 25, rect: [422.875,740 78.125x17] baseline: 13.296875
             "أيها الأصدقاء"
         TextNode <#text>
       BlockContainer <(anonymous)> at (200,824) content-size 592x0 children: inline
@@ -75,7 +75,7 @@ ViewportPaintable (Viewport<#document>) [0,0 800x600] overflow: [0,0 800x832]
       PaintableWithLines (BlockContainer<DIV>) [300,110 102x102]
         TextPaintable (TextNode<#text>)
       PaintableWithLines (BlockContainer(anonymous)) [200,212 592x0]
-      PaintableWithLines (BlockContainer<DIV>) [400,212 102x102] overflow: [401,213 100.21875x100]
+      PaintableWithLines (BlockContainer<DIV>) [400,212 102x102]
         TextPaintable (TextNode<#text>)
       PaintableWithLines (BlockContainer(anonymous)) [200,314 592x0]
       PaintableWithLines (BlockContainer<DIV>) [300,314 102x102]
@@ -87,9 +87,9 @@ ViewportPaintable (Viewport<#document>) [0,0 800x600] overflow: [0,0 800x832]
       PaintableWithLines (BlockContainer<DIV>) [300,518 102x102]
         TextPaintable (TextNode<#text>)
       PaintableWithLines (BlockContainer(anonymous)) [200,620 592x0]
-      PaintableWithLines (BlockContainer<DIV>) [400,620 102x102] overflow: [401,621 100.4375x100]
+      PaintableWithLines (BlockContainer<DIV>) [400,620 102x102]
         TextPaintable (TextNode<#text>)
       PaintableWithLines (BlockContainer(anonymous)) [200,722 592x0]
-      PaintableWithLines (BlockContainer<DIV>) [400,722 102x102] overflow: [401,723 100.4375x100]
+      PaintableWithLines (BlockContainer<DIV>) [400,722 102x102]
         TextPaintable (TextNode<#text>)
       PaintableWithLines (BlockContainer(anonymous)) [200,824 592x0]

+ 4 - 4
Tests/LibWeb/Layout/expected/css-font-size-math.txt

@@ -6,19 +6,19 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
             "H"
         TextNode <#text>
         InlineNode <span>
-          frag 0 from TextNode start: 0, length: 1, rect: [47,38 19.78125x40] baseline: 30.875
+          frag 0 from TextNode start: 0, length: 1, rect: [47.09375,38 19.78125x40] baseline: 30.875
               "e"
           TextNode <#text>
           InlineNode <span>
-            frag 0 from TextNode start: 0, length: 1, rect: [67,47 6.8125x28] baseline: 21.71875
+            frag 0 from TextNode start: 0, length: 1, rect: [66.875,47 6.8125x28] baseline: 21.71875
                 "l"
             TextNode <#text>
             InlineNode <span>
-              frag 0 from TextNode start: 0, length: 1, rect: [74,53 4.84375x20] baseline: 15.484375
+              frag 0 from TextNode start: 0, length: 1, rect: [73.6875,53 4.84375x20] baseline: 15.484375
                   "l"
               TextNode <#text>
               InlineNode <span>
-                frag 0 from TextNode start: 0, length: 1, rect: [79,58 8.40625x14] baseline: 10.890625
+                frag 0 from TextNode start: 0, length: 1, rect: [78.53125,58 8.40625x14] baseline: 10.890625
                     "o"
                 TextNode <#text>
       TextNode <#text>

+ 44 - 44
Tests/LibWeb/Layout/expected/css-quotes-nesting.txt

@@ -5,37 +5,37 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
         InlineNode <span>
           frag 0 from TextNode start: 0, length: 1, rect: [8,8 9.34375x17] baseline: 13.296875
               "a"
-          frag 1 from TextNode start: 0, length: 1, rect: [76,8 4.5625x17] baseline: 13.296875
+          frag 1 from TextNode start: 0, length: 1, rect: [75.578125,8 4.5625x17] baseline: 13.296875
               "i"
           InlineNode <(anonymous)>
             TextNode <#text>
           TextNode <#text>
           InlineNode <span>
-            frag 0 from TextNode start: 0, length: 1, rect: [17,8 9.46875x17] baseline: 13.296875
+            frag 0 from TextNode start: 0, length: 1, rect: [17.34375,8 9.46875x17] baseline: 13.296875
                 "b"
-            frag 1 from TextNode start: 0, length: 1, rect: [66,8 9.296875x17] baseline: 13.296875
+            frag 1 from TextNode start: 0, length: 1, rect: [66.28125,8 9.296875x17] baseline: 13.296875
                 "h"
             InlineNode <(anonymous)>
               TextNode <#text>
             TextNode <#text>
             InlineNode <span>
-              frag 0 from TextNode start: 0, length: 1, rect: [27,8 8.890625x17] baseline: 13.296875
+              frag 0 from TextNode start: 0, length: 1, rect: [26.8125,8 8.890625x17] baseline: 13.296875
                   "c"
-              frag 1 from TextNode start: 0, length: 1, rect: [59,8 7.5625x17] baseline: 13.296875
+              frag 1 from TextNode start: 0, length: 1, rect: [58.71875,8 7.5625x17] baseline: 13.296875
                   "g"
               InlineNode <(anonymous)>
                 TextNode <#text>
               TextNode <#text>
               InlineNode <span>
-                frag 0 from TextNode start: 0, length: 1, rect: [36,8 7.859375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [35.703125,8 7.859375x17] baseline: 13.296875
                     "d"
-                frag 1 from TextNode start: 0, length: 1, rect: [52,8 6.4375x17] baseline: 13.296875
+                frag 1 from TextNode start: 0, length: 1, rect: [52.28125,8 6.4375x17] baseline: 13.296875
                     "f"
                 InlineNode <(anonymous)>
                   TextNode <#text>
                 TextNode <#text>
                 InlineNode <span>
-                  frag 0 from TextNode start: 0, length: 1, rect: [44,8 8.71875x17] baseline: 13.296875
+                  frag 0 from TextNode start: 0, length: 1, rect: [43.5625,8 8.71875x17] baseline: 13.296875
                       "e"
                   InlineNode <(anonymous)>
                     TextNode <#text>
@@ -58,9 +58,9 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
         TextNode <#text>
       BlockContainer <div.b> at (8,25) content-size 784x17 children: inline
         InlineNode <span>
-          frag 0 from TextNode start: 0, length: 1, rect: [14,25 9.34375x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 1, rect: [13.84375,25 9.34375x17] baseline: 13.296875
               "a"
-          frag 1 from TextNode start: 0, length: 1, rect: [128,25 4.5625x17] baseline: 13.296875
+          frag 1 from TextNode start: 0, length: 1, rect: [128.171875,25 4.5625x17] baseline: 13.296875
               "i"
           InlineNode <(anonymous)>
             frag 0 from TextNode start: 0, length: 3, rect: [8,25 5.84375x17] baseline: 13.296875
@@ -68,74 +68,74 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
             TextNode <#text>
           TextNode <#text>
           InlineNode <span>
-            frag 0 from TextNode start: 0, length: 1, rect: [29,25 9.46875x17] baseline: 13.296875
+            frag 0 from TextNode start: 0, length: 1, rect: [29.03125,25 9.46875x17] baseline: 13.296875
                 "b"
-            frag 1 from TextNode start: 0, length: 1, rect: [113,25 9.296875x17] baseline: 13.296875
+            frag 1 from TextNode start: 0, length: 1, rect: [113.03125,25 9.296875x17] baseline: 13.296875
                 "h"
             InlineNode <(anonymous)>
-              frag 0 from TextNode start: 0, length: 3, rect: [23,25 5.84375x17] baseline: 13.296875
+              frag 0 from TextNode start: 0, length: 3, rect: [23.1875,25 5.84375x17] baseline: 13.296875
                   "‘"
               TextNode <#text>
             TextNode <#text>
             InlineNode <span>
-              frag 0 from TextNode start: 0, length: 1, rect: [44,25 8.890625x17] baseline: 13.296875
+              frag 0 from TextNode start: 0, length: 1, rect: [44.34375,25 8.890625x17] baseline: 13.296875
                   "c"
-              frag 1 from TextNode start: 0, length: 1, rect: [100,25 7.5625x17] baseline: 13.296875
+              frag 1 from TextNode start: 0, length: 1, rect: [99.625,25 7.5625x17] baseline: 13.296875
                   "g"
               InlineNode <(anonymous)>
-                frag 0 from TextNode start: 0, length: 3, rect: [39,25 5.84375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 3, rect: [38.5,25 5.84375x17] baseline: 13.296875
                     "‘"
                 TextNode <#text>
               TextNode <#text>
               InlineNode <span>
-                frag 0 from TextNode start: 0, length: 1, rect: [59,25 7.859375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [59.078125,25 7.859375x17] baseline: 13.296875
                     "d"
-                frag 1 from TextNode start: 0, length: 1, rect: [87,25 6.4375x17] baseline: 13.296875
+                frag 1 from TextNode start: 0, length: 1, rect: [87.34375,25 6.4375x17] baseline: 13.296875
                     "f"
                 InlineNode <(anonymous)>
-                  frag 0 from TextNode start: 0, length: 3, rect: [53,25 5.84375x17] baseline: 13.296875
+                  frag 0 from TextNode start: 0, length: 3, rect: [53.234375,25 5.84375x17] baseline: 13.296875
                       "‘"
                   TextNode <#text>
                 TextNode <#text>
                 InlineNode <span>
-                  frag 0 from TextNode start: 0, length: 1, rect: [73,25 8.71875x17] baseline: 13.296875
+                  frag 0 from TextNode start: 0, length: 1, rect: [72.78125,25 8.71875x17] baseline: 13.296875
                       "e"
                   InlineNode <(anonymous)>
-                    frag 0 from TextNode start: 0, length: 3, rect: [67,25 5.84375x17] baseline: 13.296875
+                    frag 0 from TextNode start: 0, length: 3, rect: [66.9375,25 5.84375x17] baseline: 13.296875
                         "‘"
                     TextNode <#text>
                   TextNode <#text>
                   InlineNode <(anonymous)>
-                    frag 0 from TextNode start: 0, length: 3, rect: [82,25 5.84375x17] baseline: 13.296875
+                    frag 0 from TextNode start: 0, length: 3, rect: [81.5,25 5.84375x17] baseline: 13.296875
                         "’"
                     TextNode <#text>
                 TextNode <#text>
                 InlineNode <(anonymous)>
-                  frag 0 from TextNode start: 0, length: 3, rect: [94,25 5.84375x17] baseline: 13.296875
+                  frag 0 from TextNode start: 0, length: 3, rect: [93.78125,25 5.84375x17] baseline: 13.296875
                       "’"
                   TextNode <#text>
               TextNode <#text>
               InlineNode <(anonymous)>
-                frag 0 from TextNode start: 0, length: 3, rect: [107,25 5.84375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 3, rect: [107.1875,25 5.84375x17] baseline: 13.296875
                     "’"
                 TextNode <#text>
             TextNode <#text>
             InlineNode <(anonymous)>
-              frag 0 from TextNode start: 0, length: 3, rect: [122,25 5.84375x17] baseline: 13.296875
+              frag 0 from TextNode start: 0, length: 3, rect: [122.328125,25 5.84375x17] baseline: 13.296875
                   "’"
               TextNode <#text>
           TextNode <#text>
           InlineNode <(anonymous)>
-            frag 0 from TextNode start: 0, length: 3, rect: [133,25 5.84375x17] baseline: 13.296875
+            frag 0 from TextNode start: 0, length: 3, rect: [132.734375,25 5.84375x17] baseline: 13.296875
                 "”"
             TextNode <#text>
       BlockContainer <(anonymous)> at (8,42) content-size 784x0 children: inline
         TextNode <#text>
       BlockContainer <div.c> at (8,42) content-size 784x17 children: inline
         InlineNode <span>
-          frag 0 from TextNode start: 0, length: 1, rect: [13,42 9.34375x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 1, rect: [13.484375,42 9.34375x17] baseline: 13.296875
               "a"
-          frag 1 from TextNode start: 0, length: 1, rect: [139,42 4.5625x17] baseline: 13.296875
+          frag 1 from TextNode start: 0, length: 1, rect: [138.859375,42 4.5625x17] baseline: 13.296875
               "i"
           InlineNode <(anonymous)>
             frag 0 from TextNode start: 0, length: 1, rect: [8,42 5.484375x17] baseline: 13.296875
@@ -143,65 +143,65 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
             TextNode <#text>
           TextNode <#text>
           InlineNode <span>
-            frag 0 from TextNode start: 0, length: 1, rect: [30,42 9.46875x17] baseline: 13.296875
+            frag 0 from TextNode start: 0, length: 1, rect: [30.453125,42 9.46875x17] baseline: 13.296875
                 "b"
-            frag 1 from TextNode start: 0, length: 1, rect: [122,42 9.296875x17] baseline: 13.296875
+            frag 1 from TextNode start: 0, length: 1, rect: [121.90625,42 9.296875x17] baseline: 13.296875
                 "h"
             InlineNode <(anonymous)>
-              frag 0 from TextNode start: 0, length: 1, rect: [23,42 7.625x17] baseline: 13.296875
+              frag 0 from TextNode start: 0, length: 1, rect: [22.828125,42 7.625x17] baseline: 13.296875
                   "{"
               TextNode <#text>
             TextNode <#text>
             InlineNode <span>
-              frag 0 from TextNode start: 0, length: 1, rect: [47,42 8.890625x17] baseline: 13.296875
+              frag 0 from TextNode start: 0, length: 1, rect: [46.875,42 8.890625x17] baseline: 13.296875
                   "c"
-              frag 1 from TextNode start: 0, length: 1, rect: [107,42 7.5625x17] baseline: 13.296875
+              frag 1 from TextNode start: 0, length: 1, rect: [107.125,42 7.5625x17] baseline: 13.296875
                   "g"
               InlineNode <(anonymous)>
-                frag 0 from TextNode start: 0, length: 1, rect: [40,42 6.953125x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [39.921875,42 6.953125x17] baseline: 13.296875
                     "["
                 TextNode <#text>
               TextNode <#text>
               InlineNode <span>
-                frag 0 from TextNode start: 0, length: 1, rect: [63,42 7.859375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [62.71875,42 7.859375x17] baseline: 13.296875
                     "d"
-                frag 1 from TextNode start: 0, length: 1, rect: [93,42 6.4375x17] baseline: 13.296875
+                frag 1 from TextNode start: 0, length: 1, rect: [93.46875,42 6.4375x17] baseline: 13.296875
                     "f"
                 InlineNode <(anonymous)>
-                  frag 0 from TextNode start: 0, length: 1, rect: [56,42 6.953125x17] baseline: 13.296875
+                  frag 0 from TextNode start: 0, length: 1, rect: [55.765625,42 6.953125x17] baseline: 13.296875
                       "["
                   TextNode <#text>
                 TextNode <#text>
                 InlineNode <span>
-                  frag 0 from TextNode start: 0, length: 1, rect: [78,42 8.71875x17] baseline: 13.296875
+                  frag 0 from TextNode start: 0, length: 1, rect: [77.53125,42 8.71875x17] baseline: 13.296875
                       "e"
                   InlineNode <(anonymous)>
-                    frag 0 from TextNode start: 0, length: 1, rect: [71,42 6.953125x17] baseline: 13.296875
+                    frag 0 from TextNode start: 0, length: 1, rect: [70.578125,42 6.953125x17] baseline: 13.296875
                         "["
                     TextNode <#text>
                   TextNode <#text>
                   InlineNode <(anonymous)>
-                    frag 0 from TextNode start: 0, length: 1, rect: [86,42 7.21875x17] baseline: 13.296875
+                    frag 0 from TextNode start: 0, length: 1, rect: [86.25,42 7.21875x17] baseline: 13.296875
                         "]"
                     TextNode <#text>
                 TextNode <#text>
                 InlineNode <(anonymous)>
-                  frag 0 from TextNode start: 0, length: 1, rect: [100,42 7.21875x17] baseline: 13.296875
+                  frag 0 from TextNode start: 0, length: 1, rect: [99.90625,42 7.21875x17] baseline: 13.296875
                       "]"
                   TextNode <#text>
               TextNode <#text>
               InlineNode <(anonymous)>
-                frag 0 from TextNode start: 0, length: 1, rect: [115,42 7.21875x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [114.6875,42 7.21875x17] baseline: 13.296875
                     "]"
                 TextNode <#text>
             TextNode <#text>
             InlineNode <(anonymous)>
-              frag 0 from TextNode start: 0, length: 1, rect: [131,42 7.65625x17] baseline: 13.296875
+              frag 0 from TextNode start: 0, length: 1, rect: [131.203125,42 7.65625x17] baseline: 13.296875
                   "}"
               TextNode <#text>
           TextNode <#text>
           InlineNode <(anonymous)>
-            frag 0 from TextNode start: 0, length: 1, rect: [143,42 4.8125x17] baseline: 13.296875
+            frag 0 from TextNode start: 0, length: 1, rect: [143.421875,42 4.8125x17] baseline: 13.296875
                 ")"
             TextNode <#text>
       BlockContainer <(anonymous)> at (8,59) content-size 784x0 children: inline

+ 30 - 30
Tests/LibWeb/Layout/expected/div_align.txt

@@ -11,7 +11,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
         TextNode <#text>
       BlockContainer <div> at (8,165) content-size 784x137 children: not-inline
         BlockContainer <(anonymous)> at (8,165) content-size 784x17 children: inline
-          frag 0 from TextNode start: 0, length: 49, rect: [191,165 418.6875x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 49, rect: [190.65625,165 418.6875x17] baseline: 13.296875
               "This text and the green square are both centered:"
           TextNode <#text>
         BlockContainer <div.square> at (350,202) content-size 100x100 children: not-inline
@@ -19,7 +19,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
         TextNode <#text>
       BlockContainer <div> at (8,322) content-size 784x137 children: not-inline
         BlockContainer <(anonymous)> at (8,322) content-size 784x17 children: inline
-          frag 0 from TextNode start: 0, length: 54, rect: [345,322 447.484375x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 54, rect: [344.515625,322 447.484375x17] baseline: 13.296875
               "This text and the green square are both right aligned:"
           TextNode <#text>
         BlockContainer <div.square> at (672,359) content-size 100x100 children: not-inline
@@ -29,55 +29,55 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
         BlockContainer <(anonymous)> at (8,479) content-size 784x17 children: inline
           frag 0 from TextNode start: 0, length: 4, rect: [8,479 35.5x17] baseline: 13.296875
               "This"
-          frag 1 from TextNode start: 4, length: 1, rect: [44,479 8x17] baseline: 13.296875
+          frag 1 from TextNode start: 4, length: 1, rect: [43.5,479 8x17] baseline: 13.296875
               " "
-          frag 2 from TextNode start: 5, length: 4, rect: [52,479 32.140625x17] baseline: 13.296875
+          frag 2 from TextNode start: 5, length: 4, rect: [51.5,479 32.140625x17] baseline: 13.296875
               "text"
-          frag 3 from TextNode start: 9, length: 1, rect: [84,479 8x17] baseline: 13.296875
+          frag 3 from TextNode start: 9, length: 1, rect: [83.640625,479 8x17] baseline: 13.296875
               " "
-          frag 4 from TextNode start: 10, length: 2, rect: [92,479 13.90625x17] baseline: 13.296875
+          frag 4 from TextNode start: 10, length: 2, rect: [91.640625,479 13.90625x17] baseline: 13.296875
               "is"
-          frag 5 from TextNode start: 12, length: 1, rect: [106,479 8x17] baseline: 13.296875
+          frag 5 from TextNode start: 12, length: 1, rect: [105.546875,479 8x17] baseline: 13.296875
               " "
-          frag 6 from TextNode start: 13, length: 1, rect: [114,479 3.625x17] baseline: 13.296875
+          frag 6 from TextNode start: 13, length: 1, rect: [113.546875,479 3.625x17] baseline: 13.296875
               "'"
-          frag 7 from TextNode start: 14, length: 4, rect: [117,479 24.671875x17] baseline: 13.296875
+          frag 7 from TextNode start: 14, length: 4, rect: [117.171875,479 24.671875x17] baseline: 13.296875
               "full"
-          frag 8 from TextNode start: 18, length: 1, rect: [142,479 6.484375x17] baseline: 13.296875
+          frag 8 from TextNode start: 18, length: 1, rect: [141.84375,479 6.484375x17] baseline: 13.296875
               "-"
-          frag 9 from TextNode start: 19, length: 9, rect: [148,479 64.5625x17] baseline: 13.296875
+          frag 9 from TextNode start: 19, length: 9, rect: [148.328125,479 64.5625x17] baseline: 13.296875
               "justified"
-          frag 10 from TextNode start: 28, length: 1, rect: [213,479 3.625x17] baseline: 13.296875
+          frag 10 from TextNode start: 28, length: 1, rect: [212.890625,479 3.625x17] baseline: 13.296875
               "'"
-          frag 11 from TextNode start: 29, length: 1, rect: [217,479 8x17] baseline: 13.296875
+          frag 11 from TextNode start: 29, length: 1, rect: [216.515625,479 8x17] baseline: 13.296875
               " "
-          frag 12 from TextNode start: 30, length: 3, rect: [225,479 26.8125x17] baseline: 13.296875
+          frag 12 from TextNode start: 30, length: 3, rect: [224.515625,479 26.8125x17] baseline: 13.296875
               "and"
-          frag 13 from TextNode start: 33, length: 1, rect: [251,479 8x17] baseline: 13.296875
+          frag 13 from TextNode start: 33, length: 1, rect: [251.328125,479 8x17] baseline: 13.296875
               " "
-          frag 14 from TextNode start: 34, length: 3, rect: [259,479 24.875x17] baseline: 13.296875
+          frag 14 from TextNode start: 34, length: 3, rect: [259.328125,479 24.875x17] baseline: 13.296875
               "the"
-          frag 15 from TextNode start: 37, length: 1, rect: [284,479 8x17] baseline: 13.296875
+          frag 15 from TextNode start: 37, length: 1, rect: [284.203125,479 8x17] baseline: 13.296875
               " "
-          frag 16 from TextNode start: 38, length: 5, rect: [292,479 43.4375x17] baseline: 13.296875
+          frag 16 from TextNode start: 38, length: 5, rect: [292.203125,479 43.4375x17] baseline: 13.296875
               "green"
-          frag 17 from TextNode start: 43, length: 1, rect: [336,479 8x17] baseline: 13.296875
+          frag 17 from TextNode start: 43, length: 1, rect: [335.640625,479 8x17] baseline: 13.296875
               " "
-          frag 18 from TextNode start: 44, length: 6, rect: [344,479 57.0625x17] baseline: 13.296875
+          frag 18 from TextNode start: 44, length: 6, rect: [343.640625,479 57.0625x17] baseline: 13.296875
               "square"
-          frag 19 from TextNode start: 50, length: 1, rect: [401,479 8x17] baseline: 13.296875
+          frag 19 from TextNode start: 50, length: 1, rect: [400.703125,479 8x17] baseline: 13.296875
               " "
-          frag 20 from TextNode start: 51, length: 2, rect: [409,479 13.90625x17] baseline: 13.296875
+          frag 20 from TextNode start: 51, length: 2, rect: [408.703125,479 13.90625x17] baseline: 13.296875
               "is"
-          frag 21 from TextNode start: 53, length: 1, rect: [423,479 8x17] baseline: 13.296875
+          frag 21 from TextNode start: 53, length: 1, rect: [422.609375,479 8x17] baseline: 13.296875
               " "
-          frag 22 from TextNode start: 54, length: 4, rect: [431,479 26.25x17] baseline: 13.296875
+          frag 22 from TextNode start: 54, length: 4, rect: [430.609375,479 26.25x17] baseline: 13.296875
               "left"
-          frag 23 from TextNode start: 58, length: 1, rect: [457,479 8x17] baseline: 13.296875
+          frag 23 from TextNode start: 58, length: 1, rect: [456.859375,479 8x17] baseline: 13.296875
               " "
-          frag 24 from TextNode start: 59, length: 7, rect: [465,479 51.890625x17] baseline: 13.296875
+          frag 24 from TextNode start: 59, length: 7, rect: [464.859375,479 51.890625x17] baseline: 13.296875
               "aligned"
-          frag 25 from TextNode start: 66, length: 1, rect: [517,479 3.78125x17] baseline: 13.296875
+          frag 25 from TextNode start: 66, length: 1, rect: [516.75,479 3.78125x17] baseline: 13.296875
               ":"
           TextNode <#text>
         BlockContainer <div.square> at (28,516) content-size 100x100 children: not-inline
@@ -86,7 +86,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600] overflow: [0,0 800x636]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x636]
-    PaintableWithLines (BlockContainer<BODY>) [8,8 784x608] overflow: [8,8 784.484375x608]
+    PaintableWithLines (BlockContainer<BODY>) [8,8 784x608]
       PaintableWithLines (BlockContainer<DIV>) [8,8 784x137]
         PaintableWithLines (BlockContainer(anonymous)) [8,8 784x17]
           TextPaintable (TextNode<#text>)
@@ -97,8 +97,8 @@ ViewportPaintable (Viewport<#document>) [0,0 800x600] overflow: [0,0 800x636]
           TextPaintable (TextNode<#text>)
         PaintableWithLines (BlockContainer<DIV>.square) [350,202 100x100]
       PaintableWithLines (BlockContainer(anonymous)) [8,322 784x0]
-      PaintableWithLines (BlockContainer<DIV>) [8,322 784x137] overflow: [8,322 784.484375x137]
-        PaintableWithLines (BlockContainer(anonymous)) [8,322 784x17] overflow: [8,322 784.484375x17]
+      PaintableWithLines (BlockContainer<DIV>) [8,322 784x137]
+        PaintableWithLines (BlockContainer(anonymous)) [8,322 784x17]
           TextPaintable (TextNode<#text>)
         PaintableWithLines (BlockContainer<DIV>.square) [672,359 100x100]
       PaintableWithLines (BlockContainer(anonymous)) [8,479 784x0]

+ 4 - 4
Tests/LibWeb/Layout/expected/div_align_nested.txt

@@ -3,7 +3,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
     BlockContainer <body> at (8,8) content-size 784x251 children: not-inline
       BlockContainer <div> at (8,8) content-size 784x251 children: not-inline
         BlockContainer <(anonymous)> at (8,8) content-size 784x17 children: inline
-          frag 0 from TextNode start: 0, length: 54, rect: [345,8 447.484375x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 54, rect: [344.515625,8 447.484375x17] baseline: 13.296875
               "This text and the green square are both right aligned:"
           TextNode <#text>
         BlockContainer <div.square> at (692,25) content-size 100x100 children: not-inline
@@ -25,9 +25,9 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x600]
-    PaintableWithLines (BlockContainer<BODY>) [8,8 784x251] overflow: [8,8 784.484375x251]
-      PaintableWithLines (BlockContainer<DIV>) [8,8 784x251] overflow: [8,8 784.484375x251]
-        PaintableWithLines (BlockContainer(anonymous)) [8,8 784x17] overflow: [8,8 784.484375x17]
+    PaintableWithLines (BlockContainer<BODY>) [8,8 784x251]
+      PaintableWithLines (BlockContainer<DIV>) [8,8 784x251]
+        PaintableWithLines (BlockContainer(anonymous)) [8,8 784x17]
           TextPaintable (TextNode<#text>)
         PaintableWithLines (BlockContainer<DIV>.square) [692,25 100x100]
         PaintableWithLines (BlockContainer(anonymous)) [8,125 784x0]

+ 4 - 4
Tests/LibWeb/Layout/expected/flex/flex-item-min-width-fit-content.txt

@@ -8,13 +8,13 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
         TextNode <#text>
       BlockContainer <div.buttons> at (394.625,11) content-size 114.375x50 flex-item [BFC] children: inline
         frag 0 from BlockContainer start: 0, length: 0, rect: [395.625,12 57.046875x17] baseline: 14.296875
-        frag 1 from BlockContainer start: 0, length: 0, rect: [454.625,12 53.328125x17] baseline: 14.296875
+        frag 1 from BlockContainer start: 0, length: 0, rect: [454.671875,12 53.328125x17] baseline: 14.296875
         BlockContainer <div.button> at (395.625,12) content-size 57.046875x17 inline-block [BFC] children: inline
           frag 0 from TextNode start: 0, length: 6, rect: [395.625,12 57.046875x17] baseline: 13.296875
               "Accept"
           TextNode <#text>
-        BlockContainer <div.button> at (454.625,12) content-size 53.328125x17 inline-block [BFC] children: inline
-          frag 0 from TextNode start: 0, length: 6, rect: [454.625,12 53.328125x17] baseline: 13.296875
+        BlockContainer <div.button> at (454.671875,12) content-size 53.328125x17 inline-block [BFC] children: inline
+          frag 0 from TextNode start: 0, length: 6, rect: [454.671875,12 53.328125x17] baseline: 13.296875
               "Reject"
           TextNode <#text>
 
@@ -25,5 +25,5 @@ ViewportPaintable (Viewport<#document>) [0,0 800x600]
       PaintableWithLines (BlockContainer<DIV>.buttons) [393.625,10 116.375x52]
         PaintableWithLines (BlockContainer<DIV>.button) [394.625,11 59.046875x19]
           TextPaintable (TextNode<#text>)
-        PaintableWithLines (BlockContainer<DIV>.button) [453.625,11 55.328125x19]
+        PaintableWithLines (BlockContainer<DIV>.button) [453.671875,11 55.328125x19]
           TextPaintable (TextNode<#text>)

+ 4 - 4
Tests/LibWeb/Layout/expected/font-fractional-size.txt

@@ -1,9 +1,9 @@
 Viewport <#document> at (0,0) content-size 800x600 children: not-inline
   BlockContainer <html> at (0,0) content-size 800x39 [BFC] children: not-inline
     BlockContainer <body> at (8,8) content-size 784x23 children: inline
-      frag 0 from TextNode start: 0, length: 1, rect: [20,12 8x17] baseline: 13.296875
+      frag 0 from TextNode start: 0, length: 1, rect: [20.4375,12 8x17] baseline: 13.296875
           " "
-      frag 1 from TextNode start: 0, length: 1, rect: [41,12 8x17] baseline: 13.296875
+      frag 1 from TextNode start: 0, length: 1, rect: [41.171875,12 8x17] baseline: 13.296875
           " "
       InlineNode <span.a>
         frag 0 from TextNode start: 0, length: 1, rect: [8,8 12.4375x22] baseline: 17.140625
@@ -11,12 +11,12 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
         TextNode <#text>
       TextNode <#text>
       InlineNode <span.b>
-        frag 0 from TextNode start: 0, length: 1, rect: [28,8 12.734375x23] baseline: 17.796875
+        frag 0 from TextNode start: 0, length: 1, rect: [28.4375,8 12.734375x23] baseline: 17.796875
             "x"
         TextNode <#text>
       TextNode <#text>
       InlineNode <span.c>
-        frag 0 from TextNode start: 0, length: 1, rect: [49,8 13.03125x23] baseline: 17.953125
+        frag 0 from TextNode start: 0, length: 1, rect: [49.171875,8 13.03125x23] baseline: 17.953125
             "x"
         TextNode <#text>
       TextNode <#text>

+ 6 - 6
Tests/LibWeb/Layout/expected/font-with-many-normal-values.txt

@@ -1,11 +1,11 @@
 Viewport <#document> at (0,0) content-size 800x600 children: not-inline
   BlockContainer <html> at (0,0) content-size 800x216 [BFC] children: not-inline
     BlockContainer <body> at (8,8) content-size 784x200 children: inline
-      frag 0 from TextNode start: 0, length: 1, rect: [87,154 8x17] baseline: 13.296875
+      frag 0 from TextNode start: 0, length: 1, rect: [87.296875,154 8x17] baseline: 13.296875
           " "
-      frag 1 from TextNode start: 0, length: 1, rect: [205,154 8x17] baseline: 13.296875
+      frag 1 from TextNode start: 0, length: 1, rect: [205.453125,154 8x17] baseline: 13.296875
           " "
-      frag 2 from TextNode start: 0, length: 1, rect: [327,154 8x17] baseline: 13.296875
+      frag 2 from TextNode start: 0, length: 1, rect: [327.125,154 8x17] baseline: 13.296875
           " "
       InlineNode <span.one>
         frag 0 from TextNode start: 0, length: 1, rect: [8,8 79.296875x200] baseline: 159.96875
@@ -13,17 +13,17 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
         TextNode <#text>
       TextNode <#text>
       InlineNode <span.two>
-        frag 0 from TextNode start: 0, length: 1, rect: [95,8 110.15625x200] baseline: 159.96875
+        frag 0 from TextNode start: 0, length: 1, rect: [95.296875,8 110.15625x200] baseline: 159.96875
             "2"
         TextNode <#text>
       TextNode <#text>
       InlineNode <span.three>
-        frag 0 from TextNode start: 0, length: 1, rect: [213,8 113.671875x200] baseline: 159.96875
+        frag 0 from TextNode start: 0, length: 1, rect: [213.453125,8 113.671875x200] baseline: 159.96875
             "3"
         TextNode <#text>
       TextNode <#text>
       InlineNode <span.four>
-        frag 0 from TextNode start: 0, length: 1, rect: [335,8 96.875x200] baseline: 159.96875
+        frag 0 from TextNode start: 0, length: 1, rect: [335.125,8 96.875x200] baseline: 159.96875
             "4"
         TextNode <#text>
       TextNode <#text>

+ 1 - 1
Tests/LibWeb/Layout/expected/grid/auto-fill-and-named-line-placement.txt

@@ -3,7 +3,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
     BlockContainer <body> at (8,8) content-size 784x57 children: not-inline
       Box <div.grid-container> at (8,8) content-size 784x57 [GFC] children: not-inline
         BlockContainer <div.grid-item> at (28,28) content-size 744x17 [BFC] children: inline
-          frag 0 from TextNode start: 0, length: 1, rect: [397,28 6.34375x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 1, rect: [396.828125,28 6.34375x17] baseline: 13.296875
               "1"
           TextNode <#text>
 

+ 8 - 8
Tests/LibWeb/Layout/expected/grid/fixed-tracks-followed-by-repeat-auto-fill.txt

@@ -5,49 +5,49 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
         BlockContainer <(anonymous)> (not painted) [BFC] children: inline
           TextNode <#text>
         BlockContainer <div.grid-item> at (18,18) content-size 80x15 [BFC] children: inline
-          frag 0 from TextNode start: 0, length: 1, rect: [55,18 5.546875x15] baseline: 11.703125
+          frag 0 from TextNode start: 0, length: 1, rect: [55.21875,18 5.546875x15] baseline: 11.703125
               "1"
           TextNode <#text>
         BlockContainer <(anonymous)> (not painted) [BFC] children: inline
           TextNode <#text>
         BlockContainer <div.grid-item> at (128,18) content-size 80x15 [BFC] children: inline
-          frag 0 from TextNode start: 0, length: 1, rect: [164,18 7.71875x15] baseline: 11.703125
+          frag 0 from TextNode start: 0, length: 1, rect: [164.140625,18 7.71875x15] baseline: 11.703125
               "2"
           TextNode <#text>
         BlockContainer <(anonymous)> (not painted) [BFC] children: inline
           TextNode <#text>
         BlockContainer <div.grid-item> at (238,18) content-size 30x15 [BFC] children: inline
-          frag 0 from TextNode start: 0, length: 1, rect: [249,18 7.953125x15] baseline: 11.703125
+          frag 0 from TextNode start: 0, length: 1, rect: [249.015625,18 7.953125x15] baseline: 11.703125
               "3"
           TextNode <#text>
         BlockContainer <(anonymous)> (not painted) [BFC] children: inline
           TextNode <#text>
         BlockContainer <div.grid-item> at (298,18) content-size 30x15 [BFC] children: inline
-          frag 0 from TextNode start: 0, length: 1, rect: [310,18 6.78125x15] baseline: 11.703125
+          frag 0 from TextNode start: 0, length: 1, rect: [309.609375,18 6.78125x15] baseline: 11.703125
               "4"
           TextNode <#text>
         BlockContainer <(anonymous)> (not painted) [BFC] children: inline
           TextNode <#text>
         BlockContainer <div.grid-item> at (358,18) content-size 30x15 [BFC] children: inline
-          frag 0 from TextNode start: 0, length: 1, rect: [369,18 7.390625x15] baseline: 11.703125
+          frag 0 from TextNode start: 0, length: 1, rect: [369.296875,18 7.390625x15] baseline: 11.703125
               "5"
           TextNode <#text>
         BlockContainer <(anonymous)> (not painted) [BFC] children: inline
           TextNode <#text>
         BlockContainer <div.grid-item> at (418,18) content-size 30x15 [BFC] children: inline
-          frag 0 from TextNode start: 0, length: 1, rect: [429,18 7.640625x15] baseline: 11.703125
+          frag 0 from TextNode start: 0, length: 1, rect: [429.171875,18 7.640625x15] baseline: 11.703125
               "6"
           TextNode <#text>
         BlockContainer <(anonymous)> (not painted) [BFC] children: inline
           TextNode <#text>
         BlockContainer <div.grid-item> at (478,18) content-size 30x15 [BFC] children: inline
-          frag 0 from TextNode start: 0, length: 1, rect: [489,18 7.625x15] baseline: 11.703125
+          frag 0 from TextNode start: 0, length: 1, rect: [489.1875,18 7.625x15] baseline: 11.703125
               "7"
           TextNode <#text>
         BlockContainer <(anonymous)> (not painted) [BFC] children: inline
           TextNode <#text>
         BlockContainer <div.grid-item> at (538,18) content-size 30x15 [BFC] children: inline
-          frag 0 from TextNode start: 0, length: 1, rect: [549,18 8.296875x15] baseline: 11.703125
+          frag 0 from TextNode start: 0, length: 1, rect: [548.84375,18 8.296875x15] baseline: 11.703125
               "8"
           TextNode <#text>
         BlockContainer <(anonymous)> (not painted) [BFC] children: inline

+ 1 - 1
Tests/LibWeb/Layout/expected/grid/grid-item-fixed-paddings.txt

@@ -5,7 +5,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
         BlockContainer <(anonymous)> (not painted) [BFC] children: inline
           TextNode <#text>
         BlockContainer <div.grid-item> at (68,68) content-size 17.046875x33 [BFC] children: inline
-          frag 0 from TextNode start: 0, length: 1, rect: [71,68 11.890625x33] baseline: 25.5
+          frag 0 from TextNode start: 0, length: 1, rect: [70.578125,68 11.890625x33] baseline: 25.5
               "1"
           TextNode <#text>
         BlockContainer <(anonymous)> (not painted) [BFC] children: inline

+ 2 - 2
Tests/LibWeb/Layout/expected/grid/item-with-percentage-max-width.txt

@@ -3,11 +3,11 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
     BlockContainer <body> at (8,8) content-size 784x104 children: not-inline
       Box <div.grid-container> at (29,29) content-size 500x62 [GFC] children: not-inline
         BlockContainer <div.grid-item> at (49,49) content-size 120x22 [BFC] children: inline
-          frag 0 from TextNode start: 0, length: 3, rect: [90,49 37.28125x22] baseline: 17
+          frag 0 from TextNode start: 0, length: 3, rect: [90.359375,49 37.28125x22] baseline: 17
               "One"
           TextNode <#text>
         BlockContainer <div.grid-item> at (309,49) content-size 120x22 [BFC] children: inline
-          frag 0 from TextNode start: 0, length: 3, rect: [348,49 42.359375x22] baseline: 17
+          frag 0 from TextNode start: 0, length: 3, rect: [347.8125,49 42.359375x22] baseline: 17
               "Two"
           TextNode <#text>
 

+ 1 - 1
Tests/LibWeb/Layout/expected/height-of-absolute-position-box-with-padding.txt

@@ -5,7 +5,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
     BlockContainer <body> at (8,8) content-size 784x0 children: inline
       TextNode <#text>
       BlockContainer <h1> at (76.59375,103.765625) content-size 126x38 positioned [BFC] children: inline
-        frag 0 from TextNode start: 0, length: 4, rect: [116.59375,103.765625 46.546875x22] baseline: 17
+        frag 0 from TextNode start: 0, length: 4, rect: [116.3125,103.765625 46.546875x22] baseline: 17
             "Test"
         TextNode <#text>
       TextNode <#text>

+ 4 - 4
Tests/LibWeb/Layout/expected/input-as-button-align-center.txt

@@ -4,9 +4,9 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
       BlockContainer <input.btn> at (13,10) content-size 290x296 children: not-inline
         BlockContainer <(anonymous)> at (13,10) content-size 290x296 flex-container(column) [FFC] children: not-inline
           BlockContainer <(anonymous)> at (13,150) content-size 290x16 flex-item [BFC] children: inline
-            frag 0 from BlockContainer start: 0, length: 0, rect: [37,150 242.5x16] baseline: 12.5
-            BlockContainer <span> at (37,150) content-size 242.5x16 inline-block [BFC] children: inline
-              frag 0 from TextNode start: 0, length: 31, rect: [37,150 242.5x16] baseline: 12.5
+            frag 0 from BlockContainer start: 0, length: 0, rect: [36.75,150 242.5x16] baseline: 12.5
+            BlockContainer <span> at (36.75,150) content-size 242.5x16 inline-block [BFC] children: inline
+              frag 0 from TextNode start: 0, length: 31, rect: [36.75,150 242.5x16] baseline: 12.5
                   "Should be located in the center"
               TextNode <#text>
       BlockContainer <(anonymous)> at (8,308) content-size 784x0 children: inline
@@ -18,6 +18,6 @@ ViewportPaintable (Viewport<#document>) [0,0 800x600]
       PaintableWithLines (BlockContainer<INPUT>.btn) [8,8 300x300]
         PaintableWithLines (BlockContainer(anonymous)) [13,10 290x296]
           PaintableWithLines (BlockContainer(anonymous)) [13,150 290x16]
-            PaintableWithLines (BlockContainer<SPAN>) [37,150 242.5x16]
+            PaintableWithLines (BlockContainer<SPAN>) [36.75,150 242.5x16]
               TextPaintable (TextNode<#text>)
       PaintableWithLines (BlockContainer(anonymous)) [8,308 784x0]

+ 25 - 25
Tests/LibWeb/Layout/expected/input-file.txt

@@ -2,51 +2,51 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
   BlockContainer <html> at (0,0) content-size 800x600 [BFC] children: not-inline
     BlockContainer <body> at (8,8) content-size 784x21 children: inline
       frag 0 from BlockContainer start: 0, length: 0, rect: [8,8 236.65625x21] baseline: 15.296875
-      frag 1 from TextNode start: 0, length: 1, rect: [245,10 8x17] baseline: 13.296875
+      frag 1 from TextNode start: 0, length: 1, rect: [244.65625,10 8x17] baseline: 13.296875
           " "
-      frag 2 from BlockContainer start: 0, length: 0, rect: [253,8 255.34375x21] baseline: 15.296875
+      frag 2 from BlockContainer start: 0, length: 0, rect: [252.65625,8 255.34375x21] baseline: 15.296875
       frag 3 from TextNode start: 0, length: 1, rect: [508,10 8x17] baseline: 13.296875
           " "
       frag 4 from BlockContainer start: 0, length: 0, rect: [516,8 255.34375x21] baseline: 15.296875
       BlockContainer <input> at (8,8) content-size 236.65625x21 inline-block [BFC] children: inline
         frag 0 from BlockContainer start: 0, length: 0, rect: [13,10 94.375x17] baseline: 15.296875
-        frag 1 from Label start: 0, length: 0, rect: [116,10 128.28125x17] baseline: 13.296875
+        frag 1 from Label start: 0, length: 0, rect: [116.375,10 128.28125x17] baseline: 13.296875
         BlockContainer <button> at (13,10) content-size 94.375x17 inline-block [BFC] children: not-inline
           BlockContainer <(anonymous)> at (13,10) content-size 94.375x17 flex-container(column) [FFC] children: not-inline
             BlockContainer <(anonymous)> at (13,10) content-size 94.375x17 flex-item [BFC] children: inline
               frag 0 from TextNode start: 0, length: 14, rect: [13,10 94.375x17] baseline: 13.296875
                   "Select file..."
               TextNode <#text>
-        Label <label> at (116,10) content-size 128.28125x17 inline-block [BFC] children: inline
-          frag 0 from TextNode start: 0, length: 17, rect: [116,10 128.28125x17] baseline: 13.296875
+        Label <label> at (116.375,10) content-size 128.28125x17 inline-block [BFC] children: inline
+          frag 0 from TextNode start: 0, length: 17, rect: [116.375,10 128.28125x17] baseline: 13.296875
               "No file selected."
           TextNode <#text>
       TextNode <#text>
-      BlockContainer <input> at (253,8) content-size 255.34375x21 inline-block [BFC] children: inline
-        frag 0 from BlockContainer start: 0, length: 0, rect: [258,10 103.71875x17] baseline: 15.296875
-        frag 1 from Label start: 0, length: 0, rect: [371,10 137.625x17] baseline: 13.296875
-        BlockContainer <button> at (258,10) content-size 103.71875x17 inline-block [BFC] children: not-inline
-          BlockContainer <(anonymous)> at (258,10) content-size 103.71875x17 flex-container(column) [FFC] children: not-inline
-            BlockContainer <(anonymous)> at (258,10) content-size 103.71875x17 flex-item [BFC] children: inline
-              frag 0 from TextNode start: 0, length: 15, rect: [258,10 103.71875x17] baseline: 13.296875
+      BlockContainer <input> at (252.65625,8) content-size 255.34375x21 inline-block [BFC] children: inline
+        frag 0 from BlockContainer start: 0, length: 0, rect: [257.65625,10 103.71875x17] baseline: 15.296875
+        frag 1 from Label start: 0, length: 0, rect: [370.375,10 137.625x17] baseline: 13.296875
+        BlockContainer <button> at (257.65625,10) content-size 103.71875x17 inline-block [BFC] children: not-inline
+          BlockContainer <(anonymous)> at (257.65625,10) content-size 103.71875x17 flex-container(column) [FFC] children: not-inline
+            BlockContainer <(anonymous)> at (257.65625,10) content-size 103.71875x17 flex-item [BFC] children: inline
+              frag 0 from TextNode start: 0, length: 15, rect: [257.65625,10 103.71875x17] baseline: 13.296875
                   "Select files..."
               TextNode <#text>
-        Label <label> at (371,10) content-size 137.625x17 inline-block [BFC] children: inline
-          frag 0 from TextNode start: 0, length: 18, rect: [371,10 137.625x17] baseline: 13.296875
+        Label <label> at (370.375,10) content-size 137.625x17 inline-block [BFC] children: inline
+          frag 0 from TextNode start: 0, length: 18, rect: [370.375,10 137.625x17] baseline: 13.296875
               "No files selected."
           TextNode <#text>
       TextNode <#text>
       BlockContainer <input#multiple> at (516,8) content-size 255.34375x21 inline-block [BFC] children: inline
         frag 0 from BlockContainer start: 0, length: 0, rect: [521,10 103.71875x17] baseline: 15.296875
-        frag 1 from Label start: 0, length: 0, rect: [634,10 137.625x17] baseline: 13.296875
+        frag 1 from Label start: 0, length: 0, rect: [633.71875,10 137.625x17] baseline: 13.296875
         BlockContainer <button> at (521,10) content-size 103.71875x17 inline-block [BFC] children: not-inline
           BlockContainer <(anonymous)> at (521,10) content-size 103.71875x17 flex-container(column) [FFC] children: not-inline
             BlockContainer <(anonymous)> at (521,10) content-size 103.71875x17 flex-item [BFC] children: inline
               frag 0 from TextNode start: 0, length: 15, rect: [521,10 103.71875x17] baseline: 13.296875
                   "Select files..."
               TextNode <#text>
-        Label <label> at (634,10) content-size 137.625x17 inline-block [BFC] children: inline
-          frag 0 from TextNode start: 0, length: 18, rect: [634,10 137.625x17] baseline: 13.296875
+        Label <label> at (633.71875,10) content-size 137.625x17 inline-block [BFC] children: inline
+          frag 0 from TextNode start: 0, length: 18, rect: [633.71875,10 137.625x17] baseline: 13.296875
               "No files selected."
           TextNode <#text>
       TextNode <#text>
@@ -60,21 +60,21 @@ ViewportPaintable (Viewport<#document>) [0,0 800x600]
           PaintableWithLines (BlockContainer(anonymous)) [13,10 94.375x17]
             PaintableWithLines (BlockContainer(anonymous)) [13,10 94.375x17]
               TextPaintable (TextNode<#text>)
-        PaintableWithLines (Label<LABEL>) [112,10 132.28125x17]
+        PaintableWithLines (Label<LABEL>) [112.375,10 132.28125x17]
           TextPaintable (TextNode<#text>)
       TextPaintable (TextNode<#text>)
-      PaintableWithLines (BlockContainer<INPUT>) [253,8 255.34375x21] overflow: [253,8 255.625x21]
-        PaintableWithLines (BlockContainer<BUTTON>) [253,8 113.71875x21]
-          PaintableWithLines (BlockContainer(anonymous)) [258,10 103.71875x17]
-            PaintableWithLines (BlockContainer(anonymous)) [258,10 103.71875x17]
+      PaintableWithLines (BlockContainer<INPUT>) [252.65625,8 255.34375x21]
+        PaintableWithLines (BlockContainer<BUTTON>) [252.65625,8 113.71875x21]
+          PaintableWithLines (BlockContainer(anonymous)) [257.65625,10 103.71875x17]
+            PaintableWithLines (BlockContainer(anonymous)) [257.65625,10 103.71875x17]
               TextPaintable (TextNode<#text>)
-        PaintableWithLines (Label<LABEL>) [367,10 141.625x17]
+        PaintableWithLines (Label<LABEL>) [366.375,10 141.625x17]
           TextPaintable (TextNode<#text>)
       TextPaintable (TextNode<#text>)
-      PaintableWithLines (BlockContainer<INPUT>#multiple) [516,8 255.34375x21] overflow: [516,8 255.625x21]
+      PaintableWithLines (BlockContainer<INPUT>#multiple) [516,8 255.34375x21]
         PaintableWithLines (BlockContainer<BUTTON>) [516,8 113.71875x21]
           PaintableWithLines (BlockContainer(anonymous)) [521,10 103.71875x17]
             PaintableWithLines (BlockContainer(anonymous)) [521,10 103.71875x17]
               TextPaintable (TextNode<#text>)
-        PaintableWithLines (Label<LABEL>) [630,10 141.625x17]
+        PaintableWithLines (Label<LABEL>) [629.71875,10 141.625x17]
           TextPaintable (TextNode<#text>)

+ 1 - 1
Tests/LibWeb/Layout/expected/letter-spacing-end-of-line-001.txt

@@ -8,7 +8,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
       BlockContainer <(anonymous)> at (8,60) content-size 784x0 children: inline
         TextNode <#text>
       BlockContainer <div> at (8,60) content-size 784x52 children: inline
-        frag 0 from TextNode start: 0, length: 1, rect: [93,60 28.03125x52] baseline: 40.390625
+        frag 0 from TextNode start: 0, length: 1, rect: [93.0625,60 28.03125x52] baseline: 40.390625
             "a"
         BlockContainer <span> at (8,60) content-size 85.0625x52 floating [BFC] children: inline
           frag 0 from TextNode start: 0, length: 2, rect: [8,60 85.0625x52] baseline: 40.390625

+ 2 - 2
Tests/LibWeb/Layout/expected/nowrap-and-no-line-break-opportunity.txt

@@ -8,11 +8,11 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               "ABC"
           TextNode <#text>
         InlineNode <span>
-          frag 0 from TextNode start: 0, length: 1, rect: [43,9 11.5625x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 1, rect: [42.921875,9 11.5625x17] baseline: 13.296875
               "X"
           TextNode <#text>
         InlineNode <span.nowrap>
-          frag 0 from TextNode start: 0, length: 3, rect: [54,9 33.921875x17] baseline: 13.296875
+          frag 0 from TextNode start: 0, length: 3, rect: [54.484375,9 33.921875x17] baseline: 13.296875
               "ABC"
           TextNode <#text>
         TextNode <#text>

+ 4 - 4
Tests/LibWeb/Layout/expected/replaced-box-with-vertical-margins.txt

@@ -3,16 +3,16 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
     BlockContainer <body> at (8,8) content-size 784x216 children: inline
       frag 0 from TextNode start: 0, length: 6, rect: [8,207 43.125x17] baseline: 13.296875
           "Well, "
-      frag 1 from ImageBox start: 0, length: 0, rect: [51,33 64x138] baseline: 213
-      frag 2 from TextNode start: 0, length: 9, rect: [115,207 67.703125x17] baseline: 13.296875
+      frag 1 from ImageBox start: 0, length: 0, rect: [51.125,33 64x138] baseline: 213
+      frag 2 from TextNode start: 0, length: 9, rect: [115.125,207 67.703125x17] baseline: 13.296875
           " friends."
       TextNode <#text>
-      ImageBox <img#image> at (51,33) content-size 64x138 children: not-inline
+      ImageBox <img#image> at (51.125,33) content-size 64x138 children: not-inline
       TextNode <#text>
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x600]
     PaintableWithLines (BlockContainer<BODY>) [8,8 784x216]
       TextPaintable (TextNode<#text>)
-      ImagePaintable (ImageBox<IMG>#image) [51,33 64x138]
+      ImagePaintable (ImageBox<IMG>#image) [51.125,33 64x138]
       TextPaintable (TextNode<#text>)

+ 2 - 2
Tests/LibWeb/Layout/expected/table/basic.txt

@@ -11,7 +11,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
           BlockContainer <(anonymous)> (not painted) children: inline
             TextNode <#text>
           BlockContainer <caption> at (8,10) content-size 82.734375x17 [BFC] children: inline
-            frag 0 from TextNode start: 1, length: 9, rect: [16,10 82.734375x17] baseline: 13.296875
+            frag 0 from TextNode start: 1, length: 9, rect: [16.21875,10 82.734375x17] baseline: 13.296875
                 "A Caption"
             TextNode <#text>
           BlockContainer <(anonymous)> (not painted) children: inline
@@ -75,7 +75,7 @@ ViewportPaintable (Viewport<#document>) [0,0 800x600]
       PaintableWithLines (BlockContainer(anonymous)) [8,10 784x0]
       PaintableWithLines (TableWrapper(anonymous)) [8,10 99.171875x82]
         PaintableBox (Box<TABLE>#full-table) [8,27 99.171875x65]
-          PaintableWithLines (BlockContainer<CAPTION>) [8,10 82.734375x17] overflow: [8,10 90.734375x17]
+          PaintableWithLines (BlockContainer<CAPTION>) [8,10 82.734375x17] overflow: [8,10 90.953125x17]
             TextPaintable (TextNode<#text>)
           PaintableBox (Box<THEAD>) [10,29 95.171875x19]
             PaintableBox (Box<TR>) [10,29 95.171875x19]

+ 12 - 12
Tests/LibWeb/Layout/expected/table/border-collapse-is-inherited.txt

@@ -26,13 +26,13 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
                   BlockContainer <(anonymous)> (not painted) children: inline
                     TextNode <#text>
                   BlockContainer <td> at (86.265625,20) content-size 12.546875x17 table-cell [BFC] children: inline
-                    frag 0 from TextNode start: 0, length: 1, rect: [88.265625,20 9.34375x17] baseline: 13.296875
+                    frag 0 from TextNode start: 0, length: 1, rect: [87.859375,20 9.34375x17] baseline: 13.296875
                         "B"
                     TextNode <#text>
                   BlockContainer <(anonymous)> (not painted) children: inline
                     TextNode <#text>
                   BlockContainer <td> at (140.8125,20) content-size 9.09375x17 table-cell [BFC] children: inline
-                    frag 0 from TextNode start: 0, length: 1, rect: [141.8125,20 6.34375x17] baseline: 13.296875
+                    frag 0 from TextNode start: 0, length: 1, rect: [142.1875,20 6.34375x17] baseline: 13.296875
                         "1"
                     TextNode <#text>
                   BlockContainer <(anonymous)> (not painted) children: inline
@@ -43,19 +43,19 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
                   BlockContainer <(anonymous)> (not painted) children: inline
                     TextNode <#text>
                   BlockContainer <td> at (30,59) content-size 14.265625x17 table-cell [BFC] children: inline
-                    frag 0 from TextNode start: 0, length: 1, rect: [32,59 10.3125x17] baseline: 13.296875
+                    frag 0 from TextNode start: 0, length: 1, rect: [31.96875,59 10.3125x17] baseline: 13.296875
                         "C"
                     TextNode <#text>
                   BlockContainer <(anonymous)> (not painted) children: inline
                     TextNode <#text>
                   BlockContainer <td> at (86.265625,59) content-size 12.546875x17 table-cell [BFC] children: inline
-                    frag 0 from TextNode start: 0, length: 1, rect: [87.265625,59 11.140625x17] baseline: 13.296875
+                    frag 0 from TextNode start: 0, length: 1, rect: [86.96875,59 11.140625x17] baseline: 13.296875
                         "D"
                     TextNode <#text>
                   BlockContainer <(anonymous)> (not painted) children: inline
                     TextNode <#text>
                   BlockContainer <td> at (140.8125,59) content-size 9.09375x17 table-cell [BFC] children: inline
-                    frag 0 from TextNode start: 0, length: 1, rect: [140.8125,59 8.8125x17] baseline: 13.296875
+                    frag 0 from TextNode start: 0, length: 1, rect: [140.953125,59 8.8125x17] baseline: 13.296875
                         "2"
                     TextNode <#text>
                   BlockContainer <(anonymous)> (not painted) children: inline
@@ -66,7 +66,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
                   BlockContainer <(anonymous)> (not painted) children: inline
                     TextNode <#text>
                   BlockContainer <td> at (30,98) content-size 14.265625x17 table-cell [BFC] children: inline
-                    frag 0 from TextNode start: 0, length: 1, rect: [31,98 11.859375x17] baseline: 13.296875
+                    frag 0 from TextNode start: 0, length: 1, rect: [31.203125,98 11.859375x17] baseline: 13.296875
                         "E"
                     TextNode <#text>
                   BlockContainer <(anonymous)> (not painted) children: inline
@@ -89,19 +89,19 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
                   BlockContainer <(anonymous)> (not painted) children: inline
                     TextNode <#text>
                   BlockContainer <td> at (30,137) content-size 14.265625x17 table-cell [BFC] children: inline
-                    frag 0 from TextNode start: 0, length: 1, rect: [31,137 13.234375x17] baseline: 13.296875
+                    frag 0 from TextNode start: 0, length: 1, rect: [30.515625,137 13.234375x17] baseline: 13.296875
                         "G"
                     TextNode <#text>
                   BlockContainer <(anonymous)> (not painted) children: inline
                     TextNode <#text>
                   BlockContainer <td> at (86.265625,137) content-size 12.546875x17 table-cell [BFC] children: inline
-                    frag 0 from TextNode start: 0, length: 1, rect: [86.265625,137 12.234375x17] baseline: 13.296875
+                    frag 0 from TextNode start: 0, length: 1, rect: [86.421875,137 12.234375x17] baseline: 13.296875
                         "H"
                     TextNode <#text>
                   BlockContainer <(anonymous)> (not painted) children: inline
                     TextNode <#text>
                   BlockContainer <td> at (140.8125,137) content-size 9.09375x17 table-cell [BFC] children: inline
-                    frag 0 from TextNode start: 0, length: 1, rect: [141.8125,137 7.75x17] baseline: 13.296875
+                    frag 0 from TextNode start: 0, length: 1, rect: [141.484375,137 7.75x17] baseline: 13.296875
                         "4"
                     TextNode <#text>
                   BlockContainer <(anonymous)> (not painted) children: inline
@@ -112,19 +112,19 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
                   BlockContainer <(anonymous)> (not painted) children: inline
                     TextNode <#text>
                   BlockContainer <td> at (30,176) content-size 14.265625x17 table-cell [BFC] children: inline
-                    frag 0 from TextNode start: 0, length: 1, rect: [35,176 4.59375x17] baseline: 13.296875
+                    frag 0 from TextNode start: 0, length: 1, rect: [34.828125,176 4.59375x17] baseline: 13.296875
                         "I"
                     TextNode <#text>
                   BlockContainer <(anonymous)> (not painted) children: inline
                     TextNode <#text>
                   BlockContainer <td> at (86.265625,176) content-size 12.546875x17 table-cell [BFC] children: inline
-                    frag 0 from TextNode start: 0, length: 1, rect: [88.265625,176 8.90625x17] baseline: 13.296875
+                    frag 0 from TextNode start: 0, length: 1, rect: [88.078125,176 8.90625x17] baseline: 13.296875
                         "J"
                     TextNode <#text>
                   BlockContainer <(anonymous)> (not painted) children: inline
                     TextNode <#text>
                   BlockContainer <td> at (140.8125,176) content-size 9.09375x17 table-cell [BFC] children: inline
-                    frag 0 from TextNode start: 0, length: 1, rect: [140.8125,176 8.453125x17] baseline: 13.296875
+                    frag 0 from TextNode start: 0, length: 1, rect: [141.125,176 8.453125x17] baseline: 13.296875
                         "5"
                     TextNode <#text>
                   BlockContainer <(anonymous)> at (9,9) content-size 0x0 children: inline

+ 11 - 11
Tests/LibWeb/Layout/expected/table/border-spacing-colspan.txt

@@ -22,13 +22,13 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (126.265625,30) content-size 12.546875x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [128.265625,30 9.34375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [127.859375,30 9.34375x17] baseline: 13.296875
                     "B"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (200.8125,30) content-size 9.09375x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [201.8125,30 6.34375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [202.1875,30 6.34375x17] baseline: 13.296875
                     "1"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
@@ -39,13 +39,13 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (50,79) content-size 88.8125x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [89,79 10.3125x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [89.25,79 10.3125x17] baseline: 13.296875
                     "C"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (200.8125,79) content-size 9.09375x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [200.8125,79 8.8125x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [200.953125,79 8.8125x17] baseline: 13.296875
                     "2"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
@@ -56,7 +56,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (50,128) content-size 14.265625x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [51,128 11.859375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [51.203125,128 11.859375x17] baseline: 13.296875
                     "E"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
@@ -79,19 +79,19 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (50,177) content-size 14.265625x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [51,177 13.234375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [50.515625,177 13.234375x17] baseline: 13.296875
                     "G"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (126.265625,177) content-size 12.546875x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [126.265625,177 12.234375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [126.421875,177 12.234375x17] baseline: 13.296875
                     "H"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (200.8125,177) content-size 9.09375x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [201.8125,177 7.75x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [201.484375,177 7.75x17] baseline: 13.296875
                     "4"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
@@ -102,19 +102,19 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (50,226) content-size 14.265625x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [55,226 4.59375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [54.828125,226 4.59375x17] baseline: 13.296875
                     "I"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (126.265625,226) content-size 12.546875x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [128.265625,226 8.90625x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [128.078125,226 8.90625x17] baseline: 13.296875
                     "J"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (200.8125,226) content-size 9.09375x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [200.8125,226 8.453125x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [201.125,226 8.453125x17] baseline: 13.296875
                     "5"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline

+ 11 - 11
Tests/LibWeb/Layout/expected/table/border-spacing-rowspan.txt

@@ -22,13 +22,13 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (126.265625,30) content-size 12.546875x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [128.265625,30 9.34375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [127.859375,30 9.34375x17] baseline: 13.296875
                     "B"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (200.8125,30) content-size 9.09375x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [201.8125,30 6.34375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [202.1875,30 6.34375x17] baseline: 13.296875
                     "1"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
@@ -39,13 +39,13 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (126.265625,79) content-size 12.546875x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [127.265625,79 11.140625x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [126.96875,79 11.140625x17] baseline: 13.296875
                     "D"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (200.8125,79) content-size 9.09375x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [200.8125,79 8.8125x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [200.953125,79 8.8125x17] baseline: 13.296875
                     "2"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
@@ -56,7 +56,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (50,128) content-size 14.265625x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [51,128 11.859375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [51.203125,128 11.859375x17] baseline: 13.296875
                     "E"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
@@ -79,19 +79,19 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (50,177) content-size 14.265625x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [51,177 13.234375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [50.515625,177 13.234375x17] baseline: 13.296875
                     "G"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (126.265625,177) content-size 12.546875x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [126.265625,177 12.234375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [126.421875,177 12.234375x17] baseline: 13.296875
                     "H"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (200.8125,177) content-size 9.09375x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [201.8125,177 7.75x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [201.484375,177 7.75x17] baseline: 13.296875
                     "4"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
@@ -102,19 +102,19 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (50,226) content-size 14.265625x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [55,226 4.59375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [54.828125,226 4.59375x17] baseline: 13.296875
                     "I"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (126.265625,226) content-size 12.546875x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [128.265625,226 8.90625x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [128.078125,226 8.90625x17] baseline: 13.296875
                     "J"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (200.8125,226) content-size 9.09375x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [200.8125,226 8.453125x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [201.125,226 8.453125x17] baseline: 13.296875
                     "5"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline

+ 12 - 12
Tests/LibWeb/Layout/expected/table/border-spacing.txt

@@ -22,13 +22,13 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (126.265625,30) content-size 12.546875x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [128.265625,30 9.34375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [127.859375,30 9.34375x17] baseline: 13.296875
                     "B"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (200.8125,30) content-size 9.09375x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [201.8125,30 6.34375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [202.1875,30 6.34375x17] baseline: 13.296875
                     "1"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
@@ -39,19 +39,19 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (50,79) content-size 14.265625x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [52,79 10.3125x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [51.96875,79 10.3125x17] baseline: 13.296875
                     "C"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (126.265625,79) content-size 12.546875x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [127.265625,79 11.140625x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [126.96875,79 11.140625x17] baseline: 13.296875
                     "D"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (200.8125,79) content-size 9.09375x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [200.8125,79 8.8125x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [200.953125,79 8.8125x17] baseline: 13.296875
                     "2"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
@@ -62,7 +62,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (50,128) content-size 14.265625x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [51,128 11.859375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [51.203125,128 11.859375x17] baseline: 13.296875
                     "E"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
@@ -85,19 +85,19 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (50,177) content-size 14.265625x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [51,177 13.234375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [50.515625,177 13.234375x17] baseline: 13.296875
                     "G"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (126.265625,177) content-size 12.546875x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [126.265625,177 12.234375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [126.421875,177 12.234375x17] baseline: 13.296875
                     "H"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (200.8125,177) content-size 9.09375x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [201.8125,177 7.75x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [201.484375,177 7.75x17] baseline: 13.296875
                     "4"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
@@ -108,19 +108,19 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (50,226) content-size 14.265625x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [55,226 4.59375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [54.828125,226 4.59375x17] baseline: 13.296875
                     "I"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (126.265625,226) content-size 12.546875x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [128.265625,226 8.90625x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [128.078125,226 8.90625x17] baseline: 13.296875
                     "J"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (200.8125,226) content-size 9.09375x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [200.8125,226 8.453125x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [201.125,226 8.453125x17] baseline: 13.296875
                     "5"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline

+ 2 - 2
Tests/LibWeb/Layout/expected/table/bottom-caption.txt

@@ -8,7 +8,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
           BlockContainer <(anonymous)> (not painted) children: inline
             TextNode <#text>
           BlockContainer <caption> at (8,73) content-size 82.734375x17 [BFC] children: inline
-            frag 0 from TextNode start: 1, length: 9, rect: [16,73 82.734375x17] baseline: 13.296875
+            frag 0 from TextNode start: 1, length: 9, rect: [16.21875,73 82.734375x17] baseline: 13.296875
                 "A Caption"
             TextNode <#text>
           BlockContainer <(anonymous)> (not painted) children: inline
@@ -70,7 +70,7 @@ ViewportPaintable (Viewport<#document>) [0,0 800x600]
     PaintableWithLines (BlockContainer<BODY>) [8,8 784x82]
       PaintableWithLines (TableWrapper(anonymous)) [8,8 99.171875x82]
         PaintableBox (Box<TABLE>#full-table) [8,8 99.171875x65]
-          PaintableWithLines (BlockContainer<CAPTION>) [8,73 82.734375x17] overflow: [8,73 90.734375x17]
+          PaintableWithLines (BlockContainer<CAPTION>) [8,73 82.734375x17] overflow: [8,73 90.953125x17]
             TextPaintable (TextNode<#text>)
           PaintableBox (Box<THEAD>) [10,10 95.171875x19]
             PaintableBox (Box<TR>) [10,10 95.171875x19]

+ 6 - 6
Tests/LibWeb/Layout/expected/table/cell-relative-to-specified-table-width.txt

@@ -12,19 +12,19 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <th> at (11,11) content-size 300.640625x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [154,11 14.265625x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [154.1875,11 14.265625x17] baseline: 13.296875
                     "A"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <th> at (315.640625,11) content-size 168.71875x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [395.640625,11 9.34375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [395.328125,11 9.34375x17] baseline: 13.296875
                     "B"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <th> at (488.359375,11) content-size 300.640625x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 3, rect: [624.359375,11 29.453125x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 3, rect: [623.953125,11 29.453125x17] baseline: 13.296875
                     "C D"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
@@ -35,19 +35,19 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (11,32) content-size 300.640625x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [155,32 11.859375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [155.390625,32 11.859375x17] baseline: 13.296875
                     "E"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (315.640625,32) content-size 168.71875x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [393.640625,32 12.546875x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [393.71875,32 12.546875x17] baseline: 13.296875
                     "F"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (488.359375,32) content-size 300.640625x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [632.359375,32 13.234375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [632.0625,32 13.234375x17] baseline: 13.296875
                     "G"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline

+ 5 - 5
Tests/LibWeb/Layout/expected/table/colspan-percentage-width.txt

@@ -10,19 +10,19 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (11,11) content-size 79.59375x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [44,11 14.265625x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [43.65625,11 14.265625x17] baseline: 13.296875
                     "A"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (94.59375,11) content-size 157.328125x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [168.59375,11 9.34375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [168.578125,11 9.34375x17] baseline: 13.296875
                     "B"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (255.921875,11) content-size 169.078125x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [334.921875,11 10.3125x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [335.296875,11 10.3125x17] baseline: 13.296875
                     "C"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
@@ -33,13 +33,13 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (11,32) content-size 79.59375x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [45,32 11.140625x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [45.21875,32 11.140625x17] baseline: 13.296875
                     "D"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (94.59375,32) content-size 330.40625x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [253.59375,32 11.859375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [253.859375,32 11.859375x17] baseline: 13.296875
                     "E"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline

+ 3 - 3
Tests/LibWeb/Layout/expected/table/colspan-weighted-width-distribution.txt

@@ -10,13 +10,13 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (11,11) content-size 180x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [94,11 14.265625x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [93.859375,11 14.265625x17] baseline: 13.296875
                     "A"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (195,11) content-size 20x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [200,11 9.34375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [200.328125,11 9.34375x17] baseline: 13.296875
                     "B"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
@@ -27,7 +27,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (11,32) content-size 204x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [108,32 10.3125x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [107.84375,32 10.3125x17] baseline: 13.296875
                     "C"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline

+ 2 - 2
Tests/LibWeb/Layout/expected/table/colspan-width-distribution.txt

@@ -14,13 +14,13 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (11,11) content-size 17.5625x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [13,11 14.265625x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [12.640625,11 14.265625x17] baseline: 13.296875
                     "A"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (32.5625,11) content-size 11.75x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [33.5625,11 9.34375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [33.765625,11 9.34375x17] baseline: 13.296875
                     "B"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline

+ 5 - 5
Tests/LibWeb/Layout/expected/table/colspan-with-trailing-characters.txt

@@ -37,7 +37,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (11,32) content-size 223.359375x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 6, rect: [102,32 41.84375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 6, rect: [101.75,32 41.84375x17] baseline: 13.296875
                     "Cell 1"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
@@ -48,7 +48,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (11,53) content-size 223.359375x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 6, rect: [101,53 44.3125x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 6, rect: [100.515625,53 44.3125x17] baseline: 13.296875
                     "Cell 2"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
@@ -59,19 +59,19 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (11,74) content-size 70.046875x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 6, rect: [24,74 44.59375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 6, rect: [23.71875,74 44.59375x17] baseline: 13.296875
                     "Cell 3"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (85.046875,74) content-size 72.515625x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 6, rect: [100.046875,74 43.25x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 6, rect: [99.671875,74 43.25x17] baseline: 13.296875
                     "Cell 4"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (161.5625,74) content-size 72.796875x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 6, rect: [175.5625,74 43.953125x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 6, rect: [175.984375,74 43.953125x17] baseline: 13.296875
                     "Cell 5"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline

+ 1 - 1
Tests/LibWeb/Layout/expected/table/long-caption-increases-width.txt

@@ -8,7 +8,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
           BlockContainer <(anonymous)> (not painted) children: inline
             TextNode <#text>
           BlockContainer <caption> at (8,8) content-size 59.046875x34 [BFC] children: inline
-            frag 0 from TextNode start: 1, length: 6, rect: [11,8 54.03125x17] baseline: 13.296875
+            frag 0 from TextNode start: 1, length: 6, rect: [10.5,8 54.03125x17] baseline: 13.296875
                 "A long"
             frag 1 from TextNode start: 8, length: 7, rect: [8,25 59.046875x17] baseline: 13.296875
                 "caption"

+ 3 - 3
Tests/LibWeb/Layout/expected/table/percentage-width-columns.txt

@@ -12,19 +12,19 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (11,11) content-size 14.40625x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [11,11 14.265625x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [11.0625,11 14.265625x17] baseline: 13.296875
                     "A"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (29.40625,11) content-size 51.1875x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [50.40625,11 9.34375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [50.328125,11 9.34375x17] baseline: 13.296875
                     "B"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (84.59375,11) content-size 14.40625x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 1, rect: [86.59375,11 10.3125x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 1, rect: [86.640625,11 10.3125x17] baseline: 13.296875
                     "C"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline

+ 13 - 13
Tests/LibWeb/Layout/expected/table/rowspan-with-trailing-characters.txt

@@ -37,19 +37,19 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (11,32) content-size 70.046875x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 6, rect: [25,32 41.84375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 6, rect: [25.09375,32 41.84375x17] baseline: 13.296875
                     "Cell 1"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (85.046875,32) content-size 72.515625x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 6, rect: [99.046875,32 44.3125x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 6, rect: [99.140625,32 44.3125x17] baseline: 13.296875
                     "Cell 2"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (161.5625,42.5) content-size 72.796875x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 6, rect: [175.5625,42.5 44.59375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 6, rect: [175.65625,42.5 44.59375x17] baseline: 13.296875
                     "Cell 3"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
@@ -60,13 +60,13 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (11,53) content-size 70.046875x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 6, rect: [24,53 43.25x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 6, rect: [24.390625,53 43.25x17] baseline: 13.296875
                     "Cell 4"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (85.046875,53) content-size 72.515625x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 6, rect: [99.046875,53 43.953125x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 6, rect: [99.328125,53 43.953125x17] baseline: 13.296875
                     "Cell 5"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
@@ -77,19 +77,19 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (11,74) content-size 70.046875x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 6, rect: [24,74 44.234375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 6, rect: [23.90625,74 44.234375x17] baseline: 13.296875
                     "Cell 6"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (85.046875,74) content-size 72.515625x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 6, rect: [99.046875,74 44.21875x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 6, rect: [99.1875,74 44.21875x17] baseline: 13.296875
                     "Cell 7"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (161.5625,74) content-size 72.796875x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 6, rect: [175.5625,74 44.984375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 6, rect: [175.46875,74 44.984375x17] baseline: 13.296875
                     "Cell 8"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
@@ -100,19 +100,19 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (11,95) content-size 70.046875x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 6, rect: [24,95 44.328125x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 6, rect: [23.859375,95 44.328125x17] baseline: 13.296875
                     "Cell 9"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (85.046875,95) content-size 72.515625x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 7, rect: [96.046875,95 51.4375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 7, rect: [95.578125,95 51.4375x17] baseline: 13.296875
                     "Cell 10"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (161.5625,105.5) content-size 72.796875x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 7, rect: [173.5625,105.5 48.1875x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 7, rect: [173.859375,105.5 48.1875x17] baseline: 13.296875
                     "Cell 11"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
@@ -123,13 +123,13 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (11,116) content-size 70.046875x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 7, rect: [21,116 50.65625x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 7, rect: [20.6875,116 50.65625x17] baseline: 13.296875
                     "Cell 12"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline
                 TextNode <#text>
               BlockContainer <td> at (85.046875,116) content-size 72.515625x17 table-cell [BFC] children: inline
-                frag 0 from TextNode start: 0, length: 7, rect: [96.046875,116 50.9375x17] baseline: 13.296875
+                frag 0 from TextNode start: 0, length: 7, rect: [95.828125,116 50.9375x17] baseline: 13.296875
                     "Cell 13"
                 TextNode <#text>
               BlockContainer <(anonymous)> (not painted) children: inline

+ 25 - 25
Tests/LibWeb/Layout/expected/text-align-justify-with-forced-break.txt

@@ -4,63 +4,63 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
       BlockContainer <div> at (9,9) content-size 100x100 children: inline
         frag 0 from TextNode start: 1, length: 3, rect: [9,9 27.15625x17] baseline: 13.296875
             "foo"
-        frag 1 from TextNode start: 4, length: 1, rect: [36,9 9x17] baseline: 13.296875
+        frag 1 from TextNode start: 4, length: 1, rect: [36.15625,9 9x17] baseline: 13.296875
             " "
-        frag 2 from TextNode start: 5, length: 3, rect: [45,9 27.640625x17] baseline: 13.296875
+        frag 2 from TextNode start: 5, length: 3, rect: [45.15625,9 27.640625x17] baseline: 13.296875
             "bar"
-        frag 3 from TextNode start: 8, length: 1, rect: [73,9 9x17] baseline: 13.296875
+        frag 3 from TextNode start: 8, length: 1, rect: [72.796875,9 9x17] baseline: 13.296875
             " "
-        frag 4 from TextNode start: 9, length: 3, rect: [82,9 27.203125x17] baseline: 13.296875
+        frag 4 from TextNode start: 9, length: 3, rect: [81.796875,9 27.203125x17] baseline: 13.296875
             "baz"
         frag 5 from TextNode start: 13, length: 3, rect: [9,26 27.15625x17] baseline: 13.296875
             "foo"
-        frag 6 from TextNode start: 16, length: 1, rect: [36,26 8x17] baseline: 13.296875
+        frag 6 from TextNode start: 16, length: 1, rect: [36.15625,26 8x17] baseline: 13.296875
             " "
-        frag 7 from TextNode start: 17, length: 3, rect: [44,26 27.640625x17] baseline: 13.296875
+        frag 7 from TextNode start: 17, length: 3, rect: [44.15625,26 27.640625x17] baseline: 13.296875
             "bar"
-        frag 8 from TextNode start: 20, length: 1, rect: [72,26 8x17] baseline: 13.296875
+        frag 8 from TextNode start: 20, length: 1, rect: [71.796875,26 8x17] baseline: 13.296875
             " "
-        frag 9 from TextNode start: 21, length: 3, rect: [80,26 27.203125x17] baseline: 13.296875
+        frag 9 from TextNode start: 21, length: 3, rect: [79.796875,26 27.203125x17] baseline: 13.296875
             "baz"
         frag 10 from TextNode start: 1, length: 3, rect: [9,43 27.15625x17] baseline: 13.296875
             "foo"
-        frag 11 from TextNode start: 4, length: 1, rect: [36,43 9x17] baseline: 13.296875
+        frag 11 from TextNode start: 4, length: 1, rect: [36.15625,43 9x17] baseline: 13.296875
             " "
-        frag 12 from TextNode start: 5, length: 3, rect: [45,43 27.640625x17] baseline: 13.296875
+        frag 12 from TextNode start: 5, length: 3, rect: [45.15625,43 27.640625x17] baseline: 13.296875
             "bar"
-        frag 13 from TextNode start: 8, length: 1, rect: [73,43 9x17] baseline: 13.296875
+        frag 13 from TextNode start: 8, length: 1, rect: [72.796875,43 9x17] baseline: 13.296875
             " "
-        frag 14 from TextNode start: 9, length: 3, rect: [82,43 27.203125x17] baseline: 13.296875
+        frag 14 from TextNode start: 9, length: 3, rect: [81.796875,43 27.203125x17] baseline: 13.296875
             "baz"
         frag 15 from TextNode start: 13, length: 3, rect: [9,60 27.15625x17] baseline: 13.296875
             "foo"
-        frag 16 from TextNode start: 16, length: 1, rect: [36,60 9x17] baseline: 13.296875
+        frag 16 from TextNode start: 16, length: 1, rect: [36.15625,60 9x17] baseline: 13.296875
             " "
-        frag 17 from TextNode start: 17, length: 3, rect: [45,60 27.640625x17] baseline: 13.296875
+        frag 17 from TextNode start: 17, length: 3, rect: [45.15625,60 27.640625x17] baseline: 13.296875
             "bar"
-        frag 18 from TextNode start: 20, length: 1, rect: [73,60 9x17] baseline: 13.296875
+        frag 18 from TextNode start: 20, length: 1, rect: [72.796875,60 9x17] baseline: 13.296875
             " "
-        frag 19 from TextNode start: 21, length: 3, rect: [82,60 27.203125x17] baseline: 13.296875
+        frag 19 from TextNode start: 21, length: 3, rect: [81.796875,60 27.203125x17] baseline: 13.296875
             "baz"
         frag 20 from TextNode start: 25, length: 3, rect: [9,77 27.15625x17] baseline: 13.296875
             "foo"
-        frag 21 from TextNode start: 28, length: 1, rect: [36,77 8x17] baseline: 13.296875
+        frag 21 from TextNode start: 28, length: 1, rect: [36.15625,77 8x17] baseline: 13.296875
             " "
-        frag 22 from TextNode start: 29, length: 3, rect: [44,77 27.640625x17] baseline: 13.296875
+        frag 22 from TextNode start: 29, length: 3, rect: [44.15625,77 27.640625x17] baseline: 13.296875
             "bar"
-        frag 23 from TextNode start: 32, length: 1, rect: [72,77 8x17] baseline: 13.296875
+        frag 23 from TextNode start: 32, length: 1, rect: [71.796875,77 8x17] baseline: 13.296875
             " "
-        frag 24 from TextNode start: 33, length: 3, rect: [80,77 27.203125x17] baseline: 13.296875
+        frag 24 from TextNode start: 33, length: 3, rect: [79.796875,77 27.203125x17] baseline: 13.296875
             "baz"
         frag 25 from TextNode start: 1, length: 3, rect: [9,94 27.15625x17] baseline: 13.296875
             "foo"
-        frag 26 from TextNode start: 4, length: 1, rect: [36,94 8x17] baseline: 13.296875
+        frag 26 from TextNode start: 4, length: 1, rect: [36.15625,94 8x17] baseline: 13.296875
             " "
-        frag 27 from TextNode start: 5, length: 3, rect: [44,94 27.640625x17] baseline: 13.296875
+        frag 27 from TextNode start: 5, length: 3, rect: [44.15625,94 27.640625x17] baseline: 13.296875
             "bar"
-        frag 28 from TextNode start: 8, length: 1, rect: [72,94 8x17] baseline: 13.296875
+        frag 28 from TextNode start: 8, length: 1, rect: [71.796875,94 8x17] baseline: 13.296875
             " "
-        frag 29 from TextNode start: 9, length: 3, rect: [80,94 27.203125x17] baseline: 13.296875
+        frag 29 from TextNode start: 9, length: 3, rect: [79.796875,94 27.203125x17] baseline: 13.296875
             "baz"
         TextNode <#text>
         BreakNode <br>
@@ -71,7 +71,7 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
   PaintableWithLines (BlockContainer<HTML>) [0,0 800x118]
     PaintableWithLines (BlockContainer<BODY>) [8,8 784x102] overflow: [8,8 784x103]
-      PaintableWithLines (BlockContainer<DIV>) [8,8 102x102] overflow: [9,9 100.203125x102]
+      PaintableWithLines (BlockContainer<DIV>) [8,8 102x102] overflow: [9,9 100x102]
         TextPaintable (TextNode<#text>)
         TextPaintable (TextNode<#text>)
         TextPaintable (TextNode<#text>)

+ 3 - 3
Tests/LibWeb/Layout/expected/vertical-align-middle.txt

@@ -7,9 +7,9 @@ Viewport <#document> at (0,0) content-size 800x600 children: not-inline
       InlineNode <a>
         frag 0 from TextNode start: 0, length: 6, rect: [8,24 41.296875x17] baseline: 13.296875
             "inline"
-        frag 1 from BlockContainer start: 0, length: 0, rect: [49,8 50x50] baseline: 29.296875
+        frag 1 from BlockContainer start: 0, length: 0, rect: [49.296875,8 50x50] baseline: 29.296875
         TextNode <#text>
-        BlockContainer <div.test> at (49,8) content-size 50x50 inline-block [BFC] children: not-inline
+        BlockContainer <div.test> at (49.296875,8) content-size 50x50 inline-block [BFC] children: not-inline
       TextNode <#text>
 
 ViewportPaintable (Viewport<#document>) [0,0 800x600]
@@ -18,4 +18,4 @@ ViewportPaintable (Viewport<#document>) [0,0 800x600]
     PaintableWithLines (BlockContainer<BODY>) [8,8 784x50]
       PaintableWithLines (InlineNode<A>)
         TextPaintable (TextNode<#text>)
-        PaintableWithLines (BlockContainer<DIV>.test) [49,8 50x50]
+        PaintableWithLines (BlockContainer<DIV>.test) [49.296875,8 50x50]

+ 3 - 3
Tests/LibWeb/Layout/expected/writing-modes-direction-inline.txt

@@ -1,15 +1,15 @@
 Viewport <#document> at (0,0) content-size 800x600 children: not-inline
   BlockContainer <html> at (0,0) content-size 800x33 [BFC] children: not-inline
     BlockContainer <body> at (8,8) content-size 784x17 children: inline
-      frag 0 from TextNode start: 0, length: 1, rect: [737,8 8x17] baseline: 13.296875
+      frag 0 from TextNode start: 0, length: 1, rect: [736.65625,8 8x17] baseline: 13.296875
           " "
       InlineNode <span>
-        frag 0 from TextNode start: 0, length: 5, rect: [690,8 46.71875x17] baseline: 13.296875
+        frag 0 from TextNode start: 0, length: 5, rect: [689.9375,8 46.71875x17] baseline: 13.296875
             "aaaaa"
         TextNode <#text>
       TextNode <#text>
       InlineNode <span>
-        frag 0 from TextNode start: 0, length: 5, rect: [745,8 47.34375x17] baseline: 13.296875
+        frag 0 from TextNode start: 0, length: 5, rect: [744.65625,8 47.34375x17] baseline: 13.296875
             "bbbbb"
         TextNode <#text>
       TextNode <#text>

+ 4 - 4
Tests/LibWeb/Ref/input/scrollable-contains-table.html

@@ -30,10 +30,10 @@
         <table>
             <thead>
                 <tr>
-                    <th>Header 1</th>
-                    <th>Header 2</th>
-                    <th>Header 3</th>
-                    <th>Header 4</th>
+                    <th>TH 1</th>
+                    <th>TH 2</th>
+                    <th>TH 3</th>
+                    <th>TH 4</th>
                 </tr>
             </thead>
             <tbody>

二进制
Tests/LibWeb/Screenshot/images/alt-frame.png


二进制
Tests/LibWeb/Screenshot/images/css-background-clip-text.png


二进制
Tests/LibWeb/Screenshot/images/css-color-functions-ref.png


二进制
Tests/LibWeb/Screenshot/images/css-transform-box-ref.png


二进制
Tests/LibWeb/Screenshot/images/inline-node-ref.png


二进制
Tests/LibWeb/Screenshot/images/input-placeholder-ref.png


二进制
Tests/LibWeb/Screenshot/images/object-fit-position.png


二进制
Tests/LibWeb/Screenshot/images/text-decorations.png


二进制
Tests/LibWeb/Screenshot/images/text-direction-ref.png


二进制
Tests/LibWeb/Screenshot/images/text-shadow-ref.png