SecurityOriginData.cpp [plain text]
#include "config.h"
#include "SecurityOriginData.h"
#include "APIObject.h"
#include "ImmutableArray.h"
#include "WebCoreArgumentCoders.h"
#include "WebSecurityOrigin.h"
using namespace WebCore;
namespace WebKit {
void SecurityOriginData::encode(CoreIPC::ArgumentEncoder* encoder) const
{
encoder->encode(protocol);
encoder->encode(host);
encoder->encode(port);
}
bool SecurityOriginData::decode(CoreIPC::ArgumentDecoder* decoder, SecurityOriginData& securityOriginData)
{
if (!decoder->decode(securityOriginData.protocol))
return false;
if (!decoder->decode(securityOriginData.host))
return false;
if (!decoder->decode(securityOriginData.port))
return false;
return true;
}
void performAPICallbackWithSecurityOriginDataVector(const Vector<SecurityOriginData>& originDatas, ArrayCallback* callback)
{
if (!callback) {
return;
}
size_t originDataCount = originDatas.size();
Vector<RefPtr<APIObject> > securityOrigins;
securityOrigins.reserveCapacity(originDataCount);
for (size_t i = 0; i < originDataCount; ++i) {
SecurityOriginData originData = originDatas[i];
RefPtr<APIObject> origin = WebSecurityOrigin::create(originData.protocol, originData.host, originData.port);
if (!origin)
continue;
securityOrigins.uncheckedAppend(origin);
}
callback->performCallbackWithReturnValue(ImmutableArray::adopt(securityOrigins).get());
}
}