[email protected] | 6a160e7 | 2011-05-04 20:23:45 | [diff] [blame] | 1 | // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
[email protected] | 4c2e935 | 2010-11-05 22:13:02 | [diff] [blame] | 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_PPP_INSTANCE_PROXY_H_ | ||||
6 | #define PPAPI_PROXY_PPP_INSTANCE_PROXY_H_ | ||||
7 | |||||
8 | #include <string> | ||||
9 | #include <vector> | ||||
10 | |||||
[email protected] | 912f3d6c | 2011-06-29 18:26:36 | [diff] [blame] | 11 | #include "base/memory/scoped_ptr.h" |
[email protected] | 4c2e935 | 2010-11-05 22:13:02 | [diff] [blame] | 12 | #include "ppapi/c/pp_instance.h" |
13 | #include "ppapi/c/pp_resource.h" | ||||
14 | #include "ppapi/c/pp_var.h" | ||||
[email protected] | 4c2e935 | 2010-11-05 22:13:02 | [diff] [blame] | 15 | #include "ppapi/proxy/interface_proxy.h" |
[email protected] | be0a84b | 2011-08-13 04:18:44 | [diff] [blame] | 16 | #include "ppapi/shared_impl/host_resource.h" |
[email protected] | 912f3d6c | 2011-06-29 18:26:36 | [diff] [blame] | 17 | #include "ppapi/shared_impl/ppp_instance_combined.h" |
[email protected] | 4c2e935 | 2010-11-05 22:13:02 | [diff] [blame] | 18 | |
[email protected] | 4c2e935 | 2010-11-05 22:13:02 | [diff] [blame] | 19 | struct PP_Rect; |
[email protected] | 4c2e935 | 2010-11-05 22:13:02 | [diff] [blame] | 20 | |
[email protected] | 4d2efd2 | 2011-08-18 21:58:02 | [diff] [blame] | 21 | namespace ppapi { |
[email protected] | e8f07ac | 2012-01-03 17:43:36 | [diff] [blame] | 22 | |
[email protected] | 47cb253f | 2013-05-16 01:50:40 | [diff] [blame^] | 23 | struct URLResponseInfoData; |
[email protected] | e8f07ac | 2012-01-03 17:43:36 | [diff] [blame] | 24 | struct ViewData; |
25 | |||||
[email protected] | 4c2e935 | 2010-11-05 22:13:02 | [diff] [blame] | 26 | namespace proxy { |
27 | |||||
[email protected] | 4c2e935 | 2010-11-05 22:13:02 | [diff] [blame] | 28 | class PPP_Instance_Proxy : public InterfaceProxy { |
29 | public: | ||||
[email protected] | 0a6d5f6 | 2011-11-11 08:04:07 | [diff] [blame] | 30 | explicit PPP_Instance_Proxy(Dispatcher* dispatcher); |
[email protected] | 4c2e935 | 2010-11-05 22:13:02 | [diff] [blame] | 31 | virtual ~PPP_Instance_Proxy(); |
32 | |||||
[email protected] | e8f07ac | 2012-01-03 17:43:36 | [diff] [blame] | 33 | static const PPP_Instance* GetInstanceInterface(); |
[email protected] | 912f3d6c | 2011-06-29 18:26:36 | [diff] [blame] | 34 | |
[email protected] | 4d2efd2 | 2011-08-18 21:58:02 | [diff] [blame] | 35 | PPP_Instance_Combined* ppp_instance_target() const { |
[email protected] | 912f3d6c | 2011-06-29 18:26:36 | [diff] [blame] | 36 | return combined_interface_.get(); |
[email protected] | 4c2e935 | 2010-11-05 22:13:02 | [diff] [blame] | 37 | } |
38 | |||||
39 | // InterfaceProxy implementation. | ||||
[email protected] | a95986a8 | 2010-12-24 06:19:28 | [diff] [blame] | 40 | virtual bool OnMessageReceived(const IPC::Message& msg); |
[email protected] | 4c2e935 | 2010-11-05 22:13:02 | [diff] [blame] | 41 | |
42 | private: | ||||
43 | // Message handlers. | ||||
[email protected] | e8f07ac | 2012-01-03 17:43:36 | [diff] [blame] | 44 | void OnPluginMsgDidCreate(PP_Instance instance, |
45 | const std::vector<std::string>& argn, | ||||
46 | const std::vector<std::string>& argv, | ||||
47 | PP_Bool* result); | ||||
48 | void OnPluginMsgDidDestroy(PP_Instance instance); | ||||
49 | void OnPluginMsgDidChangeView(PP_Instance instance, | ||||
50 | const ViewData& new_data, | ||||
51 | PP_Bool flash_fullscreen); | ||||
52 | void OnPluginMsgDidChangeFocus(PP_Instance instance, PP_Bool has_focus); | ||||
53 | void OnPluginMsgHandleDocumentLoad(PP_Instance instance, | ||||
[email protected] | 47cb253f | 2013-05-16 01:50:40 | [diff] [blame^] | 54 | int pending_loader_host_id, |
55 | const URLResponseInfoData& data); | ||||
56 | |||||
[email protected] | 4d2efd2 | 2011-08-18 21:58:02 | [diff] [blame] | 57 | scoped_ptr<PPP_Instance_Combined> combined_interface_; |
[email protected] | 4c2e935 | 2010-11-05 22:13:02 | [diff] [blame] | 58 | }; |
59 | |||||
60 | } // namespace proxy | ||||
[email protected] | 4d2efd2 | 2011-08-18 21:58:02 | [diff] [blame] | 61 | } // namespace ppapi |
[email protected] | 4c2e935 | 2010-11-05 22:13:02 | [diff] [blame] | 62 | |
63 | #endif // PPAPI_PROXY_PPP_INSTANCE_PROXY_H_ |