1// Copyright (c) 2012 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 "content/public/common/common_param_traits.h"
7#include "content/public/common/referrer.h"
8#include "ipc/ipc_message.h"
9#include "ipc/ipc_message_macros.h"
10#include "ipc/ipc_param_traits.h"
11#include "ui/gfx/size.h"
12#include "url/gurl.h"
13
14#define IPC_MESSAGE_START PrerenderMsgStart
15
16// PrerenderLinkManager Messages
17// These are messages sent from the renderer to the browser in
18// relation to <link rel=prerender> elements.
19
20IPC_STRUCT_BEGIN(PrerenderAttributes)
21  IPC_STRUCT_MEMBER(GURL, url)
22  IPC_STRUCT_MEMBER(uint32, rel_types)
23IPC_STRUCT_END()
24
25// Notifies of the insertion of a <link rel=prerender> element in the
26// document.
27IPC_MESSAGE_CONTROL5(PrerenderHostMsg_AddLinkRelPrerender,
28                     int /* prerender_id, assigned by WebPrerendererClient */,
29                     PrerenderAttributes,
30                     content::Referrer,
31                     gfx::Size,
32                     int /* render_view_route_id of launcher */)
33
34// Notifies on removal of a <link rel=prerender> element from the document.
35IPC_MESSAGE_CONTROL1(PrerenderHostMsg_CancelLinkRelPrerender,
36                     int /* prerender_id, assigned by WebPrerendererClient */)
37
38// Notifies on unloading a <link rel=prerender> element from a frame.
39IPC_MESSAGE_CONTROL1(PrerenderHostMsg_AbandonLinkRelPrerender,
40                     int /* prerender_id, assigned by WebPrerendererClient */)
41
42// PrerenderDispatcher Messages
43// These are messages sent from the browser to the renderer in relation to
44// running prerenders.
45
46// Tells a renderer if it's currently being prerendered.  Must only be set
47// to true before any navigation occurs, and only set to false at most once
48// after that.
49IPC_MESSAGE_ROUTED1(PrerenderMsg_SetIsPrerendering,
50                    bool /* whether the RenderView is prerendering */)
51
52// Signals to launcher that a prerender is running.
53IPC_MESSAGE_CONTROL1(PrerenderMsg_OnPrerenderStart,
54                     int /* prerender_id */)
55
56// Signals to launcher that a prerender is running.
57IPC_MESSAGE_CONTROL1(PrerenderMsg_OnPrerenderStopLoading,
58                     int /* prerender_id */)
59
60// Signals to launcher that a prerender has had it's 'domcontentloaded' event.
61IPC_MESSAGE_CONTROL1(PrerenderMsg_OnPrerenderDomContentLoaded,
62                     int /* prerender_id */)
63
64// Signals to a launcher that a new alias has been added to a prerender.
65IPC_MESSAGE_CONTROL1(PrerenderMsg_OnPrerenderAddAlias,
66                     GURL /* url */)
67
68// Signals to a launcher that a new alias has been added to a prerender.
69IPC_MESSAGE_CONTROL1(PrerenderMsg_OnPrerenderRemoveAliases,
70                     std::vector<GURL> /* urls */)
71
72// Signals to a launcher that a prerender is no longer running.
73IPC_MESSAGE_CONTROL1(PrerenderMsg_OnPrerenderStop,
74                     int /* prerender_id */)
75