SharedWorkerProcess.h [plain text]
#ifndef SharedWorkerProcess_h
#define SharedWorkerProcess_h
#if ENABLE(SHARED_WORKER_PROCESS)
#include "ChildProcess.h"
#include <wtf/Forward.h>
namespace WebKit {
class WebProcessConnection;
struct SharedWorkerProcessCreationParameters;
class SharedWorkerProcess : public ChildProcess {
WTF_MAKE_NONCOPYABLE(SharedWorkerProcess);
public:
static SharedWorkerProcess& shared();
void removeWebProcessConnection(WebProcessConnection*);
private:
SharedWorkerProcess();
~SharedWorkerProcess();
virtual void initializeProcess(const ChildProcessInitializationParameters&) OVERRIDE;
virtual void initializeProcessName(const ChildProcessInitializationParameters&) OVERRIDE;
virtual bool shouldTerminate() OVERRIDE;
virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&);
virtual void didClose(CoreIPC::Connection*);
virtual void didReceiveInvalidMessage(CoreIPC::Connection*, CoreIPC::StringReference messageReceiverName, CoreIPC::StringReference messageName) OVERRIDE;
void didReceiveSharedWorkerProcessMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&);
void initializeSharedWorkerProcess(const SharedWorkerProcessCreationParameters&);
void createWebProcessConnection();
void setMinimumLifetime(double);
void minimumLifetimeTimerFired();
Vector<RefPtr<WebProcessConnection>> m_webProcessConnections;
WebCore::RunLoop::Timer<SharedWorkerProcess> m_minimumLifetimeTimer;
};
}
#endif // ENABLE(SHARED_WORKER_PROCESS)
#endif // SharedWorkerProcess_h