Home | History | Annotate | Download | only in indexed_db
      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
      3 // found in the LICENSE file.
      4 
      5 // Message definition file, included multiple times, hence no include guard.
      6 
      7 #include <vector>
      8 
      9 #include "content/common/indexed_db/indexed_db_key.h"
     10 #include "content/common/indexed_db/indexed_db_key_path.h"
     11 #include "content/common/indexed_db/indexed_db_key_range.h"
     12 #include "content/common/indexed_db/indexed_db_param_traits.h"
     13 #include "ipc/ipc_message_macros.h"
     14 #include "ipc/ipc_param_traits.h"
     15 #include "third_party/WebKit/public/platform/WebIDBCursor.h"
     16 #include "third_party/WebKit/public/platform/WebIDBDatabase.h"
     17 
     18 #define IPC_MESSAGE_START IndexedDBMsgStart
     19 
     20 // Argument structures used in messages
     21 
     22 IPC_ENUM_TRAITS(blink::WebIDBCursor::Direction)
     23 IPC_ENUM_TRAITS(blink::WebIDBDatabase::PutMode)
     24 IPC_ENUM_TRAITS(blink::WebIDBDatabase::TaskType)
     25 
     26 IPC_ENUM_TRAITS_MAX_VALUE(blink::WebIDBDataLoss, blink::WebIDBDataLossTotal)
     27 
     28 // Used to enumerate indexed databases.
     29 IPC_STRUCT_BEGIN(IndexedDBHostMsg_FactoryGetDatabaseNames_Params)
     30   // The response should have these ids.
     31   IPC_STRUCT_MEMBER(int32, ipc_thread_id)
     32   IPC_STRUCT_MEMBER(int32, ipc_callbacks_id)
     33   // The string id of the origin doing the initiating.
     34   IPC_STRUCT_MEMBER(std::string, database_identifier)
     35 IPC_STRUCT_END()
     36 
     37 // Used to open an indexed database.
     38 IPC_STRUCT_BEGIN(IndexedDBHostMsg_FactoryOpen_Params)
     39   // The response should have these ids.
     40   IPC_STRUCT_MEMBER(int32, ipc_thread_id)
     41   // Identifier of the request
     42   IPC_STRUCT_MEMBER(int32, ipc_callbacks_id)
     43   // Identifier for database callbacks
     44   IPC_STRUCT_MEMBER(int32, ipc_database_callbacks_id)
     45   // The string id of the origin doing the initiating.
     46   IPC_STRUCT_MEMBER(std::string, database_identifier)
     47   // The name of the database.
     48   IPC_STRUCT_MEMBER(base::string16, name)
     49   // The transaction id used if a database upgrade is needed.
     50   IPC_STRUCT_MEMBER(int64, transaction_id)
     51   // The requested version of the database.
     52   IPC_STRUCT_MEMBER(int64, version)
     53 IPC_STRUCT_END()
     54 
     55 // Used to delete an indexed database.
     56 IPC_STRUCT_BEGIN(IndexedDBHostMsg_FactoryDeleteDatabase_Params)
     57   // The response should have these ids.
     58   IPC_STRUCT_MEMBER(int32, ipc_thread_id)
     59   IPC_STRUCT_MEMBER(int32, ipc_callbacks_id)
     60   // The string id of the origin doing the initiating.
     61   IPC_STRUCT_MEMBER(std::string, database_identifier)
     62   // The name of the database.
     63   IPC_STRUCT_MEMBER(base::string16, name)
     64 IPC_STRUCT_END()
     65 
     66 IPC_STRUCT_BEGIN(IndexedDBHostMsg_DatabaseCreateTransaction_Params)
     67   IPC_STRUCT_MEMBER(int32, ipc_thread_id)
     68   // The database the object store belongs to.
     69   IPC_STRUCT_MEMBER(int32, ipc_database_id)
     70   // The transaction id as minted by the frontend.
     71   IPC_STRUCT_MEMBER(int64, transaction_id)
     72   // To get to WebIDBDatabaseCallbacks.
     73   IPC_STRUCT_MEMBER(int32, ipc_database_callbacks_id)
     74   // The scope of the transaction.
     75   IPC_STRUCT_MEMBER(std::vector<int64>, object_store_ids)
     76   // The transaction mode.
     77   IPC_STRUCT_MEMBER(int32, mode)
     78 IPC_STRUCT_END()
     79 
     80 // Used to create an object store.
     81 IPC_STRUCT_BEGIN(IndexedDBHostMsg_DatabaseCreateObjectStore_Params)
     82   // The database the object store belongs to.
     83   IPC_STRUCT_MEMBER(int32, ipc_database_id)
     84   // The transaction its associated with.
     85   IPC_STRUCT_MEMBER(int64, transaction_id)
     86   // The storage id of the object store.
     87   IPC_STRUCT_MEMBER(int64, object_store_id)
     88   // The name of the object store.
     89   IPC_STRUCT_MEMBER(base::string16, name)
     90   // The keyPath of the object store.
     91   IPC_STRUCT_MEMBER(content::IndexedDBKeyPath, key_path)
     92   // Whether the object store created should have a key generator.
     93   IPC_STRUCT_MEMBER(bool, auto_increment)
     94 IPC_STRUCT_END()
     95 
     96 IPC_STRUCT_BEGIN(IndexedDBHostMsg_DatabaseGet_Params)
     97   IPC_STRUCT_MEMBER(int32, ipc_thread_id)
     98   // The id any response should contain.
     99   IPC_STRUCT_MEMBER(int32, ipc_callbacks_id)
    100   // The database the object store belongs to.
    101   IPC_STRUCT_MEMBER(int32, ipc_database_id)
    102   // The transaction its associated with.
    103   IPC_STRUCT_MEMBER(int64, transaction_id)
    104   // The object store's id.
    105   IPC_STRUCT_MEMBER(int64, object_store_id)
    106   // The index's id.
    107   IPC_STRUCT_MEMBER(int64, index_id)
    108   // The serialized key range.
    109   IPC_STRUCT_MEMBER(content::IndexedDBKeyRange, key_range)
    110   // If this is just retrieving the key
    111   IPC_STRUCT_MEMBER(bool, key_only)
    112 IPC_STRUCT_END()
    113 
    114 // Used to set a value in an object store.
    115 IPC_STRUCT_BEGIN(IndexedDBHostMsg_DatabasePut_Params)
    116   // The id any response should contain.
    117   IPC_STRUCT_MEMBER(int32, ipc_thread_id)
    118   IPC_STRUCT_MEMBER(int32, ipc_callbacks_id)
    119   // The database the object store belongs to.
    120   IPC_STRUCT_MEMBER(int32, ipc_database_id)
    121   // The transaction it's associated with.
    122   IPC_STRUCT_MEMBER(int64, transaction_id)
    123   // The object store's id.
    124   IPC_STRUCT_MEMBER(int64, object_store_id)
    125   // The index's id.
    126   IPC_STRUCT_MEMBER(int64, index_id)
    127   // The value to set.
    128   IPC_STRUCT_MEMBER(std::string, value)
    129   // The key to set it on (may not be "valid"/set in some cases).
    130   IPC_STRUCT_MEMBER(content::IndexedDBKey, key)
    131   // Whether this is an add or a put.
    132   IPC_STRUCT_MEMBER(blink::WebIDBDatabase::PutMode, put_mode)
    133   // The names of the indexes used below.
    134   IPC_STRUCT_MEMBER(std::vector<int64>, index_ids)
    135   // The keys for each index, such that each inner vector corresponds
    136   // to each index named in index_names, respectively.
    137   IPC_STRUCT_MEMBER(std::vector<std::vector<content::IndexedDBKey> >,
    138                     index_keys)
    139 IPC_STRUCT_END()
    140 
    141 // Used to open both cursors and object cursors in IndexedDB.
    142 IPC_STRUCT_BEGIN(IndexedDBHostMsg_DatabaseOpenCursor_Params)
    143   // The response should have these ids.
    144   IPC_STRUCT_MEMBER(int32, ipc_thread_id)
    145   IPC_STRUCT_MEMBER(int32, ipc_callbacks_id)
    146   // The database the object store belongs to.
    147   IPC_STRUCT_MEMBER(int32, ipc_database_id)
    148   // The transaction this request belongs to.
    149   IPC_STRUCT_MEMBER(int64, transaction_id)
    150   // The object store.
    151   IPC_STRUCT_MEMBER(int64, object_store_id)
    152   // The index if any.
    153   IPC_STRUCT_MEMBER(int64, index_id)
    154   // The serialized key range.
    155   IPC_STRUCT_MEMBER(content::IndexedDBKeyRange, key_range)
    156   // The direction of this cursor.
    157   IPC_STRUCT_MEMBER(int32, direction)
    158   // If this is just retrieving the key
    159   IPC_STRUCT_MEMBER(bool, key_only)
    160   // The priority of this cursor.
    161   IPC_STRUCT_MEMBER(blink::WebIDBDatabase::TaskType, task_type)
    162 IPC_STRUCT_END()
    163 
    164 // Used to open both cursors and object cursors in IndexedDB.
    165 IPC_STRUCT_BEGIN(IndexedDBHostMsg_DatabaseCount_Params)
    166   // The response should have these ids.
    167   IPC_STRUCT_MEMBER(int32, ipc_thread_id)
    168   IPC_STRUCT_MEMBER(int32, ipc_callbacks_id)
    169   // The transaction this request belongs to.
    170   IPC_STRUCT_MEMBER(int64, transaction_id)
    171   // The IPC id of the database.
    172   IPC_STRUCT_MEMBER(int32, ipc_database_id)
    173   // The object store.
    174   IPC_STRUCT_MEMBER(int64, object_store_id)
    175   // The index if any.
    176   IPC_STRUCT_MEMBER(int64, index_id)
    177   // The serialized key range.
    178   IPC_STRUCT_MEMBER(content::IndexedDBKeyRange, key_range)
    179 IPC_STRUCT_END()
    180 
    181 IPC_STRUCT_BEGIN(IndexedDBHostMsg_DatabaseDeleteRange_Params)
    182   // The response should have these ids.
    183   IPC_STRUCT_MEMBER(int32, ipc_thread_id)
    184   IPC_STRUCT_MEMBER(int32, ipc_callbacks_id)
    185   // The IPC id of the database.
    186   IPC_STRUCT_MEMBER(int32, ipc_database_id)
    187   // The transaction this request belongs to.
    188   IPC_STRUCT_MEMBER(int64, transaction_id)
    189   // The object store.
    190   IPC_STRUCT_MEMBER(int64, object_store_id)
    191   // The serialized key range.
    192   IPC_STRUCT_MEMBER(content::IndexedDBKeyRange, key_range)
    193 IPC_STRUCT_END()
    194 
    195 IPC_STRUCT_BEGIN(IndexedDBHostMsg_DatabaseSetIndexKeys_Params)
    196   // The IPC id of the database.
    197   IPC_STRUCT_MEMBER(int32, ipc_database_id)
    198   // The transaction this request belongs to.
    199   IPC_STRUCT_MEMBER(int64, transaction_id)
    200   // The object store's id.
    201   IPC_STRUCT_MEMBER(int64, object_store_id)
    202   // The object store key that we're setting index keys for.
    203   IPC_STRUCT_MEMBER(content::IndexedDBKey, primary_key)
    204   // The indexes that we're setting keys on.
    205   IPC_STRUCT_MEMBER(std::vector<int64>, index_ids)
    206   // A list of index keys for each index.
    207   IPC_STRUCT_MEMBER(std::vector<std::vector<content::IndexedDBKey> >,
    208                     index_keys)
    209 IPC_STRUCT_END()
    210 
    211 // Used to create an index.
    212 IPC_STRUCT_BEGIN(IndexedDBHostMsg_DatabaseCreateIndex_Params)
    213   // The transaction this is associated with.
    214   IPC_STRUCT_MEMBER(int64, transaction_id)
    215   // The database being used.
    216   IPC_STRUCT_MEMBER(int32, ipc_database_id)
    217   // The object store the index belongs to.
    218   IPC_STRUCT_MEMBER(int64, object_store_id)
    219   // The storage id of the index.
    220   IPC_STRUCT_MEMBER(int64, index_id)
    221   // The name of the index.
    222   IPC_STRUCT_MEMBER(base::string16, name)
    223   // The keyPath of the index.
    224   IPC_STRUCT_MEMBER(content::IndexedDBKeyPath, key_path)
    225   // Whether the index created has unique keys.
    226   IPC_STRUCT_MEMBER(bool, unique)
    227   // Whether the index created produces keys for each array entry.
    228   IPC_STRUCT_MEMBER(bool, multi_entry)
    229 IPC_STRUCT_END()
    230 
    231 IPC_STRUCT_BEGIN(IndexedDBMsg_CallbacksSuccessIDBCursor_Params)
    232   IPC_STRUCT_MEMBER(int32, ipc_thread_id)
    233   IPC_STRUCT_MEMBER(int32, ipc_callbacks_id)
    234   IPC_STRUCT_MEMBER(int32, ipc_cursor_id)
    235   IPC_STRUCT_MEMBER(content::IndexedDBKey, key)
    236   IPC_STRUCT_MEMBER(content::IndexedDBKey, primary_key)
    237   IPC_STRUCT_MEMBER(std::string, value)
    238 IPC_STRUCT_END()
    239 
    240 IPC_STRUCT_BEGIN(IndexedDBMsg_CallbacksSuccessCursorContinue_Params)
    241   IPC_STRUCT_MEMBER(int32, ipc_thread_id)
    242   IPC_STRUCT_MEMBER(int32, ipc_callbacks_id)
    243   IPC_STRUCT_MEMBER(int32, ipc_cursor_id)
    244   IPC_STRUCT_MEMBER(content::IndexedDBKey, key)
    245   IPC_STRUCT_MEMBER(content::IndexedDBKey, primary_key)
    246   IPC_STRUCT_MEMBER(std::string, value)
    247 IPC_STRUCT_END()
    248 
    249 IPC_STRUCT_BEGIN(IndexedDBMsg_CallbacksSuccessCursorPrefetch_Params)
    250   IPC_STRUCT_MEMBER(int32, ipc_thread_id)
    251   IPC_STRUCT_MEMBER(int32, ipc_callbacks_id)
    252   IPC_STRUCT_MEMBER(int32, ipc_cursor_id)
    253   IPC_STRUCT_MEMBER(std::vector<content::IndexedDBKey>, keys)
    254   IPC_STRUCT_MEMBER(std::vector<content::IndexedDBKey>, primary_keys)
    255   IPC_STRUCT_MEMBER(std::vector<std::string>, values)
    256 IPC_STRUCT_END()
    257 
    258 IPC_STRUCT_BEGIN(IndexedDBIndexMetadata)
    259   IPC_STRUCT_MEMBER(int64, id)
    260   IPC_STRUCT_MEMBER(base::string16, name)
    261   IPC_STRUCT_MEMBER(content::IndexedDBKeyPath, keyPath)
    262   IPC_STRUCT_MEMBER(bool, unique)
    263   IPC_STRUCT_MEMBER(bool, multiEntry)
    264 IPC_STRUCT_END()
    265 
    266 IPC_STRUCT_BEGIN(IndexedDBObjectStoreMetadata)
    267   IPC_STRUCT_MEMBER(int64, id)
    268   IPC_STRUCT_MEMBER(base::string16, name)
    269   IPC_STRUCT_MEMBER(content::IndexedDBKeyPath, keyPath)
    270   IPC_STRUCT_MEMBER(bool, autoIncrement)
    271   IPC_STRUCT_MEMBER(int64, max_index_id)
    272   IPC_STRUCT_MEMBER(std::vector<IndexedDBIndexMetadata>, indexes)
    273 IPC_STRUCT_END()
    274 
    275 IPC_STRUCT_BEGIN(IndexedDBDatabaseMetadata)
    276   IPC_STRUCT_MEMBER(int64, id)
    277   IPC_STRUCT_MEMBER(base::string16, name)
    278   IPC_STRUCT_MEMBER(base::string16, version)
    279   IPC_STRUCT_MEMBER(int64, int_version)
    280   IPC_STRUCT_MEMBER(int64, max_object_store_id)
    281   IPC_STRUCT_MEMBER(std::vector<IndexedDBObjectStoreMetadata>, object_stores)
    282 IPC_STRUCT_END()
    283 
    284 IPC_STRUCT_BEGIN(IndexedDBMsg_CallbacksUpgradeNeeded_Params)
    285   IPC_STRUCT_MEMBER(int32, ipc_thread_id)
    286   IPC_STRUCT_MEMBER(int32, ipc_callbacks_id)
    287   IPC_STRUCT_MEMBER(int32, ipc_database_callbacks_id)
    288   IPC_STRUCT_MEMBER(int32, ipc_database_id)
    289   IPC_STRUCT_MEMBER(int64, old_version)
    290   IPC_STRUCT_MEMBER(blink::WebIDBDataLoss, data_loss)
    291   IPC_STRUCT_MEMBER(std::string, data_loss_message)
    292   IPC_STRUCT_MEMBER(IndexedDBDatabaseMetadata, idb_metadata)
    293 IPC_STRUCT_END()
    294 
    295 // Indexed DB messages sent from the browser to the renderer.
    296 
    297 // The thread_id needs to be the first parameter in these messages.  In the IO
    298 // thread on the renderer/client process, an IDB message filter assumes the
    299 // thread_id is the first int.
    300 
    301 // IDBCallback message handlers.
    302 IPC_MESSAGE_CONTROL1(IndexedDBMsg_CallbacksSuccessIDBCursor,
    303                      IndexedDBMsg_CallbacksSuccessIDBCursor_Params)
    304 
    305 IPC_MESSAGE_CONTROL1(IndexedDBMsg_CallbacksSuccessCursorContinue,
    306                      IndexedDBMsg_CallbacksSuccessCursorContinue_Params)
    307 
    308 IPC_MESSAGE_CONTROL1(IndexedDBMsg_CallbacksSuccessCursorAdvance,
    309                      IndexedDBMsg_CallbacksSuccessCursorContinue_Params)
    310 
    311 IPC_MESSAGE_CONTROL1(IndexedDBMsg_CallbacksSuccessCursorPrefetch,
    312                      IndexedDBMsg_CallbacksSuccessCursorPrefetch_Params)
    313 
    314 IPC_MESSAGE_CONTROL5(IndexedDBMsg_CallbacksSuccessIDBDatabase,
    315                      int32 /* ipc_thread_id */,
    316                      int32 /* ipc_callbacks_id */,
    317                      int32 /* ipc_database_callbacks_id */,
    318                      int32 /* ipc_database_id */,
    319                      IndexedDBDatabaseMetadata)
    320 IPC_MESSAGE_CONTROL3(IndexedDBMsg_CallbacksSuccessIndexedDBKey,
    321                      int32 /* ipc_thread_id */,
    322                      int32 /* ipc_callbacks_id */,
    323                      content::IndexedDBKey /* indexed_db_key */)
    324 IPC_MESSAGE_CONTROL3(IndexedDBMsg_CallbacksSuccessValue,
    325                      int32 /* ipc_thread_id */,
    326                      int32 /* ipc_callbacks_id */,
    327                      std::string /* value */)
    328 IPC_MESSAGE_CONTROL5(IndexedDBMsg_CallbacksSuccessValueWithKey,
    329                      int32 /* ipc_thread_id */,
    330                      int32 /* ipc_callbacks_id */,
    331                      std::string /* value */,
    332                      content::IndexedDBKey /* indexed_db_key */,
    333                      content::IndexedDBKeyPath /* indexed_db_keypath */)
    334 IPC_MESSAGE_CONTROL3(IndexedDBMsg_CallbacksSuccessInteger,
    335                      int32 /* ipc_thread_id */,
    336                      int32 /* ipc_callbacks_id */,
    337                      int64 /* value */)
    338 IPC_MESSAGE_CONTROL2(IndexedDBMsg_CallbacksSuccessUndefined,
    339                      int32 /* ipc_thread_id */,
    340                      int32 /* ipc_callbacks_id */)
    341 IPC_MESSAGE_CONTROL3(IndexedDBMsg_CallbacksSuccessStringList,
    342                      int32 /* ipc_thread_id */,
    343                      int32 /* ipc_callbacks_id */,
    344                      std::vector<base::string16> /* dom_string_list */)
    345 IPC_MESSAGE_CONTROL4(IndexedDBMsg_CallbacksError,
    346                      int32 /* ipc_thread_id */,
    347                      int32 /* ipc_callbacks_id */,
    348                      int /* code */,
    349                      base::string16 /* message */)
    350 IPC_MESSAGE_CONTROL2(IndexedDBMsg_CallbacksBlocked,
    351                      int32 /* ipc_thread_id */,
    352                      int32 /* ipc_callbacks_id */)
    353 IPC_MESSAGE_CONTROL3(IndexedDBMsg_CallbacksIntBlocked,
    354                      int32 /* ipc_thread_id */,
    355                      int32 /* ipc_callbacks_id */,
    356                      int64 /* existing_version */)
    357 IPC_MESSAGE_CONTROL1(IndexedDBMsg_CallbacksUpgradeNeeded,
    358                      IndexedDBMsg_CallbacksUpgradeNeeded_Params)
    359 
    360 // IDBDatabaseCallback message handlers
    361 IPC_MESSAGE_CONTROL2(IndexedDBMsg_DatabaseCallbacksForcedClose,
    362                      int32, /* ipc_thread_id */
    363                      int32) /* ipc_database_callbacks_id */
    364 IPC_MESSAGE_CONTROL4(IndexedDBMsg_DatabaseCallbacksIntVersionChange,
    365                      int32, /* ipc_thread_id */
    366                      int32, /* ipc_database_callbacks_id */
    367                      int64, /* old_version */
    368                      int64) /* new_version */
    369 IPC_MESSAGE_CONTROL5(IndexedDBMsg_DatabaseCallbacksAbort,
    370                      int32, /* ipc_thread_id */
    371                      int32, /* ipc_database_callbacks_id */
    372                      int64, /* transaction_id */
    373                      int, /* code */
    374                      base::string16) /* message */
    375 IPC_MESSAGE_CONTROL3(IndexedDBMsg_DatabaseCallbacksComplete,
    376                      int32, /* ipc_thread_id */
    377                      int32, /* ipc_database_callbacks_id */
    378                      int64) /* transaction_id */
    379 
    380 // Indexed DB messages sent from the renderer to the browser.
    381 
    382 // WebIDBCursor::advance() message.
    383 IPC_MESSAGE_CONTROL4(IndexedDBHostMsg_CursorAdvance,
    384                      int32, /* ipc_cursor_id */
    385                      int32, /* ipc_thread_id */
    386                      int32, /* ipc_callbacks_id */
    387                      unsigned long) /* count */
    388 
    389 // WebIDBCursor::continue() message.
    390 IPC_MESSAGE_CONTROL5(IndexedDBHostMsg_CursorContinue,
    391                      int32, /* ipc_cursor_id */
    392                      int32, /* ipc_thread_id */
    393                      int32, /* ipc_callbacks_id */
    394                      content::IndexedDBKey, /* key */
    395                      content::IndexedDBKey) /* primary_key */
    396 
    397 // WebIDBCursor::prefetchContinue() message.
    398 IPC_MESSAGE_CONTROL4(IndexedDBHostMsg_CursorPrefetch,
    399                      int32, /* ipc_cursor_id */
    400                      int32, /* ipc_thread_id */
    401                      int32, /* ipc_callbacks_id */
    402                      int32) /* n */
    403 
    404 // WebIDBCursor::prefetchReset() message.
    405 IPC_MESSAGE_CONTROL3(IndexedDBHostMsg_CursorPrefetchReset,
    406                      int32, /* ipc_cursor_id */
    407                      int32, /* used_prefetches */
    408                      int32)  /* used_prefetches */
    409 
    410 // WebIDBFactory::getDatabaseNames() message.
    411 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_FactoryGetDatabaseNames,
    412                      IndexedDBHostMsg_FactoryGetDatabaseNames_Params)
    413 
    414 // WebIDBFactory::open() message.
    415 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_FactoryOpen,
    416                      IndexedDBHostMsg_FactoryOpen_Params)
    417 
    418 // WebIDBFactory::deleteDatabase() message.
    419 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_FactoryDeleteDatabase,
    420                      IndexedDBHostMsg_FactoryDeleteDatabase_Params)
    421 
    422 // WebIDBDatabase::createObjectStore() message.
    423 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_DatabaseCreateObjectStore,
    424                      IndexedDBHostMsg_DatabaseCreateObjectStore_Params)
    425 
    426 // WebIDBDatabase::deleteObjectStore() message.
    427 IPC_MESSAGE_CONTROL3(IndexedDBHostMsg_DatabaseDeleteObjectStore,
    428                      int32, /* ipc_database_id */
    429                      int64, /* transaction_id */
    430                      int64) /* object_store_id */
    431 
    432 // WebIDBDatabase::createTransaction() message.
    433 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_DatabaseCreateTransaction,
    434                      IndexedDBHostMsg_DatabaseCreateTransaction_Params)
    435 
    436 // WebIDBDatabase::close() message.
    437 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_DatabaseClose,
    438                      int32 /* ipc_database_callbacks_id */)
    439 
    440 // WebIDBDatabase::~WebIDBDatabase() message.
    441 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_DatabaseDestroyed,
    442                      int32 /* ipc_database_id */)
    443 
    444 // WebIDBDatabase::get() message.
    445 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_DatabaseGet,
    446                      IndexedDBHostMsg_DatabaseGet_Params)
    447 
    448 // WebIDBDatabase::put() message.
    449 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_DatabasePut,
    450                      IndexedDBHostMsg_DatabasePut_Params)
    451 
    452 // WebIDBDatabase::setIndexKeys() message.
    453 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_DatabaseSetIndexKeys,
    454                      IndexedDBHostMsg_DatabaseSetIndexKeys_Params)
    455 
    456 // WebIDBDatabase::setIndexesReady() message.
    457 IPC_MESSAGE_CONTROL4(IndexedDBHostMsg_DatabaseSetIndexesReady,
    458                      int32, /* ipc_database_id */
    459                      int64, /* transaction_id */
    460                      int64, /* object_store_id */
    461                      std::vector<int64>) /* index_ids */
    462 
    463 // WebIDBDatabase::openCursor() message.
    464 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_DatabaseOpenCursor,
    465                      IndexedDBHostMsg_DatabaseOpenCursor_Params)
    466 
    467 // WebIDBDatabase::count() message.
    468 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_DatabaseCount,
    469                      IndexedDBHostMsg_DatabaseCount_Params)
    470 
    471 // WebIDBDatabase::deleteRange() message.
    472 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_DatabaseDeleteRange,
    473                      IndexedDBHostMsg_DatabaseDeleteRange_Params)
    474 
    475 // WebIDBDatabase::clear() message.
    476 IPC_MESSAGE_CONTROL5(IndexedDBHostMsg_DatabaseClear,
    477                      int32, /* ipc_thread_id */
    478                      int32, /* ipc_callbacks_id */
    479                      int32, /* ipc_database_id */
    480                      int64, /* transaction_id */
    481                      int64) /* object_store_id */
    482 
    483 // WebIDBDatabase::createIndex() message.
    484 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_DatabaseCreateIndex,
    485                      IndexedDBHostMsg_DatabaseCreateIndex_Params)
    486 
    487 // WebIDBDatabase::deleteIndex() message.
    488 IPC_MESSAGE_CONTROL4(IndexedDBHostMsg_DatabaseDeleteIndex,
    489                      int32, /* ipc_database_id */
    490                      int64, /* transaction_id */
    491                      int64, /* object_store_id */
    492                      int64) /* index_id */
    493 
    494 // WebIDBDatabase::abort() message.
    495 IPC_MESSAGE_CONTROL2(IndexedDBHostMsg_DatabaseAbort,
    496                      int32, /* ipc_database_id */
    497                      int64) /* transaction_id */
    498 
    499 // WebIDBDatabase::commit() message.
    500 IPC_MESSAGE_CONTROL2(IndexedDBHostMsg_DatabaseCommit,
    501                      int32, /* ipc_database_id */
    502                      int64) /* transaction_id */
    503 
    504 // WebIDBDatabase::~WebIDBCursor() message.
    505 IPC_MESSAGE_CONTROL1(IndexedDBHostMsg_CursorDestroyed,
    506                      int32 /* ipc_cursor_id */)
    507 
    508