- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / api / messaging / extension_message_port.h
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 CHROME_BROWSER_EXTENSIONS_API_MESSAGING_EXTENSION_MESSAGE_PORT_H_
6 #define CHROME_BROWSER_EXTENSIONS_API_MESSAGING_EXTENSION_MESSAGE_PORT_H_
7
8 #include "chrome/browser/extensions/api/messaging/message_service.h"
9
10 class GURL;
11
12 namespace content {
13 class RenderProcessHost;
14 }  // namespace content
15
16 namespace extensions {
17
18 // A port that manages communication with an extension.
19 class ExtensionMessagePort : public MessageService::MessagePort {
20  public:
21   ExtensionMessagePort(content::RenderProcessHost* process,
22                        int routing_id,
23                        const std::string& extension_id);
24   virtual void DispatchOnConnect(
25       int dest_port_id,
26       const std::string& channel_name,
27       const base::DictionaryValue& source_tab,
28       const std::string& source_extension_id,
29       const std::string& target_extension_id,
30       const GURL& source_url,
31       const std::string& tls_channel_id) OVERRIDE;
32   virtual void DispatchOnDisconnect(int source_port_id,
33                                     const std::string& error_message) OVERRIDE;
34   virtual void DispatchOnMessage(const Message& message,
35                                  int target_port_id) OVERRIDE;
36   virtual void IncrementLazyKeepaliveCount() OVERRIDE;
37   virtual void DecrementLazyKeepaliveCount() OVERRIDE;
38   virtual content::RenderProcessHost* GetRenderProcessHost() OVERRIDE;
39
40  private:
41   content::RenderProcessHost* process_;
42   int routing_id_;
43   std::string extension_id_;
44   void* background_host_ptr_;  // used in IncrementLazyKeepaliveCount
45 };
46
47 }  // namespace extensions
48
49 #endif  // CHROME_BROWSER_EXTENSIONS_API_MESSAGING_EXTENSION_MESSAGE_PORT_H_