summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
commit1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch)
tree46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h
parent32761a6cee1d0dee366b885b7b9c777e67885688 (diff)
downloadWebKitGtk-tarball-master.tar.gz
Diffstat (limited to 'Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h')
-rw-r--r--Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h94
1 files changed, 64 insertions, 30 deletions
diff --git a/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h b/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h
index ad13c702c..772840825 100644
--- a/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h
+++ b/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h
@@ -26,80 +26,114 @@
#ifndef NetworkProcessProxy_h
#define NetworkProcessProxy_h
-#if ENABLE(NETWORK_PROCESS)
-
#include "ChildProcessProxy.h"
+#include "CustomProtocolManagerProxy.h"
#include "ProcessLauncher.h"
+#include "ProcessThrottler.h"
+#include "ProcessThrottlerClient.h"
#include "WebProcessProxyMessages.h"
+#include <memory>
#include <wtf/Deque.h>
-#if ENABLE(CUSTOM_PROTOCOLS)
-#include "CustomProtocolManagerProxy.h"
-#endif
-
namespace WebCore {
class AuthenticationChallenge;
+class ProtectionSpace;
+class ResourceRequest;
+enum class ShouldSample;
+class SecurityOrigin;
+struct SecurityOriginData;
+class SessionID;
}
namespace WebKit {
class DownloadProxy;
class DownloadProxyMap;
-class WebContext;
+class WebProcessPool;
+enum class WebsiteDataFetchOption;
+enum class WebsiteDataType;
struct NetworkProcessCreationParameters;
+struct WebsiteData;
-class NetworkProcessProxy : public ChildProcessProxy {
+class NetworkProcessProxy : public ChildProcessProxy, private ProcessThrottlerClient {
public:
- static PassRefPtr<NetworkProcessProxy> create(WebContext&);
+ static Ref<NetworkProcessProxy> create(WebProcessPool&);
~NetworkProcessProxy();
- void getNetworkProcessConnection(PassRefPtr<Messages::WebProcessProxy::GetNetworkProcessConnection::DelayedReply>);
+ void getNetworkProcessConnection(Ref<Messages::WebProcessProxy::GetNetworkProcessConnection::DelayedReply>&&);
+
+ DownloadProxy* createDownloadProxy(const WebCore::ResourceRequest&);
- DownloadProxy* createDownloadProxy();
+ void fetchWebsiteData(WebCore::SessionID, OptionSet<WebsiteDataType>, OptionSet<WebsiteDataFetchOption>, std::function<void(WebsiteData)> completionHandler);
+ void deleteWebsiteData(WebCore::SessionID, OptionSet<WebsiteDataType>, std::chrono::system_clock::time_point modifiedSince, std::function<void()> completionHandler);
+ void deleteWebsiteDataForOrigins(WebCore::SessionID, OptionSet<WebKit::WebsiteDataType>, const Vector<WebCore::SecurityOriginData>& origins, const Vector<String>& cookieHostNames, std::function<void()> completionHandler);
-#if PLATFORM(MAC)
+#if PLATFORM(COCOA)
void setProcessSuppressionEnabled(bool);
#endif
+ void processReadyToSuspend();
+
+ void setIsHoldingLockedFiles(bool);
+
+ ProcessThrottler& throttler() { return m_throttler; }
+
private:
- NetworkProcessProxy(WebContext&);
+ NetworkProcessProxy(WebProcessPool&);
// ChildProcessProxy
- virtual void getLaunchOptions(ProcessLauncher::LaunchOptions&) override;
- virtual void connectionWillOpen(IPC::Connection*) override;
- virtual void connectionWillClose(IPC::Connection*) override;
+ void getLaunchOptions(ProcessLauncher::LaunchOptions&) override;
+ void connectionWillOpen(IPC::Connection&) override;
+ void processWillShutDown(IPC::Connection&) override;
- void platformGetLaunchOptions(ProcessLauncher::LaunchOptions&);
void networkProcessCrashedOrFailedToLaunch();
+ // ProcessThrottlerClient
+ void sendProcessWillSuspendImminently() override;
+ void sendPrepareToSuspend() override;
+ void sendCancelPrepareToSuspend() override;
+ void sendProcessDidResume() override;
+ void didSetAssertionState(AssertionState) override;
+
// IPC::Connection::Client
- virtual void didReceiveMessage(IPC::Connection*, IPC::MessageDecoder&) override;
- virtual void didReceiveSyncMessage(IPC::Connection*, IPC::MessageDecoder&, std::unique_ptr<IPC::MessageEncoder>&) override;
- virtual void didClose(IPC::Connection*) override;
- virtual void didReceiveInvalidMessage(IPC::Connection*, IPC::StringReference messageReceiverName, IPC::StringReference messageName) override;
+ void didReceiveMessage(IPC::Connection&, IPC::Decoder&) override;
+ void didReceiveSyncMessage(IPC::Connection&, IPC::Decoder&, std::unique_ptr<IPC::Encoder>&) override;
+ void didClose(IPC::Connection&) override;
+ void didReceiveInvalidMessage(IPC::Connection&, IPC::StringReference messageReceiverName, IPC::StringReference messageName) override;
// Message handlers
- void didReceiveNetworkProcessProxyMessage(IPC::Connection*, IPC::MessageDecoder&);
+ void didReceiveNetworkProcessProxyMessage(IPC::Connection&, IPC::Decoder&);
void didCreateNetworkConnectionToWebProcess(const IPC::Attachment&);
void didReceiveAuthenticationChallenge(uint64_t pageID, uint64_t frameID, const WebCore::AuthenticationChallenge&, uint64_t challengeID);
+ void didFetchWebsiteData(uint64_t callbackID, const WebsiteData&);
+ void didDeleteWebsiteData(uint64_t callbackID);
+ void didDeleteWebsiteDataForOrigins(uint64_t callbackID);
+ void grantSandboxExtensionsToDatabaseProcessForBlobs(uint64_t requestID, const Vector<String>& paths);
+ void logDiagnosticMessage(uint64_t pageID, const String& message, const String& description, WebCore::ShouldSample);
+ void logDiagnosticMessageWithResult(uint64_t pageID, const String& message, const String& description, uint32_t result, WebCore::ShouldSample);
+ void logDiagnosticMessageWithValue(uint64_t pageID, const String& message, const String& description, double value, unsigned significantFigures, WebCore::ShouldSample);
+#if USE(PROTECTION_SPACE_AUTH_CALLBACK)
+ void canAuthenticateAgainstProtectionSpace(uint64_t loaderID, uint64_t pageID, uint64_t frameID, const WebCore::ProtectionSpace&);
+#endif
// ProcessLauncher::Client
- virtual void didFinishLaunching(ProcessLauncher*, IPC::Connection::Identifier);
+ void didFinishLaunching(ProcessLauncher*, IPC::Connection::Identifier) override;
- WebContext& m_webContext;
+ WebProcessPool& m_processPool;
unsigned m_numPendingConnectionRequests;
- Deque<RefPtr<Messages::WebProcessProxy::GetNetworkProcessConnection::DelayedReply>> m_pendingConnectionReplies;
+ Deque<Ref<Messages::WebProcessProxy::GetNetworkProcessConnection::DelayedReply>> m_pendingConnectionReplies;
- OwnPtr<DownloadProxyMap> m_downloadProxyMap;
+ HashMap<uint64_t, std::function<void (WebsiteData)>> m_pendingFetchWebsiteDataCallbacks;
+ HashMap<uint64_t, std::function<void ()>> m_pendingDeleteWebsiteDataCallbacks;
+ HashMap<uint64_t, std::function<void ()>> m_pendingDeleteWebsiteDataForOriginsCallbacks;
-#if ENABLE(CUSTOM_PROTOCOLS)
+ std::unique_ptr<DownloadProxyMap> m_downloadProxyMap;
CustomProtocolManagerProxy m_customProtocolManagerProxy;
-#endif
+ ProcessThrottler m_throttler;
+ ProcessThrottler::BackgroundActivityToken m_tokenForHoldingLockedFiles;
};
} // namespace WebKit
-#endif // ENABLE(NETWORK_PROCESS)
-
#endif // NetworkProcessProxy_h