The local analysis pipeline
- The browser receives the extension ZIP as a user-selected
Fileobject. - A dedicated Web Worker validates the archive with bounded entry, expanded-size, ratio, file-size, and time limits.
- The worker builds the
manifest.jsonmodel and its graph of referenced package files. - HTML and JavaScript are parsed as inert text. Extension code is never executed, imported, or rendered as live HTML.
- Versioned Chrome or Edge rules produce findings with file evidence, severity, confidence, and remediation.
- Optional submission answers are compared with package evidence locally in the browser.
- Submission Packet exports are generated as local Markdown, JSON, and print-ready
Blobobjects.
Data-flow boundary
The solid path is the private local scan. The separate dotted path carries only a bounded product event. Checkout carries entitlement data back to the browser, never package or report content.
- Extension ZIPUser-selected file
- Browser memoryPrivate package bytes
- Local scan workerBounded inert parsing
- Local report and packetFindings and answers
- Local exportsMarkdown, JSON, and print
Browser memory ExtensionGate event endpoint
Bounded anonymous event only. ZIP bytes and package-derived values never take this dotted path.
Stripe Checkout Release Pass entitlement Browser
Package content never enters checkout metadata. Report content is never required to activate or restore an entitlement.
What crosses the network boundary
The local scan does not upload the ZIP, source text, manifest values, report JSON, questionnaire answers, filenames, paths, or detected URLs. It also never fetches URLs discovered inside a package.
The public site may make ordinary requests for its own HTML and assets. Privacy-preserving product analytics, if enabled, are restricted to the schema published on the privacy page. Paid and support workflows never receive the package, source, local report, or questionnaire answers.
Designed limits
| Compressed ZIP | 25 MB |
|---|---|
| Expanded content | 100 MB |
| Entries | 10,000 |
| One text file | 20 MB |
| Expansion ratio | 100:1 |
| Analysis time | 30 seconds before an incomplete result |
| Nested archives | Never recursively expanded |
What the result means
A blocker is strong package evidence for a known submission problem. A needs-review finding requires product or policy context. Passing means only that enabled rules did not find their defined patterns.
Static analysis cannot observe every runtime path, backend, vendor contract, store form, or reviewer judgment. ExtensionGate does not certify compliance or guarantee approval.