ServiceWorkerProcessProxy.h [plain text]
#pragma once
#if ENABLE(SERVICE_WORKER)
#include "WebProcessProxy.h"
#include <WebCore/SecurityOriginData.h>
namespace WebKit {
class AuthenticationChallengeProxy;
struct WebPreferencesStore;
class ServiceWorkerProcessProxy final : public WebProcessProxy {
public:
static Ref<ServiceWorkerProcessProxy> create(WebProcessPool&, const WebCore::SecurityOriginData&, WebsiteDataStore&);
~ServiceWorkerProcessProxy();
static bool hasRegisteredServiceWorkers(const String& serviceWorkerDirectory);
void didReceiveAuthenticationChallenge(uint64_t pageID, uint64_t frameID, Ref<AuthenticationChallengeProxy>&&);
void start(const WebPreferencesStore&, std::optional<PAL::SessionID> initialSessionID);
void setUserAgent(const String&);
void updatePreferencesStore(const WebPreferencesStore&);
const WebCore::SecurityOriginData& securityOrigin() { return m_securityOrigin; }
uint64_t pageID() const { return m_serviceWorkerPageID; }
private:
void getLaunchOptions(ProcessLauncher::LaunchOptions&) final;
void didFinishLaunching(ProcessLauncher*, IPC::Connection::Identifier) final;
bool isServiceWorkerProcess() const final { return true; }
ServiceWorkerProcessProxy(WebProcessPool&, const WebCore::SecurityOriginData&, WebsiteDataStore&);
WebCore::SecurityOriginData m_securityOrigin;
uint64_t m_serviceWorkerPageID { 0 };
};
}
SPECIALIZE_TYPE_TRAITS_BEGIN(WebKit::ServiceWorkerProcessProxy)
static bool isType(const WebKit::WebProcessProxy& webProcessProxy) { return webProcessProxy.isServiceWorkerProcess(); }
SPECIALIZE_TYPE_TRAITS_END()
#endif // ENABLE(SERVICE_WORKER)