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