DEV Community

Alex @Bickov
Alex @Bickov

Posted on

GoFullPage got pulled. Here is how to take a full-page screenshot without any extension.

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
Enter fullscreen mode Exit fullscreen mode

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,
});
Enter fullscreen mode Exit fullscreen mode

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();
Enter fullscreen mode Exit fullscreen mode

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();
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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)