On 11 August the GoFullPage extension disappeared from the Chrome Web Store and got disabled in Chromium browsers. Eleven million users, one Tuesday.
It was not a hack. The developers say it was a copyright dispute over a design element, that it was "definitively not a security issue", and that they are working with Google on getting it back. Chrome shows the same "might be unsafe" string for every kind of Web Store policy breach, so the warning read far worse than the cause.
Two things came out of it. A short list of fixes, and a longer thought about where our tools live.
Get working again in a minute
-
Re-enable it. Open
chrome://extensions. If Chrome disabled the extension rather than deleting it, the toggle is still there. - Use Edge. GoFullPage was never removed from the Edge add-ons store.
-
Install the beta. The team published a separate build at ID
kehafhfdnkhdgbnpeofmhmbibmpnjaof, and it can sit alongside the original.
That is the practical answer. The more interesting one is that most of us never needed the extension.
Five ways to capture a full page with no extension at all
1. Chrome DevTools, no code
Open DevTools, press Cmd/Ctrl + Shift + P, type screenshot, choose Capture full size screenshot.
This has been in Chrome for years and most people have never found it. It handles scroll-height pages properly and drops a PNG in your downloads.
2. Firefox, even shorter
In the Firefox console:
:screenshot --fullpage
Add --dpr 2 for a retina-density capture, or --clipboard to skip the file.
3. Chrome DevTools Protocol, if you want it scripted
The thing the extension was wrapping is one CDP call:
await client.send('Page.captureScreenshot', {
format: 'png',
captureBeyondViewport: true,
});
captureBeyondViewport is the flag that does the work. Everything else in a full-page screenshot tool is UI around it.
4. Playwright
import { chromium } from 'playwright';
const browser = await chromium.launch();
const page = await browser.newPage({ viewport: { width: 1280, height: 720 } });
await page.goto('https://example.com');
await page.screenshot({ path: 'page.png', fullPage: true });
await browser.close();
5. Puppeteer
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({ path: 'page.png', fullPage: true });
await browser.close();
For a batch of URLs, either of these beats clicking an extension icon a hundred times.
The trap, if that screenshot is going to an AI model
This is the part that surprises people, and it applies to every method above.
Images get downscaled before a vision model reads them. Anthropic's current limits:
| Tier | Models | Max long edge |
|---|---|---|
| High resolution | Claude 4.7 and later | 2576 px |
| Standard | everything else | 1568 px |
A full-page capture is tall, so its long edge is its height, and pulling the height under the cap drags the width down with it.
Take the 1280x720 viewport from the Playwright example and a page 7,800 pixels tall:
| Call | Captured | Reaches Claude 4.7+ | Reaches older models |
|---|---|---|---|
| viewport | 1280 x 720 | 1280 x 720, untouched | 1280 x 720, untouched |
fullPage: true |
1280 x 7800 | 423 x 2576 | 257 x 1568 |
Six times the pixels captured. On an older model the delivered image is smaller in both dimensions than the plain viewport shot. Sixteen-pixel body text lands around 5px on the newer tier and 3px on the older one.
So if you are screenshotting a page to ask a model whether it rendered correctly, fullPage: true is actively the wrong flag. Capture the region you are asking about. Two viewport shots beat one full page, because both arrive at full size.
One related trap: scale: "device" in Playwright at viewport size gives you 2560x1440 on a 2x display, which now arrives untouched on Claude 4.7 and later. Free detail. Combine it with fullPage and you produce an image over 8,000 pixels tall, which the API rejects outright with:
At least one of the image dimensions exceed max allowed size: 8000 pixels
The part worth keeping
None of this is a dig at GoFullPage. Their code did nothing wrong, their users did nothing wrong, and the extension is likely to be back by the time you read this.
That is exactly what makes it worth noticing. Nobody had to make a mistake for eleven million people to lose a tool on a Tuesday. Anything installed through a store has a dependency in it that never shows up in the feature list, and you find out it is there on the day it fires.
Extensions earn that risk. They live inside the page, they follow your session, they drive the scroll themselves. For a lot of jobs that is the right tool and nothing else does it the same way. But it is worth knowing which of your tools would survive a bad Tuesday, and having one of each.
If you want the off-store version of this specific job, I work on SlimSnap.ai, a free capture app for Mac and Windows that does scrolling capture, annotation, and hands the result to a coding agent as structured JSON rather than a flat image. A desktop app cannot be delisted by anyone.
And whichever tool you land on, crop before you ask a model anything precise.
Top comments (0)