| Index: webkit/plugins/ppapi/ppb_url_loader_impl.cc
|
| diff --git a/webkit/plugins/ppapi/ppb_url_loader_impl.cc b/webkit/plugins/ppapi/ppb_url_loader_impl.cc
|
| index 7e4fdef0f443ab797c7ccdbeb2b64b46ac2c6284..68db6b8655e02013cd9f97a0f76c526b020e1462 100644
|
| --- a/webkit/plugins/ppapi/ppb_url_loader_impl.cc
|
| +++ b/webkit/plugins/ppapi/ppb_url_loader_impl.cc
|
| @@ -32,6 +32,7 @@
|
| #include "webkit/plugins/ppapi/resource_helper.h"
|
|
|
| using appcache::WebApplicationCacheHostImpl;
|
| +using ppapi::ApiCallbackType;
|
| using ppapi::Resource;
|
| using ppapi::thunk::EnterResourceNoLock;
|
| using ppapi::thunk::PPB_URLLoader_API;
|
| @@ -96,7 +97,7 @@ void PPB_URLLoader_Impl::InstanceWasDeleted() {
|
| }
|
|
|
| int32_t PPB_URLLoader_Impl::Open(PP_Resource request_id,
|
| - PP_CompletionCallback callback) {
|
| + ApiCallbackType callback) {
|
| // Main document loads are already open, so don't allow people to open them
|
| // again.
|
| if (main_document_loader_)
|
| @@ -172,7 +173,7 @@ int32_t PPB_URLLoader_Impl::Open(PP_Resource request_id,
|
| return PP_OK_COMPLETIONPENDING;
|
| }
|
|
|
| -int32_t PPB_URLLoader_Impl::FollowRedirect(PP_CompletionCallback callback) {
|
| +int32_t PPB_URLLoader_Impl::FollowRedirect(ApiCallbackType callback) {
|
| int32_t rv = ValidateCallback(callback);
|
| if (rv != PP_OK)
|
| return rv;
|
| @@ -217,7 +218,7 @@ PP_Resource PPB_URLLoader_Impl::GetResponseInfo() {
|
|
|
| int32_t PPB_URLLoader_Impl::ReadResponseBody(void* buffer,
|
| int32_t bytes_to_read,
|
| - PP_CompletionCallback callback) {
|
| + ApiCallbackType callback) {
|
| int32_t rv = ValidateCallback(callback);
|
| if (rv != PP_OK)
|
| return rv;
|
| @@ -244,7 +245,7 @@ int32_t PPB_URLLoader_Impl::ReadResponseBody(void* buffer,
|
| }
|
|
|
| int32_t PPB_URLLoader_Impl::FinishStreamingToFile(
|
| - PP_CompletionCallback callback) {
|
| + ApiCallbackType callback) {
|
| int32_t rv = ValidateCallback(callback);
|
| if (rv != PP_OK)
|
| return rv;
|
| @@ -395,10 +396,9 @@ void PPB_URLLoader_Impl::FinishLoading(int32_t done_status) {
|
| RunCallback(done_status_);
|
| }
|
|
|
| -int32_t PPB_URLLoader_Impl::ValidateCallback(PP_CompletionCallback callback) {
|
| - // We only support non-blocking calls.
|
| - if (!callback.func)
|
| - return PP_ERROR_BLOCKS_MAIN_THREAD;
|
| +int32_t PPB_URLLoader_Impl::ValidateCallback(
|
| + scoped_refptr<TrackedCallback> callback) {
|
| + DCHECK(callback);
|
|
|
| if (TrackedCallback::IsPending(pending_callback_))
|
| return PP_ERROR_INPROGRESS;
|
| @@ -406,15 +406,15 @@ int32_t PPB_URLLoader_Impl::ValidateCallback(PP_CompletionCallback callback) {
|
| return PP_OK;
|
| }
|
|
|
| -void PPB_URLLoader_Impl::RegisterCallback(PP_CompletionCallback callback) {
|
| - DCHECK(callback.func);
|
| +void PPB_URLLoader_Impl::RegisterCallback(
|
| + scoped_refptr<TrackedCallback> callback) {
|
| DCHECK(!TrackedCallback::IsPending(pending_callback_));
|
|
|
| PluginModule* plugin_module = ResourceHelper::GetPluginModule(this);
|
| if (!plugin_module)
|
| return;
|
|
|
| - pending_callback_ = new TrackedCallback(this, callback);
|
| + pending_callback_ = callback;
|
| }
|
|
|
| void PPB_URLLoader_Impl::RunCallback(int32_t result) {
|
|
|