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

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

Issue 2160163002: [IndexedDB] Propogating Changes to Observer : Browser (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Expected tests updated 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
« no previous file with comments | « content/child/indexed_db/indexed_db_dispatcher.cc ('k') | content/content_browser.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <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
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
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
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
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
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
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 */)
OLDNEW
« no previous file with comments | « content/child/indexed_db/indexed_db_dispatcher.cc ('k') | content/content_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698