WebPreviewLoaderClient.cpp [plain text]
#include "config.h"
#include "WebPreviewLoaderClient.h"
#if USE(QUICK_LOOK)
#include "Logging.h"
#include "WebPage.h"
#include "WebPageProxyMessages.h"
#include "WebProcess.h"
#include <WebCore/SharedBuffer.h>
#include <wtf/Function.h>
#include <wtf/HashMap.h>
#include <wtf/NeverDestroyed.h>
namespace WebKit {
using namespace WebCore;
WebPreviewLoaderClient::WebPreviewLoaderClient(const String& fileName, const String& uti, PageIdentifier pageID)
: m_fileName { fileName }
, m_uti { uti }
, m_pageID { pageID }
, m_buffer { SharedBuffer::create() }
{
}
WebPreviewLoaderClient::~WebPreviewLoaderClient() = default;
void WebPreviewLoaderClient::didReceiveBuffer(const SharedBuffer& buffer)
{
auto webPage = WebProcess::singleton().webPage(m_pageID);
if (!webPage)
return;
if (m_buffer->isEmpty())
webPage->didStartLoadForQuickLookDocumentInMainFrame(m_fileName, m_uti);
m_buffer->append(buffer);
}
void WebPreviewLoaderClient::didFinishLoading()
{
auto webPage = WebProcess::singleton().webPage(m_pageID);
if (!webPage)
return;
webPage->didFinishLoadForQuickLookDocumentInMainFrame(m_buffer.get());
m_buffer->clear();
}
void WebPreviewLoaderClient::didFail()
{
m_buffer->clear();
}
void WebPreviewLoaderClient::didRequestPassword(Function<void(const String&)>&& completionHandler)
{
auto webPage = WebProcess::singleton().webPage(m_pageID);
if (!webPage) {
completionHandler({ });
return;
}
webPage->requestPasswordForQuickLookDocumentInMainFrame(m_fileName, WTFMove(completionHandler));
}
}
#endif // USE(QUICK_LOOK)