Add crash test for focused iframe adopt into active document
MERGED2026wptiframe
2026. 8. 13.
Yelihi
Element 가 focus 변경 시점에 활성화된 iframe 으로 요소가 이동하게 되는 케이스에 대한 Crash Test 추가(WPT)
문제 설명
- 선행 이슈(CL 2873191): 포커스 헤제 이벤트 발생 시, 해당 엘리먼트가 분리된 별개의 문서(비활성화)로 이동하게 되는 특수한 상황에 대한 크래시 테스트가 추가 됨
- 이에 저자 Mason Freed 는 focus 요소가 현 문서(this) 에 존재하지 않을 경우 자연스럽게 return 하는 분기로 이를 해결 -> 추가로 활성화 된 문서로의 요소 이동에 대한 크래시 테스트 필요.
(active iframe 내 adoptNode 후 SetFocusedElement 내 crash test)
해결 내용
간략하게 위 해결해야 하는 문제 상황대로 script 를 작성함
<script> const root = document.documentElement; const activeIframe = document.createElement("iframe"); root.appendChild(activeIframe); const targetIframe = document.createElement("iframe"); root.appendChild(targetIframe); targetIframe.addEventListener("focusout", () => { activeIframe.contentDocument.adoptNode(targetIframe); }) targetIframe.focus(); const nextTarget = document.createElement("button"); root.appendChild(nextTarget); nextTarget.focus(); </script>추가적인 수정사항 수정
- 큰 의미없는 if 분기처리 삭제
- nextIframe -> nextTarget 으로 불필요한 iframe 삭제
테스트 방법
content-shell, image-diff 빌드 이후, run_web_tests.py 실행 결과 no crash
배운 점
멘토님께서 지정해주신 문서 수정이 아닌, 처음으로 이슈를 검색해 보고 리뷰어를 찾아가면서 진행해봤기에 어색하면서도 배워가는게 많은 경험이었습니다.
해당 해결 과정에서 AI 의 도움을 많이 받았기에 앞으로 기여할 떄도 AI를 적극 활용할 예정이지만, 사실 리뷰어 분께 코드 리뷰를 받았을 때 ai 기반으로 작성된 코드는 문제를 필요 이상으로 확장시키고 과대포장한다는 사실을 다시 인지하게 되었습니다. ai 가 작성한 코드를 모두 이해하는것을 넘어서, 실제로 필수적이고 적합한 코드인지 스스로 먼저 판단해야함을 다시 깨닫는 계기가 되었습니다.
이 외 gerrit review 과정에서 모르는 부분이 많이 있었는데 멘토님꼐서 잘 설명해주셔서 review 승인까지 잘 진행된 것 같습니다.