Index: ppapi/proxy/ppb_instance_proxy.cc |
diff --git a/ppapi/proxy/ppb_instance_proxy.cc b/ppapi/proxy/ppb_instance_proxy.cc |
index ea974ef29db254c7426ca35a6f99d264e49bf7f0..698c0012c8e6b2f358726f3331fe8e1fe271f0cd 100644 |
--- a/ppapi/proxy/ppb_instance_proxy.cc |
+++ b/ppapi/proxy/ppb_instance_proxy.cc |
@@ -136,6 +136,7 @@ bool PPB_Instance_Proxy::OnMessageReceived(const IPC::Message& msg) { |
OnHostMsgCancelCompositionText) |
IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_UpdateSurroundingText, |
OnHostMsgUpdateSurroundingText) |
+ |
#if !defined(OS_NACL) |
IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_ResolveRelativeToDocument, |
OnHostMsgResolveRelativeToDocument) |
@@ -147,6 +148,20 @@ bool PPB_Instance_Proxy::OnMessageReceived(const IPC::Message& msg) { |
OnHostMsgGetDocumentURL) |
IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_GetPluginInstanceURL, |
OnHostMsgGetPluginInstanceURL) |
+ IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_NeedKey, |
+ OnHostMsgNeedKey) |
+ IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_KeyAdded, |
+ OnHostMsgKeyAdded) |
+ IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_KeyMessage, |
+ OnHostMsgKeyMessage) |
+ IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_KeyError, |
+ OnHostMsgKeyError) |
+ IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_DeliverBlock, |
+ OnHostMsgDeliverBlock) |
+ IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_DeliverFrame, |
+ OnHostMsgDeliverFrame) |
+ IPC_MESSAGE_HANDLER(PpapiHostMsg_PPBInstance_DeliverSamples, |
+ OnHostMsgDeliverSamples) |
#endif // !defined(OS_NACL) |
// Host -> Plugin messages. |
@@ -397,6 +412,108 @@ PP_Var PPB_Instance_Proxy::GetPluginInstanceURL( |
result.Return(dispatcher()), |
components); |
} |
+ |
+void PPB_Instance_Proxy::NeedKey(PP_Instance instance, |
+ PP_Var key_system, |
+ PP_Var session_id, |
+ PP_Var init_data) { |
+ dispatcher()->Send( |
+ new PpapiHostMsg_PPBInstance_NeedKey( |
+ API_ID_PPB_INSTANCE, |
+ instance, |
+ SerializedVarSendInput(dispatcher(), key_system), |
+ SerializedVarSendInput(dispatcher(), session_id), |
+ SerializedVarSendInput(dispatcher(), init_data))); |
+} |
+ |
+void PPB_Instance_Proxy::KeyAdded(PP_Instance instance, |
+ PP_Var key_system, |
+ PP_Var session_id) { |
+ dispatcher()->Send( |
+ new PpapiHostMsg_PPBInstance_KeyAdded( |
+ API_ID_PPB_INSTANCE, |
+ instance, |
+ SerializedVarSendInput(dispatcher(), key_system), |
+ SerializedVarSendInput(dispatcher(), session_id))); |
+} |
+ |
+void PPB_Instance_Proxy::KeyMessage(PP_Instance instance, |
+ PP_Var key_system, |
+ PP_Var session_id, |
+ PP_Resource message, |
+ PP_Var default_url) { |
+ Resource* object = |
+ PpapiGlobals::Get()->GetResourceTracker()->GetResource(message); |
+ if (!object || object->pp_instance() != instance) |
+ return; |
+ dispatcher()->Send( |
+ new PpapiHostMsg_PPBInstance_KeyMessage( |
+ API_ID_PPB_INSTANCE, |
+ instance, |
+ SerializedVarSendInput(dispatcher(), key_system), |
+ SerializedVarSendInput(dispatcher(), session_id), |
+ object->host_resource().host_resource(), |
+ SerializedVarSendInput(dispatcher(), default_url))); |
+} |
+ |
+void PPB_Instance_Proxy::KeyError(PP_Instance instance, |
+ PP_Var key_system, |
+ PP_Var session_id, |
+ int32_t media_error, |
+ int32_t system_code) { |
+ dispatcher()->Send( |
+ new PpapiHostMsg_PPBInstance_KeyError( |
+ API_ID_PPB_INSTANCE, |
+ instance, |
+ SerializedVarSendInput(dispatcher(), key_system), |
+ SerializedVarSendInput(dispatcher(), session_id), |
+ media_error, |
+ system_code)); |
+} |
+ |
+void PPB_Instance_Proxy::DeliverBlock(PP_Instance instance, |
+ PP_Resource decrypted_block, |
+ int32_t request_id) { |
+ Resource* object = |
+ PpapiGlobals::Get()->GetResourceTracker()->GetResource(decrypted_block); |
+ if (!object || object->pp_instance() != instance) |
+ return; |
+ dispatcher()->Send( |
+ new PpapiHostMsg_PPBInstance_DeliverBlock(API_ID_PPB_INSTANCE, |
+ instance, |
+ object->host_resource().host_resource(), |
+ request_id)); |
+} |
+ |
+void PPB_Instance_Proxy::DeliverFrame(PP_Instance instance, |
+ PP_Resource decrypted_frame, |
+ int32_t request_id) { |
+ Resource* object = |
+ PpapiGlobals::Get()->GetResourceTracker()->GetResource(decrypted_frame); |
+ if (!object || object->pp_instance() != instance) |
+ return; |
+ dispatcher()->Send(new PpapiHostMsg_PPBInstance_DeliverFrame( |
+ API_ID_PPB_INSTANCE, |
+ instance, |
+ object->host_resource().host_resource(), |
+ request_id)); |
+} |
+ |
+void PPB_Instance_Proxy::DeliverSamples(PP_Instance instance, |
+ PP_Resource decrypted_samples, |
+ int32_t request_id) { |
+ Resource* object = |
+ PpapiGlobals::Get()->GetResourceTracker()->GetResource(decrypted_samples); |
+ if (!object || object->pp_instance() != instance) |
+ return; |
+ dispatcher()->Send( |
+ new PpapiHostMsg_PPBInstance_DeliverSamples( |
+ API_ID_PPB_INSTANCE, |
+ instance, |
+ object->host_resource().host_resource(), |
+ request_id)); |
+} |
+ |
#endif // !defined(OS_NACL) |
void PPB_Instance_Proxy::PostMessage(PP_Instance instance, |
@@ -730,6 +847,88 @@ void PPB_Instance_Proxy::OnHostMsgGetPluginInstanceURL( |
enter.functions()->GetPluginInstanceURL(instance, NULL)); |
} |
} |
+ |
+void PPB_Instance_Proxy::OnHostMsgNeedKey(PP_Instance instance, |
+ SerializedVarReceiveInput key_system, |
+ SerializedVarReceiveInput session_id, |
+ SerializedVarReceiveInput init_data) { |
+ EnterInstanceNoLock enter(instance); |
+ if (enter.succeeded()) { |
+ enter.functions()->NeedKey(instance, |
+ key_system.Get(dispatcher()), |
+ session_id.Get(dispatcher()), |
+ init_data.Get(dispatcher())); |
+ } |
+} |
+ |
+void PPB_Instance_Proxy::OnHostMsgKeyAdded( |
+ PP_Instance instance, |
+ SerializedVarReceiveInput key_system, |
+ SerializedVarReceiveInput session_id) { |
+ EnterInstanceNoLock enter(instance); |
+ if (enter.succeeded()) { |
+ enter.functions()->KeyAdded(instance, |
+ key_system.Get(dispatcher()), |
+ session_id.Get(dispatcher())); |
+ } |
+} |
+ |
+void PPB_Instance_Proxy::OnHostMsgKeyMessage( |
+ PP_Instance instance, |
+ SerializedVarReceiveInput key_system, |
+ SerializedVarReceiveInput session_id, |
+ PP_Resource message, |
+ SerializedVarReceiveInput default_url) { |
+ EnterInstanceNoLock enter(instance); |
+ if (enter.succeeded()) { |
+ enter.functions()->KeyMessage(instance, |
+ key_system.Get(dispatcher()), |
+ session_id.Get(dispatcher()), |
+ message, |
+ default_url.Get(dispatcher())); |
+ } |
+} |
+ |
+void PPB_Instance_Proxy::OnHostMsgKeyError( |
+ PP_Instance instance, |
+ SerializedVarReceiveInput key_system, |
+ SerializedVarReceiveInput session_id, |
+ int32_t media_error, |
+ int32_t system_error) { |
+ EnterInstanceNoLock enter(instance); |
+ if (enter.succeeded()) { |
+ enter.functions()->KeyError(instance, |
+ key_system.Get(dispatcher()), |
+ session_id.Get(dispatcher()), |
+ media_error, |
+ system_error); |
+ } |
+} |
+ |
+void PPB_Instance_Proxy::OnHostMsgDeliverBlock(PP_Instance instance, |
+ PP_Resource decrypted_block, |
+ int32_t request_id) { |
+ EnterInstanceNoLock enter(instance); |
+ if (enter.succeeded()) |
+ enter.functions()->DeliverBlock(instance, decrypted_block, request_id); |
+} |
+ |
+void PPB_Instance_Proxy::OnHostMsgDeliverFrame(PP_Instance instance, |
+ PP_Resource decrypted_frame, |
+ int32_t request_id) { |
+ EnterInstanceNoLock enter(instance); |
+ if (enter.succeeded()) |
+ enter.functions()->DeliverFrame(instance, decrypted_frame, request_id); |
+} |
+ |
+void PPB_Instance_Proxy::OnHostMsgDeliverSamples(PP_Instance instance, |
+ PP_Resource decrypted_samples, |
+ int32_t request_id) { |
+ EnterInstanceNoLock enter(instance); |
+ if (enter.succeeded()) |
+ enter.functions()->DeliverSamples(instance, decrypted_samples, request_id); |
+} |
+ |
#endif // !defined(OS_NACL) |
void PPB_Instance_Proxy::OnHostMsgSetCursor( |