| Index: webkit/plugins/ppapi/ppb_url_loader_impl.cc
|
| ===================================================================
|
| --- webkit/plugins/ppapi/ppb_url_loader_impl.cc (revision 88104)
|
| +++ webkit/plugins/ppapi/ppb_url_loader_impl.cc (working copy)
|
| @@ -7,6 +7,7 @@
|
| #include "base/logging.h"
|
| #include "ppapi/c/pp_completion_callback.h"
|
| #include "ppapi/c/pp_errors.h"
|
| +#include "ppapi/c/ppb_core.h"
|
| #include "ppapi/c/ppb_url_loader.h"
|
| #include "ppapi/c/trusted/ppb_url_loader_trusted.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h"
|
| @@ -66,14 +67,15 @@
|
| scoped_refptr<PPB_URLLoader_Impl> loader(
|
| Resource::GetAs<PPB_URLLoader_Impl>(loader_id));
|
| if (!loader)
|
| - return PP_ERROR_BADRESOURCE;
|
| + return MayForceCallback(callback, PP_ERROR_BADRESOURCE);
|
|
|
| scoped_refptr<PPB_URLRequestInfo_Impl> request(
|
| Resource::GetAs<PPB_URLRequestInfo_Impl>(request_id));
|
| if (!request)
|
| - return PP_ERROR_BADRESOURCE;
|
| + return MayForceCallback(callback, PP_ERROR_BADRESOURCE);
|
|
|
| - return loader->Open(request, callback);
|
| + int32_t result = loader->Open(request, callback);
|
| + return MayForceCallback(callback, result);
|
| }
|
|
|
| int32_t FollowRedirect(PP_Resource loader_id,
|
| @@ -81,9 +83,10 @@
|
| scoped_refptr<PPB_URLLoader_Impl> loader(
|
| Resource::GetAs<PPB_URLLoader_Impl>(loader_id));
|
| if (!loader)
|
| - return PP_ERROR_BADRESOURCE;
|
| + return MayForceCallback(callback, PP_ERROR_BADRESOURCE);
|
|
|
| - return loader->FollowRedirect(callback);
|
| + int32_t result = loader->FollowRedirect(callback);
|
| + return MayForceCallback(callback, result);
|
| }
|
|
|
| PP_Bool GetUploadProgress(PP_Resource loader_id,
|
| @@ -130,9 +133,10 @@
|
| scoped_refptr<PPB_URLLoader_Impl> loader(
|
| Resource::GetAs<PPB_URLLoader_Impl>(loader_id));
|
| if (!loader)
|
| - return PP_ERROR_BADRESOURCE;
|
| + return MayForceCallback(callback, PP_ERROR_BADRESOURCE);
|
|
|
| - return loader->ReadResponseBody(buffer, bytes_to_read, callback);
|
| + int32_t result = loader->ReadResponseBody(buffer, bytes_to_read, callback);
|
| + return MayForceCallback(callback, result);
|
| }
|
|
|
| int32_t FinishStreamingToFile(PP_Resource loader_id,
|
| @@ -140,9 +144,10 @@
|
| scoped_refptr<PPB_URLLoader_Impl> loader(
|
| Resource::GetAs<PPB_URLLoader_Impl>(loader_id));
|
| if (!loader)
|
| - return PP_ERROR_BADRESOURCE;
|
| + return MayForceCallback(callback, PP_ERROR_BADRESOURCE);
|
|
|
| - return loader->FinishStreamingToFile(callback);
|
| + int32_t result = loader->FinishStreamingToFile(callback);
|
| + return MayForceCallback(callback, result);
|
| }
|
|
|
| void Close(PP_Resource loader_id) {
|
| @@ -247,7 +252,7 @@
|
| return rv;
|
|
|
| if (request->RequiresUniversalAccess() && !has_universal_access_)
|
| - return PP_ERROR_BADARGUMENT;
|
| + return PP_ERROR_NOACCESS;
|
|
|
| if (loader_.get())
|
| return PP_ERROR_INPROGRESS;
|
| @@ -255,7 +260,6 @@
|
| WebFrame* frame = GetFrame(instance());
|
| if (!frame)
|
| return PP_ERROR_FAILED;
|
| - WebURLRequest web_request(request->ToWebURLRequest(frame));
|
|
|
| WebURLLoaderOptions options;
|
| if (has_universal_access_) {
|
| @@ -275,6 +279,7 @@
|
| if (!loader_.get())
|
| return PP_ERROR_FAILED;
|
|
|
| + WebURLRequest web_request(request->ToWebURLRequest(frame));
|
| loader_->loadAsynchronously(web_request, this);
|
| // Check for immediate failure; The AssociatedURLLoader will call our
|
| // didFail method synchronously for certain kinds of access violations
|
|
|