summaryrefslogtreecommitdiffstats
path: root/ppapi/proxy/ppp_content_decryptor_private_proxy.cc
diff options
context:
space:
mode:
authorjrummell@chromium.org <jrummell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-07 08:54:25 +0000
committerjrummell@chromium.org <jrummell@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-07 08:54:25 +0000
commit0dbea5feff930c613725b56c11ab9663bfe949c5 (patch)
treebfbe08b3d3cfa12e6ce402b83c986f5a41c7033b /ppapi/proxy/ppp_content_decryptor_private_proxy.cc
parentc29f10f1305b954d7629a05cf1cc59e56b482cf1 (diff)
downloadchromium_src-0dbea5feff930c613725b56c11ab9663bfe949c5.zip
chromium_src-0dbea5feff930c613725b56c11ab9663bfe949c5.tar.gz
chromium_src-0dbea5feff930c613725b56c11ab9663bfe949c5.tar.bz2
Add Promises for EME (Chromium side)
Now that the EME-WD spec has changed to specify promises, implement them on the Chromium side. They currently get converted back to events before passing them to blink:: until the blink interface gets changed. Additional changes in this CL: 1. Pass a reference to the promise though PPAPI. 2. Roll DEPS for CDM.h to include CDM_5. 3. Update cdm_adapter to use CDM_5 (in addition to existing CDM_4). 4. Change External Clear Key to use CDM_5. 5. Since CDM_5 references sessions by the actual session id (a string, web_session_id), switch to using it rather than the previously used session_id (which is an integer, and used as a reference). BUG=358271 TEST=all existing encrypted media layout and browser tests pass Review URL: https://codereview.chromium.org/265993002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275656 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/proxy/ppp_content_decryptor_private_proxy.cc')
-rw-r--r--ppapi/proxy/ppp_content_decryptor_private_proxy.cc82
1 files changed, 51 insertions, 31 deletions
diff --git a/ppapi/proxy/ppp_content_decryptor_private_proxy.cc b/ppapi/proxy/ppp_content_decryptor_private_proxy.cc
index 1058a2e..eee3871 100644
--- a/ppapi/proxy/ppp_content_decryptor_private_proxy.cc
+++ b/ppapi/proxy/ppp_content_decryptor_private_proxy.cc
@@ -125,9 +125,10 @@ void Initialize(PP_Instance instance,
}
void CreateSession(PP_Instance instance,
- uint32_t session_id,
- PP_Var type,
- PP_Var init_data) {
+ uint32_t promise_id,
+ PP_Var init_data_type,
+ PP_Var init_data,
+ PP_SessionType session_type) {
HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
if (!dispatcher) {
NOTREACHED();
@@ -137,13 +138,14 @@ void CreateSession(PP_Instance instance,
dispatcher->Send(new PpapiMsg_PPPContentDecryptor_CreateSession(
API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE,
instance,
- session_id,
- SerializedVarSendInput(dispatcher, type),
- SerializedVarSendInput(dispatcher, init_data)));
+ promise_id,
+ SerializedVarSendInput(dispatcher, init_data_type),
+ SerializedVarSendInput(dispatcher, init_data),
+ session_type));
}
void LoadSession(PP_Instance instance,
- uint32_t session_id,
+ uint32_t promise_id,
PP_Var web_session_id) {
HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
if (!dispatcher) {
@@ -154,11 +156,14 @@ void LoadSession(PP_Instance instance,
dispatcher->Send(new PpapiMsg_PPPContentDecryptor_LoadSession(
API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE,
instance,
- session_id,
+ promise_id,
SerializedVarSendInput(dispatcher, web_session_id)));
}
-void UpdateSession(PP_Instance instance, uint32_t session_id, PP_Var response) {
+void UpdateSession(PP_Instance instance,
+ uint32_t promise_id,
+ PP_Var web_session_id,
+ PP_Var response) {
HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
if (!dispatcher) {
NOTREACHED();
@@ -168,11 +173,14 @@ void UpdateSession(PP_Instance instance, uint32_t session_id, PP_Var response) {
dispatcher->Send(new PpapiMsg_PPPContentDecryptor_UpdateSession(
API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE,
instance,
- session_id,
+ promise_id,
+ SerializedVarSendInput(dispatcher, web_session_id),
SerializedVarSendInput(dispatcher, response)));
}
-void ReleaseSession(PP_Instance instance, uint32_t session_id) {
+void ReleaseSession(PP_Instance instance,
+ uint32_t promise_id,
+ PP_Var web_session_id) {
HostDispatcher* dispatcher = HostDispatcher::GetForInstance(instance);
if (!dispatcher) {
NOTREACHED();
@@ -180,7 +188,10 @@ void ReleaseSession(PP_Instance instance, uint32_t session_id) {
}
dispatcher->Send(new PpapiMsg_PPPContentDecryptor_ReleaseSession(
- API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE, instance, session_id));
+ API_ID_PPP_CONTENT_DECRYPTOR_PRIVATE,
+ instance,
+ promise_id,
+ SerializedVarSendInput(dispatcher, web_session_id)));
}
void Decrypt(PP_Instance instance,
@@ -455,50 +466,59 @@ void PPP_ContentDecryptor_Private_Proxy::OnMsgInitialize(
void PPP_ContentDecryptor_Private_Proxy::OnMsgCreateSession(
PP_Instance instance,
- uint32_t session_id,
- SerializedVarReceiveInput type,
- SerializedVarReceiveInput init_data) {
+ uint32_t promise_id,
+ SerializedVarReceiveInput init_data_type,
+ SerializedVarReceiveInput init_data,
+ PP_SessionType session_type) {
if (ppp_decryptor_impl_) {
- CallWhileUnlocked(ppp_decryptor_impl_->CreateSession,
- instance,
- session_id,
- ExtractReceivedVarAndAddRef(dispatcher(), &type),
- ExtractReceivedVarAndAddRef(dispatcher(), &init_data));
+ CallWhileUnlocked(
+ ppp_decryptor_impl_->CreateSession,
+ instance,
+ promise_id,
+ ExtractReceivedVarAndAddRef(dispatcher(), &init_data_type),
+ ExtractReceivedVarAndAddRef(dispatcher(), &init_data),
+ session_type);
}
}
void PPP_ContentDecryptor_Private_Proxy::OnMsgLoadSession(
PP_Instance instance,
- uint32_t session_id,
+ uint32_t promise_id,
SerializedVarReceiveInput web_session_id) {
if (ppp_decryptor_impl_) {
CallWhileUnlocked(
ppp_decryptor_impl_->LoadSession,
instance,
- session_id,
+ promise_id,
ExtractReceivedVarAndAddRef(dispatcher(), &web_session_id));
}
}
void PPP_ContentDecryptor_Private_Proxy::OnMsgUpdateSession(
PP_Instance instance,
- uint32_t session_id,
+ uint32_t promise_id,
+ SerializedVarReceiveInput web_session_id,
SerializedVarReceiveInput response) {
if (ppp_decryptor_impl_) {
- CallWhileUnlocked(ppp_decryptor_impl_->UpdateSession,
- instance,
- session_id,
- ExtractReceivedVarAndAddRef(dispatcher(), &response));
+ CallWhileUnlocked(
+ ppp_decryptor_impl_->UpdateSession,
+ instance,
+ promise_id,
+ ExtractReceivedVarAndAddRef(dispatcher(), &web_session_id),
+ ExtractReceivedVarAndAddRef(dispatcher(), &response));
}
}
void PPP_ContentDecryptor_Private_Proxy::OnMsgReleaseSession(
PP_Instance instance,
- uint32_t session_id) {
+ uint32_t promise_id,
+ SerializedVarReceiveInput web_session_id) {
if (ppp_decryptor_impl_) {
- CallWhileUnlocked(ppp_decryptor_impl_->ReleaseSession,
- instance,
- session_id);
+ CallWhileUnlocked(
+ ppp_decryptor_impl_->ReleaseSession,
+ instance,
+ promise_id,
+ ExtractReceivedVarAndAddRef(dispatcher(), &web_session_id));
}
}