Full Page PDF Snap → PDF extension permissions

Does your PDF extension upload the page? Here is how to check

Turning a web page into a PDF sounds like something that happens on your own machine. For some extensions it does not — one of the most popular states plainly that it is “powered by the PDFCrowd HTML to PDF online service”. That is a legitimate design with a real consequence, and it is worth knowing which kind you have installed. Every extension declares what it may access, and reading that takes half a minute.

1 August 2026 · figures pulled from the Mozilla add-ons API on that date

A personal report. This is a private account by an individual, not a review by an institution and not a certified test. Measurements are single runs on specific inputs on a stated date; assessments are the author's own opinion. Statements about third-party products come exclusively from publicly declared data with the retrieval date given — nothing was decompiled, and no claim is made about any provider's intentions. The author develops Full Page PDF Snap, which appears in some of these measurements. Corrections: GitHub issues. Details in About & disclosure.

The 30-second check

You do not need any tools. Every listing on addons.mozilla.org has a “Permissions and data” section near the bottom. What matters is one distinction:

A named domain in that list is even more telling. If an extension declares access to https://example-converter.com/, it talks to that server. That is not a suspicion; it is what the declaration is for.

If you want to be sure rather than probable

Permissions describe what is possible. To see what actually happens, watch the traffic:

1. Open about:debugging → This Firefox
2. Find the extension, click "Inspect"
3. Switch to the Network tab
4. Run a capture and watch what appears

An extension that works locally shows nothing there. One that converts server-side shows the upload. This is the only method that gives certainty, and it takes about two minutes.

What the current extensions declare

Pulled from the Mozilla add-ons API on 1 August 2026. The “declared hosts” column lists exactly what each extension states in its own manifest — no interpretation:

ExtensionUsersDeclared hostsLast update
Save as PDF19,610 https://pdfcrowd.com/2025-06-17
PDF Mage16,313 <all_urls>2021-11-16
PDFmyURL390 https://pdfmyurl.com/*, <all_urls>2019-06-03
FireShot169,961 <all_urls>, *://getfireshot.com/activate.php?*2023-06-21
SingleFile84,954 <all_urls>2026-03-06
Print Edit WE40,873 <all_urls>2025-04-30
PageSaver2,178 <all_urls>2026-07-24
Full Page PDF Snap3 none — activeTab only2026-08-01

What this table does not say

A declared permission shows what an extension may do, not what it does. An extension with <all_urls> may well process everything locally and never send a byte anywhere — that permission is also the simplest way to make a tool work on every page, and plenty of well-regarded extensions use it for exactly that. SingleFile, for instance, is open source and widely reviewed.

So this is not a ranking of trustworthiness. It is a list of what each extension reserves the right to do, taken from its own manifest on one specific day. Versions change; check the current listing before drawing conclusions. Where an extension is open source, reading the code beats any inference from permissions.

The consequence nobody mentions: logged-in pages

This is where the two designs stop being a matter of taste. A server-side converter receives a URL and fetches the page itself — as an anonymous visitor. It has no access to your session. The provider of “Save as PDF” states this openly in its own listing:

“Please note that for security reasons, it is not possible to create PDFs from pages that require a login, such as your webmail inbox, online banking, shopping cart contents, payment […]”
— Save as PDF, own listing description, retrieved 1 August 2026

That is a fair and transparent statement, and it deserves credit rather than criticism. But it defines the boundary precisely: the documents people most often want to keep — an order confirmation, an invoice in a customer portal, insurance correspondence, a booking record, a support conversation — are exactly the ones behind a login.

An extension that renders locally has no such limit, because it captures what your browser already shows. That is a functional difference, not a moral one. Which side you want depends on what you archive.

Reading a manifest yourself

For a technically inclined reader, there is a faster route than any listing page. The same API this article uses is public:

curl -s "https://addons.mozilla.org/api/v5/addons/addon/SLUG/?lang=en-US" \
  | python3 -c "import sys,json; d=json.load(sys.stdin); \
    print(d['current_version']['file']['permissions'])"

Replace SLUG with the part of the listing URL after /addon/. Anything containing :// or <all_urls> is a host permission. This is also how the table above was produced — so you can reproduce it, and correct it if something has changed.

A note on our own entry

We build one of the extensions in that table, so treat the framing accordingly. What we can offer instead of a promise: the permission list is activeTab, downloads, downloads.open, storage, menus, notifications, scripting with no host permissions at all, the source is public under the MIT licence, and the submitted files are the source files — no bundler, no minification. The network check described above is the honest way to verify that, and it works on our extension exactly as it does on any other.