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

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

Issue 10836038: Call CDMWrapper from PpapiDecryptor. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add PP_DecryptionBuffer_Dev and update Decrypt() PPP call. Created 8 years, 4 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
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"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 #include "webkit/plugins/ppapi/plugin_delegate.h" 52 #include "webkit/plugins/ppapi/plugin_delegate.h"
52 #include "webkit/plugins/ppapi/ppb_flash_impl.h" 53 #include "webkit/plugins/ppapi/ppb_flash_impl.h"
53 #include "webkit/plugins/ppapi/ppp_pdf.h" 54 #include "webkit/plugins/ppapi/ppp_pdf.h"
54 #include "webkit/plugins/webkit_plugins_export.h" 55 #include "webkit/plugins/webkit_plugins_export.h"
55 56
56 struct PP_Point; 57 struct PP_Point;
57 58
58 class SkBitmap; 59 class SkBitmap;
59 class TransportDIB; 60 class TransportDIB;
60 61
62 namespace media {
63 class DecoderBuffer;
64 class DecryptorClient;
65 }
66
61 namespace WebKit { 67 namespace WebKit {
62 class WebInputEvent; 68 class WebInputEvent;
63 class WebMouseEvent; 69 class WebMouseEvent;
64 class WebPluginContainer; 70 class WebPluginContainer;
65 struct WebCompositionUnderline; 71 struct WebCompositionUnderline;
66 struct WebCursorInfo; 72 struct WebCursorInfo;
67 struct WebPrintParams; 73 struct WebPrintParams;
68 } 74 }
69 75
70 namespace ppapi { 76 namespace ppapi {
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 bool PrintPage(int page_number, WebKit::WebCanvas* canvas); 240 bool PrintPage(int page_number, WebKit::WebCanvas* canvas);
235 void PrintEnd(); 241 void PrintEnd();
236 242
237 bool CanRotateView(); 243 bool CanRotateView();
238 void RotateView(WebKit::WebPlugin::RotationType type); 244 void RotateView(WebKit::WebPlugin::RotationType type);
239 245
240 void Graphics3DContextLost(); 246 void Graphics3DContextLost();
241 247
242 // Provides access to PPP_ContentDecryptor_Dev. 248 // Provides access to PPP_ContentDecryptor_Dev.
243 typedef base::Callback<void(void*, int)> CDMStatusCB; 249 typedef base::Callback<void(void*, int)> CDMStatusCB;
250 void SetDecryptClient(media::DecryptorClient* client);
251
244 bool GenerateKeyRequest(const std::string& key_system, 252 bool GenerateKeyRequest(const std::string& key_system,
245 const std::string& init_data); 253 const std::string& init_data);
246 bool AddKey(const std::string& session_id, 254 bool AddKey(const std::string& session_id,
247 const std::string& key); 255 const std::string& key);
248 bool CancelKeyRequest(const std::string& session_id); 256 bool CancelKeyRequest(const std::string& session_id);
249 bool Decrypt(const std::string& encypted_block, 257 bool Decrypt(const scoped_refptr<media::DecoderBuffer>& encrypted_buffer,
250 const CDMStatusCB& callback); 258 const CDMStatusCB& callback);
251 bool DecryptAndDecode(const std::string& encypted_block, 259 bool DecryptAndDecode(const std::string& encypted_block,
252 const CDMStatusCB& callback); 260 const CDMStatusCB& callback);
253 261
254 // There are 2 implementations of the fullscreen interface 262 // There are 2 implementations of the fullscreen interface
255 // PPB_FlashFullscreen is used by Pepper Flash. 263 // PPB_FlashFullscreen is used by Pepper Flash.
256 // PPB_Fullscreen is intended for other applications including NaCl. 264 // PPB_Fullscreen is intended for other applications including NaCl.
257 // The two interface are mutually exclusive. 265 // The two interface are mutually exclusive.
258 266
259 // Implementation of PPB_FlashFullscreen. 267 // Implementation of PPB_FlashFullscreen.
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 PP_Var session_id, 443 PP_Var session_id,
436 PP_Resource message, 444 PP_Resource message,
437 PP_Var default_url) OVERRIDE; 445 PP_Var default_url) OVERRIDE;
438 virtual void KeyError(PP_Instance instance, 446 virtual void KeyError(PP_Instance instance,
439 PP_Var key_system, 447 PP_Var key_system,
440 PP_Var session_id, 448 PP_Var session_id,
441 uint16_t media_error, 449 uint16_t media_error,
442 uint16_t system_error) OVERRIDE; 450 uint16_t system_error) OVERRIDE;
443 virtual void DeliverBlock(PP_Instance instance, 451 virtual void DeliverBlock(PP_Instance instance,
444 PP_Resource decrypted_block, 452 PP_Resource decrypted_block,
445 PP_CompletionCallback callback) OVERRIDE; 453 uint32_t id) OVERRIDE;
446 virtual void DeliverFrame(PP_Instance instance, 454 virtual void DeliverFrame(PP_Instance instance,
447 PP_Resource decrypted_frame, 455 PP_Resource decrypted_frame,
448 PP_CompletionCallback callback) OVERRIDE; 456 PP_CompletionCallback callback) OVERRIDE;
449 virtual void DeliverSamples(PP_Instance instance, 457 virtual void DeliverSamples(PP_Instance instance,
450 PP_Resource decrypted_samples, 458 PP_Resource decrypted_samples,
451 PP_CompletionCallback callback) OVERRIDE; 459 PP_CompletionCallback callback) OVERRIDE;
452 460
453 // Reset this instance as proxied. Resets cached interfaces to point to the 461 // Reset this instance as proxied. Resets cached interfaces to point to the
454 // proxy and re-sends DidCreate, DidChangeView, and HandleDocumentLoad (if 462 // proxy and re-sends DidCreate, DidChangeView, and HandleDocumentLoad (if
455 // necessary). 463 // necessary).
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
716 724
717 // We store the arguments so we can re-send them if we are reset to talk to 725 // We store the arguments so we can re-send them if we are reset to talk to
718 // NaCl via the IPC NaCl proxy. 726 // NaCl via the IPC NaCl proxy.
719 std::vector<std::string> argn_; 727 std::vector<std::string> argn_;
720 std::vector<std::string> argv_; 728 std::vector<std::string> argv_;
721 729
722 // This is NULL unless HandleDocumentLoad has called. In that case, we store 730 // This is NULL unless HandleDocumentLoad has called. In that case, we store
723 // the pointer so we can re-send it later if we are reset to talk to NaCl. 731 // the pointer so we can re-send it later if we are reset to talk to NaCl.
724 scoped_refptr<PPB_URLLoader_Impl> document_loader_; 732 scoped_refptr<PPB_URLLoader_Impl> document_loader_;
725 733
734 // We store the callback passed in from Decyrpt().
735 media::DecryptorClient* decryptor_client_;
736 uint64_t next_decryption_buffer_id_;
737 std::map<uint64_t, CDMStatusCB> cdm_status_cb_map_;
738
726 DISALLOW_COPY_AND_ASSIGN(PluginInstance); 739 DISALLOW_COPY_AND_ASSIGN(PluginInstance);
727 }; 740 };
728 741
729 } // namespace ppapi 742 } // namespace ppapi
730 } // namespace webkit 743 } // namespace webkit
731 744
732 #endif // WEBKIT_PLUGINS_PPAPI_PPAPI_PLUGIN_INSTANCE_H_ 745 #endif // WEBKIT_PLUGINS_PPAPI_PPAPI_PLUGIN_INSTANCE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698