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// IPC messages for the web manifest manager.
6// Multiply-included message file, hence no include guard.
7
8#include "content/common/content_export.h"
9#include "content/public/common/manifest.h"
10#include "ipc/ipc_message_macros.h"
11
12#undef IPC_MESSAGE_EXPORT
13#define IPC_MESSAGE_EXPORT CONTENT_EXPORT
14
15#define IPC_MESSAGE_START ManifestManagerMsgStart
16
17IPC_ENUM_TRAITS_MAX_VALUE(content::Manifest::DisplayMode,
18                          content::Manifest::DISPLAY_MODE_BROWSER)
19
20IPC_STRUCT_TRAITS_BEGIN(content::Manifest::Icon)
21  IPC_STRUCT_TRAITS_MEMBER(src)
22  IPC_STRUCT_TRAITS_MEMBER(type)
23  IPC_STRUCT_TRAITS_MEMBER(density)
24  IPC_STRUCT_TRAITS_MEMBER(sizes)
25IPC_STRUCT_TRAITS_END()
26
27IPC_STRUCT_TRAITS_BEGIN(content::Manifest)
28  IPC_STRUCT_TRAITS_MEMBER(name)
29  IPC_STRUCT_TRAITS_MEMBER(short_name)
30  IPC_STRUCT_TRAITS_MEMBER(start_url)
31  IPC_STRUCT_TRAITS_MEMBER(display)
32  IPC_STRUCT_TRAITS_MEMBER(orientation)
33  IPC_STRUCT_TRAITS_MEMBER(icons)
34IPC_STRUCT_TRAITS_END()
35
36// The browser process requests for the manifest linked with the associated
37// render frame. The renderer process will respond via a RequestManifestResponse
38// IPC message with a Manifest object attached to it and the associated
39// |request_id| that was initially given.
40IPC_MESSAGE_ROUTED1(ManifestManagerMsg_RequestManifest,
41                    int /* request_id */)
42
43// The renderer process' response to a RequestManifest. The |request_id| will
44// match the one that was initially received. The |manifest| object will be an
45// empty manifest in case of any failure.
46IPC_MESSAGE_ROUTED2(ManifestManagerHostMsg_RequestManifestResponse,
47                    int, /* request_id */
48                    content::Manifest /* manifest */)
49