NetworkBlobRegistry.h [plain text]
#ifndef NetworkBlobRegistry_h
#define NetworkBlobRegistry_h
#if ENABLE(BLOB) && ENABLE(NETWORK_PROCESS)
#include <WebCore/KURLHash.h>
#include <wtf/HashMap.h>
#include <wtf/HashSet.h>
namespace WebCore {
class BlobData;
}
namespace WebKit {
class NetworkConnectionToWebProcess;
class SandboxExtension;
class NetworkBlobRegistry {
WTF_MAKE_NONCOPYABLE(NetworkBlobRegistry);
public:
NetworkBlobRegistry();
static NetworkBlobRegistry& shared();
void registerBlobURL(NetworkConnectionToWebProcess*, const WebCore::KURL&, PassOwnPtr<WebCore::BlobData>, const Vector<RefPtr<SandboxExtension>>&);
void registerBlobURL(NetworkConnectionToWebProcess*, const WebCore::KURL&, const WebCore::KURL& srcURL);
void unregisterBlobURL(NetworkConnectionToWebProcess*, const WebCore::KURL&);
void connectionToWebProcessDidClose(NetworkConnectionToWebProcess*);
const Vector<RefPtr<SandboxExtension>> sandboxExtensions(const WebCore::KURL&);
private:
~NetworkBlobRegistry();
typedef HashMap<String, Vector<RefPtr<SandboxExtension>>> SandboxExtensionMap;
SandboxExtensionMap m_sandboxExtensions;
typedef HashMap<NetworkConnectionToWebProcess*, HashSet<WebCore::KURL>> BlobForConnectionMap;
BlobForConnectionMap m_blobsForConnection;
};
}
#endif // ENABLE(BLOB) && ENABLE(NETWORK_PROCESS)
#endif // NetworkBlobRegistry_h