tree dfb9b499737787c191d7c4d9de79ebfe029f5c04
parent 3d537ab06a13144c629a871a7c9bbd87dca9a98c
author Thiago Perrotta <tperrotta@chromium.org> 1686921439 +0200
committer GitHub <noreply@github.com> 1686921439 +0200
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJkjGDfCRBK7hj4Ov3rIwAABh4IAKAdntq6SemsW3DggqhXCy7N
 00Uha2rOo8gEhCO9muZceUyWKE1kqdA/fxZ5Dg/P8Xh3I37epsAt0fkB8j+OLB6Z
 WCrKd+CuC9RG6vnkSXE/fFbHiTAGiN65rJQh41NT5ngIqdWjM8rh8uL5/rOedqsF
 /1NNIQggCD2C1i7jnds6hdMIbJiWR3JB6xslkjCjeBcVHW7mLhv+rtvgxALxhJ1g
 uHvd0fXFugXOt7kPltqKg56AspyxyoZizc3eParh+vGNkGHghuba2BGXetqQcqKT
 4qmNp9K9D5xawUAWN7DqOg+P6qN93lYwsb/w6stZFr7Bq/5jarkiG5r8+uoS2us=
 =jtZb
 -----END PGP SIGNATURE-----
 

[wdspec] browsingContext.print: fix rounding error in page.py test (#40504)

* [wdspec] browsingContext.print: fix rounding error in page.py test

[pytest](https://github.com/web-platform-tests/wpt/blob/7a087d54be8b6c0ca0181a86dc1ff0b28461c383/webdriver/tests/support/image.py)
uses:

    def cm_to_px(cm): return round(cm * 96 / 2.54)

[js](https://github.com/web-platform-tests/wpt/blob/7a087d54be8b6c0ca0181a86dc1ff0b28461c383/tools/wptrunner/wptrunner/print_pdf_runner.html)
uses:

    const viewport = page.getViewport({ scale: 96. / 72. });
    ...
    canvas.height = viewport.height;
    canvas.width = viewport.width;

This produces a rounding error, even though the dimension is correct:

    >       assert cm_to_px(expected_dimensions["height"]) == height
    E       assert 454 == 453
    E         +454
    E         -453

The inconsistency of rounding in both ends becomes clear when we
eliminate "round" in the pytest side:

    >       assert cm_to_px(expected_dimensions["height"]) == height
    E       assert 453.54330708661416 == 453
    E         +453.54330708661416
    E         -453

There are multiple ways to fix this issue.

Option #1: Use "floor" instead of "round" in pytest.

Option #2: Use a range in the assertion comparison, allowing a
difference of up to +-1.0. This is what this PR does.

The comparison is performed in
[`assert_pdf_dimensions`](https://github.com/web-platform-tests/wpt/blob/b6107cc1ac8b9c2800b4c8e58af719b8e4d9b8db/webdriver/tests/support/fixtures_bidi.py#L210).

The problematic part is .96 / .72 which evaluates to 4/3 = 1.333333....

* use floor in cm_to_px instead of round

* compare to floor and to round instead of a range

* Revert "compare to floor and to round instead of a range"

This reverts commit 63f894e6d1881616e0f13b7a40ddcb30b772eba8.

* Revert "use floor in cm_to_px instead of round"

This reverts commit 7e65d918b25575060ca50009d261d1e76dca6cae.