diff options
Diffstat (limited to 'Source/WebKit2/PluginProcess')
9 files changed, 57 insertions, 36 deletions
diff --git a/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp b/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp index 42e9e6d..3dc7e8e 100644 --- a/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp +++ b/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp @@ -23,10 +23,11 @@ * THE POSSIBILITY OF SUCH DAMAGE. */ -#if ENABLE(PLUGIN_PROCESS) - +#include "config.h" #include "PluginControllerProxy.h" +#if ENABLE(PLUGIN_PROCESS) + #include "DataReference.h" #include "NPObjectProxy.h" #include "NPRemoteObjectMap.h" @@ -249,6 +250,11 @@ void PluginControllerProxy::setComplexTextInputEnabled(bool complexTextInputEnab m_connection->connection()->send(Messages::PluginProxy::SetComplexTextInputEnabled(complexTextInputEnabled), m_pluginInstanceID); } +mach_port_t PluginControllerProxy::compositingRenderServerPort() +{ + return PluginProcess::shared().compositingRenderServerPort(); +} + String PluginControllerProxy::proxiesForURL(const String& urlString) { String proxyString; diff --git a/Source/WebKit2/PluginProcess/PluginControllerProxy.h b/Source/WebKit2/PluginProcess/PluginControllerProxy.h index 339c151..c39542a 100644 --- a/Source/WebKit2/PluginProcess/PluginControllerProxy.h +++ b/Source/WebKit2/PluginProcess/PluginControllerProxy.h @@ -90,6 +90,7 @@ private: #if PLATFORM(MAC) virtual void setComplexTextInputEnabled(bool); + virtual mach_port_t compositingRenderServerPort(); #endif virtual String proxiesForURL(const String&); diff --git a/Source/WebKit2/PluginProcess/PluginProcess.cpp b/Source/WebKit2/PluginProcess/PluginProcess.cpp index 6124f9a..58eedba 100644 --- a/Source/WebKit2/PluginProcess/PluginProcess.cpp +++ b/Source/WebKit2/PluginProcess/PluginProcess.cpp @@ -23,10 +23,11 @@ * THE POSSIBILITY OF SUCH DAMAGE. */ -#if ENABLE(PLUGIN_PROCESS) - +#include "config.h" #include "PluginProcess.h" +#if ENABLE(PLUGIN_PROCESS) + #include "MachPort.h" #include "NetscapePluginModule.h" #include "PluginProcessProxyMessages.h" @@ -55,11 +56,12 @@ PluginProcess::~PluginProcess() { } -void PluginProcess::initializeConnection(CoreIPC::Connection::Identifier serverIdentifier) +void PluginProcess::initialize(CoreIPC::Connection::Identifier serverIdentifier, RunLoop* runLoop) { ASSERT(!m_connection); - m_connection = CoreIPC::Connection::createClientConnection(serverIdentifier, this, RunLoop::main()); + m_connection = CoreIPC::Connection::createClientConnection(serverIdentifier, this, runLoop); + m_connection->setDidCloseOnConnectionWorkQueueCallback(didCloseOnConnectionWorkQueue); m_connection->open(); } @@ -109,7 +111,14 @@ void PluginProcess::didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC::Mess { } -void PluginProcess::initialize(const PluginProcessCreationParameters& parameters) +NO_RETURN void PluginProcess::didFailToSendSyncMessage(CoreIPC::Connection*) +{ + // We were making a synchronous call to a web process that doesn't exist any more. + // Callers are unlikely to be prepared for an error like this, so it's best to exit immediately. + exit(0); +} + +void PluginProcess::initializePluginProcess(const PluginProcessCreationParameters& parameters) { ASSERT(!m_pluginModule); diff --git a/Source/WebKit2/PluginProcess/PluginProcess.h b/Source/WebKit2/PluginProcess/PluginProcess.h index 6c221e7..89d4bcd 100644 --- a/Source/WebKit2/PluginProcess/PluginProcess.h +++ b/Source/WebKit2/PluginProcess/PluginProcess.h @@ -44,7 +44,7 @@ class PluginProcess : ChildProcess { public: static PluginProcess& shared(); - void initializeConnection(CoreIPC::Connection::Identifier); + void initialize(CoreIPC::Connection::Identifier, RunLoop*); void removeWebProcessConnection(WebProcessConnection* webProcessConnection); NetscapePluginModule* netscapePluginModule(); @@ -65,10 +65,11 @@ private: virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*); virtual void didClose(CoreIPC::Connection*); virtual void didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC::MessageID); + virtual void didFailToSendSyncMessage(CoreIPC::Connection*); // Message handlers. void didReceivePluginProcessMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*); - void initialize(const PluginProcessCreationParameters&); + void initializePluginProcess(const PluginProcessCreationParameters&); void createWebProcessConnection(); void shutdownTimerFired(); diff --git a/Source/WebKit2/PluginProcess/PluginProcess.messages.in b/Source/WebKit2/PluginProcess/PluginProcess.messages.in index e9b0fd3..3d45e0e 100644 --- a/Source/WebKit2/PluginProcess/PluginProcess.messages.in +++ b/Source/WebKit2/PluginProcess/PluginProcess.messages.in @@ -23,8 +23,8 @@ #if ENABLE(PLUGIN_PROCESS) messages -> PluginProcess { - # Initializes the plug-in. - Initialize(WebKit::PluginProcessCreationParameters processCreationParameters) + # Initializes the plug-in process. + InitializePluginProcess(WebKit::PluginProcessCreationParameters processCreationParameters) # Creates a web process connection. When the connection has been created, # The plug-in process sends back a DidCreateWebProcessConnection message with diff --git a/Source/WebKit2/PluginProcess/WebProcessConnection.cpp b/Source/WebKit2/PluginProcess/WebProcessConnection.cpp index ae5d7ca..b58f4d0 100644 --- a/Source/WebKit2/PluginProcess/WebProcessConnection.cpp +++ b/Source/WebKit2/PluginProcess/WebProcessConnection.cpp @@ -23,10 +23,11 @@ * THE POSSIBILITY OF SUCH DAMAGE. */ -#if ENABLE(PLUGIN_PROCESS) - +#include "config.h" #include "WebProcessConnection.h" +#if ENABLE(PLUGIN_PROCESS) + #include "NPRemoteObjectMap.h" #include "PluginControllerProxy.h" #include "PluginProcess.h" diff --git a/Source/WebKit2/PluginProcess/mac/PluginControllerProxyMac.mm b/Source/WebKit2/PluginProcess/mac/PluginControllerProxyMac.mm index 40d4f6d..610ca32 100644 --- a/Source/WebKit2/PluginProcess/mac/PluginControllerProxyMac.mm +++ b/Source/WebKit2/PluginProcess/mac/PluginControllerProxyMac.mm @@ -23,13 +23,14 @@ * THE POSSIBILITY OF SUCH DAMAGE. */ -#if ENABLE(PLUGIN_PROCESS) +#import "config.h" +#import "PluginControllerProxy.h" -#include "PluginControllerProxy.h" +#if ENABLE(PLUGIN_PROCESS) -#include <QuartzCore/QuartzCore.h> -#include "PluginProcess.h" -#include "WebKitSystemInterface.h" +#import <QuartzCore/QuartzCore.h> +#import "PluginProcess.h" +#import "WebKitSystemInterface.h" using namespace WebCore; diff --git a/Source/WebKit2/PluginProcess/mac/PluginProcessMac.mm b/Source/WebKit2/PluginProcess/mac/PluginProcessMac.mm index 3919c8b..5a54719 100644 --- a/Source/WebKit2/PluginProcess/mac/PluginProcessMac.mm +++ b/Source/WebKit2/PluginProcess/mac/PluginProcessMac.mm @@ -23,18 +23,19 @@ * THE POSSIBILITY OF SUCH DAMAGE. */ +#import "config.h" +#import "PluginProcess.h" + #if ENABLE(PLUGIN_PROCESS) // FIXME (WebKit2) <rdar://problem/8728860> WebKit2 needs to be localized #define UI_STRING(__str, __desc) [NSString stringWithUTF8String:__str] - -#include "PluginProcess.h" -#include "NetscapePlugin.h" -#include "PluginProcessShim.h" -#include "PluginProcessCreationParameters.h" -#include <WebKitSystemInterface.h> -#include <dlfcn.h> +#import "NetscapePlugin.h" +#import "PluginProcessShim.h" +#import "PluginProcessCreationParameters.h" +#import <WebKitSystemInterface.h> +#import <dlfcn.h> namespace WebKit { diff --git a/Source/WebKit2/PluginProcess/mac/PluginProcessMainMac.mm b/Source/WebKit2/PluginProcess/mac/PluginProcessMainMac.mm index 36cc2a1..d39353a 100644 --- a/Source/WebKit2/PluginProcess/mac/PluginProcessMainMac.mm +++ b/Source/WebKit2/PluginProcess/mac/PluginProcessMainMac.mm @@ -23,18 +23,19 @@ * THE POSSIBILITY OF SUCH DAMAGE. */ -#if ENABLE(PLUGIN_PROCESS) +#import "config.h" +#import "PluginProcessMain.h" -#include "PluginProcessMain.h" +#if ENABLE(PLUGIN_PROCESS) -#include "CommandLine.h" -#include "PluginProcess.h" -#include "RunLoop.h" -#include <runtime/InitializeThreading.h> -#include <servers/bootstrap.h> -#include <wtf/text/CString.h> -#include <wtf/text/WTFString.h> -#include <WebKitSystemInterface.h> +#import "CommandLine.h" +#import "PluginProcess.h" +#import "RunLoop.h" +#import <runtime/InitializeThreading.h> +#import <servers/bootstrap.h> +#import <wtf/text/CString.h> +#import <wtf/text/WTFString.h> +#import <WebKitSystemInterface.h> // FIXME: We should be doing this another way. extern "C" kern_return_t bootstrap_look_up2(mach_port_t, const name_t, mach_port_t*, pid_t, uint64_t); @@ -84,7 +85,7 @@ int PluginProcessMain(const CommandLine& commandLine) PluginProcess::shared().initializeShim(); // Initialize the plug-in process connection. - PluginProcess::shared().initializeConnection(serverPort); + PluginProcess::shared().initialize(serverPort, RunLoop::main()); [NSApplication sharedApplication]; |