#include "config.h"
#include "WKDownload.h"
#include "APIArray.h"
#include "APIData.h"
#include "APIURLRequest.h"
#include "DownloadProxy.h"
#include "WKAPICast.h"
#include "WebPageProxy.h"
using namespace WebKit;
WKTypeID WKDownloadGetTypeID()
{
return toAPI(DownloadProxy::APIType);
}
uint64_t WKDownloadGetID(WKDownloadRef download)
{
return toImpl(download)->downloadID().downloadID();
}
WKURLRequestRef WKDownloadCopyRequest(WKDownloadRef download)
{
return toAPI(&API::URLRequest::create(toImpl(download)->request()).leakRef());
}
WKDataRef WKDownloadGetResumeData(WKDownloadRef download)
{
return toAPI(toImpl(download)->resumeData());
}
void WKDownloadCancel(WKDownloadRef download)
{
return toImpl(download)->cancel();
}
WKPageRef WKDownloadGetOriginatingPage(WKDownloadRef download)
{
return toAPI(toImpl(download)->originatingPage());
}
WKArrayRef WKDownloadCopyRedirectChain(WKDownloadRef download)
{
auto& redirectChain = toImpl(download)->redirectChain();
Vector<RefPtr<API::Object>> urls;
urls.reserveInitialCapacity(redirectChain.size());
for (auto& redirectURL : redirectChain)
urls.uncheckedAppend(API::URL::create(redirectURL.string()));
return toAPI(&API::Array::create(WTFMove(urls)).leakRef());
}
bool WKDownloadGetWasUserInitiated(WKDownloadRef download)
{
return toImpl(download)->wasUserInitiated();
}