| Index: content/renderer/pepper/pepper_url_loader_host.cc
|
| diff --git a/content/renderer/pepper/pepper_url_loader_host.cc b/content/renderer/pepper/pepper_url_loader_host.cc
|
| index 2575cf83fbdbaf9e5f6fd3df14be92bd84d54c76..5b9aeb73b20a84f84b0c9c20b8a280ac9c09357d 100644
|
| --- a/content/renderer/pepper/pepper_url_loader_host.cc
|
| +++ b/content/renderer/pepper/pepper_url_loader_host.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include <stddef.h>
|
|
|
| +#include "base/memory/ptr_util.h"
|
| #include "content/renderer/pepper/pepper_plugin_instance_impl.h"
|
| #include "content/renderer/pepper/renderer_ppapi_host_impl.h"
|
| #include "content/renderer/pepper/url_request_info_util.h"
|
| @@ -162,15 +163,15 @@ void PepperURLLoaderHost::didReceiveData(const char* data, int data_length) {
|
| bytes_received_ += data_length;
|
| UpdateProgress();
|
|
|
| - PpapiPluginMsg_URLLoader_SendData* message =
|
| - new PpapiPluginMsg_URLLoader_SendData;
|
| + auto message = base::MakeUnique<PpapiPluginMsg_URLLoader_SendData>();
|
| message->WriteData(data, data_length);
|
| - SendUpdateToPlugin(message);
|
| + SendUpdateToPlugin(std::move(message));
|
| }
|
|
|
| void PepperURLLoaderHost::didFinishLoading(double finish_time) {
|
| // Note that |loader| will be NULL for document loads.
|
| - SendUpdateToPlugin(new PpapiPluginMsg_URLLoader_FinishedLoading(PP_OK));
|
| + SendUpdateToPlugin(
|
| + base::MakeUnique<PpapiPluginMsg_URLLoader_FinishedLoading>(PP_OK));
|
| }
|
|
|
| void PepperURLLoaderHost::didFail(const WebURLError& error) {
|
| @@ -189,12 +190,13 @@ void PepperURLLoaderHost::didFail(const WebURLError& error) {
|
| // It's a WebKit error.
|
| pp_error = PP_ERROR_NOACCESS;
|
| }
|
| - SendUpdateToPlugin(new PpapiPluginMsg_URLLoader_FinishedLoading(pp_error));
|
| + SendUpdateToPlugin(
|
| + base::MakeUnique<PpapiPluginMsg_URLLoader_FinishedLoading>(pp_error));
|
| }
|
|
|
| void PepperURLLoaderHost::DidConnectPendingHostToResource() {
|
| - for (size_t i = 0; i < pending_replies_.size(); i++)
|
| - host()->SendUnsolicitedReply(pp_resource(), *pending_replies_[i]);
|
| + for (const auto& reply : pending_replies_)
|
| + host()->SendUnsolicitedReply(pp_resource(), *reply);
|
| pending_replies_.clear();
|
| }
|
|
|
| @@ -209,7 +211,8 @@ int32_t PepperURLLoaderHost::OnHostMsgOpen(
|
| DCHECK(ret != PP_OK_COMPLETIONPENDING);
|
|
|
| if (ret != PP_OK)
|
| - SendUpdateToPlugin(new PpapiPluginMsg_URLLoader_FinishedLoading(ret));
|
| + SendUpdateToPlugin(
|
| + base::MakeUnique<PpapiPluginMsg_URLLoader_FinishedLoading>(ret));
|
| return PP_OK;
|
| }
|
|
|
| @@ -317,7 +320,8 @@ int32_t PepperURLLoaderHost::OnHostMsgGrantUniversalAccess(
|
| return PP_OK;
|
| }
|
|
|
| -void PepperURLLoaderHost::SendUpdateToPlugin(IPC::Message* message) {
|
| +void PepperURLLoaderHost::SendUpdateToPlugin(
|
| + std::unique_ptr<IPC::Message> message) {
|
| // We must send messages to the plugin in the order that the responses are
|
| // received from webkit, even when the host isn't ready to send messages or
|
| // when the host performs an asynchronous operation.
|
| @@ -332,31 +336,30 @@ void PepperURLLoaderHost::SendUpdateToPlugin(IPC::Message* message) {
|
| message->type() == PpapiPluginMsg_URLLoader_FinishedLoading::ID) {
|
| // Messages that must be sent after ReceivedResponse.
|
| if (pending_response_) {
|
| - out_of_order_replies_.push_back(message);
|
| + out_of_order_replies_.push_back(std::move(message));
|
| } else {
|
| - SendOrderedUpdateToPlugin(message);
|
| + SendOrderedUpdateToPlugin(std::move(message));
|
| }
|
| } else if (message->type() == PpapiPluginMsg_URLLoader_ReceivedResponse::ID) {
|
| // Allow SendData and FinishedLoading into the ordered queue.
|
| DCHECK(pending_response_);
|
| - SendOrderedUpdateToPlugin(message);
|
| - for (size_t i = 0; i < out_of_order_replies_.size(); i++)
|
| - SendOrderedUpdateToPlugin(out_of_order_replies_[i]);
|
| - // SendOrderedUpdateToPlugin destroys the messages for us.
|
| - out_of_order_replies_.weak_clear();
|
| + SendOrderedUpdateToPlugin(std::move(message));
|
| + for (auto& reply : out_of_order_replies_)
|
| + SendOrderedUpdateToPlugin(std::move(reply));
|
| + out_of_order_replies_.clear();
|
| pending_response_ = false;
|
| } else {
|
| // Messages without ordering constraints.
|
| - SendOrderedUpdateToPlugin(message);
|
| + SendOrderedUpdateToPlugin(std::move(message));
|
| }
|
| }
|
|
|
| -void PepperURLLoaderHost::SendOrderedUpdateToPlugin(IPC::Message* message) {
|
| +void PepperURLLoaderHost::SendOrderedUpdateToPlugin(
|
| + std::unique_ptr<IPC::Message> message) {
|
| if (pp_resource() == 0) {
|
| - pending_replies_.push_back(message);
|
| + pending_replies_.push_back(std::move(message));
|
| } else {
|
| host()->SendUnsolicitedReply(pp_resource(), *message);
|
| - delete message;
|
| }
|
| }
|
|
|
| @@ -416,7 +419,8 @@ void PepperURLLoaderHost::SaveResponse(const WebURLResponse& response) {
|
|
|
| void PepperURLLoaderHost::DidDataFromWebURLResponse(
|
| const ppapi::URLResponseInfoData& data) {
|
| - SendUpdateToPlugin(new PpapiPluginMsg_URLLoader_ReceivedResponse(data));
|
| + SendUpdateToPlugin(
|
| + base::MakeUnique<PpapiPluginMsg_URLLoader_ReceivedResponse>(data));
|
| }
|
|
|
| void PepperURLLoaderHost::UpdateProgress() {
|
| @@ -429,11 +433,12 @@ void PepperURLLoaderHost::UpdateProgress() {
|
| // getting download progress when they happen to set the upload progress
|
| // flag.
|
| ppapi::proxy::ResourceMessageReplyParams params;
|
| - SendUpdateToPlugin(new PpapiPluginMsg_URLLoader_UpdateProgress(
|
| - record_upload ? bytes_sent_ : -1,
|
| - record_upload ? total_bytes_to_be_sent_ : -1,
|
| - record_download ? bytes_received_ : -1,
|
| - record_download ? total_bytes_to_be_received_ : -1));
|
| + SendUpdateToPlugin(
|
| + base::MakeUnique<PpapiPluginMsg_URLLoader_UpdateProgress>(
|
| + record_upload ? bytes_sent_ : -1,
|
| + record_upload ? total_bytes_to_be_sent_ : -1,
|
| + record_download ? bytes_received_ : -1,
|
| + record_download ? total_bytes_to_be_received_ : -1));
|
| }
|
| }
|
|
|
|
|