Page MenuHomePhabricator

Pixel generates different images for arm64 devices (e.g. MacBook Pro M1)
Closed, ResolvedPublicBUG REPORT

Description

Steps to replicate the issue (include links if applicable):

  1. Obtain a MacBook Pro M1 machine
  2. Run ./pixel.js reference and ./pixel.js test
  3. Obtain a computer that doesn't have a arm64 chipset.
  4. Run ./pixel.js reference and ./pixel.js test

What happens?:

The non-arm64 report and arm64 reports contain images that are very similar.

What should have happened instead?:

The non-arm64 report and arm64 reports contain images that are very different.

For example, arm64 has images that span the height of the page, while the non-arm64 images are limited to the viewport's height:

2023-03-16_13-56-00 (3).png (2×3 px, 370 KB)

Developer notes

I believe the cause of this bug is a result of Pixel installing its own chromium version for arm64 devices. Puppeteer only supports a very specific version of chromium, but does not bundle that version for puppeteer running inside a debian Docker container running on arm64, so we install our own unsupported version. This version has drifted from the required version and produces images that are very different as a result.