2009-02-06 Anders Carlsson <andersca@apple.com>
authorandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 6 Feb 2009 22:42:13 +0000 (22:42 +0000)
committerandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 6 Feb 2009 22:42:13 +0000 (22:42 +0000)
commitee59c76c43c47dcab89116d70724fbc92e598ac3
tree371e7ca95edc44b6cd55e4fc39ed88e8c8dc0952
parent3a859ac46b81bae956d6118ca7e65ecd30f53a8b
2009-02-06  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam Weinig.

        <rdar://problem/6562220>
        CrashTracer: [USER] 21 crashes in Safari at com.apple.WebKit • WebKit::NetscapePluginHostProxy::port

        Make the handling of crashes in the plug-in host more robust.

        * Plugins/Hosted/NetscapePluginHostProxy.h:
        Add m_portSet.

        * Plugins/Hosted/NetscapePluginHostProxy.mm:
        (WebKit::NetscapePluginHostProxy::NetscapePluginHostProxy):
        Initialize m_portSet.

        (WebKit::NetscapePluginHostProxy::~NetscapePluginHostProxy):
        Free m_portSet.

        (WebKit::NetscapePluginHostProxy::processRequests):
        Listen for messages on the port set. If we get a message to the port death notification port,
        then call pluginHostDied. Otherwise, process the message.

        * Plugins/Hosted/NetscapePluginInstanceProxy.h:
        * Plugins/Hosted/NetscapePluginInstanceProxy.mm:
        (WebKit::NetscapePluginInstanceProxy::cleanup):
        Factor code that should be shared between destroy() and pluginHostDied() into cleanup.

        (WebKit::NetscapePluginInstanceProxy::destroy):
        Call cleanup().

        (WebKit::NetscapePluginInstanceProxy::pluginHostDied):
        Call cleanup().

        (WebKit::NetscapePluginInstanceProxy::processRequestsAndWaitForReply):
        Call NetscapePluginHostProxy::processRequests.

        * Plugins/Hosted/ProxyInstance.mm:
        (WebKit::ProxyInstance::invalidate):
        Add a null check for the host proxy.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@40733 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebKit/mac/ChangeLog
WebKit/mac/Plugins/Hosted/NetscapePluginHostProxy.h
WebKit/mac/Plugins/Hosted/NetscapePluginHostProxy.mm
WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.h
WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm
WebKit/mac/Plugins/Hosted/ProxyInstance.mm