OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 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 "modules/indexeddb/IDBCursor.h" | 26 #include "modules/indexeddb/IDBCursor.h" |
27 | 27 |
28 #include <limits> | |
29 #include <memory> | |
28 #include "bindings/core/v8/ExceptionState.h" | 30 #include "bindings/core/v8/ExceptionState.h" |
29 #include "bindings/core/v8/ScriptState.h" | 31 #include "bindings/core/v8/ScriptState.h" |
30 #include "bindings/core/v8/V8HiddenValue.h" | 32 #include "bindings/core/v8/V8PrivateProperty.h" |
31 #include "bindings/modules/v8/ToV8ForModules.h" | 33 #include "bindings/modules/v8/ToV8ForModules.h" |
32 #include "bindings/modules/v8/V8BindingForModules.h" | 34 #include "bindings/modules/v8/V8BindingForModules.h" |
33 #include "bindings/modules/v8/V8IDBRequest.h" | 35 #include "bindings/modules/v8/V8IDBRequest.h" |
34 #include "core/dom/ExceptionCode.h" | 36 #include "core/dom/ExceptionCode.h" |
35 #include "modules/IndexedDBNames.h" | 37 #include "modules/IndexedDBNames.h" |
36 #include "modules/indexeddb/IDBAny.h" | 38 #include "modules/indexeddb/IDBAny.h" |
37 #include "modules/indexeddb/IDBDatabase.h" | 39 #include "modules/indexeddb/IDBDatabase.h" |
38 #include "modules/indexeddb/IDBObjectStore.h" | 40 #include "modules/indexeddb/IDBObjectStore.h" |
39 #include "modules/indexeddb/IDBTracing.h" | 41 #include "modules/indexeddb/IDBTracing.h" |
40 #include "modules/indexeddb/IDBTransaction.h" | 42 #include "modules/indexeddb/IDBTransaction.h" |
41 #include "public/platform/modules/indexeddb/WebIDBDatabase.h" | 43 #include "public/platform/modules/indexeddb/WebIDBDatabase.h" |
42 #include "public/platform/modules/indexeddb/WebIDBKeyRange.h" | 44 #include "public/platform/modules/indexeddb/WebIDBKeyRange.h" |
43 #include <limits> | |
44 #include <memory> | |
45 | 45 |
46 using blink::WebIDBCursor; | 46 using blink::WebIDBCursor; |
47 using blink::WebIDBDatabase; | 47 using blink::WebIDBDatabase; |
48 | 48 |
49 namespace blink { | 49 namespace blink { |
50 | 50 |
51 IDBCursor* IDBCursor::create(std::unique_ptr<WebIDBCursor> backend, | 51 IDBCursor* IDBCursor::create(std::unique_ptr<WebIDBCursor> backend, |
52 WebIDBCursorDirection direction, | 52 WebIDBCursorDirection direction, |
53 IDBRequest* request, | 53 IDBRequest* request, |
54 IDBAny* source, | 54 IDBAny* source, |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
86 | 86 |
87 // Keep the request's wrapper alive as long as the cursor's wrapper is alive, | 87 // Keep the request's wrapper alive as long as the cursor's wrapper is alive, |
88 // so that the same script object is seen each time the cursor is used. | 88 // so that the same script object is seen each time the cursor is used. |
89 v8::Local<v8::Object> IDBCursor::associateWithWrapper( | 89 v8::Local<v8::Object> IDBCursor::associateWithWrapper( |
90 v8::Isolate* isolate, | 90 v8::Isolate* isolate, |
91 const WrapperTypeInfo* wrapperType, | 91 const WrapperTypeInfo* wrapperType, |
92 v8::Local<v8::Object> wrapper) { | 92 v8::Local<v8::Object> wrapper) { |
93 wrapper = | 93 wrapper = |
94 ScriptWrappable::associateWithWrapper(isolate, wrapperType, wrapper); | 94 ScriptWrappable::associateWithWrapper(isolate, wrapperType, wrapper); |
95 if (!wrapper.IsEmpty()) { | 95 if (!wrapper.IsEmpty()) { |
96 V8HiddenValue::setHiddenValue(ScriptState::current(isolate), wrapper, | 96 V8PrivateProperty::getIDBCursorRequest(isolate).set( |
97 V8HiddenValue::idbCursorRequest(isolate), | 97 wrapper, ToV8(m_request.get(), wrapper, isolate)); |
haraken
2017/03/30 14:04:45
Ditto.
peria
2017/04/04 05:48:58
Acknowledged.
| |
98 ToV8(m_request.get(), wrapper, isolate)); | |
99 } | 98 } |
100 return wrapper; | 99 return wrapper; |
101 } | 100 } |
102 | 101 |
103 IDBRequest* IDBCursor::update(ScriptState* scriptState, | 102 IDBRequest* IDBCursor::update(ScriptState* scriptState, |
104 const ScriptValue& value, | 103 const ScriptValue& value, |
105 ExceptionState& exceptionState) { | 104 ExceptionState& exceptionState) { |
106 IDB_TRACE("IDBCursor::update"); | 105 IDB_TRACE("IDBCursor::update"); |
107 | 106 |
108 if (m_transaction->isFinished() || m_transaction->isFinishing()) { | 107 if (m_transaction->isFinished() || m_transaction->isFinishing()) { |
(...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
484 case WebIDBCursorDirectionPrevNoDuplicate: | 483 case WebIDBCursorDirectionPrevNoDuplicate: |
485 return IndexedDBNames::prevunique; | 484 return IndexedDBNames::prevunique; |
486 | 485 |
487 default: | 486 default: |
488 NOTREACHED(); | 487 NOTREACHED(); |
489 return IndexedDBNames::next; | 488 return IndexedDBNames::next; |
490 } | 489 } |
491 } | 490 } |
492 | 491 |
493 } // namespace blink | 492 } // namespace blink |
OLD | NEW |