Diff
Modified: trunk/Source/WebKit2/ChangeLog (88869 => 88870)
--- trunk/Source/WebKit2/ChangeLog 2011-06-14 23:13:03 UTC (rev 88869)
+++ trunk/Source/WebKit2/ChangeLog 2011-06-14 23:25:45 UTC (rev 88870)
@@ -2,6 +2,51 @@
Reviewed by Sam Weinig.
+ Start using the new encode/decode functions
+ https://bugs.webkit.org/show_bug.cgi?id=62676
+
+ * Platform/CoreIPC/DataReference.cpp:
+ (CoreIPC::DataReference::encode):
+ Use encodeVariableLengthByteArray.
+
+ * Shared/UserMessageCoders.h:
+ (WebKit::UserMessageEncoder::baseEncode):
+ Use encodeVariableLengthByteArray and the new dataReference accessors.
+
+ (WebKit::UserMessageDecoder::baseDecode):
+ Use decodeVariableLengthByteArray.
+
+ * Shared/WebData.h:
+ (WebKit::WebData::dataReference):
+ Return a reference to the data.
+
+ * Shared/WebSerializedScriptValue.h:
+ (WebKit::WebSerializedScriptValue::dataReference):
+ Ditto.
+
+ * Shared/cf/ArgumentCodersCF.cpp:
+ (CoreIPC::encode):
+ Use encodeVariableLengthByteArray.
+
+ * Shared/mac/SandboxExtensionMac.mm:
+ (WebKit::SandboxExtension::Handle::encode):
+ Use encodeVariableLengthByteArray.
+
+ * WebProcess/WebPage/DecoderAdapter.cpp:
+ (WebKit::DecoderAdapter::decodeBytes):
+ Use decodeVariableLengthByteArray.
+
+ * WebProcess/WebPage/EncoderAdapter.cpp:
+ (WebKit::EncoderAdapter::dataReference):
+ Rename data() to dataReference() to indicate that it returns a reference to the data.
+
+ (WebKit::EncoderAdapter::encodeBytes):
+ Use encodeVariableLengthByteArray.
+
+2011-06-14 Anders Carlsson <[email protected]>
+
+ Reviewed by Sam Weinig.
+
Add encodeVariableLengthByteArray and decodeVariableLengthByteArray
https://bugs.webkit.org/show_bug.cgi?id=62674
Modified: trunk/Source/WebKit2/Platform/CoreIPC/DataReference.cpp (88869 => 88870)
--- trunk/Source/WebKit2/Platform/CoreIPC/DataReference.cpp 2011-06-14 23:13:03 UTC (rev 88869)
+++ trunk/Source/WebKit2/Platform/CoreIPC/DataReference.cpp 2011-06-14 23:25:45 UTC (rev 88870)
@@ -33,7 +33,7 @@
void DataReference::encode(ArgumentEncoder* encoder) const
{
- encoder->encodeBytes(m_data, m_size);
+ encoder->encodeVariableLengthByteArray(*this);
}
bool DataReference::decode(ArgumentDecoder* decoder, DataReference& dataReference)
Modified: trunk/Source/WebKit2/Shared/UserMessageCoders.h (88869 => 88870)
--- trunk/Source/WebKit2/Shared/UserMessageCoders.h 2011-06-14 23:13:03 UTC (rev 88869)
+++ trunk/Source/WebKit2/Shared/UserMessageCoders.h 2011-06-14 23:25:45 UTC (rev 88870)
@@ -28,6 +28,7 @@
#include "ArgumentDecoder.h"
#include "ArgumentEncoder.h"
+#include "DataReference.h"
#include "ImmutableArray.h"
#include "ImmutableDictionary.h"
#include "ShareableBitmap.h"
@@ -97,7 +98,7 @@
}
case APIObject::TypeSerializedScriptValue: {
WebSerializedScriptValue* scriptValue = static_cast<WebSerializedScriptValue*>(m_root);
- encoder->encodeBytes(scriptValue->data().data(), scriptValue->data().size());
+ encoder->encodeVariableLengthByteArray(scriptValue->dataReference());
return true;
}
case APIObject::TypeDouble: {
@@ -143,7 +144,7 @@
}
case APIObject::TypeData: {
WebData* data = ""
- encoder->encodeBytes(data->bytes(), data->size());
+ encoder->encodeVariableLengthByteArray(data->dataReference());
return true;
}
case APIObject::TypeCertificateInfo: {
@@ -243,10 +244,12 @@
break;
}
case APIObject::TypeSerializedScriptValue: {
- Vector<uint8_t> buffer;
- if (!decoder->decodeBytes(buffer))
+ CoreIPC::DataReference dataReference;
+ if (!decoder->decodeVariableLengthByteArray(dataReference))
return false;
- coder.m_root = WebSerializedScriptValue::adopt(buffer);
+
+ Vector<uint8_t> vector = dataReference.vector();
+ coder.m_root = WebSerializedScriptValue::adopt(vector);
break;
}
case APIObject::TypeDouble: {
@@ -300,10 +303,10 @@
return true;
}
case APIObject::TypeData: {
- Vector<uint8_t> buffer;
- if (!decoder->decodeBytes(buffer))
+ CoreIPC::DataReference dataReference;
+ if (!decoder->decodeVariableLengthByteArray(dataReference))
return false;
- coder.m_root = WebData::create(buffer);
+ coder.m_root = WebData::create(dataReference.data(), dataReference.size());
break;
}
case APIObject::TypeCertificateInfo: {
Modified: trunk/Source/WebKit2/Shared/WebData.h (88869 => 88870)
--- trunk/Source/WebKit2/Shared/WebData.h 2011-06-14 23:13:03 UTC (rev 88869)
+++ trunk/Source/WebKit2/Shared/WebData.h 2011-06-14 23:25:45 UTC (rev 88870)
@@ -27,6 +27,7 @@
#define WebData_h
#include "APIObject.h"
+#include "DataReference.h"
#include <wtf/Forward.h>
#include <wtf/Vector.h>
@@ -70,6 +71,8 @@
const unsigned char* bytes() const { return m_bytes; }
size_t size() const { return m_size; }
+ CoreIPC::DataReference dataReference() const { return CoreIPC::DataReference(m_bytes, m_size); }
+
private:
WebData(const unsigned char* bytes, size_t size, FreeDataFunction freeDataFunction, const void* context)
: m_bytes(bytes)
Modified: trunk/Source/WebKit2/Shared/WebSerializedScriptValue.h (88869 => 88870)
--- trunk/Source/WebKit2/Shared/WebSerializedScriptValue.h 2011-06-14 23:13:03 UTC (rev 88869)
+++ trunk/Source/WebKit2/Shared/WebSerializedScriptValue.h 2011-06-14 23:25:45 UTC (rev 88870)
@@ -28,6 +28,7 @@
#include "APIObject.h"
+#include "DataReference.h"
#include <WebCore/SerializedScriptValue.h>
#include <wtf/RefPtr.h>
@@ -59,9 +60,9 @@
{
return m_serializedScriptValue->deserialize(context, exception);
}
-
- const Vector<uint8_t>& data() { return m_serializedScriptValue->data(); }
+ CoreIPC::DataReference dataReference() const { return m_serializedScriptValue->data(); }
+
void* internalRepresentation() { return m_serializedScriptValue.get(); }
private:
Modified: trunk/Source/WebKit2/Shared/cf/ArgumentCodersCF.cpp (88869 => 88870)
--- trunk/Source/WebKit2/Shared/cf/ArgumentCodersCF.cpp 2011-06-14 23:13:03 UTC (rev 88869)
+++ trunk/Source/WebKit2/Shared/cf/ArgumentCodersCF.cpp 2011-06-14 23:25:45 UTC (rev 88870)
@@ -291,7 +291,7 @@
CFIndex length = CFDataGetLength(data);
const UInt8* bytePtr = CFDataGetBytePtr(data);
- encoder->encodeBytes(bytePtr, length);
+ encoder->encodeVariableLengthByteArray(CoreIPC::DataReference(bytePtr, length));
}
bool decode(ArgumentDecoder* decoder, RetainPtr<CFDataRef>& result)
@@ -376,7 +376,7 @@
ASSERT_UNUSED(result, result);
encoder->encodeEnum(numberType);
- encoder->encodeBytes(buffer.data(), buffer.size());
+ encoder->encodeVariableLengthByteArray(buffer);
}
static size_t sizeForNumberType(CFNumberType numberType)
@@ -464,7 +464,7 @@
ASSERT(numConvertedBytes == length);
encoder->encodeEnum(encoding);
- encoder->encodeBytes(buffer.data(), bufferLength);
+ encoder->encodeVariableLengthByteArray(buffer);
}
bool decode(ArgumentDecoder* decoder, RetainPtr<CFStringRef>& result)
Modified: trunk/Source/WebKit2/Shared/mac/SandboxExtensionMac.mm (88869 => 88870)
--- trunk/Source/WebKit2/Shared/mac/SandboxExtensionMac.mm 2011-06-14 23:13:03 UTC (rev 88869)
+++ trunk/Source/WebKit2/Shared/mac/SandboxExtensionMac.mm 2011-06-14 23:25:45 UTC (rev 88870)
@@ -56,7 +56,7 @@
void SandboxExtension::Handle::encode(CoreIPC::ArgumentEncoder* encoder) const
{
if (!m_sandboxExtension) {
- encoder->encodeBytes(0, 0);
+ encoder->encodeVariableLengthByteArray(CoreIPC::DataReference());
return;
}
@@ -64,7 +64,7 @@
const char *serializedFormat = WKSandboxExtensionGetSerializedFormat(m_sandboxExtension, &length);
ASSERT(serializedFormat);
- encoder->encodeBytes(reinterpret_cast<const uint8_t*>(serializedFormat), length);
+ encoder->encodeVariableLengthByteArray(CoreIPC::DataReference(reinterpret_cast<const uint8_t*>(serializedFormat), length));
// Encoding will destroy the sandbox extension locally.
WKSandboxExtensionDestroy(m_sandboxExtension);
Modified: trunk/Source/WebKit2/WebProcess/WebPage/DecoderAdapter.cpp (88869 => 88870)
--- trunk/Source/WebKit2/WebProcess/WebPage/DecoderAdapter.cpp 2011-06-14 23:13:03 UTC (rev 88869)
+++ trunk/Source/WebKit2/WebProcess/WebPage/DecoderAdapter.cpp 2011-06-14 23:25:45 UTC (rev 88870)
@@ -26,6 +26,7 @@
#include "config.h"
#include "DecoderAdapter.h"
+#include "DataReference.h"
#include "WebCoreArgumentCoders.h"
namespace WebKit {
@@ -37,7 +38,12 @@
bool DecoderAdapter::decodeBytes(Vector<uint8_t>& bytes)
{
- return m_decoder.decodeBytes(bytes);
+ CoreIPC::DataReference dataReference;
+ if (!m_decoder.decodeVariableLengthByteArray(dataReference))
+ return false;
+
+ bytes = dataReference.vector();
+ return true;
}
bool DecoderAdapter::decodeBool(bool& value)
Modified: trunk/Source/WebKit2/WebProcess/WebPage/EncoderAdapter.cpp (88869 => 88870)
--- trunk/Source/WebKit2/WebProcess/WebPage/EncoderAdapter.cpp 2011-06-14 23:13:03 UTC (rev 88869)
+++ trunk/Source/WebKit2/WebProcess/WebPage/EncoderAdapter.cpp 2011-06-14 23:25:45 UTC (rev 88870)
@@ -36,14 +36,14 @@
{
}
-CoreIPC::DataReference EncoderAdapter::data() const
+CoreIPC::DataReference EncoderAdapter::dataReference() const
{
return CoreIPC::DataReference(m_encoder->buffer(), m_encoder->bufferSize());
}
void EncoderAdapter::encodeBytes(const uint8_t* bytes, size_t size)
{
- m_encoder->encodeBytes(bytes, size);
+ m_encoder->encodeVariableLengthByteArray(CoreIPC::DataReference(bytes, size));
}
void EncoderAdapter::encodeBool(bool value)
Modified: trunk/Source/WebKit2/WebProcess/WebPage/EncoderAdapter.h (88869 => 88870)
--- trunk/Source/WebKit2/WebProcess/WebPage/EncoderAdapter.h 2011-06-14 23:13:03 UTC (rev 88869)
+++ trunk/Source/WebKit2/WebProcess/WebPage/EncoderAdapter.h 2011-06-14 23:25:45 UTC (rev 88870)
@@ -41,7 +41,7 @@
public:
EncoderAdapter();
- CoreIPC::DataReference data() const;
+ CoreIPC::DataReference dataReference() const;
private:
virtual void encodeBytes(const uint8_t*, size_t);
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp (88869 => 88870)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp 2011-06-14 23:13:03 UTC (rev 88869)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp 2011-06-14 23:25:45 UTC (rev 88870)
@@ -88,8 +88,7 @@
EncoderAdapter encoder;
item->encodeBackForwardTree(encoder);
- WebProcess::shared().connection()->send(Messages::WebProcessProxy::AddBackForwardItem(itemID,
- item->originalURLString(), item->urlString(), item->title(), encoder.data()), 0);
+ WebProcess::shared().connection()->send(Messages::WebProcessProxy::AddBackForwardItem(itemID, item->originalURLString(), item->urlString(), item->title(), encoder.dataReference()), 0);
}
void WebBackForwardListProxy::addItemFromUIProcess(uint64_t itemID, PassRefPtr<WebCore::HistoryItem> prpItem)