Draft extension

What Draft can access

Draft keeps install-time access narrow and asks for high-fidelity capture only when you choose to use it.

In plain English

Access follows your capture action

activeTab is required, but Chrome scopes that capability to the tab you explicitly invoke Draft on. It does not give Draft broad access to every tab.

High-fidelity capture uses optional pageCapture. Draft requests and uses it when capture starts if it is not already granted, so you can decide whether to continue.

After the local capture is ready, Draft opens the /import tab. That tab pulls the pending capture over Chrome extension messaging.

Capability versus behavior

What Chrome grants and what Draft does

Required at install

activeTabAccess the tab you explicitly use with Draft
Chrome enforces activeTab as a temporary, user-gesture-scoped capability. Draft receives it after you explicitly invoke the extension on the tab you want to capture.

Optional / just in time

pageCaptureCreate a high-fidelity page archive
pageCapture is an optional Chrome capability. Draft requests and uses it from the explicit capture flow when it is not already granted; Chrome may show its permission warning at that point.

Current architecture

A narrow, no-host handoff

Draft has no tabs, host_permissions,optional_host_permissions, or Draft content script. A narrow externally_connectable Draft origin allows the exact /import tab to initiate the handoff. This transport allowlist is not a general read/change host permission.

  • tabs — Draft does not request global tab access.
  • host_permissions — Draft does not request top-level host permissions.
  • optional_host_permissions — Draft does not request optional host permissions.
  • Draft content script — Draft does not install a Draft-site content script.

Before sending capture bytes, the extension validates the configured Draft origin and exact /import path. Pending captures stay in extension-owned browser persistence while the Draft tab retrieves them. Draft verifies and durably stores the complete payload, sends ACK_PERSISTED, and only then allows the extension to delete the temporary record.

Capture flow

What happens after your click

  1. 1You click the Draft extension action on the page you want to capture.
  2. 2If pageCapture is not already granted, Draft asks Chrome for it when capture starts. If you deny it, the capture stops before an import tab opens.
  3. 3Chrome creates the MHTML archive locally in your browser.
  4. 4The extension stores the pending capture locally and opens the Draft /import tab.
  5. 5The Draft import tab requests the pending capture through Chrome extension messaging.
  6. 6Draft verifies and durably stores the complete payload, then sends ACK_PERSISTED.
  7. 7After ACK_PERSISTED, the extension deletes its temporary record.

Extension-only privacy scope

No extension-side analytics buffer

The extension itself does not use third-party analytics or tracking pixels, does not send captured content to a third-party analytics service, and does not use an InnoSage-owned external capture buffer. This statement is scoped to the extension; the Draft web app has its own privacy behavior and optional remote features.