Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / content / common / service_worker / embedded_worker_messages.h
1 // Copyright 2014 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 // Message definition file, included multiple times, hence no include guard.
6
7 #include <string>
8
9 #include "ipc/ipc_message.h"
10 #include "ipc/ipc_message_macros.h"
11 #include "ipc/ipc_param_traits.h"
12 #include "url/gurl.h"
13
14 #undef IPC_MESSAGE_EXPORT
15 #define IPC_MESSAGE_EXPORT CONTENT_EXPORT
16
17 #define IPC_MESSAGE_START EmbeddedWorkerMsgStart
18
19 // Parameters structure for EmbeddedWorkerMsg_StartWorker.
20 IPC_STRUCT_BEGIN(EmbeddedWorkerMsg_StartWorker_Params)
21   IPC_STRUCT_MEMBER(int, embedded_worker_id)
22   IPC_STRUCT_MEMBER(int64, service_worker_version_id)
23   IPC_STRUCT_MEMBER(GURL, scope)
24   IPC_STRUCT_MEMBER(GURL, script_url)
25   IPC_STRUCT_MEMBER(int, worker_devtools_agent_route_id)
26 IPC_STRUCT_END()
27
28 // Parameters structure for EmbeddedWorkerHostMsg_ReportConsoleMessage.
29 // The data members directly correspond to parameters of
30 // WorkerMessagingProxy::reportConsoleMessage()
31 IPC_STRUCT_BEGIN(EmbeddedWorkerHostMsg_ReportConsoleMessage_Params)
32   IPC_STRUCT_MEMBER(int, source_identifier)
33   IPC_STRUCT_MEMBER(int, message_level)
34   IPC_STRUCT_MEMBER(base::string16, message)
35   IPC_STRUCT_MEMBER(int, line_number)
36   IPC_STRUCT_MEMBER(GURL, source_url)
37 IPC_STRUCT_END()
38
39 // Browser -> Renderer message to create a new embedded worker context.
40 IPC_MESSAGE_CONTROL1(EmbeddedWorkerMsg_StartWorker,
41                      EmbeddedWorkerMsg_StartWorker_Params /* params */)
42
43 // Browser -> Renderer message to stop (terminate) the embedded worker.
44 IPC_MESSAGE_CONTROL1(EmbeddedWorkerMsg_StopWorker,
45                      int /* embedded_worker_id */)
46
47 // Renderer -> Browser message to indicate that the worker has loadedd the
48 // script.
49 IPC_MESSAGE_CONTROL1(EmbeddedWorkerHostMsg_WorkerScriptLoaded,
50                      int /* embedded_worker_id */)
51
52 // Renderer -> Browser message to indicate that the worker has failed to load
53 // the script.
54 IPC_MESSAGE_CONTROL1(EmbeddedWorkerHostMsg_WorkerScriptLoadFailed,
55                      int /* embedded_worker_id */)
56
57 // Renderer -> Browser message to indicate that the worker is started.
58 IPC_MESSAGE_CONTROL2(EmbeddedWorkerHostMsg_WorkerStarted,
59                      int /* thread_id */,
60                      int /* embedded_worker_id */)
61
62 // Renderer -> Browser message to indicate that the worker is stopped.
63 IPC_MESSAGE_CONTROL1(EmbeddedWorkerHostMsg_WorkerStopped,
64                      int /* embedded_worker_id */)
65
66 // Renderer -> Browser message to report an exception.
67 IPC_MESSAGE_CONTROL5(EmbeddedWorkerHostMsg_ReportException,
68                      int /* embedded_worker_id */,
69                      base::string16 /* error_message */,
70                      int /* line_number */,
71                      int /* column_number */,
72                      GURL /* source_url */)
73
74 // Renderer -> Browser message to report console message.
75 IPC_MESSAGE_CONTROL2(
76     EmbeddedWorkerHostMsg_ReportConsoleMessage,
77     int /* embedded_worker_id */,
78     EmbeddedWorkerHostMsg_ReportConsoleMessage_Params /* params */)
79
80 // ---------------------------------------------------------------------------
81 // For EmbeddedWorkerContext related messages, which are directly sent from
82 // browser to the worker thread in the child process. We use a new message class
83 // for this for easier cross-thread message dispatching.
84
85 #undef IPC_MESSAGE_START
86 #define IPC_MESSAGE_START EmbeddedWorkerContextMsgStart
87
88 // Browser -> Renderer message to send message.
89 IPC_MESSAGE_CONTROL3(EmbeddedWorkerContextMsg_MessageToWorker,
90                      int /* thread_id */,
91                      int /* embedded_worker_id */,
92                      IPC::Message /* message */)