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