Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ba688904ad4b2c22635c035725db087f53c6489f
      
https://github.com/WebKit/WebKit/commit/ba688904ad4b2c22635c035725db087f53c6489f
  Author: Anuj Panta <[email protected]>
  Date:   2026-10-05 (Mon, 05 Oct 2026)

  Changed paths:
    M Source/JavaScriptCore/debugger/Debugger.cpp
    M Source/JavaScriptCore/debugger/Debugger.h
    M Source/WebCore/inspector/FrameDebugger.cpp
    M Source/WebCore/inspector/FrameDebugger.h

  Log Message:
  -----------
  Web Inspector: [SI] Multiple FrameDebuggers in one process can pause at the 
same time and nest run loops
https://bugs.webkit.org/show_bug.cgi?id=325815
rdar://188827623

Reviewed by Qianlang Chen.

Under site isolation, same-site frames share a process and each has its own 
FrameDebugger
over the one VM and main thread. While one debugger is paused, JS in another 
frame can
run inside its nested run loop and pause that frame's debugger too, nesting a 
second loop.

Add Debugger::isPauseBlockedByAnotherDebugger() so a subclass can hold off 
pausing
without dropping pending pause state. breakProgram() and 
didReachDebuggerStatement()
also check it before setting any pause state. FrameDebugger uses it to allow one
paused debugger per process, and now suspends all local frames of the page while
paused, matching PageDebugger.

* Source/JavaScriptCore/debugger/Debugger.cpp:
(JSC::Debugger::breakProgram):
(JSC::Debugger::pauseIfNeeded):
(JSC::Debugger::didReachDebuggerStatement):
* Source/JavaScriptCore/debugger/Debugger.h:
(JSC::Debugger::isPauseBlockedByAnotherDebugger const):
* Source/WebCore/inspector/FrameDebugger.cpp:
(WebCore::FrameDebugger::~FrameDebugger):
(WebCore::FrameDebugger::recompileAllJSFunctions):
(WebCore::FrameDebugger::didPause):
(WebCore::FrameDebugger::didContinue):
(WebCore::FrameDebugger::isPauseBlockedByAnotherDebugger const):
(WebCore::FrameDebugger::setJavaScriptPausedInAllPages):
* Source/WebCore/inspector/FrameDebugger.h:

Canonical link: https://commits.webkit.org/322777@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to