Disable TabDragController tests that fail with a real compositor.
[chromium-blink-merge.git] / ppapi / proxy / ppb_instance_proxy.h
blob0737b58ea75757439da1b47d3712359d9d5d5a21
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.
5 #ifndef PPAPI_PROXY_PPB_INSTANCE_PROXY_H_
6 #define PPAPI_PROXY_PPB_INSTANCE_PROXY_H_
8 #include <string>
10 #include "ppapi/c/pp_instance.h"
11 #include "ppapi/c/pp_resource.h"
12 #include "ppapi/c/pp_var.h"
13 #include "ppapi/proxy/interface_proxy.h"
14 #include "ppapi/proxy/proxy_completion_callback_factory.h"
15 #include "ppapi/shared_impl/host_resource.h"
16 #include "ppapi/shared_impl/ppb_instance_shared.h"
17 #include "ppapi/shared_impl/singleton_resource_id.h"
18 #include "ppapi/thunk/ppb_instance_api.h"
19 #include "ppapi/utility/completion_callback_factory.h"
21 // Windows headers interfere with this file.
22 #ifdef PostMessage
23 #undef PostMessage
24 #endif
26 struct PP_DecryptedBlockInfo;
27 struct PP_DecryptedFrameInfo;
29 namespace ppapi {
30 namespace proxy {
32 class SerializedVarReceiveInput;
33 class SerializedVarOutParam;
34 class SerializedVarReturnValue;
36 class PPB_Instance_Proxy : public InterfaceProxy,
37 public PPB_Instance_Shared {
38 public:
39 PPB_Instance_Proxy(Dispatcher* dispatcher);
40 virtual ~PPB_Instance_Proxy();
42 // InterfaceProxy implementation.
43 virtual bool OnMessageReceived(const IPC::Message& msg);
45 // PPB_Instance_API implementation.
46 virtual PP_Bool BindGraphics(PP_Instance instance,
47 PP_Resource device) OVERRIDE;
48 virtual PP_Bool IsFullFrame(PP_Instance instance) OVERRIDE;
49 virtual const ViewData* GetViewData(PP_Instance instance) OVERRIDE;
50 virtual PP_Bool FlashIsFullscreen(PP_Instance instance) OVERRIDE;
51 virtual PP_Var GetWindowObject(PP_Instance instance) OVERRIDE;
52 virtual PP_Var GetOwnerElementObject(PP_Instance instance) OVERRIDE;
53 virtual PP_Var ExecuteScript(PP_Instance instance,
54 PP_Var script,
55 PP_Var* exception) OVERRIDE;
56 virtual uint32_t GetAudioHardwareOutputSampleRate(PP_Instance instance)
57 OVERRIDE;
58 virtual uint32_t GetAudioHardwareOutputBufferSize(PP_Instance instance)
59 OVERRIDE;
60 virtual PP_Var GetDefaultCharSet(PP_Instance instance) OVERRIDE;
61 virtual void NumberOfFindResultsChanged(PP_Instance instance,
62 int32_t total,
63 PP_Bool final_result) OVERRIDE;
64 virtual void SelectedFindResultChanged(PP_Instance instance,
65 int32_t index) OVERRIDE;
66 virtual PP_Bool IsFullscreen(PP_Instance instance) OVERRIDE;
67 virtual PP_Bool SetFullscreen(PP_Instance instance,
68 PP_Bool fullscreen) OVERRIDE;
69 virtual PP_Bool GetScreenSize(PP_Instance instance,
70 PP_Size* size) OVERRIDE;
71 virtual Resource* GetSingletonResource(PP_Instance instance,
72 SingletonResourceID id) OVERRIDE;
73 virtual int32_t RequestInputEvents(PP_Instance instance,
74 uint32_t event_classes) OVERRIDE;
75 virtual int32_t RequestFilteringInputEvents(PP_Instance instance,
76 uint32_t event_classes) OVERRIDE;
77 virtual void ClearInputEventRequest(PP_Instance instance,
78 uint32_t event_classes) OVERRIDE;
79 virtual void ZoomChanged(PP_Instance instance, double factor) OVERRIDE;
80 virtual void ZoomLimitsChanged(PP_Instance instance,
81 double minimum_factor,
82 double maximium_factor) OVERRIDE;
83 virtual void PostMessage(PP_Instance instance, PP_Var message) OVERRIDE;
84 virtual PP_Bool SetCursor(PP_Instance instance,
85 PP_MouseCursor_Type type,
86 PP_Resource image,
87 const PP_Point* hot_spot) OVERRIDE;
88 virtual int32_t LockMouse(PP_Instance instance,
89 scoped_refptr<TrackedCallback> callback) OVERRIDE;
90 virtual void UnlockMouse(PP_Instance instance) OVERRIDE;
91 virtual void SetTextInputType(PP_Instance instance,
92 PP_TextInput_Type type) OVERRIDE;
93 virtual void UpdateCaretPosition(PP_Instance instance,
94 const PP_Rect& caret,
95 const PP_Rect& bounding_box) OVERRIDE;
96 virtual void CancelCompositionText(PP_Instance instance) OVERRIDE;
97 virtual void SelectionChanged(PP_Instance instance) OVERRIDE;
98 virtual void UpdateSurroundingText(PP_Instance instance,
99 const char* text,
100 uint32_t caret,
101 uint32_t anchor) OVERRIDE;
102 virtual PP_Var GetDocumentURL(PP_Instance instance,
103 PP_URLComponents_Dev* components) OVERRIDE;
104 #if !defined(OS_NACL)
105 virtual PP_Var ResolveRelativeToDocument(
106 PP_Instance instance,
107 PP_Var relative,
108 PP_URLComponents_Dev* components) OVERRIDE;
109 virtual PP_Bool DocumentCanRequest(PP_Instance instance, PP_Var url) OVERRIDE;
110 virtual PP_Bool DocumentCanAccessDocument(PP_Instance instance,
111 PP_Instance target) OVERRIDE;
112 virtual PP_Var GetPluginInstanceURL(
113 PP_Instance instance,
114 PP_URLComponents_Dev* components) OVERRIDE;
115 virtual PP_Var GetPluginReferrerURL(
116 PP_Instance instance,
117 PP_URLComponents_Dev* components) OVERRIDE;
118 virtual void SessionCreated(PP_Instance instance,
119 uint32_t session_id,
120 PP_Var web_session_id) OVERRIDE;
121 virtual void SessionMessage(PP_Instance instance,
122 uint32_t session_id,
123 PP_Var message,
124 PP_Var destination_url) OVERRIDE;
125 virtual void SessionReady(PP_Instance instance, uint32_t session_id) OVERRIDE;
126 virtual void SessionClosed(PP_Instance instance,
127 uint32_t session_id) OVERRIDE;
128 virtual void SessionError(PP_Instance instance,
129 uint32_t session_id,
130 int32_t media_error,
131 int32_t system_code) OVERRIDE;
132 virtual void DeliverBlock(PP_Instance instance,
133 PP_Resource decrypted_block,
134 const PP_DecryptedBlockInfo* block_info) OVERRIDE;
135 virtual void DecoderInitializeDone(PP_Instance instance,
136 PP_DecryptorStreamType decoder_type,
137 uint32_t request_id,
138 PP_Bool success) OVERRIDE;
139 virtual void DecoderDeinitializeDone(PP_Instance instance,
140 PP_DecryptorStreamType decoder_type,
141 uint32_t request_id) OVERRIDE;
142 virtual void DecoderResetDone(PP_Instance instance,
143 PP_DecryptorStreamType decoder_type,
144 uint32_t request_id) OVERRIDE;
145 virtual void DeliverFrame(PP_Instance instance,
146 PP_Resource decrypted_frame,
147 const PP_DecryptedFrameInfo* frame_info) OVERRIDE;
148 virtual void DeliverSamples(
149 PP_Instance instance,
150 PP_Resource audio_frames,
151 const PP_DecryptedSampleInfo* sample_info) OVERRIDE;
152 #endif // !defined(OS_NACL)
154 static const ApiID kApiID = API_ID_PPB_INSTANCE;
156 private:
157 // Plugin -> Host message handlers.
158 void OnHostMsgGetWindowObject(PP_Instance instance,
159 SerializedVarReturnValue result);
160 void OnHostMsgGetOwnerElementObject(PP_Instance instance,
161 SerializedVarReturnValue result);
162 void OnHostMsgBindGraphics(PP_Instance instance,
163 PP_Resource device);
164 void OnHostMsgIsFullFrame(PP_Instance instance, PP_Bool* result);
165 void OnHostMsgExecuteScript(PP_Instance instance,
166 SerializedVarReceiveInput script,
167 SerializedVarOutParam out_exception,
168 SerializedVarReturnValue result);
169 void OnHostMsgGetAudioHardwareOutputSampleRate(PP_Instance instance,
170 uint32_t *result);
171 void OnHostMsgGetAudioHardwareOutputBufferSize(PP_Instance instance,
172 uint32_t *result);
173 void OnHostMsgGetDefaultCharSet(PP_Instance instance,
174 SerializedVarReturnValue result);
175 void OnHostMsgSetFullscreen(PP_Instance instance,
176 PP_Bool fullscreen,
177 PP_Bool* result);
178 void OnHostMsgGetScreenSize(PP_Instance instance,
179 PP_Bool* result,
180 PP_Size* size);
181 void OnHostMsgRequestInputEvents(PP_Instance instance,
182 bool is_filtering,
183 uint32_t event_classes);
184 void OnHostMsgClearInputEvents(PP_Instance instance,
185 uint32_t event_classes);
186 void OnHostMsgPostMessage(PP_Instance instance,
187 SerializedVarReceiveInput message);
188 void OnHostMsgLockMouse(PP_Instance instance);
189 void OnHostMsgUnlockMouse(PP_Instance instance);
190 void OnHostMsgSetCursor(PP_Instance instance,
191 int32_t type,
192 const ppapi::HostResource& custom_image,
193 const PP_Point& hot_spot);
194 void OnHostMsgSetTextInputType(PP_Instance instance, PP_TextInput_Type type);
195 void OnHostMsgUpdateCaretPosition(PP_Instance instance,
196 const PP_Rect& caret,
197 const PP_Rect& bounding_box);
198 void OnHostMsgCancelCompositionText(PP_Instance instance);
199 void OnHostMsgUpdateSurroundingText(
200 PP_Instance instance,
201 const std::string& text,
202 uint32_t caret,
203 uint32_t anchor);
204 void OnHostMsgGetDocumentURL(PP_Instance instance,
205 PP_URLComponents_Dev* components,
206 SerializedVarReturnValue result);
208 #if !defined(OS_NACL)
209 void OnHostMsgResolveRelativeToDocument(PP_Instance instance,
210 SerializedVarReceiveInput relative,
211 SerializedVarReturnValue result);
212 void OnHostMsgDocumentCanRequest(PP_Instance instance,
213 SerializedVarReceiveInput url,
214 PP_Bool* result);
215 void OnHostMsgDocumentCanAccessDocument(PP_Instance active,
216 PP_Instance target,
217 PP_Bool* result);
218 void OnHostMsgGetPluginInstanceURL(PP_Instance instance,
219 SerializedVarReturnValue result);
220 void OnHostMsgGetPluginReferrerURL(PP_Instance instance,
221 SerializedVarReturnValue result);
222 virtual void OnHostMsgSessionCreated(
223 PP_Instance instance,
224 uint32_t session_id,
225 SerializedVarReceiveInput web_session_id);
226 virtual void OnHostMsgSessionMessage(
227 PP_Instance instance,
228 uint32_t session_id,
229 SerializedVarReceiveInput message,
230 SerializedVarReceiveInput destination_url);
231 virtual void OnHostMsgSessionReady(PP_Instance instance, uint32_t session_id);
232 virtual void OnHostMsgSessionClosed(PP_Instance instance,
233 uint32_t session_id);
234 virtual void OnHostMsgSessionError(PP_Instance instance,
235 uint32_t session_id,
236 int32_t media_error,
237 int32_t system_code);
238 virtual void OnHostMsgDecoderInitializeDone(
239 PP_Instance instance,
240 PP_DecryptorStreamType decoder_type,
241 uint32_t request_id,
242 PP_Bool success);
243 virtual void OnHostMsgDecoderDeinitializeDone(
244 PP_Instance instance,
245 PP_DecryptorStreamType decoder_type,
246 uint32_t request_id);
247 virtual void OnHostMsgDecoderResetDone(PP_Instance instance,
248 PP_DecryptorStreamType decoder_type,
249 uint32_t request_id);
250 virtual void OnHostMsgDeliverBlock(PP_Instance instance,
251 PP_Resource decrypted_block,
252 const std::string& serialized_block_info);
253 virtual void OnHostMsgDeliverFrame(PP_Instance instance,
254 PP_Resource decrypted_frame,
255 const std::string& serialized_block_info);
256 virtual void OnHostMsgDeliverSamples(
257 PP_Instance instance,
258 PP_Resource audio_frames,
259 const std::string& serialized_sample_info);
260 #endif // !defined(OS_NACL)
262 // Host -> Plugin message handlers.
263 void OnPluginMsgMouseLockComplete(PP_Instance instance, int32_t result);
265 void MouseLockCompleteInHost(int32_t result, PP_Instance instance);
267 // Other helpers.
268 void CancelAnyPendingRequestSurroundingText(PP_Instance instance);
270 ProxyCompletionCallbackFactory<PPB_Instance_Proxy> callback_factory_;
273 } // namespace proxy
274 } // namespace ppapi
276 #endif // PPAPI_PROXY_PPB_INSTANCE_PROXY_H_