mirror of
https://github.com/yaklang/yaklang-chrome-extension.git
synced 2026-09-27 05:31:53 +08:00
Update project structure and dependencies; add architecture documentation and improve build scripts. Introduce new versioning and permissions for enhanced functionality.
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
# Chrome Web Store Review Packet
|
||||
|
||||
## Single purpose
|
||||
|
||||
Yakit Browser Agent provides consent-gated browser context and request workflows for authorized security testing with a local Yak/Yakit engine. Cookie, proxy, UA, observation and request tools support that single authenticated-browser testing workflow; they do not provide unrelated browsing, advertising or content features.
|
||||
|
||||
## Remote code policy
|
||||
|
||||
The Store build is produced by `pnpm build:store`.
|
||||
|
||||
- It requires Chrome 138+ and uses the documented `userScripts.execute({ world: "MAIN" })` path.
|
||||
- `page-main-world.js` is absent from the package and web-accessible resources.
|
||||
- Expression and program Eval use independent grant scopes; program mode is not in the default control preset.
|
||||
- If Allow User Scripts is disabled, the UI reports the condition and does not fall back to injected Eval.
|
||||
- Page results are untrusted and bounded. Structured context/node commands are preferred.
|
||||
|
||||
Chrome's MV3 policy names User Scripts as an API permitted to execute remote logic when used for its documented purpose: [Additional Requirements for Manifest V3](https://developer.chrome.com/docs/webstore/program-policies/mv3-requirements).
|
||||
|
||||
## User data and Limited Use
|
||||
|
||||
The listing and privacy form must disclose authentication information, browsing activity, website content, Cookie/storage data, request data and local Native Messaging transmission. Data is handled only for the user-facing security workflow, sent only to the user's explicit local endpoint, never sold, never used for advertising, and not sent to developer analytics. Local processing still requires disclosure under the [User Data FAQ](https://developer.chrome.com/docs/webstore/program-policies/user-data-faq).
|
||||
|
||||
## Reviewer test
|
||||
|
||||
1. Build with `pnpm build:store` and load `.output/chrome-mv3-store`.
|
||||
2. Enable Allow User Scripts on the extension details page.
|
||||
3. Open an HTTP(S) page, Options, and select the target tab.
|
||||
4. Create a five-minute read grant and verify context succeeds but Eval is denied.
|
||||
5. Create a control grant. Expression Eval succeeds; program Eval remains denied until separately enabled.
|
||||
6. Start metadata-only request capture. Headers/body appear only after their explicit switches are enabled.
|
||||
7. Trigger and complete a handoff; verify the action timeline and audit contain metadata only.
|
||||
8. Inspect the Store artifact: no `page-main-world.js`, no `activeTab`, and `nativeMessaging` is optional.
|
||||
|
||||
Automated equivalent: `pnpm verify:ui:store`.
|
||||
|
||||
## Submission fields still requiring owner action
|
||||
|
||||
- Developer account ownership and verified contact details.
|
||||
- Stable privacy-policy URL hosting `docs/PRIVACY_POLICY.md`.
|
||||
- Final signed extension ID for Native Host allowlisting.
|
||||
- Store screenshots/promotional assets selected from `.artifacts/ui`.
|
||||
- Privacy questionnaire answers matching this packet.
|
||||
- Actual upload, reviewer correspondence and approval.
|
||||
@@ -0,0 +1,13 @@
|
||||
# Firefox AMO Review Packet
|
||||
|
||||
The public Firefox artifact is `pnpm build:firefox:amo`, producing Firefox MV3 in `.output/firefox-mv3-store`.
|
||||
|
||||
Mozilla's current Add-on Policies reserve `userScripts` for user-script managers. Yakit Browser Agent is not marketed as one, so the AMO artifact does not request `userScripts`, does not package `page-main-world.js`, and does not advertise `browser.invoke` or `browser.eval`. It retains structured context, document-bound node commands, request capture, observation, Cookie/UA/proxy tools and human handoff. Local or enterprise Firefox builds can use the injected adapter outside the public AMO channel.
|
||||
|
||||
The manifest targets Firefox 140+ and declares required built-in data consent categories: authentication information, browsing activity, website activity and website content. There is no remote technical/user-interaction telemetry; operational metrics stay local until the user exports a diagnostics file.
|
||||
|
||||
Official references: [Mozilla Add-on Policies](https://extensionworkshop.com/documentation/publish/add-on-policies/) and [Firefox built-in data consent](https://extensionworkshop.com/documentation/develop/firefox-builtin-data-consent/).
|
||||
|
||||
Reviewer steps mirror the Chrome structured-command flow but must confirm that no function-call/Eval tabs or Bridge capabilities are present. Native Messaging remains optional and any data sent to the local host remains subject to the same disclosure and user controls.
|
||||
|
||||
Owner-only remaining work: AMO account, signed submission, source-code archive if requested, hosted privacy URL, reviewer correspondence and approval.
|
||||
@@ -0,0 +1,14 @@
|
||||
# Limited Use Disclosure
|
||||
|
||||
Yakit Browser Agent handles browsing activity, website content, authentication information, Cookie/browser-storage data and selected network request data only to provide its prominently disclosed authenticated-browser security-testing features.
|
||||
|
||||
The extension's use of this data complies with the following commitments:
|
||||
|
||||
- Data is used only to display browser context to the user, execute the user's bounded security workflow, or transmit an explicitly granted operation to the user's local Yak/Yakit engine.
|
||||
- Data is not sold or transferred for advertising, marketing, creditworthiness, lending, or unrelated profiling.
|
||||
- Humans do not read user data except when the user deliberately includes a redacted diagnostic artifact in a support request, or when required for security, abuse prevention or law.
|
||||
- There is no developer-operated telemetry endpoint. Aggregate operational metrics remain on device.
|
||||
- Sensitive request fields and observation values are off by default. Cookie exports are redacted by default. Program Eval has a separate high-risk scope.
|
||||
- The local Native Host receives only the same purpose-bound messages the user authorized; it is not an independent data collector.
|
||||
|
||||
Store privacy-form answers, listing text and the hosted privacy policy must remain consistent with this disclosure and actual packaged behavior. See the [Chrome Limited Use guidance](https://developer.chrome.com/docs/webstore/user_data) and [Mozilla Add-on Policies](https://extensionworkshop.com/documentation/publish/add-on-policies/).
|
||||
@@ -0,0 +1,28 @@
|
||||
# Release Checklist
|
||||
|
||||
## Automated gates
|
||||
|
||||
- `pnpm verify:production`
|
||||
- `pnpm verify:ui:store`
|
||||
- `pnpm verify:ui:enterprise`
|
||||
- `pnpm verify:ui:enterprise:fallback`
|
||||
- `pnpm verify:native` (real Chromium -> Native Host -> Yak Bridge transport; temporary test copy pre-grants the otherwise optional browser permission)
|
||||
- `go test ./common/browser/... ./common/ai/aid/aitool/buildinaitools/yakscripttools` in Yak
|
||||
- Store package has no injected Eval bridge.
|
||||
- Firefox AMO package has no `page-main-world.js`, `userScripts`, `browser.invoke` or `browser.eval` capability.
|
||||
- Required permissions match `docs/PERMISSIONS.md`; Native Messaging is optional.
|
||||
- Windows manifests are written as UTF-8 without BOM and Chrome, Chromium, Edge, Brave and Firefox registrations are per-user.
|
||||
- Diagnostic and audit fixtures contain no secrets, URLs, request payloads or Eval source.
|
||||
|
||||
## Human gates
|
||||
|
||||
- Review listing text, screenshots and single-purpose statement.
|
||||
- Host and link the privacy policy.
|
||||
- Complete Chrome privacy/Limited Use and Firefox data consent declarations.
|
||||
- Build/sign Native Host binaries for Windows, macOS and Linux; scan and publish checksums.
|
||||
- Replace unpacked extension IDs in Native Host manifests with signed IDs.
|
||||
- Test current stable Chrome, Firefox, Windows, macOS and Linux packages on real machines.
|
||||
- Run `go test ./common/ai/aid/aitool/buildinaitools/...` against a seeded, writable Yakit profile database; the recursive integration package expects existing built-in tools and is not a clean-profile unit test.
|
||||
- Submit to Chrome Web Store and AMO, answer reviewer questions, and record approval/version IDs.
|
||||
|
||||
The human gates require external accounts, signing keys, store systems and operating systems. They cannot be truthfully marked approved from a source workspace; the repository contains the implementation and reviewer artifacts needed to execute them.
|
||||
Reference in New Issue
Block a user