diff options
Diffstat (limited to 'webkit/glue/plugins')
-rw-r--r-- | webkit/glue/plugins/webplugin_delegate_impl.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/webkit/glue/plugins/webplugin_delegate_impl.cc b/webkit/glue/plugins/webplugin_delegate_impl.cc index 774cad7..d5b5413 100644 --- a/webkit/glue/plugins/webplugin_delegate_impl.cc +++ b/webkit/glue/plugins/webplugin_delegate_impl.cc @@ -486,7 +486,11 @@ void WebPluginDelegateImpl::OnThrottleMessage() { const MSG& msg = *it; if (processed.find(msg.hwnd) == processed.end()) { WNDPROC proc = reinterpret_cast<WNDPROC>(msg.time); - CallWindowProc(proc, msg.hwnd, msg.message, msg.wParam, msg.lParam); + // It is possible that the window was closed after we queued + // this message. This is a rare event; just verify the window + // is alive. (see also bug 1259488) + if (IsWindow(msg.hwnd)) + CallWindowProc(proc, msg.hwnd, msg.message, msg.wParam, msg.lParam); processed[msg.hwnd] = 1; it = throttle_queue_.erase(it); windowless_queue.Decrement(); |