Commit 4625933f authored by andersca@apple.com's avatar andersca@apple.com

2008-07-07 Anders Carlsson <andersca@apple.com>

        Reviewed by Darin.

        Speculative fix for     
        <rdar://problem/5839800>
        CrashTracer: [USER] 5802 crashes in Safari at com.apple.WebKit: -[WebHTMLView(WebPrivate) _updateMouseoverWithFakeEvent] + 389
        
        Set _private->closed to YES before calling -[WebPluginController destroyAllPlugins].
        
        My theory is that the plug-in destruction callbacks could end up rescheduling timers or re-adding notifications.
        This is usually protected by _private->closed, but in this case it might still be false.

        * WebView/WebHTMLView.mm:
        (-[WebHTMLView close]):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@35043 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent fdf354c6
2008-07-07 Anders Carlsson <andersca@apple.com>
Reviewed by Darin.
Speculative fix for
<rdar://problem/5839800>
CrashTracer: [USER] 5802 crashes in Safari at com.apple.WebKit: -[WebHTMLView(WebPrivate) _updateMouseoverWithFakeEvent] + 389
Set _private->closed to YES before calling -[WebPluginController destroyAllPlugins].
My theory is that the plug-in destruction callbacks could end up rescheduling timers or re-adding notifications.
This is usually protected by _private->closed, but in this case it might still be false.
* WebView/WebHTMLView.mm:
(-[WebHTMLView close]):
2008-07-05 Mark Rowe <mrowe@apple.com>
Reviewed by John Sullivan.
......
......@@ -1834,6 +1834,9 @@ static void _updateMouseoverTimerCallback(CFRunLoopTimerRef timer, void *info)
// out the archived WebHTMLView and recreating a new one if needed. So close doesn't need to do anything in that case.
if (!_private || _private->closed)
return;
_private->closed = YES;
[self _cancelUpdateMouseoverTimer];
[self _cancelUpdateFocusedAndActiveStateTimer];
[self _clearLastHitViewIfSelf];
......@@ -1844,7 +1847,7 @@ static void _updateMouseoverTimerCallback(CFRunLoopTimerRef timer, void *info)
// remove tooltips before clearing _private so removeTrackingRect: will work correctly
[self removeAllToolTips];
[_private clear];
_private->closed = YES;
Page* page = core([self _webView]);
if (page)
page->dragController()->setDraggingImageURL(KURL());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment