OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 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 are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * 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 * | 10 * |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 probe::AsyncTaskCanceled(request_->GetExecutionContext(), this); | 71 probe::AsyncTaskCanceled(request_->GetExecutionContext(), this); |
72 request_->WebCallbacksDestroyed(); | 72 request_->WebCallbacksDestroyed(); |
73 } | 73 } |
74 } | 74 } |
75 | 75 |
76 void WebIDBCallbacksImpl::OnError(const WebIDBDatabaseError& error) { | 76 void WebIDBCallbacksImpl::OnError(const WebIDBDatabaseError& error) { |
77 if (!request_) | 77 if (!request_) |
78 return; | 78 return; |
79 | 79 |
80 probe::AsyncTask async_task(request_->GetExecutionContext(), this, "error"); | 80 probe::AsyncTask async_task(request_->GetExecutionContext(), this, "error"); |
81 request_->EnqueueResponse( | 81 request_->HandleResponse(DOMException::Create(error.Code(), error.Message())); |
82 DOMException::Create(error.Code(), error.Message())); | |
83 } | 82 } |
84 | 83 |
85 void WebIDBCallbacksImpl::OnSuccess( | 84 void WebIDBCallbacksImpl::OnSuccess( |
86 const WebVector<WebString>& web_string_list) { | 85 const WebVector<WebString>& web_string_list) { |
87 if (!request_) | 86 if (!request_) |
88 return; | 87 return; |
89 | 88 |
90 Vector<String> string_list; | 89 Vector<String> string_list; |
91 for (size_t i = 0; i < web_string_list.size(); ++i) | 90 for (size_t i = 0; i < web_string_list.size(); ++i) |
92 string_list.push_back(web_string_list[i]); | 91 string_list.push_back(web_string_list[i]); |
93 probe::AsyncTask async_task(request_->GetExecutionContext(), this, "success"); | 92 probe::AsyncTask async_task(request_->GetExecutionContext(), this, "success"); |
| 93 #if DCHECK_IS_ON() |
| 94 DCHECK(!request_->TransactionHasQueuedResults()); |
| 95 #endif // DCHECK_IS_ON() |
94 request_->EnqueueResponse(string_list); | 96 request_->EnqueueResponse(string_list); |
95 } | 97 } |
96 | 98 |
97 void WebIDBCallbacksImpl::OnSuccess(WebIDBCursor* cursor, | 99 void WebIDBCallbacksImpl::OnSuccess(WebIDBCursor* cursor, |
98 const WebIDBKey& key, | 100 const WebIDBKey& key, |
99 const WebIDBKey& primary_key, | 101 const WebIDBKey& primary_key, |
100 const WebIDBValue& value) { | 102 const WebIDBValue& value) { |
101 if (!request_) | 103 if (!request_) |
102 return; | 104 return; |
103 | 105 |
104 probe::AsyncTask async_task(request_->GetExecutionContext(), this, "success"); | 106 probe::AsyncTask async_task(request_->GetExecutionContext(), this, "success"); |
105 request_->EnqueueResponse(WTF::WrapUnique(cursor), key, primary_key, | 107 request_->HandleResponse(WTF::WrapUnique(cursor), key, primary_key, |
106 IDBValue::Create(value, request_->GetIsolate())); | 108 IDBValue::Create(value, request_->GetIsolate())); |
107 } | 109 } |
108 | 110 |
109 void WebIDBCallbacksImpl::OnSuccess(WebIDBDatabase* backend, | 111 void WebIDBCallbacksImpl::OnSuccess(WebIDBDatabase* backend, |
110 const WebIDBMetadata& metadata) { | 112 const WebIDBMetadata& metadata) { |
111 std::unique_ptr<WebIDBDatabase> db = WTF::WrapUnique(backend); | 113 std::unique_ptr<WebIDBDatabase> db = WTF::WrapUnique(backend); |
112 if (request_) { | 114 if (request_) { |
113 probe::AsyncTask async_task(request_->GetExecutionContext(), this, | 115 probe::AsyncTask async_task(request_->GetExecutionContext(), this, |
114 "success"); | 116 "success"); |
| 117 #if DCHECK_IS_ON() |
| 118 DCHECK(!request_->TransactionHasQueuedResults()); |
| 119 #endif // DCHECK_IS_ON() |
115 request_->EnqueueResponse(std::move(db), IDBDatabaseMetadata(metadata)); | 120 request_->EnqueueResponse(std::move(db), IDBDatabaseMetadata(metadata)); |
116 } else if (db) { | 121 } else if (db) { |
117 db->Close(); | 122 db->Close(); |
118 } | 123 } |
119 } | 124 } |
120 | 125 |
121 void WebIDBCallbacksImpl::OnSuccess(const WebIDBKey& key) { | 126 void WebIDBCallbacksImpl::OnSuccess(const WebIDBKey& key) { |
122 if (!request_) | 127 if (!request_) |
123 return; | 128 return; |
124 | 129 |
125 probe::AsyncTask async_task(request_->GetExecutionContext(), this, "success"); | 130 probe::AsyncTask async_task(request_->GetExecutionContext(), this, "success"); |
126 request_->EnqueueResponse(key); | 131 request_->HandleResponse(key); |
127 } | 132 } |
128 | 133 |
129 void WebIDBCallbacksImpl::OnSuccess(const WebIDBValue& value) { | 134 void WebIDBCallbacksImpl::OnSuccess(const WebIDBValue& value) { |
130 if (!request_) | 135 if (!request_) |
131 return; | 136 return; |
132 | 137 |
133 probe::AsyncTask async_task(request_->GetExecutionContext(), this, "success"); | 138 probe::AsyncTask async_task(request_->GetExecutionContext(), this, "success"); |
134 request_->EnqueueResponse(IDBValue::Create(value, request_->GetIsolate())); | 139 request_->HandleResponse(IDBValue::Create(value, request_->GetIsolate())); |
135 } | 140 } |
136 | 141 |
137 void WebIDBCallbacksImpl::OnSuccess(const WebVector<WebIDBValue>& values) { | 142 void WebIDBCallbacksImpl::OnSuccess(const WebVector<WebIDBValue>& values) { |
138 if (!request_) | 143 if (!request_) |
139 return; | 144 return; |
140 | 145 |
141 probe::AsyncTask async_task(request_->GetExecutionContext(), this, "success"); | 146 probe::AsyncTask async_task(request_->GetExecutionContext(), this, "success"); |
142 Vector<RefPtr<IDBValue>> idb_values(values.size()); | 147 Vector<RefPtr<IDBValue>> idb_values(values.size()); |
143 for (size_t i = 0; i < values.size(); ++i) | 148 for (size_t i = 0; i < values.size(); ++i) |
144 idb_values[i] = IDBValue::Create(values[i], request_->GetIsolate()); | 149 idb_values[i] = IDBValue::Create(values[i], request_->GetIsolate()); |
145 request_->EnqueueResponse(idb_values); | 150 request_->HandleResponse(idb_values); |
146 } | 151 } |
147 | 152 |
148 void WebIDBCallbacksImpl::OnSuccess(long long value) { | 153 void WebIDBCallbacksImpl::OnSuccess(long long value) { |
149 if (!request_) | 154 if (!request_) |
150 return; | 155 return; |
151 | 156 |
152 probe::AsyncTask async_task(request_->GetExecutionContext(), this, "success"); | 157 probe::AsyncTask async_task(request_->GetExecutionContext(), this, "success"); |
153 request_->EnqueueResponse(value); | 158 request_->HandleResponse(value); |
154 } | 159 } |
155 | 160 |
156 void WebIDBCallbacksImpl::OnSuccess() { | 161 void WebIDBCallbacksImpl::OnSuccess() { |
157 if (!request_) | 162 if (!request_) |
158 return; | 163 return; |
159 | 164 |
160 probe::AsyncTask async_task(request_->GetExecutionContext(), this, "success"); | 165 probe::AsyncTask async_task(request_->GetExecutionContext(), this, "success"); |
161 request_->EnqueueResponse(); | 166 request_->HandleResponse(); |
162 } | 167 } |
163 | 168 |
164 void WebIDBCallbacksImpl::OnSuccess(const WebIDBKey& key, | 169 void WebIDBCallbacksImpl::OnSuccess(const WebIDBKey& key, |
165 const WebIDBKey& primary_key, | 170 const WebIDBKey& primary_key, |
166 const WebIDBValue& value) { | 171 const WebIDBValue& value) { |
167 if (!request_) | 172 if (!request_) |
168 return; | 173 return; |
169 | 174 |
170 probe::AsyncTask async_task(request_->GetExecutionContext(), this, "success"); | 175 probe::AsyncTask async_task(request_->GetExecutionContext(), this, "success"); |
171 request_->EnqueueResponse(key, primary_key, | 176 request_->HandleResponse(key, primary_key, |
172 IDBValue::Create(value, request_->GetIsolate())); | 177 IDBValue::Create(value, request_->GetIsolate())); |
173 } | 178 } |
174 | 179 |
175 void WebIDBCallbacksImpl::OnBlocked(long long old_version) { | 180 void WebIDBCallbacksImpl::OnBlocked(long long old_version) { |
176 if (!request_) | 181 if (!request_) |
177 return; | 182 return; |
178 | 183 |
179 probe::AsyncTask async_task(request_->GetExecutionContext(), this, "blocked"); | 184 probe::AsyncTask async_task(request_->GetExecutionContext(), this, "blocked"); |
| 185 #if DCHECK_IS_ON() |
| 186 DCHECK(!request_->TransactionHasQueuedResults()); |
| 187 #endif // DCHECK_IS_ON() |
180 request_->EnqueueBlocked(old_version); | 188 request_->EnqueueBlocked(old_version); |
181 } | 189 } |
182 | 190 |
183 void WebIDBCallbacksImpl::OnUpgradeNeeded(long long old_version, | 191 void WebIDBCallbacksImpl::OnUpgradeNeeded(long long old_version, |
184 WebIDBDatabase* database, | 192 WebIDBDatabase* database, |
185 const WebIDBMetadata& metadata, | 193 const WebIDBMetadata& metadata, |
186 unsigned short data_loss, | 194 unsigned short data_loss, |
187 WebString data_loss_message) { | 195 WebString data_loss_message) { |
188 std::unique_ptr<WebIDBDatabase> db = WTF::WrapUnique(database); | 196 std::unique_ptr<WebIDBDatabase> db = WTF::WrapUnique(database); |
189 if (request_) { | 197 if (request_) { |
190 probe::AsyncTask async_task(request_->GetExecutionContext(), this, | 198 probe::AsyncTask async_task(request_->GetExecutionContext(), this, |
191 "upgradeNeeded"); | 199 "upgradeNeeded"); |
| 200 #if DCHECK_IS_ON() |
| 201 DCHECK(!request_->TransactionHasQueuedResults()); |
| 202 #endif // DCHECK_IS_ON() |
192 request_->EnqueueUpgradeNeeded( | 203 request_->EnqueueUpgradeNeeded( |
193 old_version, std::move(db), IDBDatabaseMetadata(metadata), | 204 old_version, std::move(db), IDBDatabaseMetadata(metadata), |
194 static_cast<WebIDBDataLoss>(data_loss), data_loss_message); | 205 static_cast<WebIDBDataLoss>(data_loss), data_loss_message); |
195 } else { | 206 } else { |
196 db->Close(); | 207 db->Close(); |
197 } | 208 } |
198 } | 209 } |
199 | 210 |
200 void WebIDBCallbacksImpl::Detach() { | 211 void WebIDBCallbacksImpl::Detach() { |
201 request_.Clear(); | 212 request_.Clear(); |
202 } | 213 } |
203 | 214 |
204 } // namespace blink | 215 } // namespace blink |
OLD | NEW |