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. 20IPC_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_MEMBER(bool, pause_after_download) 27 IPC_STRUCT_MEMBER(bool, wait_for_debugger) 28IPC_STRUCT_END() 29 30// Parameters structure for EmbeddedWorkerHostMsg_ReportConsoleMessage. 31// The data members directly correspond to parameters of 32// WorkerMessagingProxy::reportConsoleMessage() 33IPC_STRUCT_BEGIN(EmbeddedWorkerHostMsg_ReportConsoleMessage_Params) 34 IPC_STRUCT_MEMBER(int, source_identifier) 35 IPC_STRUCT_MEMBER(int, message_level) 36 IPC_STRUCT_MEMBER(base::string16, message) 37 IPC_STRUCT_MEMBER(int, line_number) 38 IPC_STRUCT_MEMBER(GURL, source_url) 39IPC_STRUCT_END() 40 41// Browser -> Renderer message to create a new embedded worker context. 42IPC_MESSAGE_CONTROL1(EmbeddedWorkerMsg_StartWorker, 43 EmbeddedWorkerMsg_StartWorker_Params /* params */) 44 45// Browser -> Renderer message to resume a worker that has been started 46// with the pause_after_download option. 47IPC_MESSAGE_CONTROL1(EmbeddedWorkerMsg_ResumeAfterDownload, 48 int /* embedded_worker_id */) 49 50// Browser -> Renderer message to stop (terminate) the embedded worker. 51IPC_MESSAGE_CONTROL1(EmbeddedWorkerMsg_StopWorker, 52 int /* embedded_worker_id */) 53 54// Renderer -> Browser message to indicate that the worker script has been 55// downloaded and the embedded worker is in paused state. 56IPC_MESSAGE_CONTROL1(EmbeddedWorkerHostMsg_DidPauseAfterDownload, 57 int /* embedded_worker_id */) 58 59// Renderer -> Browser message to indicate that the worker is ready for 60// inspection. 61IPC_MESSAGE_CONTROL1(EmbeddedWorkerHostMsg_WorkerReadyForInspection, 62 int /* embedded_worker_id */) 63 64// Renderer -> Browser message to indicate that the worker has loadedd the 65// script. 66IPC_MESSAGE_CONTROL2(EmbeddedWorkerHostMsg_WorkerScriptLoaded, 67 int /* embedded_worker_id */, 68 int /* thread_id */) 69 70// Renderer -> Browser message to indicate that the worker has failed to load 71// the script. 72IPC_MESSAGE_CONTROL1(EmbeddedWorkerHostMsg_WorkerScriptLoadFailed, 73 int /* embedded_worker_id */) 74 75// Renderer -> Browser message to indicate that the worker is started. 76IPC_MESSAGE_CONTROL1(EmbeddedWorkerHostMsg_WorkerStarted, 77 int /* embedded_worker_id */) 78 79// Renderer -> Browser message to indicate that the worker is stopped. 80IPC_MESSAGE_CONTROL1(EmbeddedWorkerHostMsg_WorkerStopped, 81 int /* embedded_worker_id */) 82 83// Renderer -> Browser message to report an exception. 84IPC_MESSAGE_CONTROL5(EmbeddedWorkerHostMsg_ReportException, 85 int /* embedded_worker_id */, 86 base::string16 /* error_message */, 87 int /* line_number */, 88 int /* column_number */, 89 GURL /* source_url */) 90 91// Renderer -> Browser message to report console message. 92IPC_MESSAGE_CONTROL2( 93 EmbeddedWorkerHostMsg_ReportConsoleMessage, 94 int /* embedded_worker_id */, 95 EmbeddedWorkerHostMsg_ReportConsoleMessage_Params /* params */) 96 97// --------------------------------------------------------------------------- 98// For EmbeddedWorkerContext related messages, which are directly sent from 99// browser to the worker thread in the child process. We use a new message class 100// for this for easier cross-thread message dispatching. 101 102#undef IPC_MESSAGE_START 103#define IPC_MESSAGE_START EmbeddedWorkerContextMsgStart 104 105// Browser -> Renderer message to send message. 106IPC_MESSAGE_CONTROL3(EmbeddedWorkerContextMsg_MessageToWorker, 107 int /* thread_id */, 108 int /* embedded_worker_id */, 109 IPC::Message /* message */) 110