Skip to content

[Bug]: WebKit on Windows hangs when CONNECT proxy closes socket after 407 doesn't reconnect with credentials #40768

@himkumar-ms

Description

@himkumar-ms

Version

1.59.1

Steps to reproduce

git clone https://github.com/himkumar-ms/playwright-webkit-proxy-407-repro.git
cd playwright-webkit-proxy-407-repro
npm install
npm run install-browsers
npm run repro

The repro starts a minimal authenticated HTTP CONNECT proxy that sends 407 Proxy Authentication Required and closes the socket (standard behavior for many proxy implementations). It then tests page.goto('https://example.com') through the proxy with Chromium and WebKit.

Expected behavior

Both browsers reconnect with Proxy-Authorization credentials on a new TCP connection and navigate successfully, the same way WebKit on Linux does.

Actual behavior

Chromium succeeds. WebKit on Windows hangs until timeout.

[PROXY] CONNECT 407 -> example.com:443 (socket destroyed)
[PROXY] CONNECT 200 -> example.com:443 (auth valid, tunneling)
[Chromium] RESULT: ✅ SUCCESS in 124ms — title: "Example Domain"

[PROXY] CONNECT 407 -> example.com:443 (socket destroyed)
[PROXY] CONNECT 407 -> example.com:443 (socket destroyed)
[WebKit] RESULT: ❌ FAILED after 15006ms — page.goto: Timeout 15000ms exceeded.

Proxy logs show WebKit reconnects but sends CONNECT without Authorization, gets 407 again, and hangs.

WebKit on Linux works because it handles the closed socket by reconnecting with credentials. WebKit on Windows does not.

Additional context

No response

Environment

System:
  OS: Windows 11 10.0.26200
  CPU: (16) x64 AMD Ryzen 7 PRO 7840U w/ Radeon 780M Graphics
  Memory: 4.69 GB / 23.67 GB
Binaries:
  Node: 20.18.0 - C:\Program Files\nodejs\node.EXE
  npm: 11.6.2 - C:\Program Files\nodejs\npm.CMD
npmPackages:
  playwright: ^1.59.1 => 1.59.1

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions