피드로 돌아가기
Dev.toFrontend
원문 읽기
Provisional Raw Headers 도입을 통한 Playwright Worker Hang 해결
Scarab Field Test #022 — Playwright Worker Response Header Hang
AI 요약
Context
iframe 내 Worker script 로드 시 response.allHeaders() 호출 시 Promise가 resolve되지 않는 Hang 현상 발생. Chromium의 extra-info 이벤트가 worker-frame 세션 경로에서 누락됨에 따라 발생하는 API Boundary Failure임.
Technical Solution
- worker-frame 세션 내 worker-main-script 응답에 대한 예외 처리 로직 추가
- extra-info 이벤트 미도착 시 무한 대기하는 기존 메커니즘을 bounded fallback 구조로 변경
- 가용 가능한 provisional raw headers를 사용하여 헤더 분석을 조기 완료하는 결정론적 완료 경로 설계
- 일반 요청의 기존 extra-info 처리 경로를 유지하여 Side Effect 방지
- crNetworkManager.ts 내 Chromium 네트워크 응답 핸들링 로직 최적화
실천 포인트
1. 외부 이벤트 기반 API 설계 시 무한 대기 방지를 위한 Bounded Fallback 메커니즘 검토
2. Edge case(예: iframe 내 Worker)에서 메타데이터 생성 경로가 일반 경로와 일치하는지 검증
3. API completion contract 준수를 위해 최후 수단으로 사용할 수 있는 Provisional Data 정의