Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1271)

Side by Side Diff: webkit/plugins/ppapi/ppapi_plugin_instance.h

Issue 10871006: Connect PpapiDecryptor and PluginInstance. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix a minor bug happened during code copying. Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « webkit/plugins/ppapi/DEPS ('k') | webkit/plugins/ppapi/ppapi_plugin_instance.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef WEBKIT_PLUGINS_PPAPI_PPAPI_PLUGIN_INSTANCE_H_ 5 #ifndef WEBKIT_PLUGINS_PPAPI_PPAPI_PLUGIN_INSTANCE_H_
6 #define WEBKIT_PLUGINS_PPAPI_PPAPI_PLUGIN_INSTANCE_H_ 6 #define WEBKIT_PLUGINS_PPAPI_PPAPI_PLUGIN_INSTANCE_H_
7 7
8 #include <map>
8 #include <set> 9 #include <set>
9 #include <string> 10 #include <string>
10 #include <vector> 11 #include <vector>
11 12
12 #include "base/basictypes.h" 13 #include "base/basictypes.h"
13 #include "base/callback.h" 14 #include "base/callback.h"
14 #include "base/compiler_specific.h" 15 #include "base/compiler_specific.h"
15 #include "base/memory/ref_counted.h" 16 #include "base/memory/ref_counted.h"
16 #include "base/memory/scoped_ptr.h" 17 #include "base/memory/scoped_ptr.h"
17 #include "base/memory/weak_ptr.h" 18 #include "base/memory/weak_ptr.h"
18 #include "base/string16.h" 19 #include "base/string16.h"
19 #include "googleurl/src/gurl.h" 20 #include "googleurl/src/gurl.h"
21 #include "media/base/decryptor.h"
20 #include "ppapi/c/dev/pp_cursor_type_dev.h" 22 #include "ppapi/c/dev/pp_cursor_type_dev.h"
21 #include "ppapi/c/dev/ppp_printing_dev.h" 23 #include "ppapi/c/dev/ppp_printing_dev.h"
22 #include "ppapi/c/dev/ppp_find_dev.h" 24 #include "ppapi/c/dev/ppp_find_dev.h"
23 #include "ppapi/c/dev/ppp_selection_dev.h" 25 #include "ppapi/c/dev/ppp_selection_dev.h"
24 #include "ppapi/c/dev/ppp_text_input_dev.h" 26 #include "ppapi/c/dev/ppp_text_input_dev.h"
25 #include "ppapi/c/dev/ppp_zoom_dev.h" 27 #include "ppapi/c/dev/ppp_zoom_dev.h"
26 #include "ppapi/c/pp_completion_callback.h" 28 #include "ppapi/c/pp_completion_callback.h"
27 #include "ppapi/c/pp_instance.h" 29 #include "ppapi/c/pp_instance.h"
28 #include "ppapi/c/pp_resource.h" 30 #include "ppapi/c/pp_resource.h"
29 #include "ppapi/c/pp_time.h" 31 #include "ppapi/c/pp_time.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 64
63 namespace WebKit { 65 namespace WebKit {
64 class WebInputEvent; 66 class WebInputEvent;
65 class WebMouseEvent; 67 class WebMouseEvent;
66 class WebPluginContainer; 68 class WebPluginContainer;
67 struct WebCompositionUnderline; 69 struct WebCompositionUnderline;
68 struct WebCursorInfo; 70 struct WebCursorInfo;
69 struct WebPrintParams; 71 struct WebPrintParams;
70 } 72 }
71 73
74 namespace media {
75 class DecoderBuffer;
76 class DecryptorClient;
77 }
78
72 namespace ppapi { 79 namespace ppapi {
73 struct InputEventData; 80 struct InputEventData;
74 struct PPP_Instance_Combined; 81 struct PPP_Instance_Combined;
75 class Resource; 82 class Resource;
76 } 83 }
77 84
78 namespace ui { 85 namespace ui {
79 class Range; 86 class Range;
80 } 87 }
81 88
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 bool PrintPage(int page_number, WebKit::WebCanvas* canvas); 243 bool PrintPage(int page_number, WebKit::WebCanvas* canvas);
237 void PrintEnd(); 244 void PrintEnd();
238 245
239 bool CanRotateView(); 246 bool CanRotateView();
240 void RotateView(WebKit::WebPlugin::RotationType type); 247 void RotateView(WebKit::WebPlugin::RotationType type);
241 248
242 void Graphics3DContextLost(); 249 void Graphics3DContextLost();
243 250
244 // Provides access to PPP_ContentDecryptor_Private. 251 // Provides access to PPP_ContentDecryptor_Private.
245 // TODO(tomfinegan): Move decryptor methods to delegate class. 252 // TODO(tomfinegan): Move decryptor methods to delegate class.
246 typedef base::Callback<void(void*, int)> DecryptedDataCB; 253 void set_decrypt_client(media::DecryptorClient* client);
247 bool GenerateKeyRequest(const std::string& key_system, 254 bool GenerateKeyRequest(const std::string& key_system,
248 const std::string& init_data); 255 const std::string& init_data);
249 bool AddKey(const std::string& session_id, 256 bool AddKey(const std::string& session_id,
250 const std::string& key, 257 const std::string& key,
251 const std::string& init_data); 258 const std::string& init_data);
252 bool CancelKeyRequest(const std::string& session_id); 259 bool CancelKeyRequest(const std::string& session_id);
253 bool Decrypt(const base::StringPiece& encypted_block, 260 bool Decrypt(const scoped_refptr<media::DecoderBuffer>& encrypted_buffer,
254 const DecryptedDataCB& callback); 261 const media::Decryptor::DecryptCB& decrypt_cb);
255 bool DecryptAndDecode(const base::StringPiece& encypted_block, 262 // TODO(xhwang): Update this when we need to support decrypt and decode.
256 const DecryptedDataCB& callback); 263 bool DecryptAndDecode(
264 const scoped_refptr<media::DecoderBuffer>& encrypted_buffer,
265 const media::Decryptor::DecryptCB& decrypt_cb);
257 266
258 // There are 2 implementations of the fullscreen interface 267 // There are 2 implementations of the fullscreen interface
259 // PPB_FlashFullscreen is used by Pepper Flash. 268 // PPB_FlashFullscreen is used by Pepper Flash.
260 // PPB_Fullscreen is intended for other applications including NaCl. 269 // PPB_Fullscreen is intended for other applications including NaCl.
261 // The two interface are mutually exclusive. 270 // The two interface are mutually exclusive.
262 271
263 // Implementation of PPB_FlashFullscreen. 272 // Implementation of PPB_FlashFullscreen.
264 273
265 // Because going to fullscreen is asynchronous (but going out is not), there 274 // Because going to fullscreen is asynchronous (but going out is not), there
266 // are 3 states: 275 // are 3 states:
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 // or embedded in a page). 339 // or embedded in a page).
331 bool IsFullPagePlugin() const; 340 bool IsFullPagePlugin() const;
332 341
333 // Returns true if the plugin is processing a user gesture. 342 // Returns true if the plugin is processing a user gesture.
334 bool IsProcessingUserGesture(); 343 bool IsProcessingUserGesture();
335 344
336 // A mouse lock request was pending and this reports success or failure. 345 // A mouse lock request was pending and this reports success or failure.
337 void OnLockMouseACK(bool succeeded); 346 void OnLockMouseACK(bool succeeded);
338 // A mouse lock was in place, but has been lost. 347 // A mouse lock was in place, but has been lost.
339 void OnMouseLockLost(); 348 void OnMouseLockLost();
340 // A mouse lock is enabled and mouse events are being delievered. 349 // A mouse lock is enabled and mouse events are being delivered.
341 void HandleMouseLockedInputEvent(const WebKit::WebMouseEvent& event); 350 void HandleMouseLockedInputEvent(const WebKit::WebMouseEvent& event);
342 351
343 // Simulates an input event to the plugin by passing it down to WebKit, 352 // Simulates an input event to the plugin by passing it down to WebKit,
344 // which sends it back up to the plugin as if it came from the user. 353 // which sends it back up to the plugin as if it came from the user.
345 void SimulateInputEvent(const ::ppapi::InputEventData& input_event); 354 void SimulateInputEvent(const ::ppapi::InputEventData& input_event);
346 355
347 // Simulates an IME event at the level of RenderView which sends it back up to 356 // Simulates an IME event at the level of RenderView which sends it back up to
348 // the plugin as if it came from the user. 357 // the plugin as if it came from the user.
349 bool SimulateIMEEvent(const ::ppapi::InputEventData& input_event); 358 bool SimulateIMEEvent(const ::ppapi::InputEventData& input_event);
350 void SimulateImeSetCompositionEvent( 359 void SimulateImeSetCompositionEvent(
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 // proxy and re-sends DidCreate, DidChangeView, and HandleDocumentLoad (if 467 // proxy and re-sends DidCreate, DidChangeView, and HandleDocumentLoad (if
459 // necessary). 468 // necessary).
460 // This is for use with the NaCl proxy. 469 // This is for use with the NaCl proxy.
461 bool ResetAsProxied(); 470 bool ResetAsProxied();
462 471
463 private: 472 private:
464 // Implements PPB_Gamepad_API. This is just to avoid having an excessive 473 // Implements PPB_Gamepad_API. This is just to avoid having an excessive
465 // number of interfaces implemented by PluginInstance. 474 // number of interfaces implemented by PluginInstance.
466 class GamepadImpl : public ::ppapi::thunk::PPB_Gamepad_API { 475 class GamepadImpl : public ::ppapi::thunk::PPB_Gamepad_API {
467 public: 476 public:
468 GamepadImpl(PluginDelegate* delegate); 477 explicit GamepadImpl(PluginDelegate* delegate);
469 virtual void Sample(PP_GamepadsSampleData* data) OVERRIDE; 478 virtual void Sample(PP_GamepadsSampleData* data) OVERRIDE;
470 private: 479 private:
471 PluginDelegate* delegate_; 480 PluginDelegate* delegate_;
472 }; 481 };
473 482
474 // See the static Create functions above for creating PluginInstance objects. 483 // See the static Create functions above for creating PluginInstance objects.
475 // This constructor is private so that we can hide the PPP_Instance_Combined 484 // This constructor is private so that we can hide the PPP_Instance_Combined
476 // details while still having 1 constructor to maintain for member 485 // details while still having 1 constructor to maintain for member
477 // initialization. 486 // initialization.
478 PluginInstance(PluginDelegate* delegate, 487 PluginInstance(PluginDelegate* delegate,
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
732 741
733 // We store the arguments so we can re-send them if we are reset to talk to 742 // We store the arguments so we can re-send them if we are reset to talk to
734 // NaCl via the IPC NaCl proxy. 743 // NaCl via the IPC NaCl proxy.
735 std::vector<std::string> argn_; 744 std::vector<std::string> argn_;
736 std::vector<std::string> argv_; 745 std::vector<std::string> argv_;
737 746
738 // This is NULL unless HandleDocumentLoad has called. In that case, we store 747 // This is NULL unless HandleDocumentLoad has called. In that case, we store
739 // the pointer so we can re-send it later if we are reset to talk to NaCl. 748 // the pointer so we can re-send it later if we are reset to talk to NaCl.
740 scoped_refptr<PPB_URLLoader_Impl> document_loader_; 749 scoped_refptr<PPB_URLLoader_Impl> document_loader_;
741 750
751 media::DecryptorClient* decryptor_client_;
752 uint32_t next_decryption_request_id_;
753 typedef std::map<uint32_t, media::Decryptor::DecryptCB> DecryptionCBMap;
754 DecryptionCBMap pending_decryption_cbs_;
755
742 DISALLOW_COPY_AND_ASSIGN(PluginInstance); 756 DISALLOW_COPY_AND_ASSIGN(PluginInstance);
743 }; 757 };
744 758
745 } // namespace ppapi 759 } // namespace ppapi
746 } // namespace webkit 760 } // namespace webkit
747 761
748 #endif // WEBKIT_PLUGINS_PPAPI_PPAPI_PLUGIN_INSTANCE_H_ 762 #endif // WEBKIT_PLUGINS_PPAPI_PPAPI_PLUGIN_INSTANCE_H_
OLDNEW
« no previous file with comments | « webkit/plugins/ppapi/DEPS ('k') | webkit/plugins/ppapi/ppapi_plugin_instance.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698