What Afterimage reads
Afterimage examines a bounded set of visible headings, paragraphs, block quotes, images, figures, buttons, role=button controls, and horizontal rules.
For candidates it reads viewport geometry and a limited set of computed visual properties such as color, border color, border radius, line height, font style, font weight, font size, and font family.
For heading elements only, the extension can read and normalize up to 72 characters of visible heading text so a short-lived typographic echo can resemble the heading that crossed the viewport edge.
It does not read input values, password values, textarea contents, selected form options, hidden DOM text, cookies, browser history, or authentication tokens as part of the effect.
How traces are rendered
Afterimage inserts one pointer-transparent canvas over the current viewport and one small local control interface. The canvas is used only to draw transient visual residues.
Paragraph traces are represented as abstract lines, media traces as translucent geometry, controls as outlines, and headings as local typographic echoes. The extension does not copy or draw image pixels from webpage images.
Trace records contain only the in-memory geometry and small visual descriptors required for their short decay period. They are capped and expire automatically.
Turning the effect off clears the trace list, clears and removes the canvas, removes the controls, and removes event listeners.
Scroll and pointer inputs
Afterimage samples candidate geometry after scroll activity to detect elements crossing the top or bottom edge of the viewport.
Fast pointer movement over a recognized candidate can create a short outline wake. Pointer events are used as local animation input and are not recorded as behavioral analytics.
The effect is capped at 180 candidate forms and 96 concurrent trace records. These caps bound the amount of analysis and drawing on long pages.
Canvas frames run only while traces remain alive. Once the trace list is empty, continuous animation stops until new activity produces another trace.
Visual modes
Ghost draws a fading structural residue, Echo repeats a form a small number of times, Smear draws short directional streaks, and Fragment breaks the residue into bounded rectangular bands.
Mode selection remains in the current in-page instance only. No preference is written to disk or synchronized to another device.
All four modes are decorative representations of page structure. They do not change the website's text, images, forms, links, or layout styles.
Scope of this notice
This privacy notice describes the browser extension identified on this page and the behavior of version 1.0.0. It is written for the packaged Chrome extension, not for unrelated websites, development tools, or future products.
The extension is a local visual effect. It does not provide an account system, cloud synchronization, advertising service, analytics service, or remote processing backend.
The page on which you activate the extension remains controlled by that website. This notice covers what the extension itself does while its temporary effect is active.
Activation and temporary page access
The extension does not run on every site in the background. It is activated by an explicit toolbar action or its documented keyboard shortcut.
Chrome's activeTab permission provides temporary access to the active tab as a consequence of that user action. The extension does not request a standing host permission for all websites.
The scripting permission is used to inject code that is packaged inside the installed extension. The extension does not download JavaScript, stylesheets, WebAssembly, or other executable code from a server.
Activation can fail on browser-internal pages and other locations where Chrome does not allow ordinary extensions to inject scripts. In that case the extension does not attempt to bypass the browser restriction.
Storage, persistence, and retention
The extension does not use chrome.storage, localStorage, IndexedDB, cookies, Cache Storage, or a remote database for page-derived information.
Effect state exists only in memory while the page remains open and the effect remains active. Turning the effect off removes its interface and active rendering state.
Closing or reloading the tab naturally ends the in-page instance. There is no server-side retention because the extension has no server-side data flow.
Network behavior
The packaged extension does not use fetch, XMLHttpRequest, WebSocket, EventSource, sendBeacon, remote fonts, remote analytics, or a third-party API.
No page-derived information is uploaded by the extension. The website itself may continue making its own network requests independently of the extension.
The extension does not insert advertising pixels, tracking scripts, affiliate tags, or remote measurement resources into the active page.
Analytics, advertising, and sale of data
The extension contains no analytics SDK and does not create a user identifier for measurement or advertising.
The extension does not sell, rent, license, or share page-derived information with advertisers, data brokers, or marketing platforms.
There are no sponsored placements inside the extension interface and no behavioral advertising profile is created.
Third parties
No third-party runtime library is loaded from the network. The production package is self-contained.
Chrome supplies the extension platform APIs, including activeTab and scripting. Your use of Chrome is also governed by the browser provider's own terms and privacy practices.
Websites you visit remain independent third parties. Activating the extension does not change the website operator's own data practices.
Security design
The extension minimizes persistent access by relying on user-invoked activeTab access instead of broad host permissions.
Runtime work is bounded so that a very large page cannot cause an unbounded number of animated or analyzed elements.
The extension interface uses a high-layer local host and Shadow DOM so page styles are less likely to accidentally restyle its controls. The interface does not accept executable code from the page.
The production package contains no remote code loader, eval-based application logic, development harness, private key, or signing credential.
User controls
You can stop the effect from its in-page Off control or by invoking the extension again on the same page.
A Pause control stops motion without requiring a page reload. Where applicable, pausing also returns temporary visuals to a settled or cleared state.
Because no page-derived data is stored by the extension, there is no separate deletion request workflow for saved browsing content.
Reduced motion and accessibility
The extension checks the prefers-reduced-motion media query. When the operating system or browser requests reduced motion, the effect starts paused rather than immediately animating the page.
The in-page controls are native buttons with keyboard focus behavior and visible focus treatment.
The effect is decorative and optional. Turning it off removes the extension layer and returns control entirely to the underlying webpage.
Children
The extension is a general-purpose visual utility and is not designed to collect information from children.
Because it provides no account creation, messaging, behavioral advertising, or remote data collection, it does not intentionally build profiles about children or adults.
Changes to this policy
If a future version materially changes permissions, storage, network behavior, or page access, this notice should be updated to describe that behavior before that version is distributed.
A purely visual or wording update that does not change data handling may be reflected by revising the effective date and descriptive text.
Contact
Questions about this privacy notice can be sent to hanhruiroc@gmail.com. Please do not include passwords, authentication tokens, or sensitive page contents in a support message.
When reporting a compatibility problem, a public URL and a description of the visual issue are usually enough; sending private webpage contents is not required.