15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch// IPC messages for HTML5 Blob and Stream.
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Multiply-included message file, hence no include guard.
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "content/common/content_export.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/common_param_traits.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ipc/ipc_message_macros.h"
111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "storage/common/blob/blob_data.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#undef IPC_MESSAGE_EXPORT
14eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#define IPC_MESSAGE_EXPORT CONTENT_EXPORT
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define IPC_MESSAGE_START BlobMsgStart
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Blob messages sent from the renderer to the browser.
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
192385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen MurdochIPC_MESSAGE_CONTROL1(BlobHostMsg_StartBuilding,
2058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)                     std::string /*uuid */)
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL2(BlobHostMsg_AppendBlobDataItem,
2258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)                     std::string /* uuid */,
2303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)                     storage::BlobData::Item)
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_SYNC_MESSAGE_CONTROL3_0(BlobHostMsg_SyncAppendSharedMemory,
2558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)                            std::string /*uuid*/,
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                            base::SharedMemoryHandle,
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                            size_t /* buffer size */)
282385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen MurdochIPC_MESSAGE_CONTROL2(BlobHostMsg_FinishBuilding,
2958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)                     std::string /* uuid */,
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     std::string /* content_type */)
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)IPC_MESSAGE_CONTROL1(BlobHostMsg_IncrementRefCount,
3358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)                     std::string /* uuid */)
3458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)IPC_MESSAGE_CONTROL1(BlobHostMsg_DecrementRefCount,
3558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)                     std::string /* uuid */)
3658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)IPC_MESSAGE_CONTROL2(BlobHostMsg_RegisterPublicURL,
3758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)                     GURL,
3858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)                     std::string /* uuid */)
3958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)IPC_MESSAGE_CONTROL1(BlobHostMsg_RevokePublicURL,
4058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)                     GURL)
4158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
422385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch// Stream messages sent from the renderer to the browser.
432385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
442385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch// Registers a stream as being built.
452385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen MurdochIPC_MESSAGE_CONTROL2(StreamHostMsg_StartBuilding,
462385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch                     GURL /* url */,
472385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch                     std::string /* content_type */)
482385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
492385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch// Appends data to a stream being built.
502385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen MurdochIPC_MESSAGE_CONTROL2(StreamHostMsg_AppendBlobDataItem,
512385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch                     GURL /* url */,
5203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)                     storage::BlobData::Item)
532385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
542385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch// Appends data to a stream being built.
552385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen MurdochIPC_SYNC_MESSAGE_CONTROL3_0(StreamHostMsg_SyncAppendSharedMemory,
562385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch                            GURL /* url */,
572385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch                            base::SharedMemoryHandle,
582385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch                            size_t /* buffer size */)
592385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
602385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch// Finishes building a stream.
612385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen MurdochIPC_MESSAGE_CONTROL1(StreamHostMsg_FinishBuilding,
622385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch                     GURL /* url */)
632385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
64424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)// Aborts building a stream.
65424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)IPC_MESSAGE_CONTROL1(StreamHostMsg_AbortBuilding,
66424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)                     GURL /* url */)
67424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
682385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch// Creates a new stream that's a clone of an existing src stream.
692385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen MurdochIPC_MESSAGE_CONTROL2(StreamHostMsg_Clone,
702385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch                     GURL /* url */,
712385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch                     GURL /* src_url */)
722385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch
732385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen Murdoch// Removes a stream.
742385ea399aae016c0806a4f9ef3c9cfe3d2a39dfBen MurdochIPC_MESSAGE_CONTROL1(StreamHostMsg_Remove,
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     GURL /* url */)
76