| 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/platform_file.h" | 7 #include "base/platform_file.h" |
| 8 #include "ppapi/c/pp_bool.h" | 8 #include "ppapi/c/pp_bool.h" |
| 9 #include "ppapi/c/ppb_core.h" | 9 #include "ppapi/c/ppb_core.h" |
| 10 #include "ppapi/proxy/content_decryptor_private_serializer.h" | 10 #include "ppapi/proxy/content_decryptor_private_serializer.h" |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 118 } | 118 } |
| 119 | 119 |
| 120 dispatcher->Send( | 120 dispatcher->Send( |
| 121 new PpapiMsg_PPPContentDecryptor_Initialize( | 121 new PpapiMsg_PPPContentDecryptor_Initialize( |
| 122 API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE, | 122 API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE, |
| 123 instance, | 123 instance, |
| 124 SerializedVarSendInput(dispatcher, key_system))); | 124 SerializedVarSendInput(dispatcher, key_system))); |
| 125 } | 125 } |
| 126 | 126 |
| 127 void CreateSession(PP_Instance instance, | 127 void CreateSession(PP_Instance instance, |
| 128 uint32_t session_id, | 128 uint32_t promise_id, |
| 129 PP_Var type, | 129 PP_Var init_data_type, |
| 130 PP_Var init_data) { | 130 PP_Var init_data, |
| 131 PP_SessionType session_type) { |
| 131 HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance); | 132 HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance); |
| 132 if (!dispatcher) { | 133 if (!dispatcher) { |
| 133 NOTREACHED(); | 134 NOTREACHED(); |
| 134 return; | 135 return; |
| 135 } | 136 } |
| 136 | 137 |
| 137 dispatcher->Send(new PpapiMsg_PPPContentDecryptor_CreateSession( | 138 dispatcher->Send(new PpapiMsg_PPPContentDecryptor_CreateSession( |
| 138 API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE, | 139 API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE, |
| 139 instance, | 140 instance, |
| 140 session_id, | 141 promise_id, |
| 141 SerializedVarSendInput(dispatcher, type), | 142 SerializedVarSendInput(dispatcher, init_data_type), |
| 142 SerializedVarSendInput(dispatcher, init_data))); | 143 SerializedVarSendInput(dispatcher, init_data), |
| 144 session_type)); |
| 143 } | 145 } |
| 144 | 146 |
| 145 void LoadSession(PP_Instance instance, | 147 void LoadSession(PP_Instance instance, |
| 146 uint32_t session_id, | 148 uint32_t promise_id, |
| 147 PP_Var web_session_id) { | 149 PP_Var web_session_id) { |
| 148 HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance); | 150 HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance); |
| 149 if (!dispatcher) { | 151 if (!dispatcher) { |
| 150 NOTREACHED(); | 152 NOTREACHED(); |
| 151 return; | 153 return; |
| 152 } | 154 } |
| 153 | 155 |
| 154 dispatcher->Send(new PpapiMsg_PPPContentDecryptor_LoadSession( | 156 dispatcher->Send(new PpapiMsg_PPPContentDecryptor_LoadSession( |
| 155 API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE, | 157 API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE, |
| 156 instance, | 158 instance, |
| 157 session_id, | 159 promise_id, |
| 158 SerializedVarSendInput(dispatcher, web_session_id))); | 160 SerializedVarSendInput(dispatcher, web_session_id))); |
| 159 } | 161 } |
| 160 | 162 |
| 161 void UpdateSession(PP_Instance instance, uint32_t session_id, PP_Var response) { | 163 void UpdateSession(PP_Instance instance, |
| 164 uint32_t promise_id, |
| 165 PP_Var web_session_id, |
| 166 PP_Var response) { |
| 162 HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance); | 167 HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance); |
| 163 if (!dispatcher) { | 168 if (!dispatcher) { |
| 164 NOTREACHED(); | 169 NOTREACHED(); |
| 165 return; | 170 return; |
| 166 } | 171 } |
| 167 | 172 |
| 168 dispatcher->Send(new PpapiMsg_PPPContentDecryptor_UpdateSession( | 173 dispatcher->Send(new PpapiMsg_PPPContentDecryptor_UpdateSession( |
| 169 API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE, | 174 API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE, |
| 170 instance, | 175 instance, |
| 171 session_id, | 176 promise_id, |
| 177 SerializedVarSendInput(dispatcher, web_session_id), |
| 172 SerializedVarSendInput(dispatcher, response))); | 178 SerializedVarSendInput(dispatcher, response))); |
| 173 } | 179 } |
| 174 | 180 |
| 175 void ReleaseSession(PP_Instance instance, uint32_t session_id) { | 181 void ReleaseSession(PP_Instance instance, |
| 182 uint32_t promise_id, |
| 183 PP_Var web_session_id) { |
| 176 HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance); | 184 HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance); |
| 177 if (!dispatcher) { | 185 if (!dispatcher) { |
| 178 NOTREACHED(); | 186 NOTREACHED(); |
| 179 return; | 187 return; |
| 180 } | 188 } |
| 181 | 189 |
| 182 dispatcher->Send(new PpapiMsg_PPPContentDecryptor_ReleaseSession( | 190 dispatcher->Send(new PpapiMsg_PPPContentDecryptor_ReleaseSession( |
| 183 API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE, instance, session_id)); | 191 API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE, |
| 192 instance, |
| 193 promise_id, |
| 194 SerializedVarSendInput(dispatcher, web_session_id))); |
| 184 } | 195 } |
| 185 | 196 |
| 186 void Decrypt(PP_Instance instance, | 197 void Decrypt(PP_Instance instance, |
| 187 PP_Resource encrypted_block, | 198 PP_Resource encrypted_block, |
| 188 const PP_EncryptedBlockInfo* encrypted_block_info) { | 199 const PP_EncryptedBlockInfo* encrypted_block_info) { |
| 189 HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance); | 200 HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance); |
| 190 if (!dispatcher) { | 201 if (!dispatcher) { |
| 191 NOTREACHED(); | 202 NOTREACHED(); |
| 192 return; | 203 return; |
| 193 } | 204 } |
| (...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 448 if (ppp_decryptor_impl_) { | 459 if (ppp_decryptor_impl_) { |
| 449 CallWhileUnlocked( | 460 CallWhileUnlocked( |
| 450 ppp_decryptor_impl_->Initialize, | 461 ppp_decryptor_impl_->Initialize, |
| 451 instance, | 462 instance, |
| 452 ExtractReceivedVarAndAddRef(dispatcher(), &key_system)); | 463 ExtractReceivedVarAndAddRef(dispatcher(), &key_system)); |
| 453 } | 464 } |
| 454 } | 465 } |
| 455 | 466 |
| 456 void PPP_ContentDecryptor_Private_Proxy::OnMsgCreateSession( | 467 void PPP_ContentDecryptor_Private_Proxy::OnMsgCreateSession( |
| 457 PP_Instance instance, | 468 PP_Instance instance, |
| 458 uint32_t session_id, | 469 uint32_t promise_id, |
| 459 SerializedVarReceiveInput type, | 470 SerializedVarReceiveInput init_data_type, |
| 460 SerializedVarReceiveInput init_data) { | 471 SerializedVarReceiveInput init_data, |
| 472 PP_SessionType session_type) { |
| 461 if (ppp_decryptor_impl_) { | 473 if (ppp_decryptor_impl_) { |
| 462 CallWhileUnlocked(ppp_decryptor_impl_->CreateSession, | 474 CallWhileUnlocked( |
| 463 instance, | 475 ppp_decryptor_impl_->CreateSession, |
| 464 session_id, | 476 instance, |
| 465 ExtractReceivedVarAndAddRef(dispatcher(), &type), | 477 promise_id, |
| 466 ExtractReceivedVarAndAddRef(dispatcher(), &init_data)); | 478 ExtractReceivedVarAndAddRef(dispatcher(), &init_data_type), |
| 479 ExtractReceivedVarAndAddRef(dispatcher(), &init_data), |
| 480 session_type); |
| 467 } | 481 } |
| 468 } | 482 } |
| 469 | 483 |
| 470 void PPP_ContentDecryptor_Private_Proxy::OnMsgLoadSession( | 484 void PPP_ContentDecryptor_Private_Proxy::OnMsgLoadSession( |
| 471 PP_Instance instance, | 485 PP_Instance instance, |
| 472 uint32_t session_id, | 486 uint32_t promise_id, |
| 473 SerializedVarReceiveInput web_session_id) { | 487 SerializedVarReceiveInput web_session_id) { |
| 474 if (ppp_decryptor_impl_) { | 488 if (ppp_decryptor_impl_) { |
| 475 CallWhileUnlocked( | 489 CallWhileUnlocked( |
| 476 ppp_decryptor_impl_->LoadSession, | 490 ppp_decryptor_impl_->LoadSession, |
| 477 instance, | 491 instance, |
| 478 session_id, | 492 promise_id, |
| 479 ExtractReceivedVarAndAddRef(dispatcher(), &web_session_id)); | 493 ExtractReceivedVarAndAddRef(dispatcher(), &web_session_id)); |
| 480 } | 494 } |
| 481 } | 495 } |
| 482 | 496 |
| 483 void PPP_ContentDecryptor_Private_Proxy::OnMsgUpdateSession( | 497 void PPP_ContentDecryptor_Private_Proxy::OnMsgUpdateSession( |
| 484 PP_Instance instance, | 498 PP_Instance instance, |
| 485 uint32_t session_id, | 499 uint32_t promise_id, |
| 500 SerializedVarReceiveInput web_session_id, |
| 486 SerializedVarReceiveInput response) { | 501 SerializedVarReceiveInput response) { |
| 487 if (ppp_decryptor_impl_) { | 502 if (ppp_decryptor_impl_) { |
| 488 CallWhileUnlocked(ppp_decryptor_impl_->UpdateSession, | 503 CallWhileUnlocked( |
| 489 instance, | 504 ppp_decryptor_impl_->UpdateSession, |
| 490 session_id, | 505 instance, |
| 491 ExtractReceivedVarAndAddRef(dispatcher(), &response)); | 506 promise_id, |
| 507 ExtractReceivedVarAndAddRef(dispatcher(), &web_session_id), |
| 508 ExtractReceivedVarAndAddRef(dispatcher(), &response)); |
| 492 } | 509 } |
| 493 } | 510 } |
| 494 | 511 |
| 495 void PPP_ContentDecryptor_Private_Proxy::OnMsgReleaseSession( | 512 void PPP_ContentDecryptor_Private_Proxy::OnMsgReleaseSession( |
| 496 PP_Instance instance, | 513 PP_Instance instance, |
| 497 uint32_t session_id) { | 514 uint32_t promise_id, |
| 515 SerializedVarReceiveInput web_session_id) { |
| 498 if (ppp_decryptor_impl_) { | 516 if (ppp_decryptor_impl_) { |
| 499 CallWhileUnlocked(ppp_decryptor_impl_->ReleaseSession, | 517 CallWhileUnlocked( |
| 500 instance, | 518 ppp_decryptor_impl_->ReleaseSession, |
| 501 session_id); | 519 instance, |
| 520 promise_id, |
| 521 ExtractReceivedVarAndAddRef(dispatcher(), &web_session_id)); |
| 502 } | 522 } |
| 503 } | 523 } |
| 504 | 524 |
| 505 void PPP_ContentDecryptor_Private_Proxy::OnMsgDecrypt( | 525 void PPP_ContentDecryptor_Private_Proxy::OnMsgDecrypt( |
| 506 PP_Instance instance, | 526 PP_Instance instance, |
| 507 const PPPDecryptor_Buffer& encrypted_buffer, | 527 const PPPDecryptor_Buffer& encrypted_buffer, |
| 508 const std::string& serialized_block_info) { | 528 const std::string& serialized_block_info) { |
| 509 ScopedPPResource plugin_resource( | 529 ScopedPPResource plugin_resource( |
| 510 ScopedPPResource::PassRef(), | 530 ScopedPPResource::PassRef(), |
| 511 PPB_Buffer_Proxy::AddProxyResource(encrypted_buffer.resource, | 531 PPB_Buffer_Proxy::AddProxyResource(encrypted_buffer.resource, |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 622 ppp_decryptor_impl_->DecryptAndDecode, | 642 ppp_decryptor_impl_->DecryptAndDecode, |
| 623 instance, | 643 instance, |
| 624 decoder_type, | 644 decoder_type, |
| 625 plugin_resource.get(), | 645 plugin_resource.get(), |
| 626 const_cast<const PP_EncryptedBlockInfo*>(&block_info)); | 646 const_cast<const PP_EncryptedBlockInfo*>(&block_info)); |
| 627 } | 647 } |
| 628 } | 648 } |
| 629 | 649 |
| 630 } // namespace proxy | 650 } // namespace proxy |
| 631 } // namespace ppapi | 651 } // namespace ppapi |
| OLD | NEW |