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)#ifndef PPAPI_PROXY_CONNECTION_H_
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPAPI_PROXY_CONNECTION_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch#include "ipc/ipc_message.h"
9a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace IPC {
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Sender;
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ppapi {
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace proxy {
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This struct holds the channels that a resource uses to send message to the
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// browser and renderer.
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct Connection {
20a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch  Connection() : browser_sender(0),
21a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch                 renderer_sender(0),
22a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch                 in_process(false),
23a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch                 browser_sender_routing_id(MSG_ROUTING_NONE) {
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  Connection(IPC::Sender* browser, IPC::Sender* renderer)
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      : browser_sender(browser),
27a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch        renderer_sender(renderer),
28a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch        in_process(false),
29a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch        browser_sender_routing_id(MSG_ROUTING_NONE) {
30a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch  }
31a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch  Connection(IPC::Sender* browser, IPC::Sender* renderer, int routing_id)
32a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch      : browser_sender(browser),
33a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch        renderer_sender(renderer),
34a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch        in_process(true),
35a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch        browser_sender_routing_id(routing_id) {
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC::Sender* browser_sender;
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IPC::Sender* renderer_sender;
40a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch  bool in_process;
41a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch  // We need to use a routing ID when a plugin is in-process, and messages are
42a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch  // sent back from the browser to the renderer. This is so that messages are
43a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  // routed to the proper RenderFrameImpl.
44a3f7b4e666c476898878fa745f637129375cd889Ben Murdoch  int browser_sender_routing_id;
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace proxy
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace ppapi
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // PPAPI_PROXY_CONNECTION_H_
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
53