RemoteMediaResource.h [plain text]
#pragma once
#if ENABLE(GPU_PROCESS)
#include "RemoteMediaResourceIdentifier.h"
#include <WebCore/PlatformMediaResourceLoader.h>
#include <wtf/WeakPtr.h>
namespace WebCore {
class NetworkLoadMetrics;
}
namespace WebKit {
class RemoteMediaPlayerProxy;
class RemoteMediaResourceManager;
class RemoteMediaResource : public WebCore::PlatformMediaResource {
public:
static Ref<RemoteMediaResource> create(RemoteMediaResourceManager&, RemoteMediaPlayerProxy&, RemoteMediaResourceIdentifier);
~RemoteMediaResource();
bool ready() const { return m_ready; }
void setReady(bool ready) { m_ready = ready; }
void stop() final;
bool didPassAccessControlCheck() const final;
void responseReceived(const WebCore::ResourceResponse&, bool, CompletionHandler<void(WebCore::ShouldContinuePolicyCheck)>&&);
void redirectReceived(WebCore::ResourceRequest&&, const WebCore::ResourceResponse&, CompletionHandler<void(WebCore::ResourceRequest&&)>&&);
void dataSent(uint64_t, uint64_t);
void dataReceived(const char*, int64_t);
void accessControlCheckFailed(const WebCore::ResourceError&);
void loadFailed(const WebCore::ResourceError&);
void loadFinished(const WebCore::NetworkLoadMetrics&);
private:
RemoteMediaResource(RemoteMediaResourceManager&, RemoteMediaPlayerProxy&, RemoteMediaResourceIdentifier);
RemoteMediaResourceManager& m_remoteMediaResourceManager;
WeakPtr<RemoteMediaPlayerProxy> m_remoteMediaPlayerProxy;
RemoteMediaResourceIdentifier m_id;
bool m_didPassAccessControlCheck { false };
bool m_ready { false };
};
}
#endif