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

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: Post dmurph review 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 <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
11 #include <vector> 11 #include <vector>
12 12
13 #include "base/memory/ptr_util.h"
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 296 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 IPC_STRUCT_MEMBER(int32_t, ipc_thread_id) 355 IPC_STRUCT_MEMBER(int32_t, ipc_thread_id)
352 IPC_STRUCT_MEMBER(int32_t, ipc_callbacks_id) 356 IPC_STRUCT_MEMBER(int32_t, ipc_callbacks_id)
353 IPC_STRUCT_MEMBER(int32_t, ipc_database_callbacks_id) 357 IPC_STRUCT_MEMBER(int32_t, ipc_database_callbacks_id)
354 IPC_STRUCT_MEMBER(int32_t, ipc_database_id) 358 IPC_STRUCT_MEMBER(int32_t, ipc_database_id)
355 IPC_STRUCT_MEMBER(int64_t, old_version) 359 IPC_STRUCT_MEMBER(int64_t, old_version)
356 IPC_STRUCT_MEMBER(blink::WebIDBDataLoss, data_loss) 360 IPC_STRUCT_MEMBER(blink::WebIDBDataLoss, data_loss)
357 IPC_STRUCT_MEMBER(std::string, data_loss_message) 361 IPC_STRUCT_MEMBER(std::string, data_loss_message)
358 IPC_STRUCT_MEMBER(IndexedDBDatabaseMetadata, idb_metadata) 362 IPC_STRUCT_MEMBER(IndexedDBDatabaseMetadata, idb_metadata)
359 IPC_STRUCT_END() 363 IPC_STRUCT_END()
360 364
365 IPC_STRUCT_BEGIN(IndexedDBObservation)
366 IPC_STRUCT_MEMBER(blink::WebIDBOperationType, type)
367 IPC_STRUCT_MEMBER(content::IndexedDBKeyRange, key_range)
368 IPC_STRUCT_END()
369
370 // IPC_MESSAGE macros fail on the std::map, when expanding. We need to define
371 // a type to avoid that.
372 // map observer_id to corresponding set of indices in observations.
373 using ObservationMap = std::map<int32_t, std::vector<int32_t>>;
374
375 IPC_STRUCT_BEGIN(IndexedDBObserverChanges)
376 IPC_STRUCT_MEMBER(ObservationMap, observation_index)
377 IPC_STRUCT_MEMBER(std::vector<IndexedDBObservation>, observations)
378 IPC_STRUCT_END()
379
361 // Indexed DB messages sent from the browser to the renderer. 380 // Indexed DB messages sent from the browser to the renderer.
362 381
363 // The thread_id needs to be the first parameter in these messages. In the IO 382 // 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 383 // thread on the renderer/client process, an IDB message filter assumes the
365 // thread_id is the first int. 384 // thread_id is the first int.
366 385
367 // IDBCallback message handlers. 386 // IDBCallback message handlers.
368 IPC_MESSAGE_CONTROL1(IndexedDBMsg_CallbacksSuccessIDBCursor, 387 IPC_MESSAGE_CONTROL1(IndexedDBMsg_CallbacksSuccessIDBCursor,
369 IndexedDBMsg_CallbacksSuccessIDBCursor_Params) 388 IndexedDBMsg_CallbacksSuccessIDBCursor_Params)
370 389
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 IPC_MESSAGE_CONTROL5(IndexedDBMsg_DatabaseCallbacksAbort, 451 IPC_MESSAGE_CONTROL5(IndexedDBMsg_DatabaseCallbacksAbort,
433 int32_t, /* ipc_thread_id */ 452 int32_t, /* ipc_thread_id */
434 int32_t, /* ipc_database_callbacks_id */ 453 int32_t, /* ipc_database_callbacks_id */
435 int64_t, /* transaction_id */ 454 int64_t, /* transaction_id */
436 int, /* code */ 455 int, /* code */
437 base::string16) /* message */ 456 base::string16) /* message */
438 IPC_MESSAGE_CONTROL3(IndexedDBMsg_DatabaseCallbacksComplete, 457 IPC_MESSAGE_CONTROL3(IndexedDBMsg_DatabaseCallbacksComplete,
439 int32_t, /* ipc_thread_id */ 458 int32_t, /* ipc_thread_id */
440 int32_t, /* ipc_database_callbacks_id */ 459 int32_t, /* ipc_database_callbacks_id */
441 int64_t) /* transaction_id */ 460 int64_t) /* transaction_id */
442 461 IPC_MESSAGE_CONTROL3(IndexedDBMsg_DatabaseCallbacksChanges,
443 // Indexed DB messages sent from the renderer to the browser. 462 int32_t, /* ipc_thread_id */
463 int32_t, /* ipc_database_callbacks_id */
464 IndexedDBObserverChanges)
444 465
445 // WebIDBCursor::advance() message. 466 // WebIDBCursor::advance() message.
446 IPC_MESSAGE_CONTROL4(IndexedDBHostMsg_CursorAdvance, 467 IPC_MESSAGE_CONTROL4(IndexedDBHostMsg_CursorAdvance,
447 int32_t, /* ipc_cursor_id */ 468 int32_t, /* ipc_cursor_id */
448 int32_t, /* ipc_thread_id */ 469 int32_t, /* ipc_thread_id */
449 int32_t, /* ipc_callbacks_id */ 470 int32_t, /* ipc_callbacks_id */
450 uint32_t) /* count */ 471 uint32_t) /* count */
451 472
452 // WebIDBCursor::continue() message. 473 // WebIDBCursor::continue() message.
453 IPC_MESSAGE_CONTROL5(IndexedDBHostMsg_CursorContinue, 474 IPC_MESSAGE_CONTROL5(IndexedDBHostMsg_CursorContinue,
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
582 int64_t) /* transaction_id */ 603 int64_t) /* transaction_id */
583 604
584 // WebIDBDatabase::commit() message. 605 // WebIDBDatabase::commit() message.
585 IPC_MESSAGE_CONTROL2(IndexedDBHostMsg_DatabaseCommit, 606 IPC_MESSAGE_CONTROL2(IndexedDBHostMsg_DatabaseCommit,
586 int32_t, /* ipc_database_id */ 607 int32_t, /* ipc_database_id */
587 int64_t) /* transaction_id */ 608 int64_t) /* transaction_id */
588 609
589 // WebIDBDatabase::~WebIDBCursor() message. 610 // WebIDBDatabase::~WebIDBCursor() message.
590 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_CursorDestroyed, 611 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_CursorDestroyed,
591 int32_t /* ipc_cursor_id */) 612 int32_t /* ipc_cursor_id */)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698