Index: Source/bindings/v8/IDBBindingUtilities.cpp |
diff --git a/Source/bindings/v8/IDBBindingUtilities.cpp b/Source/bindings/v8/IDBBindingUtilities.cpp |
index e055f6e2f2e9a22703bf0efd7018cdb2f9871e2e..a99467f1cca444775bc3d1cab1149c483171fe62 100644 |
--- a/Source/bindings/v8/IDBBindingUtilities.cpp |
+++ b/Source/bindings/v8/IDBBindingUtilities.cpp |
@@ -53,7 +53,7 @@ |
namespace WebCore { |
-static v8::Handle<v8::Value> deserializeIDBValueBuffer(v8::Isolate*, SharedBuffer*); |
+static v8::Handle<v8::Value> deserializeIDBValueBuffer(v8::Isolate*, SharedBuffer*, const Vector<blink::WebBlobInfo>*); |
static v8::Handle<v8::Value> toV8(const IDBKeyPath& value, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate) |
{ |
@@ -143,7 +143,7 @@ static v8::Handle<v8::Value> toV8(const IDBAny* impl, v8::Handle<v8::Object> cre |
case IDBAny::IDBTransactionType: |
return toV8(impl->idbTransaction(), creationContext, isolate); |
case IDBAny::BufferType: |
- return deserializeIDBValueBuffer(isolate, impl->buffer()); |
+ return deserializeIDBValueBuffer(isolate, impl->buffer(), impl->blobInfo()); |
case IDBAny::StringType: |
return v8String(isolate, impl->string()); |
case IDBAny::IntegerType: |
@@ -153,7 +153,7 @@ static v8::Handle<v8::Value> toV8(const IDBAny* impl, v8::Handle<v8::Object> cre |
case IDBAny::KeyPathType: |
return toV8(impl->keyPath(), creationContext, isolate); |
case IDBAny::BufferKeyAndKeyPathType: { |
- v8::Handle<v8::Value> value = deserializeIDBValueBuffer(isolate, impl->buffer()); |
+ v8::Handle<v8::Value> value = deserializeIDBValueBuffer(isolate, impl->buffer(), impl->blobInfo()); |
v8::Handle<v8::Value> key = toV8(impl->key(), creationContext, isolate); |
bool injected = injectV8KeyIntoV8Value(isolate, key, value, impl->keyPath()); |
ASSERT_UNUSED(injected, injected); |
@@ -347,7 +347,7 @@ PassRefPtr<IDBKey> createIDBKeyFromScriptValueAndKeyPath(v8::Isolate* isolate, c |
return createIDBKeyFromScriptValueAndKeyPathInternal(isolate, value, keyPath); |
} |
-static v8::Handle<v8::Value> deserializeIDBValueBuffer(v8::Isolate* isolate, SharedBuffer* buffer) |
+static v8::Handle<v8::Value> deserializeIDBValueBuffer(v8::Isolate* isolate, SharedBuffer* buffer, const Vector<blink::WebBlobInfo>* blobInfo) |
{ |
ASSERT(isolate->InContext()); |
if (!buffer) |
@@ -357,7 +357,7 @@ static v8::Handle<v8::Value> deserializeIDBValueBuffer(v8::Isolate* isolate, Sha |
Vector<uint8_t> value; |
value.append(buffer->data(), buffer->size()); |
RefPtr<SerializedScriptValue> serializedValue = SerializedScriptValue::createFromWireBytes(value); |
- return serializedValue->deserialize(isolate, 0, 0); |
+ return serializedValue->deserialize(isolate, 0, blobInfo); |
} |
bool injectV8KeyIntoV8Value(v8::Isolate* isolate, v8::Handle<v8::Value> key, v8::Handle<v8::Value> value, const IDBKeyPath& keyPath) |
@@ -433,14 +433,14 @@ PassRefPtr<IDBKeyRange> scriptValueToIDBKeyRange(v8::Isolate* isolate, const Scr |
} |
#ifndef NDEBUG |
-void assertPrimaryKeyValidOrInjectable(NewScriptState* scriptState, PassRefPtr<SharedBuffer> buffer, PassRefPtr<IDBKey> prpKey, const IDBKeyPath& keyPath) |
+void assertPrimaryKeyValidOrInjectable(NewScriptState* scriptState, PassRefPtr<SharedBuffer> buffer, const Vector<blink::WebBlobInfo>* blobInfo, PassRefPtr<IDBKey> prpKey, const IDBKeyPath& keyPath) |
{ |
RefPtr<IDBKey> key(prpKey); |
NewScriptState::Scope scope(scriptState); |
v8::Isolate* isolate = scriptState->isolate(); |
ScriptValue keyValue = idbKeyToScriptValue(scriptState, key); |
- ScriptValue scriptValue(deserializeIDBValueBuffer(isolate, buffer.get()), isolate); |
+ ScriptValue scriptValue(deserializeIDBValueBuffer(isolate, buffer.get(), blobInfo), isolate); |
// This assertion is about already persisted data, so allow experimental types. |
const bool allowExperimentalTypes = true; |