- Store profiles
- Chrome and Microsoft Edge
- Category
- Remote hosted code
- Default result
- Blocker · High confidence
What ExtensionGate detects
The rule parses packaged HTML and manifest-declared extension pages for script sources that resolve to an http: or https: URL. It reports the file and bounded evidence location.
It does not fetch the URL. Package analysis is local, and nested archives are not recursively expanded.
Why it may matter
Chrome defines remote hosted code as executable JavaScript or WebAssembly loaded outside the submitted package. Manifest V3 requires executable extension logic to remain reviewable in the package.
Microsoft's Edge policies also require a reviewable, secure, and fully testable extension. Store reviewers remain the authority for each submission.
Synthetic failing example
Synthetic package · not customer data<script src="https://cdn.example.test/widget.js"></script>The browser would load executable JavaScript from outside the reviewed ZIP. The host is synthetic and is never contacted by the scanner.
Passing or legitimate example
Synthetic package · not customer data<script src="/vendor/widget.js"></script>
<script type="module" src="./app.js"></script>Both paths resolve inside the synthetic package. Bundling does not itself prove the code is safe, licensed, or policy-compliant.
Remediation
- Identify who owns the remote script and what executable behavior it supplies.
- Pin and bundle the required executable code into the extension build.
- Replace remotely changeable logic with a constrained data format interpreted by packaged code where appropriate.
- Search the final ZIP, test with the network unavailable, and document legitimate remote-data endpoints for reviewers.
False-positive boundaries
- Ordinary links, images, stylesheets, and JSON endpoints are not reported by this HTML script-source rule.
- A packaged script path that redirects only at an external web server is outside this rule because extension-package paths are local.
- A literal URL in documentation or a comment is not enough to trigger this specific parser-backed check.
What static analysis cannot determine
- Fetched text may be executed indirectly by eval-like code that another rule must detect.
- A remote response's real media type and content cannot be known without network access.
- Runtime-generated URLs and backend behavior may be invisible to a package-only scan.
A finding is evidence for review, not a store verdict. ExtensionGate does not certify compliance or guarantee approval.
Official sources
Rule version history
| Version | Date | Change |
|---|---|---|
| chrome-edge-2026.07.29.2 | Current scanner-hardening release; this public rule's definition and severity are unchanged. | |
| chrome-edge-2026.07.29.1 | Initial public fixture-backed rule documentation. |