Interface nsIURILoaderType

The uri dispatcher is responsible for taking uri's, determining the content and routing the opened url to the correct content handler.

When you encounter a url you want to open, you typically call openURI, passing it the content listener for the window the uri is originating from. The uri dispatcher opens the url to discover the content type. It then gives the content listener first crack at handling the content. If it doesn't want it, the dispatcher tries to hand it off one of the registered content listeners. This allows running applications the chance to jump in and handle the content.

If that also fails, then the uri dispatcher goes to the registry looking for the preferred content handler for the content type of the uri. The content handler may create an app instance or it may hand the contents off to a platform specific plugin or helper app. Or it may hand the url off to an OS registered application.

Hierarchy

Methods

  • Increases the reference count for this interface. The associated instance will not be deleted unless the reference count is returned to zero.

    Returns

    The resulting reference count.

    Returns number

  • Parameters

    • aIID: object
    • Optional aInstancePtr: object

    Returns any

  • A run time mechanism for interface discovery.

    Returns

    NS_OK if the interface is supported by the associated instance, NS_NOINTERFACE if it is not.

    aInstancePtr must not be null.

    Parameters

    • aIID: object

      [in] A requested interface IID

    • aInstancePtr: object

      [out] A pointer to an interface pointer to receive the result.

    Returns void

  • Decreases the reference count for this interface. Generally, if the reference count returns to zero, the associated instance is deleted.

    Returns

    The resulting reference count.

    Returns number

  • Loads data from a channel. This differs from openURI in that the channel may already be opened, and that it returns a stream listener into which the caller should pump data. The caller is responsible for opening the channel and pumping the channel's data into the returned stream listener.

    Note: If the channel already has a loadgroup, it will be replaced with the window context's load group, or null if the context doesn't have one.

    If the window context's nsIURIContentListener refuses the load immediately (e.g. in nsIURIContentListener::onStartURIOpen), this method will return NS_ERROR_WONT_HANDLE_CONTENT. At that point, the caller should probably cancel the channel if it's already open (this method will not cancel the channel).

    If flags include DONT_RETARGET, and the content listener refuses the load during onStartRequest (e.g. in canHandleContent/isPreferred), then the returned stream listener's onStartRequest method will return NS_ERROR_WONT_HANDLE_CONTENT.

    Parameters

    • aChannel: nsIChannel

      The channel that should be loaded. The channel may already be opened. It must not be closed (i.e. this must be called before the channel calls onStopRequest on its stream listener).

    • aFlags: number

      Combination (bitwise OR) of the flags specified above. 0 indicates default handling.

    • aWindowContext: nsIInterfaceRequestor

      If you are running the url from a doc shell or a web shell, this is your window context. If you have a content listener you want to give first crack to, the uri loader needs to be able to get it from the window context. We will also be using the window context to get at the progress event sink interface. Must not be null!

    Returns nsIStreamListener

  • OpenURI requires the following parameters.....

    Parameters

    • aChannel: nsIChannel

      The channel that should be opened. This must not be asyncOpen'd yet! If a loadgroup is set on the channel, it will get replaced with a different one.

    • aFlags: number

      Combination (bitwise OR) of the flags specified above. 0 indicates default handling.

    • aWindowContext: nsIInterfaceRequestor

      If you are running the url from a doc shell or a web shell, this is your window context. If you have a content listener you want to give first crack to, the uri loader needs to be able to get it from the window context. We will also be using the window context to get at the progress event sink interface. Must not be null!

    Returns void

  • @}

    As applications such as messenger and the browser are instantiated, they register content listener's with the uri dispatcher corresponding to content windows within that application.

    Note to self: we may want to optimize things a bit more by requiring the content types the registered content listener cares about.

    See

    the nsIURILoader class description

    Parameters

    • aContentListener: nsIURIContentListener

      The listener to register. This listener must implement nsISupportsWeakReference.

    Returns void

  • Stops an in progress load

    Parameters

    • aLoadCookie: nsISupports

    Returns void

  • Parameters

    • aContentListener: nsIURIContentListener

    Returns void

Generated using TypeDoc