WebCore:
Reviewed by Darin Adler.
Speculative fix for <rdar://problem/
5479443> REGRESSION: Hang due to
infinite JS recursion on close @ engadget.com (onunload-based ad)
If page is NULL, shouldInterruptScript now returns true, so you can't
get stuck in a state in which a script executes forever without putting
up a UI to ask if it should stop.
* bindings/js/kjs_binding.cpp:
(KJS::ScriptInterpreter::shouldInterruptScript):
WebKit:
Reviewed by Darin Adler.
Fixed a hang due to an infinite script running in the window's unload
event handler, which may be the cause of <rdar://problem/
5479443>
REGRESSION: Hang due to infinite JS recursion on close @ engadget.com
(onunload-based ad)
* WebView/WebUIDelegatePrivate.h: Added FIXME.
* WebView/WebView.h: Clarified headerdoc ambiguity about when delegate
methods stop firing.
* WebView/WebView.mm:
(-[WebView _close]): The fix: don't nil out our delegates until after
detaching the FrameLoader, because the act of detaching the FrameLoader
might fire important delegate methods, like webViewShouldInterruptJavaScript:.
Don't do other tear-down either, because the unload event handler needs
to run in a fully constructed page.
This change is fairly low risk because niling out our delegates is a
very recent, never-shipped feature in WebKit, so it's unlikely that any
apps rely on it in a crazy way.
win:
Reviewed by Darin Adler.
Fixed a hang due to an infinite script running in the window's unload
event handler, which may be the cause of <rdar://problem/
5479443>
REGRESSION: Hang due to infinite JS recursion on close @ engadget.com
(onunload-based ad)
Added a bunch of WebKitMac's close features, and reordered others to
match WebKitMac.
* WebView.cpp:
(WebView::close):
(WebView::removeDragCaret):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@25612
268f45cc-cd09-0410-ab3c-
d52691b4dbfc