diff options
author | mbelshe@google.com <mbelshe@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-07-31 17:59:08 +0000 |
---|---|---|
committer | mbelshe@google.com <mbelshe@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-07-31 17:59:08 +0000 |
commit | dc36e9c53d3760bbdc4253b786c4686f4cf7a3ea (patch) | |
tree | ff5c714996a34b02ee325d6fd8ed161bc32d433c /webkit | |
parent | 8b18340410905fbeee3a91cb9f0bc01aef993153 (diff) | |
download | chromium_src-dc36e9c53d3760bbdc4253b786c4686f4cf7a3ea.zip chromium_src-dc36e9c53d3760bbdc4253b786c4686f4cf7a3ea.tar.gz chromium_src-dc36e9c53d3760bbdc4253b786c4686f4cf7a3ea.tar.bz2 |
Turns out this fix works pretty well; the failures remaining after this fix are not related to throttled messages.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-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(); |