diff options
author | teravest@chromium.org <teravest@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-19 20:54:48 +0000 |
---|---|---|
committer | teravest@chromium.org <teravest@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-19 20:54:48 +0000 |
commit | 22833a78efba4b33b76c63e5961e1d9583bde0dc (patch) | |
tree | d88b85835ac4531b627d5d10181ac64982b28687 /chrome/renderer/pepper | |
parent | 606ae2f6d2fda1287c250896bed430195f43852a (diff) | |
download | chromium_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.cc | 31 | ||||
-rw-r--r-- | chrome/renderer/pepper/pepper_flash_drm_renderer_host.h | 12 |
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); }; |