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

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

Issue 718383003: bindings: fixed incorrect dependency of SerializedScriptValue. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 1 month 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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698