summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/Plugins/PluginProcessManager.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/UIProcess/Plugins/PluginProcessManager.h')
-rw-r--r--Source/WebKit2/UIProcess/Plugins/PluginProcessManager.h36
1 files changed, 28 insertions, 8 deletions
diff --git a/Source/WebKit2/UIProcess/Plugins/PluginProcessManager.h b/Source/WebKit2/UIProcess/Plugins/PluginProcessManager.h
index 0c59a764a..dd44d622c 100644
--- a/Source/WebKit2/UIProcess/Plugins/PluginProcessManager.h
+++ b/Source/WebKit2/UIProcess/Plugins/PluginProcessManager.h
@@ -31,15 +31,17 @@
#include "PluginModuleInfo.h"
#include "PluginProcess.h"
#include "PluginProcessAttributes.h"
+#include "ProcessThrottler.h"
#include "WebProcessProxyMessages.h"
#include <wtf/Forward.h>
#include <wtf/HashSet.h>
#include <wtf/NeverDestroyed.h>
#include <wtf/Noncopyable.h>
+#include <wtf/RefCounter.h>
#include <wtf/Vector.h>
namespace IPC {
- class ArgumentEncoder;
+class Encoder;
}
namespace WebKit {
@@ -47,24 +49,26 @@ namespace WebKit {
class PluginInfoStore;
class PluginProcessProxy;
class WebProcessProxy;
-class WebPluginSiteDataManager;
class PluginProcessManager {
WTF_MAKE_NONCOPYABLE(PluginProcessManager);
friend class NeverDestroyed<PluginProcessManager>;
public:
- static PluginProcessManager& shared();
+ static PluginProcessManager& singleton();
uint64_t pluginProcessToken(const PluginModuleInfo&, PluginProcessType, PluginProcessSandboxPolicy);
- void getPluginProcessConnection(uint64_t pluginProcessToken, PassRefPtr<Messages::WebProcessProxy::GetPluginProcessConnection::DelayedReply>);
+ void getPluginProcessConnection(uint64_t pluginProcessToken, Ref<Messages::WebProcessProxy::GetPluginProcessConnection::DelayedReply>&&);
void removePluginProcessProxy(PluginProcessProxy*);
- void getSitesWithData(const PluginModuleInfo&, WebPluginSiteDataManager*, uint64_t callbackID);
- void clearSiteData(const PluginModuleInfo&, WebPluginSiteDataManager*, const Vector<String>& sites, uint64_t flags, uint64_t maxAgeInSeconds, uint64_t callbackID);
+ void fetchWebsiteData(const PluginModuleInfo&, std::function<void (Vector<String>)> completionHandler);
+ void deleteWebsiteData(const PluginModuleInfo&, std::chrono::system_clock::time_point modifiedSince, std::function<void ()> completionHandler);
+ void deleteWebsiteDataForHostNames(const PluginModuleInfo&, const Vector<String>& hostNames, std::function<void ()> completionHandler);
-#if PLATFORM(MAC)
- void setProcessSuppressionEnabled(bool);
+#if PLATFORM(COCOA)
+ inline ProcessSuppressionDisabledToken processSuppressionDisabledToken();
+ inline bool processSuppressionDisabled() const;
+ void updateProcessSuppressionDisabled(RefCounterEvent);
#endif
private:
@@ -76,8 +80,24 @@ private:
HashSet<uint64_t> m_knownTokens;
Vector<RefPtr<PluginProcessProxy>> m_pluginProcesses;
+
+#if PLATFORM(COCOA)
+ ProcessSuppressionDisabledCounter m_processSuppressionDisabledForPageCounter;
+#endif
};
+#if PLATFORM(COCOA)
+inline ProcessSuppressionDisabledToken PluginProcessManager::processSuppressionDisabledToken()
+{
+ return m_processSuppressionDisabledForPageCounter.count();
+}
+
+inline bool PluginProcessManager::processSuppressionDisabled() const
+{
+ return m_processSuppressionDisabledForPageCounter.value();
+}
+#endif
+
} // namespace WebKit
#endif // ENABLE(NETSCAPE_PLUGIN_API)