Home | History | Annotate | Download | only in proxy
      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