LegacyPreviewLoader.h [plain text]
#pragma once
#include "PreviewConverterClient.h"
#include "PreviewConverterProvider.h"
#include <wtf/Forward.h>
#include <wtf/Noncopyable.h>
#include <wtf/RetainPtr.h>
#include <wtf/WeakPtr.h>
namespace WebCore {
class LegacyPreviewLoaderClient;
class ResourceLoader;
class ResourceResponse;
class SharedBuffer;
class LegacyPreviewLoader final : private PreviewConverterClient, private PreviewConverterProvider {
WTF_MAKE_FAST_ALLOCATED;
WTF_MAKE_NONCOPYABLE(LegacyPreviewLoader);
public:
LegacyPreviewLoader(ResourceLoader&, const ResourceResponse&);
~LegacyPreviewLoader();
bool didReceiveResponse(const ResourceResponse&);
bool didReceiveData(const char* data, unsigned length);
bool didReceiveBuffer(const SharedBuffer&);
bool didFinishLoading();
void didFail();
WEBCORE_EXPORT static void setClientForTesting(RefPtr<LegacyPreviewLoaderClient>&&);
private:
void previewConverterDidStartUpdating(PreviewConverter&) final { };
void previewConverterDidFinishUpdating(PreviewConverter&) final { };
void previewConverterDidFailUpdating(PreviewConverter&) final;
void previewConverterDidStartConverting(PreviewConverter&) final;
void previewConverterDidReceiveData(PreviewConverter&, const SharedBuffer&) final;
void previewConverterDidFinishConverting(PreviewConverter&) final;
void previewConverterDidFailConverting(PreviewConverter&) final;
void provideMainResourceForPreviewConverter(PreviewConverter&, CompletionHandler<void(const SharedBuffer*)>&&) final;
void providePasswordForPreviewConverter(PreviewConverter&, CompletionHandler<void(const String&)>&&) final;
RefPtr<PreviewConverter> m_converter;
Ref<LegacyPreviewLoaderClient> m_client;
Ref<SharedBuffer> m_originalData;
WeakPtr<ResourceLoader> m_resourceLoader;
bool m_finishedLoadingDataIntoConverter { false };
bool m_hasProcessedResponse { false };
bool m_needsToCallDidFinishLoading { false };
bool m_shouldDecidePolicyBeforeLoading;
};
}