mozilla-services / screenshots

Firefox Screenshots: the best way to take screenshots on the web.
https://screenshots.firefox.com
Mozilla Public License 2.0
620 stars 128 forks source link

Full page screenshot image of long web page is corrupt (OS X) #5388

Open cfield opened 5 years ago

cfield commented 5 years ago

Affected versions

Version 68.0.1 Firefox Screenshots 39.0.0

Affected Platforms

Mac

Steps to reproduce

  1. Navigate to a long page (e.g., https://news.ycombinator.com/item?id=20554806)
  2. Invoke the Screenshots feature (e.g., right click and select Take a Screenshot or select the Screenshot option from the page actions menu in the address bar)
  3. Select Save full page from the Screenshots menu
  4. Click Download on the Screenshots overlay/modal

Note: The issue may be particular to Mac (OS X). I could not reproduce the same issue in Windows 10 using the same Firefox version (i.e., 68.0.1)

Expected result

The screenshot maintains fidelity to what is displayed in the browser.

Actual result

Though the top ~half of the screenshot image is fine, the bottom ~half of the image is corrupt and does not reflect what is displayed in the browser. See the screenshots included below with this issue report.

Notes

Here is a screenshot that demonstrates the issue: Full - Screenshot_2019-07-31 YouTube faces creator backlash Hacker News

To illustrate what the bottom of the above screen shot image should look like, here is a screen shot taken using the Save visible option from the Screenshots menu: Visible - Screenshot_2019-07-31 YouTube faces creator backlash Hacker News

Here is the Firefox Troubleshooting Information (both the raw data version and the text version) from the browser used to capture the screenshots included with this issue report: Firefox - Troubleshooting Information - text - 2019-07-31-1732-01.txt Firefox - Troubleshooting Information - raw data - 2019-07-31-1732-01.txt

PrototypeNM1 commented 4 years ago

Same issue on Windows. Poking around the code, I'd suspect that Firefox's CanvasRenderingContext2D.drawWindow() is at fault.