1 // Copyright (c) 2011 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.
5 // IPC messages for HTML5 Blob.
6 // Multiply-included message file, hence no include guard.
8 #include "content/public/common/common_param_traits.h"
9 #include "content/public/common/webkit_param_traits.h"
10 #include "ipc/ipc_message_macros.h"
12 #define IPC_MESSAGE_START BlobMsgStart
14 IPC_ENUM_TRAITS(webkit_blob::BlobData::Type
)
16 IPC_STRUCT_TRAITS_BEGIN(webkit_blob::BlobData::Item
)
17 IPC_STRUCT_TRAITS_MEMBER(type
)
18 IPC_STRUCT_TRAITS_MEMBER(data
)
19 IPC_STRUCT_TRAITS_MEMBER(file_path
)
20 IPC_STRUCT_TRAITS_MEMBER(blob_url
)
21 IPC_STRUCT_TRAITS_MEMBER(offset
)
22 IPC_STRUCT_TRAITS_MEMBER(length
)
23 IPC_STRUCT_TRAITS_MEMBER(expected_modification_time
)
24 IPC_STRUCT_TRAITS_END()
26 // Blob messages sent from the renderer to the browser.
29 // Registers a blob as being built.
30 IPC_MESSAGE_CONTROL1(BlobHostMsg_StartBuildingBlob
,
33 // Appends data to a blob being built.
34 IPC_MESSAGE_CONTROL2(BlobHostMsg_AppendBlobDataItem
,
36 webkit_blob::BlobData::Item
)
38 // Appends data to a blob being built.
39 IPC_SYNC_MESSAGE_CONTROL3_0(BlobHostMsg_SyncAppendSharedMemory
,
41 base::SharedMemoryHandle
,
42 size_t /* buffer size */)
44 // Finishes building a blob.
45 IPC_MESSAGE_CONTROL2(BlobHostMsg_FinishBuildingBlob
,
47 std::string
/* content_type */)
49 // Creates a new blob that's a clone of an existing src blob.
50 // The source blob must be fully built.
51 IPC_MESSAGE_CONTROL2(BlobHostMsg_CloneBlob
,
56 IPC_MESSAGE_CONTROL1(BlobHostMsg_RemoveBlob
,