|
@@ -1,87 +0,0 @@
|
|
|
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
|
|
-// Use of this source code is governed by a BSD-style license that can be
|
|
|
-// found in the LICENSE file.
|
|
|
-
|
|
|
-#include "chrome/renderer/pepper/pepper_flash_drm_renderer_host.h"
|
|
|
-
|
|
|
-#include "base/files/file_path.h"
|
|
|
-#include "content/public/renderer/pepper_plugin_instance.h"
|
|
|
-#include "content/public/renderer/renderer_ppapi_host.h"
|
|
|
-#include "ppapi/c/pp_errors.h"
|
|
|
-#include "ppapi/host/dispatch_host_message.h"
|
|
|
-#include "ppapi/host/host_message_context.h"
|
|
|
-#include "ppapi/host/ppapi_host.h"
|
|
|
-#include "ppapi/proxy/ppapi_messages.h"
|
|
|
-
|
|
|
-// TODO(raymes): This is duplicated from pepper_flash_drm_host.cc but once
|
|
|
-// FileRef is refactored to the browser, it won't need to be.
|
|
|
-namespace {
|
|
|
-const char kVoucherFilename[] = "plugin.vch";
|
|
|
-} // namespace
|
|
|
-
|
|
|
-PepperFlashDRMRendererHost::PepperFlashDRMRendererHost(
|
|
|
- content::RendererPpapiHost* host,
|
|
|
- PP_Instance instance,
|
|
|
- PP_Resource resource)
|
|
|
- : ResourceHost(host->GetPpapiHost(), instance, resource),
|
|
|
- renderer_ppapi_host_(host),
|
|
|
- weak_factory_(this) {}
|
|
|
-
|
|
|
-PepperFlashDRMRendererHost::~PepperFlashDRMRendererHost() {}
|
|
|
-
|
|
|
-int32_t PepperFlashDRMRendererHost::OnResourceMessageReceived(
|
|
|
- const IPC::Message& msg,
|
|
|
- ppapi::host::HostMessageContext* context) {
|
|
|
- PPAPI_BEGIN_MESSAGE_MAP(PepperFlashDRMRendererHost, msg)
|
|
|
- PPAPI_DISPATCH_HOST_RESOURCE_CALL_0(PpapiHostMsg_FlashDRM_GetVoucherFile,
|
|
|
- OnGetVoucherFile)
|
|
|
- PPAPI_END_MESSAGE_MAP()
|
|
|
- return PP_ERROR_FAILED;
|
|
|
-}
|
|
|
-
|
|
|
-int32_t PepperFlashDRMRendererHost::OnGetVoucherFile(
|
|
|
- ppapi::host::HostMessageContext* context) {
|
|
|
- content::PepperPluginInstance* plugin_instance =
|
|
|
- renderer_ppapi_host_->GetPluginInstance(pp_instance());
|
|
|
- if (!plugin_instance)
|
|
|
- return PP_ERROR_FAILED;
|
|
|
-
|
|
|
- base::FilePath plugin_dir = plugin_instance->GetModulePath().DirName();
|
|
|
- DCHECK(!plugin_dir.empty());
|
|
|
- base::FilePath voucher_file = plugin_dir.AppendASCII(kVoucherFilename);
|
|
|
-
|
|
|
- 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_CreateForRawFS(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_EQ(1U, browser_pending_host_ids.size());
|
|
|
- int 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));
|
|
|
-}
|