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