Readonly
bitsThe BITS id of the download. This will be a string representing a UUID.
The load flags of this request. Bits 0-15 are reserved.
When added to a load group, this request's load flags are merged with the load flags of the load group.
The load group of this request. While pending, the request is a member of the load group. It is the responsibility of the request to implement this policy.
Readonly
nameThe name of the request. Often this is the URI of the request.
Readonly
statusThe error status associated with the request.
Readonly
transferThe transfer result of the download, meant to be accessed after the transfer has stopped (i.e. after the observer's onStopRequest method has been called). Will be nsIBits::ERROR_TYPE_SUCCESS if the transfer is successful (and before transfer completion). If the transfer failed, this will be a different nsBitsErrorType value indicating the cause of the failure.
Optional
aInstancePtr: objectA run time mechanism for interface discovery.
NS_OK if the interface is supported by the associated instance, NS_NOINTERFACE if it is not.
aInstancePtr must not be null.
[in] A requested interface IID
[out] A pointer to an interface pointer to receive the result.
Cancels the current request. This will close any open input or output streams and terminate any async requests. Users should normally pass NS_BINDING_ABORTED, although other errors may also be passed. The error passed in will become the value of the status attribute.
Implementations must not send any notifications (e.g. via nsIRequestObserver) synchronously from this function. Similarly, removal from the load group (if any) must also happen asynchronously.
Requests that use nsIStreamListener must not call onDataAvailable anymore after cancel has been called.
the reason for canceling this request.
NOTE: most nsIRequest implementations expect aStatus to be a failure code; however, some implementations may allow aStatus to be a success code such as NS_OK. In general, aStatus should be a failure code.
Cancels the download. This function is named this way to avoid conflict with nsIRequest::cancel.
The reason for cancelling the request. This must be a failure code rather than a success code like NS_OK.
The callback function used to relay success or failure.
Requests a change to the frequency that Firefox is receiving download status notifications.
The new number of milliseconds between download status notifications.
The callback function used to relay success or failure.
These methods encode/decode the TRR mode to/from the loadFlags. Helper methods Get/SetTRRModeImpl are provided so implementations don't need to duplicate code.
Requests with TRR_DEFAULT_MODE will use the mode indicated by the pref
Indicates whether the request is pending. nsIRequest::isPending is true when there is an outstanding asynchronous event that will make the request no longer be pending. Requests do not necessarily start out pending; in some cases, requests have to be explicitly initiated (e.g. nsIChannel implementations are only pending once asyncOpen returns successfully).
Requests can become pending multiple times during their lifetime.
TRUE if the request has yet to reach completion.
FALSE if the request has reached completion (e.g., after OnStopRequest has fired).
Suspended requests are still considered pending.
Sets the BITS "no progress" timeout for the job.
The new number of seconds for the timeout. After there has been no progress for this long, BITS will not retry the job following a transient error, producing instead a permanent error.
The callback function used to relay success or failure.
Suspends the current request. This may have the effect of closing any underlying transport (in order to free up resources), although any open streams remain logically opened and will continue delivering data when the transport is resumed.
Calling cancel() on a suspended request must not send any notifications (such as onstopRequest) until the request is resumed.
NOTE: some implementations are unable to immediately suspend, and may continue to deliver events already posted to an event queue. In general, callers should be capable of handling events even after suspending a request.
Suspends the download, preventing more data from being transferred until the download is resumed. This function is named this way to avoid conflict with nsIRequest::suspend.
The callback function used to relay success or failure.
Generated using TypeDoc
An interface for managing a running BITS download.
It would be preferable for the functions in this interface to return Promises, but this interface is implemented in Rust, which does not yet have support for Promises. There is a JS wrapper around this class that should be preferred over using this interface directly, located in Bits.sys.mjs.
Methods of this class that take a nsIBitsCallback do not return or throw errors. All errors will be reported through the callback. The only things that should cause methods to directly throw errors are null arguments.
Note: Although the nsIBits interface derives from nsIRequest, implementations may not implement the loadGroup or loadFlags attributes.
Note: Once the file transfer has stopped (due to completion or error), calling any method besides complete() or cancel() will result in an error with type nsIBits::ERROR_TYPE_TRANSFER_ALREADY_COMPLETE. Calling complete() or cancel() again after either has already been called will also result in an ERROR_TYPE_TRANSFER_ALREADY_COMPLETE error. Attributes and nsIRequest::isPending() can still be accessed at any time.