# Behavior traces — microsoft/playwright

> Canonical page: https://codevetter.com/unpack/playwright/behavior-traces

# Behavior traces — microsoft/playwright

Scanned commit b630e71fcda7885885c459bcbb88e5bfa7c0a1ac (2026-10-01). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Four concrete flows were followed through source: test startup/execution, browser launch, locator click, and storage save/restore. The traces below preserve execution order and significant conditions. Error handling, force behavior, and reuse modes change these paths. They describe source behavior rather than observed runtime executions.
- Test startup: cli.js → program.parse → addTestCommand action → runTests → overridesFromOptions → loadConfigFromFile → filterProjects; arguments after '--' are removed from file filters. — [packages/playwright/cli.js#L18-19](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright/cli.js#L18-L19) [packages/playwright/src/program.ts#L55-63](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright/src/program.ts#L55-L63) [packages/playwright/src/cli/testActions.ts#L27-48](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright/src/cli/testActions.ts#L27-L48)
- Ordinary test execution: runAllTestsWithConfig → createReporters/LastRunReporter → rebaseline/global-setup/load tasks → phase/report/run tasks → runTasks; list mode instead loads and reports without those execution tasks. — [packages/playwright/src/runner/testRunner.ts#L422-451](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright/src/runner/testRunner.ts#L422-L451) [packages/playwright/src/runner/tasks.ts#L155-169](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright/src/runner/tasks.ts#L155-L169)
- Worker scheduling: createRunTestsTask checks dependencies → Dispatcher.run allocates slots and schedules → _createWorker constructs WorkerHost → WorkerHost.start creates artifacts and starts the runner; workers receive groups through runTestGroup messages. — [packages/playwright/src/runner/tasks.ts#L435-459](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright/src/runner/tasks.ts#L435-L459) [packages/playwright/src/runner/dispatcher.ts#L220-251](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright/src/runner/dispatcher.ts#L220-L251) [packages/playwright/src/runner/workerHost.ts#L70-89](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright/src/runner/workerHost.ts#L70-L89)
- Browser launch: client BrowserType.launch normalizes args/env → channel.launch → BrowserTypeDispatcher.launch checks denyLaunch → server BrowserType.launch validates options and chooses Selenium or _innerLaunchWithRetries → _innerLaunch. — [packages/playwright-core/src/client/browserType.ts#L66-82](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/client/browserType.ts#L66-L82) [packages/playwright-core/src/server/dispatchers/browserTypeDispatcher.ts#L38-43](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/server/dispatchers/browserTypeDispatcher.ts#L38-L43) [packages/playwright-core/src/server/browserType.ts#L67-112](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/server/browserType.ts#L67-L112)
- Native launch continuation: _prepareToLaunch creates/selects directories and resolves the executable → _launchProcess calls launchProcess and waits for readiness → pipe/WebSocket transport → connectToTransport; persistent default-context preparation is skipped with ignoreAllDefaultArgs. — [packages/playwright-core/src/server/browserType.ts#L135-196](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/server/browserType.ts#L135-L196) [packages/playwright-core/src/server/browserType.ts#L206-243](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/server/browserType.ts#L206-L243) [packages/playwright-core/src/server/browserType.ts#L264-280](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/server/browserType.ts#L264-L280)
- Click: Locator.click delegates to its frame with strict:true → FrameDispatcher.click → server Frame.click → _retryWithProgressIfNotConnected → handle._click → _retryPointerAction → page.mouse.click; detached targets retry and force skips prechecks/visibility waits. — [packages/playwright-core/src/client/locator.ts#L117-119](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/client/locator.ts#L117-L119) [packages/playwright-core/src/server/dispatchers/frameDispatcher.ts#L147-149](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/server/dispatchers/frameDispatcher.ts#L147-L149) [packages/playwright-core/src/server/frames.ts#L1200-1260](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/server/frames.ts#L1200-L1260) [packages/playwright-core/src/server/dom.ts#L548-553](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/server/dom.ts#L548-L553)
- Storage save: client storageState → BrowserContextDispatcher.storageState → server storageState → injected StorageScript.collect on live or temporary pages → channel result → optional mkdir/writeFile on the client. — [packages/playwright-core/src/client/browserContext.ts#L471-477](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/client/browserContext.ts#L471-L477) [packages/playwright-core/src/server/dispatchers/browserContextDispatcher.ts#L336-337](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/server/dispatchers/browserContextDispatcher.ts#L336-L337) [packages/playwright-core/src/server/browserContext.ts#L617-645](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/server/browserContext.ts#L617-L645) [packages/injected/src/storageScript.ts#L173-193](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/injected/src/storageScript.ts#L173-L193)
- Storage replacement: prepareStorageState → channel.setStorageState → dispatcher calls server mode 'api' → cache/cookie cleanup → cookie/credential restore → intercepted origin navigation and StorageScript.restore → temporary-page close; resetForReuse retains the page and removes its interceptor. — [packages/playwright-core/src/client/browserContext.ts#L480-483](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/client/browserContext.ts#L480-L483) [packages/playwright-core/src/server/dispatchers/browserContextDispatcher.ts#L340-341](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/server/dispatchers/browserContextDispatcher.ts#L340-L341) [packages/playwright-core/src/server/browserContext.ts#L670-727](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/playwright-core/src/server/browserContext.ts#L670-L727) [packages/injected/src/storageScript.ts#L276-310](https://github.com/microsoft/playwright/blob/b630e71fcda7885885c459bcbb88e5bfa7c0a1ac/packages/injected/src/storageScript.ts#L276-L310)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
