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 #ifndef PPAPI_PROXY_CONNECTION_H_ 6 #define PPAPI_PROXY_CONNECTION_H_ 7 8 #include "ipc/ipc_message.h" 9 10 namespace IPC { 11 class Sender; 12 } 13 14 namespace ppapi { 15 namespace proxy { 16 17 // This struct holds the channels that a resource uses to send message to the 18 // browser and renderer. 19 struct Connection { 20 Connection() : browser_sender(0), 21 renderer_sender(0), 22 in_process(false), 23 browser_sender_routing_id(MSG_ROUTING_NONE) { 24 } 25 Connection(IPC::Sender* browser, IPC::Sender* renderer) 26 : browser_sender(browser), 27 renderer_sender(renderer), 28 in_process(false), 29 browser_sender_routing_id(MSG_ROUTING_NONE) { 30 } 31 Connection(IPC::Sender* browser, IPC::Sender* renderer, int routing_id) 32 : browser_sender(browser), 33 renderer_sender(renderer), 34 in_process(true), 35 browser_sender_routing_id(routing_id) { 36 } 37 38 IPC::Sender* browser_sender; 39 IPC::Sender* renderer_sender; 40 bool in_process; 41 // We need to use a routing ID when a plugin is in-process, and messages are 42 // sent back from the browser to the renderer. This is so that messages are 43 // routed to the proper RenderFrameImpl. 44 int browser_sender_routing_id; 45 }; 46 47 } // namespace proxy 48 } // namespace ppapi 49 50 51 #endif // PPAPI_PROXY_CONNECTION_H_ 52 53