Is Print Easily safe?
Print Easily overrides the browser's default search engine and routes all queries to quickprintapp.net with a persistent per-user tracking cookie.
On install, the extension generates a random UUID and stores it as a long-lived cookie on quickprintapp.net, then sets quickprintapp.net as the default search engine so every search query is sent there with that identifier attached. If the user deletes the cookie, the extension immediately re-plants it — both at browser startup and via a real-time cookie-change listener — ensuring the tracking identifier survives manual clearing. The extension also notifies quickprintapp.net on install and update via a separate beacon request.
AI-generated. Findings may contain errors. Those marked Verified have been manually reviewed.
Publishers can request a review.
Findings
Address-bar searches routed through owner's domain with a 5-year tracking cookie
On install this extension becomes your default search engine.
Queries go to quickprintapp.net, which redirects to Yahoo with a partner tag, then plants a persistent 5-year 'uid' cookie.
A marker query passed through, matching the cookie.
You type a search into the browser's address bar and press Enter.
Any term, on any site, using the normal omnibox search you'd use for Google or Bing.
The query is sent to the extension owner's domain, quickprintapp.net, before reaching a real search engine.
The extension installed itself as your default search provider, so the address bar routes queries to its own endpoint first.
The manifest declares the owner's domain as the default search engine
// is_default: true → the extension becomes the browser default search engine. // search_url → every address-bar query is sent to: // https://quickprintapp.net/admin/public/link?q=<your search terms> // suggest_url → keystroke-by-keystroke suggestions also go to the owner domain: // https://quickprintapp.net/admin/public/autosuggest?searchTerm=<your partial query>
| Cookie | uid=cb2add1c-3172-433e-9ecb-2bb4d8baae3a |
| Field | Value | Why it matters | |
|---|---|---|---|
Your search query | q=blue widgets near me (illustrative) | The full text you typed into the address bar, sent to the owner's domain before reaching a search engine. | |
Per-user identifier (uid) | uid=cb2add1c-3172-433e-9ecb-2bb4d8baae3a | A stable random ID planted as a cookie on quickprintapp.net, present on search requests so the stream of queries can be tied to one person. |
- quickprintapp.net
Extension owner's domain. Receives every address-bar query (and per-keystroke suggestions) along with the persistent uid cookie, then redirects on to Yahoo.
- uk.search.yahoo.com
Final search provider. Reached via 302 redirect with a 'quickprint' partner tag (hsimp=yhs-mm_quickprint) appended, query terms preserved.
Tracking cookie re-plants itself within milliseconds when you delete it
The per-user 'uid' cookie on quickprintapp.net self-heals: a listener watches for removal, and a startup check runs on SW wake; either reads the stored uid and recreates it.
Testing showed it deleted and re-planted 3ms later, same value.
You delete the uid tracking cookie on quickprintapp.net.
Via browser settings, a cookie-clearing tool, or DevTools, the normal way you'd remove a tracking cookie.
The extension re-creates the identical cookie within a few milliseconds.
A background listener notices the removal, reads the saved uid from the extension's synced storage, and re-plants the same value.
Two code paths re-plant the cookie: on deletion and on service-worker startup
const DOMAIN = "quickprintapp.net";
const FIVE_YEARS_SEC = 5 * 365 * 24 * 60 * 60;
function makeUidCookie(uid) {
return {
url: `https://${DOMAIN}`,
name: "uid",
value: uid, // the same stored per-user id
sameSite: "strict",
secure: true,
expirationDate: Math.floor(Date.now() / 1000) + FIVE_YEARS_SEC, // reset to +5y
};
}The extension keeps a copy of your identifier in synced storage, read by the re-plant logic. Deleting the cookie alone doesn't remove it.
chrome.storage.sync key 'uid'{
"uid": "cb2add1c-3172-433e-9ecb-2bb4d8baae3a",
"installDate": "2026-06-15",
"randomNumber": 1
}