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// IPC messages for HTML5 Blob and Stream.
6// Multiply-included message file, hence no include guard.
7
8#include "content/common/content_export.h"
9#include "content/public/common/common_param_traits.h"
10#include "ipc/ipc_message_macros.h"
11#include "storage/common/blob/blob_data.h"
12
13#undef IPC_MESSAGE_EXPORT
14#define IPC_MESSAGE_EXPORT CONTENT_EXPORT
15#define IPC_MESSAGE_START BlobMsgStart
16
17// Blob messages sent from the renderer to the browser.
18
19IPC_MESSAGE_CONTROL1(BlobHostMsg_StartBuilding,
20                     std::string /*uuid */)
21IPC_MESSAGE_CONTROL2(BlobHostMsg_AppendBlobDataItem,
22                     std::string /* uuid */,
23                     storage::BlobData::Item)
24IPC_SYNC_MESSAGE_CONTROL3_0(BlobHostMsg_SyncAppendSharedMemory,
25                            std::string /*uuid*/,
26                            base::SharedMemoryHandle,
27                            size_t /* buffer size */)
28IPC_MESSAGE_CONTROL2(BlobHostMsg_FinishBuilding,
29                     std::string /* uuid */,
30                     std::string /* content_type */)
31
32IPC_MESSAGE_CONTROL1(BlobHostMsg_IncrementRefCount,
33                     std::string /* uuid */)
34IPC_MESSAGE_CONTROL1(BlobHostMsg_DecrementRefCount,
35                     std::string /* uuid */)
36IPC_MESSAGE_CONTROL2(BlobHostMsg_RegisterPublicURL,
37                     GURL,
38                     std::string /* uuid */)
39IPC_MESSAGE_CONTROL1(BlobHostMsg_RevokePublicURL,
40                     GURL)
41
42// Stream messages sent from the renderer to the browser.
43
44// Registers a stream as being built.
45IPC_MESSAGE_CONTROL2(StreamHostMsg_StartBuilding,
46                     GURL /* url */,
47                     std::string /* content_type */)
48
49// Appends data to a stream being built.
50IPC_MESSAGE_CONTROL2(StreamHostMsg_AppendBlobDataItem,
51                     GURL /* url */,
52                     storage::BlobData::Item)
53
54// Appends data to a stream being built.
55IPC_SYNC_MESSAGE_CONTROL3_0(StreamHostMsg_SyncAppendSharedMemory,
56                            GURL /* url */,
57                            base::SharedMemoryHandle,
58                            size_t /* buffer size */)
59
60// Finishes building a stream.
61IPC_MESSAGE_CONTROL1(StreamHostMsg_FinishBuilding,
62                     GURL /* url */)
63
64// Aborts building a stream.
65IPC_MESSAGE_CONTROL1(StreamHostMsg_AbortBuilding,
66                     GURL /* url */)
67
68// Creates a new stream that's a clone of an existing src stream.
69IPC_MESSAGE_CONTROL2(StreamHostMsg_Clone,
70                     GURL /* url */,
71                     GURL /* src_url */)
72
73// Removes a stream.
74IPC_MESSAGE_CONTROL1(StreamHostMsg_Remove,
75                     GURL /* url */)
76