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

Unified Diff: chrome/renderer/pepper/pepper_flash_drm_renderer_host.cc

Issue 21966004: Pepper: Move FileRef to the "new" resource proxy. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Another rebase Created 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/renderer/pepper/pepper_flash_drm_renderer_host.cc
diff --git a/chrome/renderer/pepper/pepper_flash_drm_renderer_host.cc b/chrome/renderer/pepper/pepper_flash_drm_renderer_host.cc
index ca59c7ef2cae40045bdfc922f155e287297617f5..4d9a24c79f5d8345d549df6477f3e1b5fd896cf4 100644
--- a/chrome/renderer/pepper/pepper_flash_drm_renderer_host.cc
+++ b/chrome/renderer/pepper/pepper_flash_drm_renderer_host.cc
@@ -12,7 +12,6 @@
#include "ppapi/host/host_message_context.h"
#include "ppapi/host/ppapi_host.h"
#include "ppapi/proxy/ppapi_messages.h"
-#include "ppapi/proxy/ppb_file_ref_proxy.h"
namespace chrome {
@@ -28,7 +27,8 @@ PepperFlashDRMRendererHost::PepperFlashDRMRendererHost(
PP_Instance instance,
PP_Resource resource)
: ResourceHost(host->GetPpapiHost(), instance, resource),
- renderer_ppapi_host_(host) {
+ renderer_ppapi_host_(host),
+ weak_factory_(this) {
}
PepperFlashDRMRendererHost::~PepperFlashDRMRendererHost() {
@@ -56,13 +56,43 @@ int32_t PepperFlashDRMRendererHost::OnGetVoucherFile(
base::FilePath voucher_file = plugin_dir.Append(
base::FilePath(kVoucherFilename));
- ppapi::PPB_FileRef_CreateInfo create_info;
- ppapi::proxy::PPB_FileRef_Proxy::SerializeFileRef(
- plugin_instance->CreateExternalFileReference(voucher_file),
- &create_info);
- context->reply_msg =
- PpapiPluginMsg_FlashDRM_GetVoucherFileReply(create_info);
- return PP_OK;
+ int renderer_pending_host_id =
+ plugin_instance->MakePendingFileRefRendererHost(voucher_file);
+ if (renderer_pending_host_id == 0)
+ return PP_ERROR_FAILED;
+
+ std::vector<IPC::Message> create_msgs;
+ create_msgs.push_back(PpapiHostMsg_FileRef_CreateExternal(voucher_file));
+
+ renderer_ppapi_host_->CreateBrowserResourceHosts(
+ pp_instance(),
+ create_msgs,
+ base::Bind(&PepperFlashDRMRendererHost::DidCreateFileRefHosts,
+ weak_factory_.GetWeakPtr(),
+ context->MakeReplyMessageContext(),
+ voucher_file,
+ renderer_pending_host_id));
+ return PP_OK_COMPLETIONPENDING;
+}
+
+void PepperFlashDRMRendererHost::DidCreateFileRefHosts(
+ const ppapi::host::ReplyMessageContext& reply_context,
+ const base::FilePath& external_path,
+ int renderer_pending_host_id,
+ const std::vector<int>& browser_pending_host_ids) {
+ DCHECK(browser_pending_host_ids.size() == 1);
+
+ int browser_pending_host_id = 0;
+ if (browser_pending_host_ids.size() == 1)
+ browser_pending_host_id = browser_pending_host_ids[0];
+
+ ppapi::FileRefCreateInfo create_info =
+ ppapi::MakeExternalFileRefCreateInfo(external_path,
+ std::string(),
+ browser_pending_host_id,
+ renderer_pending_host_id);
+ host()->SendReply(reply_context,
+ PpapiPluginMsg_FlashDRM_GetVoucherFileReply(create_info));
}
} // namespace chrome

Powered by Google App Engine
This is Rietveld 408576698