RemoteMediaResourceManager.h [plain text]
#pragma once
#if ENABLE(GPU_PROCESS)
#include "MessageReceiver.h"
#include "RemoteMediaResourceIdentifier.h"
#include <WebCore/PolicyChecker.h>
#include <wtf/HashMap.h>
namespace IPC {
class Connection;
class Decoder;
class DataReference;
}
namespace WebCore {
class NetworkLoadMetrics;
class ResourceRequest;
}
namespace WebKit {
class RemoteMediaResource;
class RemoteMediaResourceManager
: public IPC::MessageReceiver {
WTF_MAKE_FAST_ALLOCATED;
public:
RemoteMediaResourceManager();
~RemoteMediaResourceManager();
void addMediaResource(RemoteMediaResourceIdentifier, RemoteMediaResource&);
void removeMediaResource(RemoteMediaResourceIdentifier);
void didReceiveMessage(IPC::Connection&, IPC::Decoder&) final;
private:
void responseReceived(RemoteMediaResourceIdentifier, const WebCore::ResourceResponse&, bool, CompletionHandler<void(WebCore::ShouldContinuePolicyCheck)>&&);
void redirectReceived(RemoteMediaResourceIdentifier, WebCore::ResourceRequest&&, const WebCore::ResourceResponse&, CompletionHandler<void(WebCore::ResourceRequest&&)>&&);
void dataSent(RemoteMediaResourceIdentifier, uint64_t, uint64_t);
void dataReceived(RemoteMediaResourceIdentifier, const IPC::DataReference&);
void accessControlCheckFailed(RemoteMediaResourceIdentifier, const WebCore::ResourceError&);
void loadFailed(RemoteMediaResourceIdentifier, const WebCore::ResourceError&);
void loadFinished(RemoteMediaResourceIdentifier, const WebCore::NetworkLoadMetrics&);
HashMap<RemoteMediaResourceIdentifier, RemoteMediaResource*> m_remoteMediaResources;
};
}
#endif