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.
4
5// Multiply-included message file, no traditional include guard.
6#include <string>
7#include <vector>
8
9#include "base/values.h"
10#include "chrome/common/cloud_print/cloud_print_proxy_info.h"
11#include "ipc/ipc_channel_handle.h"
12#include "ipc/ipc_message_macros.h"
13
14#define IPC_MESSAGE_START ServiceMsgStart
15
16IPC_STRUCT_TRAITS_BEGIN(cloud_print::CloudPrintProxyInfo)
17  IPC_STRUCT_TRAITS_MEMBER(enabled)
18  IPC_STRUCT_TRAITS_MEMBER(email)
19  IPC_STRUCT_TRAITS_MEMBER(proxy_id)
20IPC_STRUCT_TRAITS_END()
21
22// Tell the service process to enable the cloud proxy passing in the OAuth2
23// auth code of a robot account.
24IPC_MESSAGE_CONTROL4(ServiceMsg_EnableCloudPrintProxyWithRobot,
25                     std::string /* robot_auth_code */,
26                     std::string /* robot_email */,
27                     std::string /* user_email */,
28                     base::DictionaryValue /* user_settings */)
29
30// Tell the service process to disable the cloud proxy.
31IPC_MESSAGE_CONTROL0(ServiceMsg_DisableCloudPrintProxy)
32
33// Requests a message back on the current status of the cloud print proxy
34// (whether it is enabled, the email address and the proxy id).
35IPC_MESSAGE_CONTROL0(ServiceMsg_GetCloudPrintProxyInfo)
36
37// Requests a message back with serialized UMA histograms.
38IPC_MESSAGE_CONTROL0(ServiceMsg_GetHistograms)
39
40// Requests a message back with all available printers.
41IPC_MESSAGE_CONTROL0(ServiceMsg_GetPrinters)
42
43// Tell the service process to shutdown.
44IPC_MESSAGE_CONTROL0(ServiceMsg_Shutdown)
45
46// Tell the service process that an update is available.
47IPC_MESSAGE_CONTROL0(ServiceMsg_UpdateAvailable)
48
49//-----------------------------------------------------------------------------
50// Service process host messages:
51// These are messages from the service process to the browser.
52// Sent as a response to a request for cloud print proxy info
53IPC_MESSAGE_CONTROL1(ServiceHostMsg_CloudPrintProxy_Info,
54                     cloud_print::CloudPrintProxyInfo /* proxy info */)
55
56// Sent as a response to ServiceMsg_GetHistograms.
57IPC_MESSAGE_CONTROL1(ServiceHostMsg_Histograms,
58                     std::vector<std::string> /* pickled_histograms */)
59
60// Sent as a response to ServiceMsg_GetPrinters.
61IPC_MESSAGE_CONTROL1(ServiceHostMsg_Printers,
62                     std::vector<std::string> /* printers */)
63