[webkit-reviews] review requested: [Bug 10200] [Drosera] Deadlock between Drosera and Safari while loading page : [Attachment 9824] Proposed fix

bugzilla-request-daemon at opendarwin.org bugzilla-request-daemon at opendarwin.org
Wed Aug 2 10:01:42 PDT 2006

Timothy Hatcher <timothy at hatcher.name> has asked  for review:
Bug 10200: [Drosera] Deadlock between Drosera and Safari while loading page

Attachment 9824: Proposed fix

------- Additional Comments from Timothy Hatcher <timothy at hatcher.name>
Prevent reentrancy in our debugger callbacks. This was causing a deadlock in
Drosera because suspendProcessIfPaused was being called during a DO call into

Preventing reentrancy also prevents scripts that Drosera injects and evaluates
from showing up in rare cases (such as a iframe loading about:blank). I thought
this would prevent cases where you call a function from the console and expect
it to break on a breakpoint in them, but this appears to never have worked even
without this change. When that is figured out we can reconsider a better
solution to reentrancy. I have filed that as bug 10214.

I also removed the NSRunLoop runMode:beforeDate: calls since DO handles this
for us since we don't use "onway void" as the return type for the callbacks.
Note: using onway void for the listener callbacks causes bad synchronization
issues and obscure crashes.

* DefaultDelegates/WebScriptDebugServer.m:
(-[WebScriptDebugServer webView:didLoadMainResourceForDataSource:]):
(-[WebScriptDebugServer webView:didEnterCallFrame:sourceId:line:forWebFrame:]):

* DefaultDelegates/WebScriptDebugServerPrivate.h:

More information about the webkit-reviews mailing list