Native Client

PPB_URLLoader Struct Reference

The PPB_URLLoader interface contains pointers to functions for loading URLs. More...


Detailed Description

The PPB_URLLoader interface contains pointers to functions for loading URLs.

The typical steps for loading a URL are:

  1. Call Create() to create a URLLoader object.
  2. Create a URLRequestInfo object and set properties on it. Refer to PPB_URLRequestInfo for further information.
  3. Call Open() with the URLRequestInfo as an argument.
  4. When Open() completes, call GetResponseInfo() to examine the response headers. Refer to PPB_URLResponseInfo for further information.
  5. Call ReadResponseBody() to stream the data for the response.

Alternatively, if PP_URLREQUESTPROPERTY_STREAMTOFILE was set on the URLRequestInfo in step #2:

  • Call FinishStreamingToFile(), after examining the response headers (step #4), to wait for the downloaded file to be complete.
  • Then, access the downloaded file using the GetBodyAsFileRef() function of the URLResponseInfo returned in step #4.

Data Fields List

PP_Resource(* Create )(PP_Instance instance)
PP_Bool(* IsURLLoader )(PP_Resource resource)
int32_t(* Open )(PP_Resource loader, PP_Resource request_info, struct PP_CompletionCallback callback)
int32_t(* FollowRedirect )(PP_Resource loader, struct PP_CompletionCallback callback)
PP_Bool(* GetUploadProgress )(PP_Resource loader, int64_t *bytes_sent, int64_t *total_bytes_to_be_sent)
PP_Bool(* GetDownloadProgress )(PP_Resource loader, int64_t *bytes_received, int64_t *total_bytes_to_be_received)
PP_Resource(* GetResponseInfo )(PP_Resource loader)
int32_t(* ReadResponseBody )(PP_Resource loader, void *buffer, int32_t bytes_to_read, struct PP_CompletionCallback callback)
int32_t(* FinishStreamingToFile )(PP_Resource loader, struct PP_CompletionCallback callback)
void(* Close )(PP_Resource loader)

Data Fields Details

Close is a pointer to a function used to cancel any pending IO and close the URLLoader object.

Any pending callbacks will still run, reporting PP_ERROR_ABORTED if pending IO was interrupted. It is NOT valid to call Open() again after a call to this function.

Note: If the URLLoader object is destroyed while it is still open, then it will be implicitly closed so you are not required to call Close().

Parameters:
[in]loaderA PP_Resource corresponding to a URLLoader.

Create() creates a new URLLoader object.

The URLLoader is associated with a particular instance, so that any UI dialogs that need to be shown to the user can be positioned relative to the window containing the instance.

Parameters:
[in]instanceA PP_Instance identifying one instance of a module.
Returns:
A PP_Resource corresponding to a URLLoader if successful, 0 if the instance is invalid.

FinishStreamingToFile() is used to wait for the response body to be completely downloaded to the file provided by the GetBodyAsFileRef() in the current URLResponseInfo.

This function is only used if PP_URLREQUESTPROPERTY_STREAMTOFILE was set on the URLRequestInfo passed to Open().

Parameters:
[in]loaderA PP_Resource corresponding to a URLLoader.
[in]callbackA PP_CompletionCallback to run on asynchronous completion. This callback will run when body is downloaded or an error occurs after FinishStreamingToFile() returns PP_OK_COMPLETIONPENDING.
Returns:
An int32_t containing the number of bytes read or an error code from pp_errors.h.

FollowRedirect() can be invoked to follow a redirect after Open() completed on receiving redirect headers.

Parameters:
[in]loaderA PP_Resource corresponding to a URLLoader.
[in]callbackA PP_CompletionCallback to run on asynchronous completion of FollowRedirect(). This callback will run when response headers for the redirect url are received or error occurred. This callback will only run if FollowRedirect() returns PP_OK_COMPLETIONPENDING.
Returns:
An int32_t containing an error code from pp_errors.h.
PP_Bool(* PPB_URLLoader::GetDownloadProgress)(PP_Resource loader, int64_t *bytes_received, int64_t *total_bytes_to_be_received)

GetDownloadProgress() returns the current download progress, which is meaningful after Open() has been called.

Progress only refers to the response body and does not include the headers.

This data is only available if the URLRequestInfo passed to Open() had the PP_URLREQUESTPROPERTY_REPORTDOWNLOADPROGRESS property set to PP_TRUE.

Parameters:
[in]loaderA PP_Resource corresponding to a URLLoader.
[in]bytes_receivedThe number of bytes received thus far.
[in]total_bytes_to_be_receivedThe total number of bytes to be received. The total bytes to be received may be unknown, in which case total_bytes_to_be_received will be set to -1.
Returns:
PP_TRUE if the download progress is available, PP_FALSE if it is not available.

GetResponseInfo() returns the current URLResponseInfo object.

Parameters:
[in]instanceA PP_Resource corresponding to a URLLoader.
Returns:
A PP_Resource corresponding to the URLResponseInfo if successful, 0 if the loader is not a valid resource or if Open() has not been called.
PP_Bool(* PPB_URLLoader::GetUploadProgress)(PP_Resource loader, int64_t *bytes_sent, int64_t *total_bytes_to_be_sent)

GetUploadProgress() returns the current upload progress (which is meaningful after Open() has been called).

Progress only refers to the request body and does not include the headers.

This data is only available if the URLRequestInfo passed to Open() had the PP_URLREQUESTPROPERTY_REPORTUPLOADPROGRESS property set to PP_TRUE.

Parameters:
[in]loaderA PP_Resource corresponding to a URLLoader.
[in]bytes_sentThe number of bytes sent thus far.
[in]total_bytes_to_be_sentThe total number of bytes to be sent.
Returns:
PP_TRUE if the upload progress is available, PP_FALSE if it is not available.

IsURLLoader() determines if a resource is an URLLoader.

Parameters:
[in]resourceA PP_Resource corresponding to a URLLoader.
Returns:
PP_TRUE if the resource is a URLLoader, PP_FALSE if the resource is invalid or some type other than URLLoader.
int32_t(* PPB_URLLoader::Open)(PP_Resource loader, PP_Resource request_info, struct PP_CompletionCallback callback)

Open() begins loading the URLRequestInfo.

The operation completes when response headers are received or when an error occurs. Use GetResponseInfo() to access the response headers.

Parameters:
[in]loaderA PP_Resource corresponding to a URLLoader.
[in]resourceA PP_Resource corresponding to a URLRequestInfo.
[in]callbackA PP_CompletionCallback to run on asynchronous completion of Open(). This callback will run when response headers for the url are received or error occured. This callback will only run if Open() returns PP_OK_COMPLETIONPENDING.
Returns:
An int32_t containing an error code from pp_errors.h.
int32_t(* PPB_URLLoader::ReadResponseBody)(PP_Resource loader, void *buffer, int32_t bytes_to_read, struct PP_CompletionCallback callback)

ReadResponseBody() is used to read the response body.

The size of the buffer must be large enough to hold the specified number of bytes to read. This function might perform a partial read.

Parameters:
[in]loaderA PP_Resource corresponding to a URLLoader.
[in,out]bufferA pointer to the buffer for the response body.
[in]bytes_to_readThe number of bytes to read.
[in]callbackA PP_CompletionCallback to run on asynchronous completion. The callback will run if the bytes (full or partial) are read or an error occurs asynchronously. This callback will run only if this function returns PP_OK_COMPLETIONPENDING.
Returns:
An int32_t containing the number of bytes read or an error code from pp_errors.h.

The documentation for this struct was generated from the following file:

Authentication required

You need to be signed in with Google+ to do that.

Signing you in...

Google Developers needs your permission to do that.