[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
http://bugzilla.opendarwin.org/show_bug.cgi?id=10200

Attachment 9824: Proposed fix
http://bugzilla.opendarwin.org/attachment.cgi?id=9824&action=edit

------- 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
Safari.

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:didParseSource:baseLineNumber:fromURL:sourceId:forWebFrame:]):
(-[WebScriptDebugServer
webView:failedToParseSource:baseLineNumber:fromURL:withError:forWebFrame:]):
(-[WebScriptDebugServer webView:didEnterCallFrame:sourceId:line:forWebFrame:]):

(-[WebScriptDebugServer
webView:willExecuteStatement:sourceId:line:forWebFrame:]):
(-[WebScriptDebugServer
webView:willLeaveCallFrame:sourceId:line:forWebFrame:]):
(-[WebScriptDebugServer
webView:exceptionWasRaised:sourceId:line:forWebFrame:]):
* DefaultDelegates/WebScriptDebugServerPrivate.h:



More information about the webkit-reviews mailing list