OLD | NEW |
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 |
11 * notice, this list of conditions and the following disclaimer in the | 11 * notice, this list of conditions and the following disclaimer in the |
12 * documentation and/or other materials provided with the distribution. | 12 * documentation and/or other materials provided with the distribution. |
13 * | 13 * |
14 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY | 14 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY |
15 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 15 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
16 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 16 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
17 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY | 17 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY |
18 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 18 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
19 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 19 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
20 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 20 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
21 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 21 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
24 */ | 24 */ |
25 | 25 |
26 #include "config.h" | 26 #include "config.h" |
27 #include "bindings/modules/v8/IDBBindingUtilities.h" | 27 #include "bindings/modules/v8/IDBBindingUtilities.h" |
28 | 28 |
29 #include "bindings/core/v8/SerializedScriptValue.h" | 29 #include "bindings/core/v8/SerializedScriptValue.h" |
| 30 #include "bindings/core/v8/SerializedScriptValueFactory.h" |
30 #include "bindings/core/v8/V8ArrayBufferView.h" | 31 #include "bindings/core/v8/V8ArrayBufferView.h" |
31 #include "bindings/core/v8/V8Binding.h" | 32 #include "bindings/core/v8/V8Binding.h" |
32 #include "bindings/core/v8/V8DOMStringList.h" | 33 #include "bindings/core/v8/V8DOMStringList.h" |
33 #include "bindings/core/v8/V8HiddenValue.h" | 34 #include "bindings/core/v8/V8HiddenValue.h" |
34 #include "bindings/core/v8/V8Uint8Array.h" | 35 #include "bindings/core/v8/V8Uint8Array.h" |
35 #include "bindings/modules/v8/V8IDBCursor.h" | 36 #include "bindings/modules/v8/V8IDBCursor.h" |
36 #include "bindings/modules/v8/V8IDBCursorWithValue.h" | 37 #include "bindings/modules/v8/V8IDBCursorWithValue.h" |
37 #include "bindings/modules/v8/V8IDBDatabase.h" | 38 #include "bindings/modules/v8/V8IDBDatabase.h" |
38 #include "bindings/modules/v8/V8IDBIndex.h" | 39 #include "bindings/modules/v8/V8IDBIndex.h" |
39 #include "bindings/modules/v8/V8IDBKeyRange.h" | 40 #include "bindings/modules/v8/V8IDBKeyRange.h" |
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
353 | 354 |
354 static v8::Local<v8::Value> deserializeIDBValueBuffer(v8::Isolate* isolate, Shar
edBuffer* buffer, const Vector<blink::WebBlobInfo>* blobInfo) | 355 static v8::Local<v8::Value> deserializeIDBValueBuffer(v8::Isolate* isolate, Shar
edBuffer* buffer, const Vector<blink::WebBlobInfo>* blobInfo) |
355 { | 356 { |
356 ASSERT(isolate->InContext()); | 357 ASSERT(isolate->InContext()); |
357 if (!buffer) | 358 if (!buffer) |
358 return v8::Null(isolate); | 359 return v8::Null(isolate); |
359 | 360 |
360 // FIXME: The extra copy here can be eliminated by allowing SerializedScript
Value to take a raw const char* or const uint8_t*. | 361 // FIXME: The extra copy here can be eliminated by allowing SerializedScript
Value to take a raw const char* or const uint8_t*. |
361 Vector<uint8_t> value; | 362 Vector<uint8_t> value; |
362 value.append(buffer->data(), buffer->size()); | 363 value.append(buffer->data(), buffer->size()); |
363 RefPtr<SerializedScriptValue> serializedValue = SerializedScriptValue::creat
eFromWireBytes(value); | 364 RefPtr<SerializedScriptValue> serializedValue = SerializedScriptValueFactory
::factory().createFromWireBytes(value); |
364 return serializedValue->deserialize(isolate, 0, blobInfo); | 365 return serializedValue->deserialize(isolate, 0, blobInfo); |
365 } | 366 } |
366 | 367 |
367 bool injectV8KeyIntoV8Value(v8::Isolate* isolate, v8::Local<v8::Value> key, v8::
Local<v8::Value> value, const IDBKeyPath& keyPath) | 368 bool injectV8KeyIntoV8Value(v8::Isolate* isolate, v8::Local<v8::Value> key, v8::
Local<v8::Value> value, const IDBKeyPath& keyPath) |
368 { | 369 { |
369 IDB_TRACE("injectIDBV8KeyIntoV8Value"); | 370 IDB_TRACE("injectIDBV8KeyIntoV8Value"); |
370 ASSERT(isolate->InContext()); | 371 ASSERT(isolate->InContext()); |
371 | 372 |
372 ASSERT(keyPath.type() == IDBKeyPath::StringType); | 373 ASSERT(keyPath.type() == IDBKeyPath::StringType); |
373 Vector<String> keyPathElements; | 374 Vector<String> keyPathElements; |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
457 const bool allowExperimentalTypes = true; | 458 const bool allowExperimentalTypes = true; |
458 IDBKey* expectedKey = createIDBKeyFromScriptValueAndKeyPathInternal(isolate,
scriptValue, keyPath, allowExperimentalTypes); | 459 IDBKey* expectedKey = createIDBKeyFromScriptValueAndKeyPathInternal(isolate,
scriptValue, keyPath, allowExperimentalTypes); |
459 ASSERT(!expectedKey || expectedKey->isEqual(key)); | 460 ASSERT(!expectedKey || expectedKey->isEqual(key)); |
460 | 461 |
461 bool injected = injectV8KeyIntoV8Value(isolate, keyValue.v8Value(), scriptVa
lue.v8Value(), keyPath); | 462 bool injected = injectV8KeyIntoV8Value(isolate, keyValue.v8Value(), scriptVa
lue.v8Value(), keyPath); |
462 ASSERT_UNUSED(injected, injected); | 463 ASSERT_UNUSED(injected, injected); |
463 } | 464 } |
464 #endif | 465 #endif |
465 | 466 |
466 } // namespace blink | 467 } // namespace blink |
OLD | NEW |