#include "config.h"
#include "WKWebArchive.h"
#include "APIArray.h"
#include "APIData.h"
#include "APIWebArchive.h"
#include "APIWebArchiveResource.h"
#include "InjectedBundleRangeHandle.h"
#include "WKBundleAPICast.h"
#include "WKSharedAPICast.h"
using namespace WebKit;
WKTypeID WKWebArchiveGetTypeID()
{
return toAPI(API::WebArchive::APIType);
}
WKWebArchiveRef WKWebArchiveCreate(WKWebArchiveResourceRef mainResourceRef, WKArrayRef subresourcesRef, WKArrayRef subframeArchivesRef)
{
RefPtr<API::WebArchive> webArchive = API::WebArchive::create(toImpl(mainResourceRef), toImpl(subresourcesRef), toImpl(subframeArchivesRef));
return toAPI(webArchive.release().leakRef());
}
WKWebArchiveRef WKWebArchiveCreateWithData(WKDataRef dataRef)
{
RefPtr<API::WebArchive> webArchive = API::WebArchive::create(toImpl(dataRef));
return toAPI(webArchive.release().leakRef());
}
WKWebArchiveRef WKWebArchiveCreateFromRange(WKBundleRangeHandleRef rangeHandleRef)
{
RefPtr<API::WebArchive> webArchive = API::WebArchive::create(toImpl(rangeHandleRef)->coreRange());
return toAPI(webArchive.release().leakRef());
}
WKWebArchiveResourceRef WKWebArchiveCopyMainResource(WKWebArchiveRef webArchiveRef)
{
RefPtr<API::WebArchiveResource> mainResource = toImpl(webArchiveRef)->mainResource();
return toAPI(mainResource.release().leakRef());
}
WKArrayRef WKWebArchiveCopySubresources(WKWebArchiveRef webArchiveRef)
{
RefPtr<API::Array> subresources = toImpl(webArchiveRef)->subresources();
return toAPI(subresources.release().leakRef());
}
WKArrayRef WKWebArchiveCopySubframeArchives(WKWebArchiveRef webArchiveRef)
{
RefPtr<API::Array> subframeArchives = toImpl(webArchiveRef)->subframeArchives();
return toAPI(subframeArchives.release().leakRef());
}
WKDataRef WKWebArchiveCopyData(WKWebArchiveRef webArchiveRef)
{
return toAPI(&toImpl(webArchiveRef)->data().leakRef());
}