NetworkContentRuleListManager.h [plain text]
#pragma once
#if ENABLE(CONTENT_EXTENSIONS)
#include "UserContentControllerIdentifier.h"
#include "WebCompiledContentRuleListData.h"
#include <WebCore/ContentExtensionsBackend.h>
namespace IPC {
class Connection;
class Decoder;
}
namespace WebKit {
class NetworkProcess;
class NetworkContentRuleListManager {
public:
NetworkContentRuleListManager(NetworkProcess&);
~NetworkContentRuleListManager();
void didReceiveMessage(IPC::Connection&, IPC::Decoder&);
using BackendCallback = CompletionHandler<void(WebCore::ContentExtensions::ContentExtensionsBackend&)>;
void contentExtensionsBackend(UserContentControllerIdentifier, BackendCallback&&);
private:
void addContentRuleLists(UserContentControllerIdentifier, Vector<std::pair<String, WebCompiledContentRuleListData>>&&);
void removeContentRuleList(UserContentControllerIdentifier, const String& name);
void removeAllContentRuleLists(UserContentControllerIdentifier);
void remove(UserContentControllerIdentifier);
HashMap<UserContentControllerIdentifier, std::unique_ptr<WebCore::ContentExtensions::ContentExtensionsBackend>> m_contentExtensionBackends;
HashMap<UserContentControllerIdentifier, Vector<BackendCallback>> m_pendingCallbacks;
NetworkProcess& m_networkProcess;
};
}
#endif // ENABLE(CONTENT_EXTENSIONS)