Example #1
0
JSValue JSPopStateEvent::state(ExecState* exec) const
{
    PopStateEvent* event = static_cast<PopStateEvent*>(impl());
    SerializedScriptValue* serializedState = event->serializedState();
    if (serializedState)
        return serializedState->deserialize(exec, globalObject(), 0);
    if (!event->state().hasNoValue())
        return event->state().jsValue();
    return jsNull();
}
v8::Handle<v8::Value> V8PopStateEvent::stateAccessorGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
{
    INC_STATS("DOM.PopStateEvent.state");

    PopStateEvent* event = V8PopStateEvent::toNative(info.Holder());
    SerializedScriptValue* state = event->state();
    if (!state)
        return v8::Null();

    return state->deserialize();
}
Example #3
0
static v8::Handle<v8::Value> cachedValueAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
{
    INC_STATS("DOM.TestSerializedScriptValueInterface.cachedValue._get");
    v8::Handle<v8::String> propertyName = v8::String::NewSymbol("cachedValue");
    v8::Handle<v8::Value> value = info.Holder()->GetHiddenValue(propertyName);
    if (!value.IsEmpty())
        return value;
    TestSerializedScriptValueInterface* imp = V8TestSerializedScriptValueInterface::toNative(info.Holder());
    SerializedScriptValue* serialized = imp->cachedValue();
    value = serialized ? serialized->deserialize() : v8::Handle<v8::Value>(v8::Null(info.GetIsolate()));
    info.Holder()->SetHiddenValue(propertyName, value);
    return value;
}
Example #4
0
v8::Handle<v8::Value> V8History::stateAccessorGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
{
    History* history = V8History::toNative(info.Holder());

    v8::Handle<v8::Value> value = info.Holder()->GetHiddenValue(V8HiddenPropertyName::state());

    if (!value.IsEmpty() && !history->stateChanged())
        return value;

    SerializedScriptValue* serialized = history->state();
    value = serialized ? serialized->deserialize(0, info.GetIsolate()) : v8::Handle<v8::Value>(v8Null(info.GetIsolate()));
    info.Holder()->SetHiddenValue(V8HiddenPropertyName::state(), value);

    return value;
}
Example #5
0
IDBValue::IDBValue(const SerializedScriptValue& scriptValue, const Vector<String>& blobURLs, const Vector<String>& blobFilePaths)
    : m_data(ThreadSafeDataBuffer::copyVector(scriptValue.data()))
    , m_blobURLs(blobURLs)
    , m_blobFilePaths(blobFilePaths)
{
    ASSERT(m_data.data());
}
void InProcessIDBServer::putOrAdd(const IDBRequestData& requestData, IDBKey* key, SerializedScriptValue& value, const IndexedDB::ObjectStoreOverwriteMode overwriteMode)
{
    RefPtr<InProcessIDBServer> self(this);
    IDBKeyData keyData(key);
    auto valueData = ThreadSafeDataBuffer::copyVector(value.data());

    RunLoop::current().dispatch([this, self, requestData, keyData, valueData, overwriteMode] {
        m_server->putOrAdd(requestData, keyData, valueData, overwriteMode);
    });
}
Example #7
0
IDBValue::IDBValue(const SerializedScriptValue& scriptValue)
    : m_data(ThreadSafeDataBuffer::copyVector(scriptValue.data()))
{
}
Example #8
0
IDBValue::IDBValue(const SerializedScriptValue& scriptValue)
    : m_data(ThreadSafeDataBuffer::copyVector(scriptValue.data()))
    , m_blobURLs(scriptValue.blobURLsIsolatedCopy())
{
}