summaryrefslogtreecommitdiff
path: root/Source/WebKit2/PluginProcess/PluginProcess.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-09-11 19:54:20 +0200
committerSimon Hausmann <simon.hausmann@nokia.com>2012-09-11 19:54:20 +0200
commit88a04ac016f57c2d78e714682445dff2e7db4ade (patch)
treea48ca81ee3b29953121308168db22532d5b57fe2 /Source/WebKit2/PluginProcess/PluginProcess.cpp
parent284837daa07b29d6a63a748544a90b1f5842ac5c (diff)
downloadqtwebkit-88a04ac016f57c2d78e714682445dff2e7db4ade.tar.gz
Imported WebKit commit 42d95198c30c2d1a94a5081181aad0b2be7c316c (http://svn.webkit.org/repository/webkit/trunk@128206)
This includes the rewrite of the configure part of the build system which should fix the QtQuick2 detection and allow for further simplifications in the future
Diffstat (limited to 'Source/WebKit2/PluginProcess/PluginProcess.cpp')
-rw-r--r--Source/WebKit2/PluginProcess/PluginProcess.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/Source/WebKit2/PluginProcess/PluginProcess.cpp b/Source/WebKit2/PluginProcess/PluginProcess.cpp
index 6f868bbf8..1bffafe74 100644
--- a/Source/WebKit2/PluginProcess/PluginProcess.cpp
+++ b/Source/WebKit2/PluginProcess/PluginProcess.cpp
@@ -73,6 +73,7 @@ PluginProcess& PluginProcess::shared()
PluginProcess::PluginProcess()
: m_supportsAsynchronousPluginInitialization(false)
+ , m_minimumLifetimeTimer(RunLoop::main(), this, &PluginProcess::minimumLifetimeTimerFired)
#if PLATFORM(MAC)
, m_compositingRenderServerPort(MACH_PORT_NULL)
#endif
@@ -159,6 +160,7 @@ void PluginProcess::initializePluginProcess(const PluginProcessCreationParameter
m_pluginPath = parameters.pluginPath;
m_supportsAsynchronousPluginInitialization = parameters.supportsAsynchronousPluginInitialization;
+ setMinimumLifetime(parameters.minimumLifetime);
setTerminationTimeout(parameters.terminationTimeout);
platformInitialize(parameters);
@@ -254,6 +256,21 @@ void PluginProcess::clearSiteData(const Vector<String>& sites, uint64_t flags, u
m_connection->send(Messages::PluginProcessProxy::DidClearSiteData(callbackID), 0);
}
+void PluginProcess::setMinimumLifetime(double lifetime)
+{
+ if (lifetime <= 0.0)
+ return;
+
+ disableTermination();
+
+ m_minimumLifetimeTimer.startOneShot(lifetime);
+}
+
+void PluginProcess::minimumLifetimeTimerFired()
+{
+ enableTermination();
+}
+
} // namespace WebKit
#endif // ENABLE(PLUGIN_PROCESS)