MediaDeviceSandboxExtensions.cpp [plain text]
#include "config.h"
#include "MediaDeviceSandboxExtensions.h"
#if ENABLE(MEDIA_STREAM)
#include "WebCoreArgumentCoders.h"
namespace WebKit {
MediaDeviceSandboxExtensions::MediaDeviceSandboxExtensions(Vector<String> ids, SandboxExtension::HandleArray&& handles)
: m_ids(ids)
, m_handles(WTFMove(handles))
{
ASSERT_WITH_SECURITY_IMPLICATION(m_ids.size() == m_handles.size());
}
void MediaDeviceSandboxExtensions::encode(IPC::Encoder& encoder) const
{
encoder << m_ids;
m_handles.encode(encoder);
}
bool MediaDeviceSandboxExtensions::decode(IPC::Decoder& decoder, MediaDeviceSandboxExtensions& result)
{
if (!decoder.decode(result.m_ids))
return false;
if (!SandboxExtension::HandleArray::decode(decoder, result.m_handles))
return false;
return true;
}
std::pair<String, RefPtr<SandboxExtension>> MediaDeviceSandboxExtensions::operator[](size_t i)
{
ASSERT_WITH_SECURITY_IMPLICATION(m_ids.size() == m_handles.size());
ASSERT_WITH_SECURITY_IMPLICATION(i < m_ids.size());
return { m_ids[i], SandboxExtension::create(m_handles[i]) };
}
const std::pair<String, RefPtr<SandboxExtension>> MediaDeviceSandboxExtensions::operator[](size_t i) const
{
ASSERT_WITH_SECURITY_IMPLICATION(m_ids.size() == m_handles.size());
ASSERT_WITH_SECURITY_IMPLICATION(i < m_ids.size());
return { m_ids[i], SandboxExtension::create(m_handles[i]) };
}
size_t MediaDeviceSandboxExtensions::size() const
{
return m_ids.size();
}
}
#endif // ENABLE(MEDIA_STREAM)