15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Multiply-included message file, no traditional include guard.
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/common_param_traits.h"
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/common/referrer.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ipc/ipc_message.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ipc/ipc_message_macros.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ipc/ipc_param_traits.h"
11868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "third_party/WebKit/public/platform/WebReferrerPolicy.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/gfx/size.h"
137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "url/gurl.h"
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define IPC_MESSAGE_START PrerenderMsgStart
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// PrerenderLinkManager Messages
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// These are messages sent from the renderer to the browser in
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// relation to <link rel=prerender> elements.
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)IPC_STRUCT_BEGIN(PrerenderAttributes)
225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  IPC_STRUCT_MEMBER(GURL, url)
235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  IPC_STRUCT_MEMBER(uint32, rel_types)
245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)IPC_STRUCT_END()
255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Notifies of the insertion of a <link rel=prerender> element in the
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// document.
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL5(PrerenderHostMsg_AddLinkRelPrerender,
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     int /* prerender_id, assigned by WebPrerendererClient */,
305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                     PrerenderAttributes,
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     content::Referrer,
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     gfx::Size,
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     int /* render_view_route_id of launcher */)
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Notifies on removal of a <link rel=prerender> element from the document.
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL1(PrerenderHostMsg_CancelLinkRelPrerender,
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     int /* prerender_id, assigned by WebPrerendererClient */)
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Notifies on unloading a <link rel=prerender> element from a frame.
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_CONTROL1(PrerenderHostMsg_AbandonLinkRelPrerender,
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     int /* prerender_id, assigned by WebPrerendererClient */)
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// PrerenderDispatcher Messages
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// These are messages sent from the browser to the renderer in relation to
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// running prerenders.
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Tells a renderer if it's currently being prerendered.  Must only be set
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// to true before any navigation occurs, and only set to false at most once
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// after that.
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IPC_MESSAGE_ROUTED1(PrerenderMsg_SetIsPrerendering,
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    bool /* whether the RenderView is prerendering */)
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Signals to launcher that a prerender is running.
542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL1(PrerenderMsg_OnPrerenderStart,
552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     int /* prerender_id */)
562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Signals to launcher that a prerender is running.
582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL1(PrerenderMsg_OnPrerenderStopLoading,
592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     int /* prerender_id */)
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Signals to launcher that a prerender has had it's 'domcontentloaded' event.
625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)IPC_MESSAGE_CONTROL1(PrerenderMsg_OnPrerenderDomContentLoaded,
635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                     int /* prerender_id */)
645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Signals to a launcher that a new alias has been added to a prerender.
6690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)IPC_MESSAGE_CONTROL1(PrerenderMsg_OnPrerenderAddAlias,
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                     GURL /* url */)
682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
6990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Signals to a launcher that a new alias has been added to a prerender.
7090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)IPC_MESSAGE_CONTROL1(PrerenderMsg_OnPrerenderRemoveAliases,
7190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)                     std::vector<GURL> /* urls */)
7290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Signals to a launcher that a prerender is no longer running.
742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)IPC_MESSAGE_CONTROL1(PrerenderMsg_OnPrerenderStop,
752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                     int /* prerender_id */)
76