• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 {
ConnectionConnection20   Connection() : browser_sender(0),
21                  renderer_sender(0),
22                  in_process(false),
23                  browser_sender_routing_id(MSG_ROUTING_NONE) {
24   }
ConnectionConnection25   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   }
ConnectionConnection31   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