OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/browser/indexed_db/indexed_db_callbacks.h" | 5 #include "content/browser/indexed_db/indexed_db_callbacks.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "content/browser/indexed_db/indexed_db_connection.h" | 9 #include "content/browser/indexed_db/indexed_db_connection.h" |
10 #include "content/browser/indexed_db/indexed_db_cursor.h" | 10 #include "content/browser/indexed_db/indexed_db_cursor.h" |
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
270 const IndexedDBKey& key, | 270 const IndexedDBKey& key, |
271 const IndexedDBKeyPath& key_path) { | 271 const IndexedDBKeyPath& key_path) { |
272 DCHECK(dispatcher_host_.get()); | 272 DCHECK(dispatcher_host_.get()); |
273 | 273 |
274 DCHECK_EQ(kNoCursor, ipc_cursor_id_); | 274 DCHECK_EQ(kNoCursor, ipc_cursor_id_); |
275 DCHECK_EQ(kNoTransaction, host_transaction_id_); | 275 DCHECK_EQ(kNoTransaction, host_transaction_id_); |
276 DCHECK_EQ(kNoDatabase, ipc_database_id_); | 276 DCHECK_EQ(kNoDatabase, ipc_database_id_); |
277 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); | 277 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); |
278 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_); | 278 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_); |
279 | 279 |
280 std::string value_copy; | 280 IndexedDBMsg_CallbacksSuccessValueWithKey_Params params; |
| 281 params.ipc_thread_id = ipc_thread_id_; |
| 282 params.ipc_callbacks_id = ipc_callbacks_id_; |
| 283 params.primary_key = key; |
| 284 params.key_path = key_path; |
281 if (value && !value->empty()) | 285 if (value && !value->empty()) |
282 std::swap(value_copy, value->bits); | 286 std::swap(params.value, value->bits); |
283 | 287 |
284 dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessValueWithKey( | 288 dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessValueWithKey(params)); |
285 ipc_thread_id_, | |
286 ipc_callbacks_id_, | |
287 // TODO(alecflett): Avoid a copy here. | |
288 value_copy, | |
289 key, | |
290 key_path)); | |
291 dispatcher_host_ = NULL; | 289 dispatcher_host_ = NULL; |
292 } | 290 } |
293 | 291 |
294 void IndexedDBCallbacks::OnSuccess(IndexedDBValue* value) { | 292 void IndexedDBCallbacks::OnSuccess(IndexedDBValue* value) { |
295 DCHECK(dispatcher_host_.get()); | 293 DCHECK(dispatcher_host_.get()); |
296 | 294 |
297 DCHECK(kNoCursor == ipc_cursor_id_ || value == NULL); | 295 DCHECK(kNoCursor == ipc_cursor_id_ || value == NULL); |
298 DCHECK_EQ(kNoTransaction, host_transaction_id_); | 296 DCHECK_EQ(kNoTransaction, host_transaction_id_); |
299 DCHECK_EQ(kNoDatabase, ipc_database_id_); | 297 DCHECK_EQ(kNoDatabase, ipc_database_id_); |
300 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); | 298 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); |
301 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_); | 299 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_); |
302 | 300 |
303 std::string value_copy; | 301 IndexedDBMsg_CallbacksSuccessValue_Params params; |
| 302 params.ipc_thread_id = ipc_thread_id_; |
| 303 params.ipc_callbacks_id = ipc_callbacks_id_; |
304 if (value && !value->empty()) | 304 if (value && !value->empty()) |
305 std::swap(value_copy, value->bits); | 305 std::swap(params.value, value->bits); |
306 | 306 |
307 dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessValue( | 307 dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessValue(params)); |
308 ipc_thread_id_, | |
309 ipc_callbacks_id_, | |
310 // TODO(alecflett): avoid a copy here. | |
311 value_copy)); | |
312 dispatcher_host_ = NULL; | 308 dispatcher_host_ = NULL; |
313 } | 309 } |
314 | 310 |
315 void IndexedDBCallbacks::OnSuccess(const IndexedDBKey& value) { | 311 void IndexedDBCallbacks::OnSuccess(const IndexedDBKey& value) { |
316 DCHECK(dispatcher_host_.get()); | 312 DCHECK(dispatcher_host_.get()); |
317 | 313 |
318 DCHECK_EQ(kNoCursor, ipc_cursor_id_); | 314 DCHECK_EQ(kNoCursor, ipc_cursor_id_); |
319 DCHECK_EQ(kNoTransaction, host_transaction_id_); | 315 DCHECK_EQ(kNoTransaction, host_transaction_id_); |
320 DCHECK_EQ(kNoDatabase, ipc_database_id_); | 316 DCHECK_EQ(kNoDatabase, ipc_database_id_); |
321 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); | 317 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); |
(...skipping 26 matching lines...) Expand all Loading... |
348 DCHECK_EQ(kNoDatabase, ipc_database_id_); | 344 DCHECK_EQ(kNoDatabase, ipc_database_id_); |
349 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); | 345 DCHECK_EQ(kNoDatabaseCallbacks, ipc_database_callbacks_id_); |
350 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_); | 346 DCHECK_EQ(blink::WebIDBDataLossNone, data_loss_); |
351 | 347 |
352 dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessUndefined( | 348 dispatcher_host_->Send(new IndexedDBMsg_CallbacksSuccessUndefined( |
353 ipc_thread_id_, ipc_callbacks_id_)); | 349 ipc_thread_id_, ipc_callbacks_id_)); |
354 dispatcher_host_ = NULL; | 350 dispatcher_host_ = NULL; |
355 } | 351 } |
356 | 352 |
357 } // namespace content | 353 } // namespace content |
OLD | NEW |