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

Side by Side Diff: content/common/indexed_db/indexed_db_messages.h

Issue 2125213002: [IndexedDB] Propogating changes to observers : Renderer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lifetime
Patch Set: Test added 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 (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 // Message definition file, included multiple times, hence no include guard. 5 // Message definition file, included multiple times, hence no include guard.
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <bitset>
9 #include <string> 10 #include <string>
10 #include <utility> 11 #include <utility>
11 #include <vector> 12 #include <vector>
12 13
13 #include "content/common/indexed_db/indexed_db_key.h" 14 #include "content/common/indexed_db/indexed_db_key.h"
14 #include "content/common/indexed_db/indexed_db_key_path.h" 15 #include "content/common/indexed_db/indexed_db_key_path.h"
15 #include "content/common/indexed_db/indexed_db_key_range.h" 16 #include "content/common/indexed_db/indexed_db_key_range.h"
16 #include "content/common/indexed_db/indexed_db_param_traits.h" 17 #include "content/common/indexed_db/indexed_db_param_traits.h"
17 #include "ipc/ipc_message_macros.h" 18 #include "ipc/ipc_message_macros.h"
19 #include "ipc/ipc_message_utils.h"
18 #include "ipc/ipc_param_traits.h" 20 #include "ipc/ipc_param_traits.h"
19 #include "third_party/WebKit/public/platform/modules/indexeddb/WebIDBTypes.h" 21 #include "third_party/WebKit/public/platform/modules/indexeddb/WebIDBTypes.h"
20 #include "url/origin.h" 22 #include "url/origin.h"
21 23
22 // Singly-included section for typedefs in multiply-included file. 24 // Singly-included section for typedefs in multiply-included file.
23 #ifndef CONTENT_COMMON_INDEXED_DB_INDEXED_DB_MESSAGES_H_ 25 #ifndef CONTENT_COMMON_INDEXED_DB_INDEXED_DB_MESSAGES_H_
24 #define CONTENT_COMMON_INDEXED_DB_INDEXED_DB_MESSAGES_H_ 26 #define CONTENT_COMMON_INDEXED_DB_INDEXED_DB_MESSAGES_H_
25 27
26 // An index id, and corresponding set of keys to insert. 28 // An index id, and corresponding set of keys to insert.
27 typedef std::pair<int64_t, std::vector<content::IndexedDBKey>> IndexKeys; 29 typedef std::pair<int64_t, std::vector<content::IndexedDBKey>> IndexKeys;
28 30
29 #endif // CONTENT_COMMON_INDEXED_DB_INDEXED_DB_MESSAGES_H_ 31 #endif // CONTENT_COMMON_INDEXED_DB_INDEXED_DB_MESSAGES_H_
30 32
31 #undef IPC_MESSAGE_EXPORT 33 #undef IPC_MESSAGE_EXPORT
32 #define IPC_MESSAGE_EXPORT CONTENT_EXPORT 34 #define IPC_MESSAGE_EXPORT CONTENT_EXPORT
33 #define IPC_MESSAGE_START IndexedDBMsgStart 35 #define IPC_MESSAGE_START IndexedDBMsgStart
34 36
35 // Argument structures used in messages 37 // Argument structures used in messages
36 38
37 IPC_ENUM_TRAITS_MAX_VALUE(blink::WebIDBCursorDirection, 39 IPC_ENUM_TRAITS_MAX_VALUE(blink::WebIDBCursorDirection,
38 blink::WebIDBCursorDirectionLast) 40 blink::WebIDBCursorDirectionLast)
39 IPC_ENUM_TRAITS_MAX_VALUE(blink::WebIDBPutMode, blink::WebIDBPutModeLast) 41 IPC_ENUM_TRAITS_MAX_VALUE(blink::WebIDBPutMode, blink::WebIDBPutModeLast)
40 IPC_ENUM_TRAITS_MAX_VALUE(blink::WebIDBTaskType, blink::WebIDBTaskTypeLast) 42 IPC_ENUM_TRAITS_MAX_VALUE(blink::WebIDBTaskType, blink::WebIDBTaskTypeLast)
41 IPC_ENUM_TRAITS_MAX_VALUE(blink::WebIDBTransactionMode, 43 IPC_ENUM_TRAITS_MAX_VALUE(blink::WebIDBTransactionMode,
42 blink::WebIDBTransactionModeLast) 44 blink::WebIDBTransactionModeLast)
43 45
44 IPC_ENUM_TRAITS_MAX_VALUE(blink::WebIDBDataLoss, blink::WebIDBDataLossTotal) 46 IPC_ENUM_TRAITS_MAX_VALUE(blink::WebIDBDataLoss, blink::WebIDBDataLossTotal)
47 IPC_ENUM_TRAITS_MAX_VALUE(blink::WebIDBOperationType,
48 blink::WebIDBOperationTypeLast)
45 49
46 // Used to enumerate indexed databases. 50 // Used to enumerate indexed databases.
47 IPC_STRUCT_BEGIN(IndexedDBHostMsg_FactoryGetDatabaseNames_Params) 51 IPC_STRUCT_BEGIN(IndexedDBHostMsg_FactoryGetDatabaseNames_Params)
48 // The response should have these ids. 52 // The response should have these ids.
49 IPC_STRUCT_MEMBER(int32_t, ipc_thread_id) 53 IPC_STRUCT_MEMBER(int32_t, ipc_thread_id)
50 IPC_STRUCT_MEMBER(int32_t, ipc_callbacks_id) 54 IPC_STRUCT_MEMBER(int32_t, ipc_callbacks_id)
51 // The origin doing the initiating. 55 // The origin doing the initiating.
52 IPC_STRUCT_MEMBER(url::Origin, origin) 56 IPC_STRUCT_MEMBER(url::Origin, origin)
53 IPC_STRUCT_END() 57 IPC_STRUCT_END()
54 58
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 IPC_STRUCT_MEMBER(std::vector<IndexedDBMsg_BlobOrFileInfo>, blob_or_file_info) 170 IPC_STRUCT_MEMBER(std::vector<IndexedDBMsg_BlobOrFileInfo>, blob_or_file_info)
167 IPC_STRUCT_END() 171 IPC_STRUCT_END()
168 172
169 IPC_STRUCT_BEGIN_WITH_PARENT(IndexedDBMsg_ReturnValue, IndexedDBMsg_Value) 173 IPC_STRUCT_BEGIN_WITH_PARENT(IndexedDBMsg_ReturnValue, IndexedDBMsg_Value)
170 IPC_STRUCT_TRAITS_PARENT(IndexedDBMsg_Value) 174 IPC_STRUCT_TRAITS_PARENT(IndexedDBMsg_Value)
171 // Optional primary key & path used only when key generator specified. 175 // Optional primary key & path used only when key generator specified.
172 IPC_STRUCT_MEMBER(content::IndexedDBKey, primary_key) 176 IPC_STRUCT_MEMBER(content::IndexedDBKey, primary_key)
173 IPC_STRUCT_MEMBER(content::IndexedDBKeyPath, key_path) 177 IPC_STRUCT_MEMBER(content::IndexedDBKeyPath, key_path)
174 IPC_STRUCT_END() 178 IPC_STRUCT_END()
175 179
180 // WebIDBDatabase::observe() message.
181 IPC_STRUCT_BEGIN(IndexedDBHostMsg_DatabaseObserve_Params)
182 // The database the observer observers on.
183 IPC_STRUCT_MEMBER(int32_t, ipc_database_id)
184 // The transaction it's associated with.
185 IPC_STRUCT_MEMBER(int32_t, transaction_id)
186 IPC_STRUCT_MEMBER(int32_t, observer_id)
187 IPC_STRUCT_MEMBER(bool, include_transaction)
188 IPC_STRUCT_MEMBER(bool, no_records)
189 IPC_STRUCT_MEMBER(bool, values)
190 IPC_STRUCT_MEMBER(unsigned short, operation_types)
191 IPC_STRUCT_END()
192
176 // Used to set a value in an object store. 193 // Used to set a value in an object store.
177 IPC_STRUCT_BEGIN(IndexedDBHostMsg_DatabasePut_Params) 194 IPC_STRUCT_BEGIN(IndexedDBHostMsg_DatabasePut_Params)
178 // The id any response should contain. 195 // The id any response should contain.
179 IPC_STRUCT_MEMBER(int32_t, ipc_thread_id) 196 IPC_STRUCT_MEMBER(int32_t, ipc_thread_id)
180 IPC_STRUCT_MEMBER(int32_t, ipc_callbacks_id) 197 IPC_STRUCT_MEMBER(int32_t, ipc_callbacks_id)
181 // The database the object store belongs to. 198 // The database the object store belongs to.
182 IPC_STRUCT_MEMBER(int32_t, ipc_database_id) 199 IPC_STRUCT_MEMBER(int32_t, ipc_database_id)
183 // The transaction it's associated with. 200 // The transaction it's associated with.
184 IPC_STRUCT_MEMBER(int64_t, transaction_id) 201 IPC_STRUCT_MEMBER(int64_t, transaction_id)
185 // The object store's id. 202 // The object store's id.
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 IPC_STRUCT_MEMBER(int32_t, ipc_thread_id) 368 IPC_STRUCT_MEMBER(int32_t, ipc_thread_id)
352 IPC_STRUCT_MEMBER(int32_t, ipc_callbacks_id) 369 IPC_STRUCT_MEMBER(int32_t, ipc_callbacks_id)
353 IPC_STRUCT_MEMBER(int32_t, ipc_database_callbacks_id) 370 IPC_STRUCT_MEMBER(int32_t, ipc_database_callbacks_id)
354 IPC_STRUCT_MEMBER(int32_t, ipc_database_id) 371 IPC_STRUCT_MEMBER(int32_t, ipc_database_id)
355 IPC_STRUCT_MEMBER(int64_t, old_version) 372 IPC_STRUCT_MEMBER(int64_t, old_version)
356 IPC_STRUCT_MEMBER(blink::WebIDBDataLoss, data_loss) 373 IPC_STRUCT_MEMBER(blink::WebIDBDataLoss, data_loss)
357 IPC_STRUCT_MEMBER(std::string, data_loss_message) 374 IPC_STRUCT_MEMBER(std::string, data_loss_message)
358 IPC_STRUCT_MEMBER(IndexedDBDatabaseMetadata, idb_metadata) 375 IPC_STRUCT_MEMBER(IndexedDBDatabaseMetadata, idb_metadata)
359 IPC_STRUCT_END() 376 IPC_STRUCT_END()
360 377
378 IPC_STRUCT_BEGIN(IndexedDBMsg_Observation)
379 IPC_STRUCT_MEMBER(int64_t, object_store_id)
380 IPC_STRUCT_MEMBER(blink::WebIDBOperationType, type)
381 IPC_STRUCT_MEMBER(content::IndexedDBKeyRange, key_range)
382 IPC_STRUCT_END()
383
384 // IPC_MESSAGE macros fail on the std::map, when expanding. We need to define
385 // a type to avoid that.
386 // Map observer_id to corresponding set of indices in observations.
387 using ObservationIndex = std::map<int32_t, std::vector<int32_t>>;
388
389 IPC_STRUCT_BEGIN(IndexedDBMsg_ObserverChanges)
390 IPC_STRUCT_MEMBER(ObservationIndex, observation_index)
391 IPC_STRUCT_MEMBER(std::vector<IndexedDBMsg_Observation>, observations)
392 IPC_STRUCT_END()
393
361 // Indexed DB messages sent from the browser to the renderer. 394 // Indexed DB messages sent from the browser to the renderer.
362 395
363 // The thread_id needs to be the first parameter in these messages. In the IO 396 // The thread_id needs to be the first parameter in these messages. In the IO
364 // thread on the renderer/client process, an IDB message filter assumes the 397 // thread on the renderer/client process, an IDB message filter assumes the
365 // thread_id is the first int. 398 // thread_id is the first int.
366 399
367 // IDBCallback message handlers. 400 // IDBCallback message handlers.
368 IPC_MESSAGE_CONTROL1(IndexedDBMsg_CallbacksSuccessIDBCursor, 401 IPC_MESSAGE_CONTROL1(IndexedDBMsg_CallbacksSuccessIDBCursor,
369 IndexedDBMsg_CallbacksSuccessIDBCursor_Params) 402 IndexedDBMsg_CallbacksSuccessIDBCursor_Params)
370 403
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 IPC_MESSAGE_CONTROL5(IndexedDBMsg_DatabaseCallbacksAbort, 465 IPC_MESSAGE_CONTROL5(IndexedDBMsg_DatabaseCallbacksAbort,
433 int32_t, /* ipc_thread_id */ 466 int32_t, /* ipc_thread_id */
434 int32_t, /* ipc_database_callbacks_id */ 467 int32_t, /* ipc_database_callbacks_id */
435 int64_t, /* transaction_id */ 468 int64_t, /* transaction_id */
436 int, /* code */ 469 int, /* code */
437 base::string16) /* message */ 470 base::string16) /* message */
438 IPC_MESSAGE_CONTROL3(IndexedDBMsg_DatabaseCallbacksComplete, 471 IPC_MESSAGE_CONTROL3(IndexedDBMsg_DatabaseCallbacksComplete,
439 int32_t, /* ipc_thread_id */ 472 int32_t, /* ipc_thread_id */
440 int32_t, /* ipc_database_callbacks_id */ 473 int32_t, /* ipc_database_callbacks_id */
441 int64_t) /* transaction_id */ 474 int64_t) /* transaction_id */
475 IPC_MESSAGE_CONTROL3(IndexedDBMsg_DatabaseCallbacksChanges,
476 int32_t, /* ipc_thread_id */
477 int32_t, /* ipc_database_id */
478 IndexedDBMsg_ObserverChanges)
442 479
443 // Indexed DB messages sent from the renderer to the browser. 480 // Indexed DB messages sent from the renderer to the browser.
444 481
445 // WebIDBCursor::advance() message. 482 // WebIDBCursor::advance() message.
446 IPC_MESSAGE_CONTROL4(IndexedDBHostMsg_CursorAdvance, 483 IPC_MESSAGE_CONTROL4(IndexedDBHostMsg_CursorAdvance,
447 int32_t, /* ipc_cursor_id */ 484 int32_t, /* ipc_cursor_id */
448 int32_t, /* ipc_thread_id */ 485 int32_t, /* ipc_thread_id */
449 int32_t, /* ipc_callbacks_id */ 486 int32_t, /* ipc_callbacks_id */
450 uint32_t) /* count */ 487 uint32_t) /* count */
451 488
(...skipping 26 matching lines...) Expand all
478 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_FactoryOpen, 515 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_FactoryOpen,
479 IndexedDBHostMsg_FactoryOpen_Params) 516 IndexedDBHostMsg_FactoryOpen_Params)
480 517
481 // WebIDBFactory::deleteDatabase() message. 518 // WebIDBFactory::deleteDatabase() message.
482 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_FactoryDeleteDatabase, 519 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_FactoryDeleteDatabase,
483 IndexedDBHostMsg_FactoryDeleteDatabase_Params) 520 IndexedDBHostMsg_FactoryDeleteDatabase_Params)
484 521
485 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_AckReceivedBlobs, 522 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_AckReceivedBlobs,
486 std::vector<std::string>) /* uuids */ 523 std::vector<std::string>) /* uuids */
487 524
488 // WebIDBDatabase::observe() message.
489 IPC_MESSAGE_CONTROL3(IndexedDBHostMsg_DatabaseObserve,
490 int32_t, /* ipc_database_id */
491 int64_t, /* transaction_id */
492 int32_t) /* observer_id */
493
494 // WebIDBDatabase::unobserve() message. 525 // WebIDBDatabase::unobserve() message.
495 IPC_MESSAGE_CONTROL2(IndexedDBHostMsg_DatabaseUnobserve, 526 IPC_MESSAGE_CONTROL2(IndexedDBHostMsg_DatabaseUnobserve,
496 int32_t, /* ipc_database_id */ 527 int32_t, /* ipc_database_id */
497 std::vector<int32_t>) /* list of observer_id */ 528 std::vector<int32_t>) /* list of observer_id */
498 529
499 // WebIDBDatabase::createObjectStore() message. 530 // WebIDBDatabase::createObjectStore() message.
500 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_DatabaseCreateObjectStore, 531 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_DatabaseCreateObjectStore,
501 IndexedDBHostMsg_DatabaseCreateObjectStore_Params) 532 IndexedDBHostMsg_DatabaseCreateObjectStore_Params)
502 533
503 // WebIDBDatabase::deleteObjectStore() message. 534 // WebIDBDatabase::deleteObjectStore() message.
(...skipping 19 matching lines...) Expand all
523 int32_t /* ipc_database_id */) 554 int32_t /* ipc_database_id */)
524 555
525 // WebIDBDatabase::get() message. 556 // WebIDBDatabase::get() message.
526 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_DatabaseGet, 557 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_DatabaseGet,
527 IndexedDBHostMsg_DatabaseGet_Params) 558 IndexedDBHostMsg_DatabaseGet_Params)
528 559
529 // WebIDBDatabase::getAll() message. 560 // WebIDBDatabase::getAll() message.
530 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_DatabaseGetAll, 561 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_DatabaseGetAll,
531 IndexedDBHostMsg_DatabaseGetAll_Params) 562 IndexedDBHostMsg_DatabaseGetAll_Params)
532 563
564 // WebIDBDatabase::observe() message.
565 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_DatabaseObserve,
566 IndexedDBHostMsg_DatabaseObserve_Params)
567
533 // WebIDBDatabase::put() message. 568 // WebIDBDatabase::put() message.
534 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_DatabasePut, 569 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_DatabasePut,
535 IndexedDBHostMsg_DatabasePut_Params) 570 IndexedDBHostMsg_DatabasePut_Params)
536 571
537 // WebIDBDatabase::setIndexKeys() message. 572 // WebIDBDatabase::setIndexKeys() message.
538 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_DatabaseSetIndexKeys, 573 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_DatabaseSetIndexKeys,
539 IndexedDBHostMsg_DatabaseSetIndexKeys_Params) 574 IndexedDBHostMsg_DatabaseSetIndexKeys_Params)
540 575
541 // WebIDBDatabase::setIndexesReady() message. 576 // WebIDBDatabase::setIndexesReady() message.
542 IPC_MESSAGE_CONTROL4(IndexedDBHostMsg_DatabaseSetIndexesReady, 577 IPC_MESSAGE_CONTROL4(IndexedDBHostMsg_DatabaseSetIndexesReady,
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
582 int64_t) /* transaction_id */ 617 int64_t) /* transaction_id */
583 618
584 // WebIDBDatabase::commit() message. 619 // WebIDBDatabase::commit() message.
585 IPC_MESSAGE_CONTROL2(IndexedDBHostMsg_DatabaseCommit, 620 IPC_MESSAGE_CONTROL2(IndexedDBHostMsg_DatabaseCommit,
586 int32_t, /* ipc_database_id */ 621 int32_t, /* ipc_database_id */
587 int64_t) /* transaction_id */ 622 int64_t) /* transaction_id */
588 623
589 // WebIDBDatabase::~WebIDBCursor() message. 624 // WebIDBDatabase::~WebIDBCursor() message.
590 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_CursorDestroyed, 625 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_CursorDestroyed,
591 int32_t /* ipc_cursor_id */) 626 int32_t /* ipc_cursor_id */)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698