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

Side by Side Diff: ppapi/proxy/ppp_content_decryptor_private_proxy.cc

Issue 496143002: Update Pepper interface for EME (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove vector.data() Created 6 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
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 #include "ppapi/proxy/ppp_content_decryptor_private_proxy.h" 5 #include "ppapi/proxy/ppp_content_decryptor_private_proxy.h"
6 6
7 #include "base/files/file.h" 7 #include "base/files/file.h"
8 #include "media/base/limits.h"
8 #include "ppapi/c/pp_bool.h" 9 #include "ppapi/c/pp_bool.h"
9 #include "ppapi/c/ppb_core.h" 10 #include "ppapi/c/ppb_core.h"
10 #include "ppapi/proxy/content_decryptor_private_serializer.h" 11 #include "ppapi/proxy/content_decryptor_private_serializer.h"
11 #include "ppapi/proxy/host_dispatcher.h" 12 #include "ppapi/proxy/host_dispatcher.h"
12 #include "ppapi/proxy/plugin_globals.h" 13 #include "ppapi/proxy/plugin_globals.h"
13 #include "ppapi/proxy/plugin_resource_tracker.h" 14 #include "ppapi/proxy/plugin_resource_tracker.h"
14 #include "ppapi/proxy/ppapi_messages.h" 15 #include "ppapi/proxy/ppapi_messages.h"
15 #include "ppapi/proxy/ppb_buffer_proxy.h" 16 #include "ppapi/proxy/ppb_buffer_proxy.h"
16 #include "ppapi/proxy/serialized_var.h" 17 #include "ppapi/proxy/serialized_var.h"
17 #include "ppapi/shared_impl/scoped_pp_resource.h" 18 #include "ppapi/shared_impl/scoped_pp_resource.h"
19 #include "ppapi/shared_impl/scoped_pp_var.h"
18 #include "ppapi/shared_impl/var_tracker.h" 20 #include "ppapi/shared_impl/var_tracker.h"
19 #include "ppapi/thunk/enter.h" 21 #include "ppapi/thunk/enter.h"
20 #include "ppapi/thunk/ppb_buffer_api.h" 22 #include "ppapi/thunk/ppb_buffer_api.h"
21 #include "ppapi/thunk/ppb_instance_api.h" 23 #include "ppapi/thunk/ppb_instance_api.h"
22 #include "ppapi/thunk/thunk.h" 24 #include "ppapi/thunk/thunk.h"
23 25
24 using ppapi::thunk::EnterResourceNoLock; 26 using ppapi::thunk::EnterResourceNoLock;
25 using ppapi::thunk::PPB_Buffer_API; 27 using ppapi::thunk::PPB_Buffer_API;
26 using ppapi::thunk::PPB_Instance_API; 28 using ppapi::thunk::PPB_Instance_API;
27 29
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 return; 119 return;
118 } 120 }
119 121
120 dispatcher->Send( 122 dispatcher->Send(
121 new PpapiMsg_PPPContentDecryptor_Initialize( 123 new PpapiMsg_PPPContentDecryptor_Initialize(
122 API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE, 124 API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE,
123 instance, 125 instance,
124 SerializedVarSendInput(dispatcher, key_system))); 126 SerializedVarSendInput(dispatcher, key_system)));
125 } 127 }
126 128
129 void SetServerCertificate(PP_Instance instance,
130 uint32_t promise_id,
131 PP_Var server_certificate) {
132 HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
133 if (!dispatcher) {
134 NOTREACHED();
135 return;
136 }
137
138 ArrayBufferVar* server_certificate_buffer =
139 ArrayBufferVar::FromPPVar(server_certificate);
140 if (!server_certificate_buffer ||
141 server_certificate_buffer->ByteLength() <
142 media::limits::kMinCertificateLength ||
143 server_certificate_buffer->ByteLength() >
144 media::limits::kMaxCertificateLength) {
145 NOTREACHED();
146 return;
147 }
148
149 const uint8_t* server_certificate_ptr =
150 static_cast<const uint8_t*>(server_certificate_buffer->Map());
151 const uint32_t server_certificate_size =
152 server_certificate_buffer->ByteLength();
153 std::vector<uint8_t> server_certificate_vector(
154 server_certificate_ptr, server_certificate_ptr + server_certificate_size);
155
156 dispatcher->Send(new PpapiMsg_PPPContentDecryptor_SetServerCertificate(
157 API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE,
158 instance,
159 promise_id,
160 server_certificate_vector));
161 }
162
127 void CreateSession(PP_Instance instance, 163 void CreateSession(PP_Instance instance,
128 uint32_t promise_id, 164 uint32_t promise_id,
129 PP_Var init_data_type, 165 PP_Var init_data_type,
130 PP_Var init_data, 166 PP_Var init_data,
131 PP_SessionType session_type) { 167 PP_SessionType session_type) {
132 HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance); 168 HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
133 if (!dispatcher) { 169 if (!dispatcher) {
134 NOTREACHED(); 170 NOTREACHED();
135 return; 171 return;
136 } 172 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 } 207 }
172 208
173 dispatcher->Send(new PpapiMsg_PPPContentDecryptor_UpdateSession( 209 dispatcher->Send(new PpapiMsg_PPPContentDecryptor_UpdateSession(
174 API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE, 210 API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE,
175 instance, 211 instance,
176 promise_id, 212 promise_id,
177 SerializedVarSendInput(dispatcher, web_session_id), 213 SerializedVarSendInput(dispatcher, web_session_id),
178 SerializedVarSendInput(dispatcher, response))); 214 SerializedVarSendInput(dispatcher, response)));
179 } 215 }
180 216
181 void ReleaseSession(PP_Instance instance, 217 void CloseSession(PP_Instance instance,
182 uint32_t promise_id, 218 uint32_t promise_id,
183 PP_Var web_session_id) { 219 PP_Var web_session_id) {
184 HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance); 220 HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
185 if (!dispatcher) { 221 if (!dispatcher) {
186 NOTREACHED(); 222 NOTREACHED();
187 return; 223 return;
188 } 224 }
189 225
190 dispatcher->Send(new PpapiMsg_PPPContentDecryptor_ReleaseSession( 226 StringVar* session_id = StringVar::FromPPVar(web_session_id);
227 if (!session_id ||
228 session_id->value().length() > media::limits::kMaxWebSessionIdLength) {
229 NOTREACHED();
230 return;
231 }
232
233 dispatcher->Send(new PpapiMsg_PPPContentDecryptor_CloseSession(
191 API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE, 234 API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE,
192 instance, 235 instance,
193 promise_id, 236 promise_id,
194 SerializedVarSendInput(dispatcher, web_session_id))); 237 session_id->value()));
238 }
239
240 void RemoveSession(PP_Instance instance,
241 uint32_t promise_id,
242 PP_Var web_session_id) {
243 HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
244 if (!dispatcher) {
245 NOTREACHED();
246 return;
247 }
248
249 StringVar* session_id = StringVar::FromPPVar(web_session_id);
250 if (!session_id ||
251 session_id->value().length() > media::limits::kMaxWebSessionIdLength) {
252 NOTREACHED();
253 return;
254 }
255
256 dispatcher->Send(new PpapiMsg_PPPContentDecryptor_RemoveSession(
257 API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE,
258 instance,
259 promise_id,
260 session_id->value()));
261 }
262
263 void GetUsableKeyIds(PP_Instance instance,
264 uint32_t promise_id,
265 PP_Var web_session_id) {
266 HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
267 if (!dispatcher) {
268 NOTREACHED();
269 return;
270 }
271
272 StringVar* session_id = StringVar::FromPPVar(web_session_id);
273 if (!session_id ||
274 session_id->value().length() > media::limits::kMaxWebSessionIdLength) {
275 NOTREACHED();
276 return;
277 }
278
279 dispatcher->Send(new PpapiMsg_PPPContentDecryptor_GetUsableKeyIds(
280 API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE,
281 instance,
282 promise_id,
283 session_id->value()));
195 } 284 }
196 285
197 void Decrypt(PP_Instance instance, 286 void Decrypt(PP_Instance instance,
198 PP_Resource encrypted_block, 287 PP_Resource encrypted_block,
199 const PP_EncryptedBlockInfo* encrypted_block_info) { 288 const PP_EncryptedBlockInfo* encrypted_block_info) {
200 HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance); 289 HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
201 if (!dispatcher) { 290 if (!dispatcher) {
202 NOTREACHED(); 291 NOTREACHED();
203 return; 292 return;
204 } 293 }
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 dispatcher->Send( 464 dispatcher->Send(
376 new PpapiMsg_PPPContentDecryptor_DecryptAndDecode( 465 new PpapiMsg_PPPContentDecryptor_DecryptAndDecode(
377 API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE, 466 API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE,
378 instance, 467 instance,
379 decoder_type, 468 decoder_type,
380 buffer, 469 buffer,
381 serialized_block_info)); 470 serialized_block_info));
382 } 471 }
383 472
384 static const PPP_ContentDecryptor_Private content_decryptor_interface = { 473 static const PPP_ContentDecryptor_Private content_decryptor_interface = {
385 &Initialize, 474 &Initialize,
386 &CreateSession, 475 &SetServerCertificate,
387 &LoadSession, 476 &CreateSession,
388 &UpdateSession, 477 &LoadSession,
389 &ReleaseSession, 478 &UpdateSession,
390 &Decrypt, 479 &CloseSession,
391 &InitializeAudioDecoder, 480 &RemoveSession,
392 &InitializeVideoDecoder, 481 &GetUsableKeyIds,
393 &DeinitializeDecoder, 482 &Decrypt,
394 &ResetDecoder, 483 &InitializeAudioDecoder,
395 &DecryptAndDecode 484 &InitializeVideoDecoder,
396 }; 485 &DeinitializeDecoder,
486 &ResetDecoder,
487 &DecryptAndDecode};
397 488
398 } // namespace 489 } // namespace
399 490
400 PPP_ContentDecryptor_Private_Proxy::PPP_ContentDecryptor_Private_Proxy( 491 PPP_ContentDecryptor_Private_Proxy::PPP_ContentDecryptor_Private_Proxy(
401 Dispatcher* dispatcher) 492 Dispatcher* dispatcher)
402 : InterfaceProxy(dispatcher), 493 : InterfaceProxy(dispatcher),
403 ppp_decryptor_impl_(NULL) { 494 ppp_decryptor_impl_(NULL) {
404 if (dispatcher->IsPlugin()) { 495 if (dispatcher->IsPlugin()) {
405 ppp_decryptor_impl_ = static_cast<const PPP_ContentDecryptor_Private*>( 496 ppp_decryptor_impl_ = static_cast<const PPP_ContentDecryptor_Private*>(
406 dispatcher->local_get_interface()( 497 dispatcher->local_get_interface()(
(...skipping 13 matching lines...) Expand all
420 bool PPP_ContentDecryptor_Private_Proxy::OnMessageReceived( 511 bool PPP_ContentDecryptor_Private_Proxy::OnMessageReceived(
421 const IPC::Message& msg) { 512 const IPC::Message& msg) {
422 if (!dispatcher()->IsPlugin()) 513 if (!dispatcher()->IsPlugin())
423 return false; // These are only valid from host->plugin. 514 return false; // These are only valid from host->plugin.
424 // Don't allow the plugin to send these to the host. 515 // Don't allow the plugin to send these to the host.
425 516
426 bool handled = true; 517 bool handled = true;
427 IPC_BEGIN_MESSAGE_MAP(PPP_ContentDecryptor_Private_Proxy, msg) 518 IPC_BEGIN_MESSAGE_MAP(PPP_ContentDecryptor_Private_Proxy, msg)
428 IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_Initialize, 519 IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_Initialize,
429 OnMsgInitialize) 520 OnMsgInitialize)
521 IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_SetServerCertificate,
522 OnMsgSetServerCertificate)
430 IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_CreateSession, 523 IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_CreateSession,
431 OnMsgCreateSession) 524 OnMsgCreateSession)
432 IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_LoadSession, 525 IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_LoadSession,
433 OnMsgLoadSession) 526 OnMsgLoadSession)
434 IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_UpdateSession, 527 IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_UpdateSession,
435 OnMsgUpdateSession) 528 OnMsgUpdateSession)
436 IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_ReleaseSession, 529 IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_CloseSession,
437 OnMsgReleaseSession) 530 OnMsgCloseSession)
531 IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_RemoveSession,
532 OnMsgRemoveSession)
533 IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_GetUsableKeyIds,
534 OnMsgGetUsableKeyIds)
438 IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_Decrypt, 535 IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_Decrypt,
439 OnMsgDecrypt) 536 OnMsgDecrypt)
440 IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_InitializeAudioDecoder, 537 IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_InitializeAudioDecoder,
441 OnMsgInitializeAudioDecoder) 538 OnMsgInitializeAudioDecoder)
442 IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_InitializeVideoDecoder, 539 IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_InitializeVideoDecoder,
443 OnMsgInitializeVideoDecoder) 540 OnMsgInitializeVideoDecoder)
444 IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_DeinitializeDecoder, 541 IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_DeinitializeDecoder,
445 OnMsgDeinitializeDecoder) 542 OnMsgDeinitializeDecoder)
446 IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_ResetDecoder, 543 IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_ResetDecoder,
447 OnMsgResetDecoder) 544 OnMsgResetDecoder)
448 IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_DecryptAndDecode, 545 IPC_MESSAGE_HANDLER(PpapiMsg_PPPContentDecryptor_DecryptAndDecode,
449 OnMsgDecryptAndDecode) 546 OnMsgDecryptAndDecode)
450 IPC_MESSAGE_UNHANDLED(handled = false) 547 IPC_MESSAGE_UNHANDLED(handled = false)
451 IPC_END_MESSAGE_MAP() 548 IPC_END_MESSAGE_MAP()
452 DCHECK(handled); 549 DCHECK(handled);
453 return handled; 550 return handled;
454 } 551 }
455 552
456 void PPP_ContentDecryptor_Private_Proxy::OnMsgInitialize( 553 void PPP_ContentDecryptor_Private_Proxy::OnMsgInitialize(
457 PP_Instance instance, 554 PP_Instance instance,
458 SerializedVarReceiveInput key_system) { 555 SerializedVarReceiveInput key_system) {
459 if (ppp_decryptor_impl_) { 556 if (ppp_decryptor_impl_) {
460 CallWhileUnlocked( 557 CallWhileUnlocked(
461 ppp_decryptor_impl_->Initialize, 558 ppp_decryptor_impl_->Initialize,
462 instance, 559 instance,
463 ExtractReceivedVarAndAddRef(dispatcher(), &key_system)); 560 ExtractReceivedVarAndAddRef(dispatcher(), &key_system));
464 } 561 }
465 } 562 }
466 563
564 void PPP_ContentDecryptor_Private_Proxy::OnMsgSetServerCertificate(
565 PP_Instance instance,
566 uint32_t promise_id,
567 std::vector<uint8_t> server_certificate) {
568 if (server_certificate.size() < media::limits::kMinCertificateLength ||
569 server_certificate.size() > media::limits::kMaxCertificateLength) {
570 NOTREACHED();
571 return;
572 }
573
574 if (ppp_decryptor_impl_) {
575 ScopedPPVar server_certificate_var(
576 ScopedPPVar::PassRef(),
577 PpapiGlobals::Get()
578 ->GetVarTracker()
579 ->MakeArrayBufferPPVar(server_certificate.size(),
580 &server_certificate[0]));
581 CallWhileUnlocked(ppp_decryptor_impl_->SetServerCertificate,
582 instance,
583 promise_id,
584 server_certificate_var.get());
585 }
586 }
587
467 void PPP_ContentDecryptor_Private_Proxy::OnMsgCreateSession( 588 void PPP_ContentDecryptor_Private_Proxy::OnMsgCreateSession(
468 PP_Instance instance, 589 PP_Instance instance,
469 uint32_t promise_id, 590 uint32_t promise_id,
470 SerializedVarReceiveInput init_data_type, 591 SerializedVarReceiveInput init_data_type,
471 SerializedVarReceiveInput init_data, 592 SerializedVarReceiveInput init_data,
472 PP_SessionType session_type) { 593 PP_SessionType session_type) {
473 if (ppp_decryptor_impl_) { 594 if (ppp_decryptor_impl_) {
474 CallWhileUnlocked( 595 CallWhileUnlocked(
475 ppp_decryptor_impl_->CreateSession, 596 ppp_decryptor_impl_->CreateSession,
476 instance, 597 instance,
(...skipping 25 matching lines...) Expand all
502 if (ppp_decryptor_impl_) { 623 if (ppp_decryptor_impl_) {
503 CallWhileUnlocked( 624 CallWhileUnlocked(
504 ppp_decryptor_impl_->UpdateSession, 625 ppp_decryptor_impl_->UpdateSession,
505 instance, 626 instance,
506 promise_id, 627 promise_id,
507 ExtractReceivedVarAndAddRef(dispatcher(), &web_session_id), 628 ExtractReceivedVarAndAddRef(dispatcher(), &web_session_id),
508 ExtractReceivedVarAndAddRef(dispatcher(), &response)); 629 ExtractReceivedVarAndAddRef(dispatcher(), &response));
509 } 630 }
510 } 631 }
511 632
512 void PPP_ContentDecryptor_Private_Proxy::OnMsgReleaseSession( 633 void PPP_ContentDecryptor_Private_Proxy::OnMsgCloseSession(
513 PP_Instance instance, 634 PP_Instance instance,
514 uint32_t promise_id, 635 uint32_t promise_id,
515 SerializedVarReceiveInput web_session_id) { 636 const std::string& web_session_id) {
516 if (ppp_decryptor_impl_) { 637 if (ppp_decryptor_impl_) {
517 CallWhileUnlocked( 638 ScopedPPVar web_session_id_var(ScopedPPVar::PassRef(),
518 ppp_decryptor_impl_->ReleaseSession, 639 StringVar::StringToPPVar(web_session_id));
519 instance, 640 CallWhileUnlocked(ppp_decryptor_impl_->CloseSession,
520 promise_id, 641 instance,
521 ExtractReceivedVarAndAddRef(dispatcher(), &web_session_id)); 642 promise_id,
643 web_session_id_var.get());
522 } 644 }
523 } 645 }
524 646
647 void PPP_ContentDecryptor_Private_Proxy::OnMsgRemoveSession(
648 PP_Instance instance,
649 uint32_t promise_id,
650 const std::string& web_session_id) {
651 if (ppp_decryptor_impl_) {
652 ScopedPPVar web_session_id_var(ScopedPPVar::PassRef(),
653 StringVar::StringToPPVar(web_session_id));
654 CallWhileUnlocked(ppp_decryptor_impl_->RemoveSession,
655 instance,
656 promise_id,
657 web_session_id_var.get());
658 }
659 }
660
661 void PPP_ContentDecryptor_Private_Proxy::OnMsgGetUsableKeyIds(
662 PP_Instance instance,
663 uint32_t promise_id,
664 const std::string& web_session_id) {
665 if (ppp_decryptor_impl_) {
666 ScopedPPVar web_session_id_var(ScopedPPVar::PassRef(),
667 StringVar::StringToPPVar(web_session_id));
668 CallWhileUnlocked(ppp_decryptor_impl_->GetUsableKeyIds,
669 instance,
670 promise_id,
671 web_session_id_var.get());
672 }
673 }
674
525 void PPP_ContentDecryptor_Private_Proxy::OnMsgDecrypt( 675 void PPP_ContentDecryptor_Private_Proxy::OnMsgDecrypt(
526 PP_Instance instance, 676 PP_Instance instance,
527 const PPPDecryptor_Buffer& encrypted_buffer, 677 const PPPDecryptor_Buffer& encrypted_buffer,
528 const std::string& serialized_block_info) { 678 const std::string& serialized_block_info) {
529 ScopedPPResource plugin_resource( 679 ScopedPPResource plugin_resource(
530 ScopedPPResource::PassRef(), 680 ScopedPPResource::PassRef(),
531 PPB_Buffer_Proxy::AddProxyResource(encrypted_buffer.resource, 681 PPB_Buffer_Proxy::AddProxyResource(encrypted_buffer.resource,
532 encrypted_buffer.handle, 682 encrypted_buffer.handle,
533 encrypted_buffer.size)); 683 encrypted_buffer.size));
534 if (ppp_decryptor_impl_) { 684 if (ppp_decryptor_impl_) {
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
642 ppp_decryptor_impl_->DecryptAndDecode, 792 ppp_decryptor_impl_->DecryptAndDecode,
643 instance, 793 instance,
644 decoder_type, 794 decoder_type,
645 plugin_resource.get(), 795 plugin_resource.get(),
646 const_cast<const PP_EncryptedBlockInfo*>(&block_info)); 796 const_cast<const PP_EncryptedBlockInfo*>(&block_info));
647 } 797 }
648 } 798 }
649 799
650 } // namespace proxy 800 } // namespace proxy
651 } // namespace ppapi 801 } // namespace ppapi
OLDNEW
« no previous file with comments | « ppapi/proxy/ppp_content_decryptor_private_proxy.h ('k') | ppapi/thunk/ppb_content_decryptor_private_thunk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698