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 // Multiply-included message file, no traditional include guard.
6 #include "content/public/common/common_param_traits.h"
7 #include "ipc/ipc_message_macros.h"
8 #include "ipc/ipc_param_traits.h"
9 #include "ipc/ipc_platform_file.h"
10 #include "webkit/plugins/ppapi/dir_contents.h"
11 #include "webkit/plugins/ppapi/file_path.h"
13 // Singly-included section since need custom serialization.
14 #ifndef CONTENT_COMMON_PEPPER_FILE_MESSAGES_H_
15 #define CONTENT_COMMON_PEPPER_FILE_MESSAGES_H_
20 struct ParamTraits
<webkit::ppapi::PepperFilePath
> {
21 typedef webkit::ppapi::PepperFilePath param_type
;
22 static void Write(Message
* m
, const param_type
& p
);
23 static bool Read(const Message
* m
, void** iter
, param_type
* p
);
24 static void Log(const param_type
& p
, std::string
* l
);
29 #endif // CONTENT_COMMON_PEPPER_FILE_MESSAGES_H_
31 #define IPC_MESSAGE_START PepperFileMsgStart
33 IPC_STRUCT_TRAITS_BEGIN(webkit::ppapi::DirEntry
)
34 IPC_STRUCT_TRAITS_MEMBER(name
)
35 IPC_STRUCT_TRAITS_MEMBER(is_dir
)
36 IPC_STRUCT_TRAITS_END()
38 // Trusted Pepper Filesystem messages from the renderer to the browser.
41 IPC_SYNC_MESSAGE_CONTROL2_2(PepperFileMsg_OpenFile
,
42 webkit::ppapi::PepperFilePath
/* path */,
44 base::PlatformFileError
/* error_code */,
45 IPC::PlatformFileForTransit
/* result */)
48 IPC_SYNC_MESSAGE_CONTROL2_1(PepperFileMsg_RenameFile
,
49 webkit::ppapi::PepperFilePath
/* from_path */,
50 webkit::ppapi::PepperFilePath
/* to_path */,
51 base::PlatformFileError
/* error_code */)
54 IPC_SYNC_MESSAGE_CONTROL2_1(PepperFileMsg_DeleteFileOrDir
,
55 webkit::ppapi::PepperFilePath
/* path */,
57 base::PlatformFileError
/* error_code */)
59 // Create the directory.
60 IPC_SYNC_MESSAGE_CONTROL1_1(PepperFileMsg_CreateDir
,
61 webkit::ppapi::PepperFilePath
/* path */,
62 base::PlatformFileError
/* error_code */)
64 // Query the file's info.
65 IPC_SYNC_MESSAGE_CONTROL1_2(PepperFileMsg_QueryFile
,
66 webkit::ppapi::PepperFilePath
/* path */,
67 base::PlatformFileInfo
, /* info */
68 base::PlatformFileError
/* error_code */)
70 // Get the directory's contents.
71 IPC_SYNC_MESSAGE_CONTROL1_2(PepperFileMsg_GetDirContents
,
72 webkit::ppapi::PepperFilePath
/* path */,
73 webkit::ppapi::DirContents
, /* contents */
74 base::PlatformFileError
/* error_code */)