PageSweep is a Chrome Manifest V3 extension that captures an entire scrollable webpage and automatically downloads it as one PNG.
PageSweep — Capture the whole page.
Beta software: PageSweep is currently available for testing under the PageSweep Beta Evaluation License. It may not be redistributed, sold, monetized, modified, or used to create a competing product.
One toolbar click measures a finite page boundary, scrolls through the page, captures each viewport, removes overlap, stitches the frames, downloads the PNG, and restores the original page state.
- Select Code, then select Download ZIP.
- Open the downloaded ZIP and extract its contents.
- Open
chrome://extensionsin Google Chrome. - Turn on Developer mode in the upper-right corner.
- Select Load unpacked.
- Choose the extracted project folder that contains
manifest.json. - Open Chrome's extensions menu and pin PageSweep to the toolbar.
After an update, download and extract the latest ZIP again, then select Reload on the PageSweep card at chrome://extensions.
- One-click full-page capture with no manual scrolling.
- One automatically downloaded PNG named
hostname_YYYY-MM-DD_HH-MM-SS.png. - Accurate high-DPI, zoom, fractional-scroll, and final-viewport handling.
- First-occurrence handling for fixed and sticky interface elements.
- Bounded settling for lazy-loaded images and modest page growth.
- Restoration of scroll position and temporary page styles after success or failure.
- Animated in-page and toolbar progress that stays out of the downloaded PNG.
- No persistent website access and no
<all_urls>permission.
- Open
chrome://extensionsin Chrome. - Turn on Developer mode in the upper-right corner.
- Click Load unpacked.
- Select this project directory.
- Confirm that PageSweep appears in the extensions list.
- Use Chrome's extensions menu to pin PageSweep to the toolbar.
For local HTML files, open the extension's Details page and enable Allow access to file URLs.
- Open an
http,https, or enabled localfilepage. - Click the PageSweep toolbar icon once.
- Keep that tab visible and follow the PageSweep progress card while the page scrolls.
- Wait for Download started, then open the PNG that Chrome downloads automatically.
PageSweep uses Chrome's configured download location—normally the Downloads folder. If Chrome's Ask where to save each file before downloading setting is enabled, Chrome may ask where to save the PNG. PageSweep does not choose or create a separate folder.
Do not interact with or switch away from the target tab until the page returns to its original position.
GoFullPage_ReplacementTool/
├── manifest.json
├── offscreen.html
├── docs/
│ ├── ARCHITECTURE.md
│ ├── CHANGELOG.md
│ ├── DECISION_LOG.md
│ ├── DOC_PROTOCOL.md
│ ├── E2E_SMOKE_PROTOCOL.md
│ ├── REAL_WORLD_TEST_MATRIX.md
│ ├── TODO.md
│ ├── TRIAGE.md
│ └── USER_GUIDE.md
├── src/
│ ├── background.js
│ ├── capture.js
│ └── stitch.js
├── tests/
│ └── fixtures/
│ └── fixed-elements.html
├── README.md
└── .gitignore
docs/USER_GUIDE.mdexplains installation, usage, and current limitations.docs/ARCHITECTURE.mddescribes the capture and stitching design.docs/E2E_SMOKE_PROTOCOL.mddefines browser acceptance tests.docs/REAL_WORLD_TEST_MATRIX.mdrecords Stage 11 page-by-page results.docs/TODO.mdanddocs/TRIAGE.mdtrack current and planned work.docs/CHANGELOG.mdanddocs/DECISION_LOG.mdrecord what changed and why.docs/DOC_PROTOCOL.mddefines how these documents stay current.
Controlled browser fixtures live under tests/fixtures/.
Use the About page's Send feedback link or open the private PageSweep beta feedback form. PageSweep first offers this form after the third successful capture. Selecting Maybe later schedules reminders after 6, 9, 12, and 15 additional successful captures, then PageSweep stops asking.
No GitHub account is required to download PageSweep or use the feedback form.
PageSweep is proprietary beta software, not open source. It may be downloaded, installed, and run only for personal or internal evaluation, testing, and feedback under the PageSweep Beta Evaluation License.
activeTab: Grants temporary access to the current page only after the user clicks the extension.scripting: Injects the page-measurement logic into that temporarily authorized tab.offscreen: Provides an invisible extension document with the image and canvas APIs needed to stitch captured frames. A Manifest V3 service worker does not provide those DOM APIs. The document exists only during stitching.downloads: Saves the finished PNG automatically. Chrome provides no narrower permission for initiating a download.storage: Keeps the successful-capture count and feedback-prompt preference locally in Chrome. This information is not transmitted by PageSweep.
The extension does not request persistent host access. activeTab grants temporary access only after the user clicks the toolbar icon.
- Normal
http://andhttps://webpages. - Local
file://pages when Chrome's file-URL access toggle is enabled.
Chrome prevents extensions from accessing browser-controlled surfaces such as chrome:// pages, Chrome Web Store pages, DevTools, settings, and some built-in viewers. The extension reports these pages cleanly in its service-worker console.
This project uses plain JavaScript and native Chrome APIs; there is no dependency installation or build step.
After changing extension files, open chrome://extensions, click the reload button on the extension card, and refresh the target webpage.
- Service-worker console: Open
chrome://extensions, select PageSweep, then click service worker. Capture progress, dimensions, cleanup status, and errors are logged here. - Webpage console: Use the target tab's DevTools console for rare page-side cleanup warnings.
- Extension errors: Inspect the Errors button on the extension card if Chrome reports a loading or runtime problem.
- Open
chrome://extensions. - Find PageSweep and click its service worker link to open DevTools.
- Open a normal webpage in another tab.
- Click the PageSweep toolbar icon.
- Return to the service worker DevTools console.
- Confirm that a
PageSweep triggeredmessage includes the tab ID, URL, and title. - Watch the page scroll automatically from top to bottom and return to its starting position.
- Confirm that one PNG downloads automatically after the final frame.
- Open the PNG and verify that its pixel width and height match the values in
PageSweep stitched PNG downloaded. - Check the image from top to bottom for missing regions, blank gaps, and obvious seams.
- Inspect
PageSweep multi-frame capture complete; verifycaptureCountmatchesframesStoredInMemoryandcleanupErrorsis empty.
Use docs/E2E_SMOKE_PROTOCOL.md for the complete checks and docs/REAL_WORLD_TEST_MATRIX.md for recorded results.
- Exceptionally tall pages may be downscaled because Chrome cannot export a single canvas beyond its native dimension and memory limits. The extension logs a warning with the source and output scale when this happens.
- Infinite or continuously growing feeds are limited to a finite boundary. Normal lazy-load growth is allowed only within a bounded cap.
- Content that takes longer than the bounded render timeout may not appear fully loaded.
- Chrome-protected pages cannot be captured.
PageSweep opens its welcome and limitations guide once after first installation. Select Got it to dismiss it. To review it later, open PageSweep's extension options from Chrome's extension controls.
