f7a720204a
- 移除 GovAI, nomifun-tauri, 算力盒子 的 submodule 引用 - 添加所有子项目的完整源代码 - 保留原始 .git 为 .git.bak 备份
61 lines
3.0 KiB
Plaintext
61 lines
3.0 KiB
Plaintext
NomiFun browser engine — vendored Playwright InjectedScript
|
|
============================================================
|
|
|
|
This directory (`crates/agent/nomi-browser-engine/injected/`) contains source
|
|
code vendored from the Playwright project, plus a generated bundle of it.
|
|
|
|
Upstream
|
|
--------
|
|
- Project: Playwright
|
|
- Owner: Microsoft Corporation
|
|
- Repo: https://github.com/microsoft/playwright
|
|
- License: Apache License, Version 2.0
|
|
- Pinned commit: 4b1b9d681f8a7b1dffafa973ef705f28661d4607 (2026-04-14)
|
|
- Vendored on: 2026-06-17
|
|
|
|
What is vendored
|
|
----------------
|
|
`vendor/injected/src/` — Playwright `packages/injected/src/**` (the in-page
|
|
browser toolbox: InjectedScript + actionability,
|
|
ARIA/role utils, aria-snapshot, selector engines).
|
|
`vendor/isomorphic/` — Playwright `packages/isomorphic/**` (helpers that
|
|
`@isomorphic/*` imports resolve to; esbuild inlines
|
|
only the reachable subset at bundle time).
|
|
`vendor/protocol/src/channels.d.ts`
|
|
— Playwright `packages/protocol/src/channels.d.ts`,
|
|
imported type-only (`import type ... from
|
|
'@protocol/channels'`) and erased at build time.
|
|
|
|
Most vendored source files retain their original Apache-2.0 license header
|
|
(Copyright (c) Microsoft Corporation). The following carry their own (preserved
|
|
verbatim) third-party license headers:
|
|
- `vendor/isomorphic/cssTokenizer.ts` — CC0 1.0 (public domain); original at
|
|
https://github.com/tabatkins/parse-css.
|
|
- `vendor/injected/src/clock.ts` — BSD-3-Clause (Christian Johansen / sinonjs),
|
|
with Microsoft modifications.
|
|
- `vendor/injected/src/recorder/clipPaths.ts` — MIT (Copyright (c) Microsoft).
|
|
- `vendor/isomorphic/stackTrace.ts` — MIT (Isaac Z. Schlueter et al.).
|
|
(clock.ts / clipPaths.ts / stackTrace.ts are not reachable from the
|
|
`injectedScript.ts` entry and are tree-shaken out of `dist/injected.js`; they
|
|
are vendored only because the package is vendored whole.)
|
|
|
|
Generated bundle
|
|
----------------
|
|
`dist/injected.js` is a GENERATED single-IIFE bundle of the above, produced by
|
|
`build.sh` (esbuild via bun). It is checked in so that `cargo build` never
|
|
depends on Node/bun — the Rust crate `include_str!`s it directly. It carries an
|
|
attribution banner at its head. Do not edit it by hand; regenerate via
|
|
`build.sh` after updating `vendor/`.
|
|
|
|
The bundle fixes `browserName='chromium'` at InjectedScript construction time
|
|
(see `src/injected.rs`); Playwright's WebKit/Firefox runtime branches are thus
|
|
dead-at-runtime. We vendor the package whole rather than hand-pruning, to keep
|
|
upstream upgrades tractable.
|
|
|
|
Modifications
|
|
-------------
|
|
The vendored `.ts` sources are unmodified from upstream. The only transformation
|
|
is the esbuild bundling step in `build.sh` (path-alias resolution mirroring
|
|
Playwright's tsconfig `paths`, CSS-as-text loader, IIFE wrapping with a global
|
|
name). A copy of the Apache-2.0 license text accompanies the repository.
|