summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/pepper
diff options
context:
space:
mode:
authorteravest@chromium.org <teravest@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-19 20:54:48 +0000
committerteravest@chromium.org <teravest@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-19 20:54:48 +0000
commit22833a78efba4b33b76c63e5961e1d9583bde0dc (patch)
treed88b85835ac4531b627d5d10181ac64982b28687 /chrome/renderer/pepper
parent606ae2f6d2fda1287c250896bed430195f43852a (diff)
downloadchromium_src-22833a78efba4b33b76c63e5961e1d9583bde0dc.zip
chromium_src-22833a78efba4b33b76c63e5961e1d9583bde0dc.tar.gz
chromium_src-22833a78efba4b33b76c63e5961e1d9583bde0dc.tar.bz2
Pepper: Move FileRef to the "new" resource proxy.
This change moves the FileRef implementation from the previous one in the "old" resource model (ppb_file_ref_impl.cc) to the "new" resource model (pepper_file_ref_host.cc), and from the renderer to the browser. As many as possible of the supporting changes were split off to other changes to minimize the size of this change. Unfortunately, a lot of changes for URLLoader had to be rolled into this change. The data structures for CreateInfo have changed, and all users of FileRef have to be moved over, which is what causes this change to be so large. TBR=dmichael@chromium.org, jschuh@chromium.org, yzshen@chromium.org BUG=225441 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=216744 Review URL: https://chromiumcodereview.appspot.com/21966004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@218305 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/pepper')
-rw-r--r--chrome/renderer/pepper/pepper_flash_drm_renderer_host.cc31
-rw-r--r--chrome/renderer/pepper/pepper_flash_drm_renderer_host.h12
2 files changed, 34 insertions, 9 deletions
diff --git a/chrome/renderer/pepper/pepper_flash_drm_renderer_host.cc b/chrome/renderer/pepper/pepper_flash_drm_renderer_host.cc
index ca59c7ef..7f2011c 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,26 @@ 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;
+ renderer_ppapi_host_->CreateBrowserResourceHost(
+ pp_instance(),
+ PpapiHostMsg_FileRef_CreateExternal(voucher_file),
+ base::Bind(&PepperFlashDRMRendererHost::DidCreateFileRefHost,
+ weak_factory_.GetWeakPtr(),
+ context->MakeReplyMessageContext(),
+ voucher_file));
+ return PP_OK_COMPLETIONPENDING;
+}
+
+void PepperFlashDRMRendererHost::DidCreateFileRefHost(
+ const ppapi::host::ReplyMessageContext& reply_context,
+ const base::FilePath& external_path,
+ int pending_resource_id) {
+ ppapi::FileRefCreateInfo create_info =
+ ppapi::MakeExternalFileRefCreateInfo(external_path,
+ std::string(),
+ pending_resource_id);
+ host()->SendReply(reply_context,
+ PpapiPluginMsg_FlashDRM_GetVoucherFileReply(create_info));
}
} // namespace chrome
diff --git a/chrome/renderer/pepper/pepper_flash_drm_renderer_host.h b/chrome/renderer/pepper/pepper_flash_drm_renderer_host.h
index f7247d6..a0382b6 100644
--- a/chrome/renderer/pepper/pepper_flash_drm_renderer_host.h
+++ b/chrome/renderer/pepper/pepper_flash_drm_renderer_host.h
@@ -7,8 +7,13 @@
#include "base/basictypes.h"
#include "base/compiler_specific.h"
+#include "base/memory/weak_ptr.h"
#include "ppapi/host/resource_host.h"
+namespace base {
+class FilePath;
+}
+
namespace content {
class RendererPpapiHost;
}
@@ -31,9 +36,16 @@ class PepperFlashDRMRendererHost : public ppapi::host::ResourceHost {
private:
int32_t OnGetVoucherFile(ppapi::host::HostMessageContext* context);
+ void DidCreateFileRefHost(
+ const ppapi::host::ReplyMessageContext& reply_context,
+ const base::FilePath& external_path,
+ int pending_resource_id);
+
// Non-owning pointer.
content::RendererPpapiHost* renderer_ppapi_host_;
+ base::WeakPtrFactory<PepperFlashDRMRendererHost> weak_factory_;
+
DISALLOW_COPY_AND_ASSIGN(PepperFlashDRMRendererHost);
};