Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(59)

Side by Side Diff: Source/bindings/v8/IDBBindingUtilities.cpp

Issue 223123002: Add blob serialization support [currently unused] to SerializedScriptValue. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Small fixes. Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 static v8::Handle<v8::Value> deserializeIDBValueBuffer(SharedBuffer* buffer, v8: :Isolate* isolate) 352 static v8::Handle<v8::Value> deserializeIDBValueBuffer(SharedBuffer* buffer, v8: :Isolate* isolate)
353 { 353 {
354 ASSERT(isolate->InContext()); 354 ASSERT(isolate->InContext());
355 if (!buffer) 355 if (!buffer)
356 return v8::Null(isolate); 356 return v8::Null(isolate);
357 357
358 // FIXME: The extra copy here can be eliminated by allowing SerializedScript Value to take a raw const char* or const uint8_t*. 358 // FIXME: The extra copy here can be eliminated by allowing SerializedScript Value to take a raw const char* or const uint8_t*.
359 Vector<uint8_t> value; 359 Vector<uint8_t> value;
360 value.append(buffer->data(), buffer->size()); 360 value.append(buffer->data(), buffer->size());
361 RefPtr<SerializedScriptValue> serializedValue = SerializedScriptValue::creat eFromWireBytes(value); 361 RefPtr<SerializedScriptValue> serializedValue = SerializedScriptValue::creat eFromWireBytes(value);
362 return serializedValue->deserialize(isolate); 362 return serializedValue->deserialize(isolate, 0, 0);
363 } 363 }
364 364
365 bool injectV8KeyIntoV8Value(v8::Handle<v8::Value> key, v8::Handle<v8::Value> val ue, const IDBKeyPath& keyPath, v8::Isolate* isolate) 365 bool injectV8KeyIntoV8Value(v8::Handle<v8::Value> key, v8::Handle<v8::Value> val ue, const IDBKeyPath& keyPath, v8::Isolate* isolate)
366 { 366 {
367 IDB_TRACE("injectIDBV8KeyIntoV8Value"); 367 IDB_TRACE("injectIDBV8KeyIntoV8Value");
368 ASSERT(isolate->InContext()); 368 ASSERT(isolate->InContext());
369 369
370 ASSERT(keyPath.type() == IDBKeyPath::StringType); 370 ASSERT(keyPath.type() == IDBKeyPath::StringType);
371 Vector<String> keyPathElements; 371 Vector<String> keyPathElements;
372 IDBKeyPathParseError error; 372 IDBKeyPathParseError error;
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 const bool allowExperimentalTypes = true; 455 const bool allowExperimentalTypes = true;
456 RefPtr<IDBKey> expectedKey = createIDBKeyFromScriptValueAndKeyPath(scriptVal ue, keyPath, isolate, allowExperimentalTypes); 456 RefPtr<IDBKey> expectedKey = createIDBKeyFromScriptValueAndKeyPath(scriptVal ue, keyPath, isolate, allowExperimentalTypes);
457 ASSERT(!expectedKey || expectedKey->isEqual(key.get())); 457 ASSERT(!expectedKey || expectedKey->isEqual(key.get()));
458 458
459 bool injected = injectV8KeyIntoV8Value(keyValue.v8Value(), scriptValue.v8Val ue(), keyPath, isolate); 459 bool injected = injectV8KeyIntoV8Value(keyValue.v8Value(), scriptValue.v8Val ue(), keyPath, isolate);
460 ASSERT_UNUSED(injected, injected); 460 ASSERT_UNUSED(injected, injected);
461 } 461 }
462 #endif 462 #endif
463 463
464 } // namespace WebCore 464 } // namespace WebCore
OLDNEW
« no previous file with comments | « no previous file | Source/bindings/v8/SerializedScriptValue.h » ('j') | Source/bindings/v8/SerializedScriptValue.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698