Fix <rdar://5517707> Crash on wptv.wp.pl when "make bigger" button is clicked
authoraroben@apple.com <aroben@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 14 Dec 2007 01:07:19 +0000 (01:07 +0000)
committeraroben@apple.com <aroben@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 14 Dec 2007 01:07:19 +0000 (01:07 +0000)
commit049f3ad2f2de92a61d51f8b2fd003bc5bc4cf232
tree59ea10dfacb66c7e085ad5f028924d2811f85e78
parent25cdc4401990f0b36c3631dfdb842e6274d28984
Fix <rdar://5517707> Crash on wptv.wp.pl when "make bigger" button is clicked

WebCore:

        Fix <rdar://5517707> Crash on wptv.wp.pl when "make bigger" button is clicked

        Windows Media Player has a modal message loop that will deliver
        messages to us at inappropriate times and we will crash if we handle
        them when they are delivered. In PluginViewWin, we add a quirk for
        Media Player to set a flag whenever we give the plugin a chance to
        execute code, and in SharedTimerWin we check if the plugin is
        executing code and repost messages if so.

        Reviewed by Anders.

        * platform/win/SharedTimerWin.cpp:
        (WebCore::TimerWindowWndProc): Repost messages if we're calling a
        plugin.
        * plugins/win/PluginViewWin.cpp: Surround all calls to the plugin with
        setCallingPlugin(true/false).
        (WebCore::PluginViewWin::updateWindow):
        (WebCore::PluginViewWin::dispatchNPEvent):
        (WebCore::PluginViewWin::setNPWindowRect):
        (WebCore::PluginViewWin::start):
        (WebCore::PluginViewWin::stop):
        (WebCore::PluginViewWin::performRequest):
        (WebCore::PluginViewWin::bindingInstance):
        (WebCore::PluginViewWin::determineQuirks):
        (WebCore::PluginViewWin::setCallingPlugin): Added.
        (WebCore::PluginViewWin::isCallingPlugin): Added.
        * plugins/win/PluginViewWin.h: Added a new quirk.

WebKit/win:

        Fix <rdar://5517707> Crash on wptv.wp.pl when "make bigger" button is clicked

        Reviewed by Anders.

        * WebView.cpp:
        (WebViewWndProc): Repost paint messages and ignore all other messages
        when we're calling a plugin.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28700 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebCore/ChangeLog
WebCore/platform/win/SharedTimerWin.cpp
WebCore/plugins/win/PluginViewWin.cpp
WebCore/plugins/win/PluginViewWin.h
WebKit/win/ChangeLog
WebKit/win/WebView.cpp