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