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

Side by Side Diff: third_party/WebKit/Source/modules/indexeddb/IDBObservation.cpp

Issue 2125213002: [IndexedDB] Propogating changes to observers : Renderer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lifetime
Patch Set: Propogating Changes to Renderer Created 4 years, 5 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "modules/indexeddb/IDBObserverChangesRecord.h" 5 #include "modules/indexeddb/IDBObservation.h"
6 6
7 #include "bindings/core/v8/ExceptionState.h" 7 #include "bindings/core/v8/ExceptionState.h"
8 #include "bindings/core/v8/ScriptState.h" 8 #include "bindings/core/v8/ScriptState.h"
9 #include "bindings/core/v8/ToV8.h" 9 #include "bindings/core/v8/ToV8.h"
10 #include "bindings/modules/v8/ToV8ForModules.h" 10 #include "bindings/modules/v8/ToV8ForModules.h"
11 #include "bindings/modules/v8/V8BindingForModules.h" 11 #include "bindings/modules/v8/V8BindingForModules.h"
12 #include "modules/IndexedDBNames.h" 12 #include "modules/IndexedDBNames.h"
13 #include "modules/indexeddb/IDBAny.h" 13 #include "modules/indexeddb/IDBAny.h"
14 #include "modules/indexeddb/IDBKey.h" 14 #include "modules/indexeddb/IDBKeyRange.h"
15 #include "modules/indexeddb/IDBValue.h" 15 #include "modules/indexeddb/IDBValue.h"
16 #include "public/platform/modules/indexeddb/WebIDBObservation.h"
16 17
17 namespace blink { 18 namespace blink {
18 19
19 IDBObserverChangesRecord::~IDBObserverChangesRecord() {} 20 IDBObservation::~IDBObservation() {}
20 21
21 ScriptValue IDBObserverChangesRecord::key(ScriptState* scriptState) 22 ScriptValue IDBObservation::key(ScriptState* scriptState)
22 { 23 {
23 return ScriptValue::from(scriptState, m_key); 24 return ScriptValue::from(scriptState, m_keyRange);
24 } 25 }
25 26
26 ScriptValue IDBObserverChangesRecord::value(ScriptState* scriptState) 27 ScriptValue IDBObservation::value(ScriptState* scriptState)
27 { 28 {
28 IDBAny* value; 29 IDBAny* value;
29 if (!m_value) { 30 if (!m_value) {
30 value = IDBAny::createUndefined(); 31 value = IDBAny::createUndefined();
31 } else { 32 } else {
32 value = IDBAny::create(m_value); 33 value = IDBAny::create(m_value);
33 } 34 }
34 ScriptValue scriptValue = ScriptValue::from(scriptState, value); 35 ScriptValue scriptValue = ScriptValue::from(scriptState, value);
35 return scriptValue; 36 return scriptValue;
36 } 37 }
37 38
38 WebIDBOperationType IDBObserverChangesRecord::stringToOperationType(const String & type) 39 WebIDBOperationType IDBObservation::stringToOperationType(const String& type)
39 { 40 {
40 if (type == IndexedDBNames::add) 41 if (type == IndexedDBNames::add)
41 return WebIDBAdd; 42 return WebIDBAdd;
42 if (type == IndexedDBNames::put) 43 if (type == IndexedDBNames::put)
43 return WebIDBPut; 44 return WebIDBPut;
44 if (type == IndexedDBNames::kDelete) 45 if (type == IndexedDBNames::kDelete)
45 return WebIDBDelete; 46 return WebIDBDelete;
46 if (type == IndexedDBNames::clear) 47 if (type == IndexedDBNames::clear)
47 return WebIDBClear; 48 return WebIDBClear;
48 49
49 NOTREACHED(); 50 NOTREACHED();
50 return WebIDBAdd; 51 return WebIDBAdd;
51 } 52 }
52 53
53 const String& IDBObserverChangesRecord::type() const 54 const String& IDBObservation::type() const
54 { 55 {
55 switch (m_operationType) { 56 switch (m_operationType) {
56 case WebIDBAdd: 57 case WebIDBAdd:
57 return IndexedDBNames::add; 58 return IndexedDBNames::add;
58 59
59 case WebIDBPut: 60 case WebIDBPut:
60 return IndexedDBNames::put; 61 return IndexedDBNames::put;
61 62
62 case WebIDBDelete: 63 case WebIDBDelete:
63 return IndexedDBNames::kDelete; 64 return IndexedDBNames::kDelete;
64 65
65 case WebIDBClear: 66 case WebIDBClear:
66 return IndexedDBNames::clear; 67 return IndexedDBNames::clear;
67 68
68 default: 69 default:
69 NOTREACHED(); 70 NOTREACHED();
70 return IndexedDBNames::add; 71 return IndexedDBNames::add;
71 } 72 }
72 } 73 }
73 74
74 IDBObserverChangesRecord* IDBObserverChangesRecord::create(IDBKey* key, PassRefP tr<IDBValue> value, WebIDBOperationType type) 75 IDBObservation* IDBObservation::create(const WebIDBObservation& observation)
75 { 76 {
76 return new IDBObserverChangesRecord(key, value, type); 77 return new IDBObservation(observation);
77 } 78 }
78 79
79 IDBObserverChangesRecord::IDBObserverChangesRecord(IDBKey* key, PassRefPtr<IDBVa lue> value, WebIDBOperationType type) 80 IDBObservation::IDBObservation(const WebIDBObservation& observation)
80 : m_key(key) 81 : m_keyRange(observation.keyRange)
81 , m_value(value) 82 , m_value(IDBValue::create(observation.value))
82 , m_operationType(type) 83 , m_operationType(observation.type)
83 { 84 {
84 } 85 }
85 86
86 DEFINE_TRACE(IDBObserverChangesRecord) 87 DEFINE_TRACE(IDBObservation)
87 { 88 {
88 visitor->trace(m_key); 89 visitor->trace(m_keyRange);
89 } 90 }
90 91
91 } // namespace blink 92 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698