Subclasses

Attributes

From fuelIBookmark

 The uri of the bookmark.
attribute nsIURI uri

From fuelIBrowserTab

 Interface representing a browser tab.


 The current uri of this tab.
readonly attribute nsIURI uri

From imgIRequest

 The URI the image load was started with.  Note that this might not be the
 actual URI for the image (e.g. if HTTP redirects happened during the
 load).
readonly attribute nsIURI URI

From nsIChannel

 The URI corresponding to the channel.  Its value is immutable.
readonly attribute nsIURI URI
 The original URI used to construct the channel. This is used in
 the case of a redirect or URI "resolution" (e.g. resolving a
 resource: URI to a file: URI) so that the original pre-redirect
 URI can still be obtained.  This is never null.  Attempts to
 set it to null must throw.

 NOTE: this is distinctly different from the http Referer (referring URI),
 which is typically the page that contained the original URI (accessible
 from nsIHttpChannel).
attribute nsIURI originalURI

From nsIContextMenuInfo


          
readonly attribute nsIURI backgroundImageSrc

          
readonly attribute nsIURI imageSrc

From nsIDOMPopupBlockedEvent

 The URI of the window that was blocked.
readonly attribute nsIURI popupWindowURI

From nsIDocShellLoadInfo

 This is the referrer for the load. */
attribute nsIURI referrer

From nsIDownload

 The referrer uri of the download.  This is only valid for HTTP downloads,
 and can be null.
readonly attribute nsIURI referrer
 The source of the transfer.
readonly attribute nsIURI source
 The target of the transfer.
readonly attribute nsIURI target

From nsIFaviconService

 The default favicon URI
readonly attribute nsIURI defaultFavicon

From nsIFeedContainer

 Returns the primary link for the feed or entry.
attribute nsIURI link

From nsIFeedElementBase

 The baseURI for the Entry or Feed.
attribute nsIURI baseURI

From nsIFeedGenerator

 A URI associated with the software.
attribute nsIURI uri

From nsIFeedPerson

 A URI associated with the person (e.g. a homepage).
attribute nsIURI uri

From nsIFeedResult

 An XSLT stylesheet available to transform the source of the
 feed. Some feeds include this information in a processing
 instruction. It's generally intended for clients with specific
 feed capabilities.
attribute nsIURI stylesheet
 
 The address from which the feed was fetched. 
attribute nsIURI uri

From nsIFeedTextConstruct

 If the text construct contains (X)HTML, relative references in
 the content should be resolved against this base URI.
attribute nsIURI base

From nsIFilePicker

 Get the nsIURI for the file or directory.

 @return Returns the file currently selected
readonly attribute nsIURI fileURL

From nsIGeolocationRequest


          
readonly attribute nsIURI requestingURI

From nsIHelperAppLauncher

 The source uri
readonly attribute nsIURI source

From nsIHistoryEntry

 
 A readonly property that returns the URI
 of the current entry. The object returned is
 of type nsIURI
readonly attribute nsIURI URI

From nsIHttpChannel

 Get/set the HTTP referrer URI.  This is the address (URI) of the
 resource from which this channel's URI was obtained (see RFC2616 section
 14.36).
 
 This attribute may only be set before the channel is opened.

 NOTE: The channel may silently refuse to set the Referer header if the
 URI does not pass certain security checks (e.g., a "https://" URL will
 never be sent as the referrer for a plaintext HTTP request).  The
 implementation is not required to throw an exception when the referrer
 URI is rejected.

 @throws NS_ERROR_IN_PROGRESS if set after the channel has been opened.
attribute nsIURI referrer

From nsIHttpChannelInternal

 An http channel can own a reference to the document URI
attribute nsIURI documentURI

From nsIImageLoadingContent

 Gets the URI of the current request, if available.
 Otherwise, returns the last URI that this content tried to load, or
 null if there haven't been any such attempts.
readonly attribute nsIURI currentURI

From nsIIncrementalDownload

 The URI being fetched.
readonly attribute nsIURI URI
 The URI being fetched after any redirects have been followed.  This
 attribute is set just prior to calling OnStartRequest on the observer
 passed to the start method.
readonly attribute nsIURI finalURI

From nsIJARURI

 Returns the root URI (the one for the actual JAR file) for this JAR
 (e.g., http://www.big.com/blue.jar).
readonly attribute nsIURI JARFile

From nsIMicrosummary


          
readonly attribute nsIURI pageURI

From nsIMicrosummaryGenerator


          
readonly attribute nsIURI localURI

          
readonly attribute nsIURI uri

From nsIMozIconURI

 iconFile

 the file URL contained within this moz-icon url, or null.
attribute nsIURI iconFile

From nsINavHistoryQuery

 This is a URI to match, to, for example, find out every time you visited
 a given URI. Use uriIsPrefix to control whether this is an exact match.
attribute nsIURI uri

From nsINavHistoryResultNode

 This URI can be used as an image source URI and will give you the favicon
 for the page. It is *not* the URI of the favicon, but rather something
 that will resolve to the actual image.

 In most cases, this is an annotation URI that will query the favicon
 service. If the entry has no favicon, this is the chrome URI of the
 default favicon. If the favicon originally lived in chrome, this will
 be the original chrome URI of the icon.
readonly attribute nsIURI icon

From nsINestedURI

 The inner URI for this nested URI.  This must not return null if the
 getter succeeds; URIs that have no inner must not QI to this interface.
 Dynamically changing whether there is an inner URI is not allowed.

 Modifying the returned URI must not in any way modify the nested URI; this
 means the returned URI must be either immutable or a clone.
readonly attribute nsIURI innerURI
 The innermost URI for this nested URI.  This must not return null if the
 getter succeeds.  This is equivalent to repeatedly calling innerURI while
 the returned URI QIs to nsINestedURI.

 Modifying the returned URI must not in any way modify the nested URI; this
 means the returned URI must be either immutable or a clone.   
readonly attribute nsIURI innermostURI

From nsIOfflineCacheUpdate

 The manifest for the offline application being updated.
readonly attribute nsIURI manifestURI

From nsIPrincipal

 The codebase URI to which this principal pertains.  This is
 generally the document URI.
[noscript] readonly attribute nsIURI URI
 The domain URI to which this principal pertains.
 This is congruent with HTMLDocument.domain, and may be null.
 Setting this has no effect on the URI.
[noscript] attribute nsIURI domain

From nsISAXXMLReader

 The base URI.
attribute nsIURI baseURI

From nsISHEntry

 Referrer URI */
attribute nsIURI referrerURI

From nsISearchEngine

 A nsIURI corresponding to the engine's icon, stored locally. May be null.
readonly attribute nsIURI iconURI

From nsISearchSubmission

 The URI to submit a search to.
readonly attribute nsIURI uri

From nsIWebNavigation

 The currently loaded URI or null.
readonly attribute nsIURI currentURI
 The referring URI for the currently loaded URI or null.
readonly attribute nsIURI referringURI

From nsIXPIInstallInfo

 The original URI calling the install. This is the URI that would have been
 checked against the whitelist if necessary.
readonly attribute nsIURI originatingURI

Returns

From nsIAnnotationService

 Returns a URI that can be used to access the given binary annotation.
 This function does NOT check that the annotation exists. Also, note that
 you can only load URIs for annotations that have have a valid MIME type
 set by setAnnotationBinary. No non-URI valid chars in name, especially
 colon, which will mess up parsing.
nsIURI getAnnotationURI(in nsIURI aURI, in AUTF8String aName)

From nsIChromeRegistry

 Resolve a chrome URL to an loadable URI using the information in the
 registry. Does not modify aChromeURL.

 Chrome URLs are allowed to be specified in "shorthand", leaving the
 "file" portion off. In that case, the URL is expanded to:

   chrome://package/provider/package.ext

 where "ext" is:

   "xul" for a "content" package,
   "css" for a "skin" package, and
   "dtd" for a "locale" package.

 @param aChromeURL the URL that is to be converted.
nsIURI convertChromeURL(in nsIURI aChromeURL)

From nsICommandLine

 Resolves a URI argument into a URI. This method has platform-specific
 logic for converting an absolute URI or a relative file-path into the
 appropriate URI object; it gracefully handles win32 C:\ paths which would
 confuse the ioservice if passed directly.

 @param aArgument  The command-line argument to resolve.
nsIURI resolveURI(in AString aArgument)

From nsICookiePermission

 getOriginatingURI

 determines the originating URI for a load given a channel, for third-party
 cookie blocking. this is done by leveraging the loadgroup of the channel to
 find the root content docshell, and the URI associated with its principal.
 if the root content docshell or its principal's URI cannot be obtained,
 this method will throw.

 @param aChannel
        the channel for the load trying to get or set cookies

 @return the originating URI.
nsIURI getOriginatingURI(in nsIChannel aChannel)

From nsIFaviconService

 Retrieves the URI of the favicon for the given page.

 @param aPageURI
        URI of the page whose favicon is desired
 @returns The URI of the favicon associated with that page. Returning a
          URI here does NOT mean that we have data for this favicon, only
          that we know what the favicon should be.
 @throws NS_ERROR_NOT_AVAILABLE
         When the page is not found or it has no favicon.
nsIURI getFaviconForPage(in nsIURI aPageURI)
 For a given page, this will give you a URI that, when displayed in chrome,
 will result in the given page's favicon. Unlike the other get functions,
 we needn't have heard of the page or its favicon: the default one will
 be returned in this case.

 @see getFaviconLinkForIcon
      This function only adds the extra level of indirection, looking up
      the favicon based on the page URI and using the default if not found.

 @param aPageURI
        URI of the page whose favicon is desired
 @returns A URI that will give you the icon image. This is NOT the URI of
          the icon as set on the page, but a URI that will give you the
          data out of the favicon service.  For a normal page with a
          favicon we've stored, this will be an annotation URI which will
          then cause the corresponding favicon data to be loaded from this
          service. For pages where we don't have a favicon, this will be a
          chrome URI of the default icon for a web page.
nsIURI getFaviconImageForPage(in nsIURI aPageURI)
 For a given icon URI, this will return a URI that will result in the image.
 In most cases, this is an annotation URI. For chrome, this will do nothing
 and return the input URI.

 @param aFaviconURI
        The URI of an icon in the favicon service.
 @returns A URI that will load the desired icon. This is NOT the URI of the
          icon as set on the page, but a URI that will give you the data
          out of the favicon service. For a normal page with a favicon
          we've stored, this will be an annotation URI which will then
          cause the corresponding favicon data to be loaded from this
          service. For pages where we don't have a favicon, this will be a
          chrome URI of the default icon for a web page. For chrome, the
          output will be the same as the input.

          No validity checking is done. If you pass an icon URI that we've
          never seen, you'll get back a URI that references an invalid
          icon. The moz-anno protocol handler's special case for "favicon"
          annotations will detect most invalid icons and it will resolve to
          the default icon, although without caching. For invalid chrome
          URIs, you'll get a broken image.
nsIURI getFaviconLinkForIcon(in nsIURI aFaviconURI)

From nsIFileProtocolHandler

 This method constructs a new file URI 

 @param aFile nsIFile
 @return reference to a new nsIURI object
nsIURI newFileURI(in nsIFile aFile)
 Takes a local file and tries to interpret it as an internet shortcut
 (e.g. .url files on windows).
 @param file The local file to read
 @return The URI the file refers to

 @throw NS_ERROR_NOT_AVAILABLE if the OS does not support such files.
 @throw NS_ERROR_NOT_AVAILABLE if this file is not an internet shortcut.
nsIURI readURLFile(in nsIFile file)

From nsIIOService

 This method constructs a new URI from a nsIFile.

 @param aFile specifies the file path
 @return reference to a new nsIURI object
nsIURI newFileURI(in nsIFile aFile)
 This method constructs a new URI by determining the scheme of the
 URI spec, and then delegating the construction of the URI to the
 protocol handler for that scheme. QueryInterface can be used on
 the resulting URI object to obtain a more specific type of URI.

 @see nsIProtocolHandler::newURI
nsIURI newURI(in AUTF8String aSpec, in string aOriginCharset, in nsIURI aBaseURI)

From nsILivemarkService

 Gets the URI of the syndication feed associated with a livemark container.

 @param container  The folder ID of a livemark container

 @returns nsIURI representing the URI of the feed; if the livemark
          container doesn't have a valid feed URI, null will be returned
          of the nsIURI object returned will be the empty string.

 @throws NS_ERROR_INVALID_ARG if the folder ID isn't known or identifies
         a folder that isn't a livemark container
 @throws NS_ERROR_MALFORMED_URI if the site URI annotation has
         somehow been corrupted (and can't be turned into an nsIURI)
nsIURI getFeedURI(in long long container)
 Gets the URI of the website associated with a livemark container.

 @param container  The folder ID of a livemark container

 @returns nsIURI representing the URI of the website; if the livemark
          container doesn't have a valid site URI, null will be returned

 @throws NS_ERROR_INVALID_ARG if the folder ID isn't known or identifies
         a folder that isn't a livemark container
 @throws NS_ERROR_MALFORMED_URI if the site URI annotation has
         somehow been corrupted (and can't be turned into an nsIURI)
nsIURI getSiteURI(in long long container)

From nsINavBookmarksService

 Get the URI for a bookmark item.
nsIURI getBookmarkURI(in long long aItemId)
 Used to see if the given URI is bookmarked, or any page that redirected to
 it is bookmarked. For example, if I bookmark "mozilla.org" by manually
 typing it in, and follow the bookmark, I will get redirected to
 "www.mozilla.org". Logically, this new page is also bookmarked. This
 function, if given "www.mozilla.org", will return the URI of the bookmark,
 in this case "mozilla.org".

 If there is no bookmarked page found, it will return NULL.
nsIURI getBookmarkedURIFor(in nsIURI aURI)
 Returns the URI associated with the given keyword. Empty if no such
 keyword is found.
nsIURI getURIForKeyword(in AString keyword)

From nsINetUtil

 Take aURI and produce an immutable version of it for the caller.  If aURI
 is immutable this will be aURI itself; otherwise this will be a clone,
 marked immutable if possible.  Passing null to this method is allowed; in
 that case it will return null.
nsIURI toImmutableURI(in nsIURI aURI)

From nsIProtocolHandler

 Makes a URI object that is suitable for loading by this protocol,
 where the URI string is given as an UTF-8 string.  The caller may
 provide the charset from which the URI string originated, so that
 the URI string can be translated back to that charset (if necessary)
 before communicating with, for example, the origin server of the URI
 string.  (Many servers do not support UTF-8 IRIs at the present time,
 so we must be careful about tracking the native charset of the origin
 server.)

 @param aSpec          - the URI string in UTF-8 encoding. depending
                         on the protocol implementation, unicode character
                         sequences may or may not be %xx escaped.
 @param aOriginCharset - the charset of the document from which this URI
                         string originated.  this corresponds to the
                         charset that should be used when communicating
                         this URI to an origin server, for example.  if
                         null, then UTF-8 encoding is assumed (i.e.,
                         no charset transformation from aSpec).
 @param aBaseURI       - if null, aSpec must specify an absolute URI.
                         otherwise, aSpec may be resolved relative
                         to aBaseURI, depending on the protocol. 
                         If the protocol has no concept of relative 
                         URI aBaseURI will simply be ignored.
nsIURI newURI(in AUTF8String aSpec, in string aOriginCharset, in nsIURI aBaseURI)

From nsIResProtocolHandler

 Gets the substitution for the root key.

 @throws NS_ERROR_NOT_AVAILABLE if none exists.
nsIURI getSubstitution(in ACString root)

From nsIURI

 Clones the current URI.  For some protocols, this is more than just an
 optimization.  For example, under MacOS, the spec of a file URL does not
 necessarily uniquely identify a file since two volumes could share the
 same name.
nsIURI clone()

From nsIURIFixup

 Converts an internal URI (e.g. a wyciwyg URI) into one which we can
 expose to the user, for example on the URL bar.

 @param  aURI       The URI to be converted
 @return nsIURI     The converted, exposable URI
 @throws NS_ERROR_MALFORMED_URI when the exposable portion of aURI is malformed
 @throws NS_ERROR_UNKNOWN_PROTOCOL when we can't get a protocol handler service
         for the URI scheme.
nsIURI createExposableURI(in nsIURI aURI)
 Converts the specified string into a URI, first attempting
 to correct any errors in the syntax or other vagaries. Returns
 a wellformed URI or nsnull if it can't.

 @param aURIText    Candidate URI.
 @param aFixupFlags Flags that govern ways the URI may be fixed up.
nsIURI createFixupURI(in AUTF8String aURIText, in unsigned long aFixupFlags)
 Converts the specified keyword string into a URI.  Note that it's the
 caller's responsibility to check whether keywords are enabled and
 whether aKeyword is a sensible keyword.
nsIURI keywordToURI(in AUTF8String aKeyword)

Parameters

From fuelIBookmarkFolder

 Adds a new child bookmark to this folder.
 @param   aTitle
          The title of bookmark.
 @param   aURI
          The uri of bookmark.
fuelIBookmark addBookmark(in AString aTitle, in nsIURI aURI)

From fuelIBrowserTab

 Load a new URI into this browser tab.
 @param   aURI
          The uri to load into the browser tab
void load(in nsIURI aURI)

From fuelIWindow

 Open a new browser tab, pointing to the specified URI.
 @param   aURI
          The uri to open the browser tab to
fuelIBrowserTab open(in nsIURI aURI)

From imgICache

 Find Properties
 Used to get properties such as 'type' and 'content-disposition'
 'type' is a nsISupportsCString containing the images' mime type such as 'image/png'
 'content-disposition' will be a nsISupportsCString containing the header
 If you call this before any data has been loaded from a URI, it will succeed,
 but come back empty.

 @param uri The URI to look up.
 @returns NULL if the URL was not found in the cache
nsIProperties findEntryProperties(in nsIURI uri)
 Evict images from the cache.

 @param uri The URI to remove.
 @return NS_OK if \a uri was removed from the cache.
         NS_ERROR_NOT_AVAILABLE if \a uri was unable to be removed from the cache.
void removeEntry(in nsIURI uri)

From imgILoader

 Start the load and decode of an image.
 @param aURI the URI to load
 @param aInitialDocumentURI the URI that 'initiated' the load -- used for 3rd party cookie blocking
 @param aReferrerURI the 'referring' URI
 @param aLoadGroup Loadgroup to put the image load into
 @param aObserver the observer
 @param aCX some random data
 @param aLoadFlags Load flags for the request
 @param aCacheKey cache key to use for a load if the original
                  image came from a request that had post data
 @param aRequest A newly created, unused imgIRequest object or NULL for one to
                     be created for you.


 libpr0n does NOT keep a strong ref to the observer; this prevents
 reference cycles.  This means that callers of loadImage should
 make sure to Cancel() the resulting request before the observer
 goes away.
[noscript] imgIRequest loadImage(in nsIURI aURI, in nsIURI aInitialDocumentURL, in nsIURI aReferrerURI, in nsILoadGroup aLoadGroup, in imgIDecoderObserver aObserver, in nsISupports aCX, in nsLoadFlags aLoadFlags, in nsISupports cacheKey, in imgIRequest aRequest)
 Start the load and decode of an image.
 @param aURI the URI to load
 @param aInitialDocumentURI the URI that 'initiated' the load -- used for 3rd party cookie blocking
 @param aReferrerURI the 'referring' URI
 @param aLoadGroup Loadgroup to put the image load into
 @param aObserver the observer
 @param aCX some random data
 @param aLoadFlags Load flags for the request
 @param aCacheKey cache key to use for a load if the original
                  image came from a request that had post data
 @param aRequest A newly created, unused imgIRequest object or NULL for one to
                     be created for you.


 libpr0n does NOT keep a strong ref to the observer; this prevents
 reference cycles.  This means that callers of loadImage should
 make sure to Cancel() the resulting request before the observer
 goes away.
[noscript] imgIRequest loadImage(in nsIURI aURI, in nsIURI aInitialDocumentURL, in nsIURI aReferrerURI, in nsILoadGroup aLoadGroup, in imgIDecoderObserver aObserver, in nsISupports aCX, in nsLoadFlags aLoadFlags, in nsISupports cacheKey, in imgIRequest aRequest)
 Start the load and decode of an image.
 @param aURI the URI to load
 @param aInitialDocumentURI the URI that 'initiated' the load -- used for 3rd party cookie blocking
 @param aReferrerURI the 'referring' URI
 @param aLoadGroup Loadgroup to put the image load into
 @param aObserver the observer
 @param aCX some random data
 @param aLoadFlags Load flags for the request
 @param aCacheKey cache key to use for a load if the original
                  image came from a request that had post data
 @param aRequest A newly created, unused imgIRequest object or NULL for one to
                     be created for you.


 libpr0n does NOT keep a strong ref to the observer; this prevents
 reference cycles.  This means that callers of loadImage should
 make sure to Cancel() the resulting request before the observer
 goes away.
[noscript] imgIRequest loadImage(in nsIURI aURI, in nsIURI aInitialDocumentURL, in nsIURI aReferrerURI, in nsILoadGroup aLoadGroup, in imgIDecoderObserver aObserver, in nsISupports aCX, in nsLoadFlags aLoadFlags, in nsISupports cacheKey, in imgIRequest aRequest)

From nsIAboutModule

 A method to get the flags that apply to a given about: URI.  The URI
 passed in is guaranteed to be one of the URIs that this module
 registered to deal with.
unsigned long getURIFlags(in nsIURI aURI)
 Constructs a new channel for the about protocol module. 

 @param aURI the uri of the new channel
nsIChannel newChannel(in nsIURI aURI)

From nsIAnnotationObserver

 Called when an annotation value is set. It could be a new annotation,
 or it could be a new value for an existing annotation.
void onPageAnnotationSet(in nsIURI aPage, in AUTF8String aName)
 Called when an annotation is deleted. If aName is empty, then ALL
 annotations for the given URI have been deleted. This is not called when
 annotations are expired (normally happens when the app exits).
void onPageAnnotationRemoved(in nsIURI aURI, in AUTF8String aName)

From nsIAnnotationService

 Copies all annotations from the source to the destination URI/item. If
 the destination already has an annotation with the same name as one on
 the source, it will be overwritten if aOverwriteDest is set. Otherwise,
 the destination URIs will be preferred.

 All the source annotations will stay as-is. If you don't want them
 any more, use removePageAnnotations on that URI.
void copyPageAnnotations(in nsIURI aSourceURI, in nsIURI aDestURI, in boolean aOverwriteDest)
 Copies all annotations from the source to the destination URI/item. If
 the destination already has an annotation with the same name as one on
 the source, it will be overwritten if aOverwriteDest is set. Otherwise,
 the destination URIs will be preferred.

 All the source annotations will stay as-is. If you don't want them
 any more, use removePageAnnotations on that URI.
void copyPageAnnotations(in nsIURI aSourceURI, in nsIURI aDestURI, in boolean aOverwriteDest)
 Returns a URI that can be used to access the given binary annotation.
 This function does NOT check that the annotation exists. Also, note that
 you can only load URIs for annotations that have have a valid MIME type
 set by setAnnotationBinary. No non-URI valid chars in name, especially
 colon, which will mess up parsing.
nsIURI getAnnotationURI(in nsIURI aURI, in AUTF8String aName)
 Retrieves the value of a given annotation. Throws an error if the
 annotation does not exist. Throws for binary annotations, for which
 getPageAnnotationBinary/getItemAnnotationBinary should be used. C++
 consumers may use the type-specific methods.

 The type-specific methods throw if the given annotation is set in
 a different type.
nsIVariant getPageAnnotation(in nsIURI aURI, in AUTF8String aName)
 @see getPageAnnotation. This also returns the
 MIME type.
void getPageAnnotationBinary(in nsIURI aURI, in AUTF8String aName, [array, size_is(aDataLen)] out octet aData, out unsigned long aDataLen, out AUTF8String aMimeType)
 @see getPageAnnotation
[noscript] double getPageAnnotationDouble(in nsIURI aURI, in AUTF8String aName)
 Retrieves info about an existing annotation. aMimeType will be empty
 if the value was not binary data.

 aType will be one of TYPE_* constansts above

 example JS:
   var flags = {}, exp = {}, mimeType = {};
   annotator.getAnnotationInfo(myURI, "foo", flags, exp, mimeType);
   // now you can use 'exp.value' and 'flags.value'
void getPageAnnotationInfo(in nsIURI aURI, in AUTF8String aName, out PRInt32 aFlags, out unsigned short aExpiration, out AUTF8String aMimeType, out unsigned short aType)
 @see getPageAnnotation
[noscript] long getPageAnnotationInt32(in nsIURI aURI, in AUTF8String aName)
 @see getPageAnnotation
[noscript] long long getPageAnnotationInt64(in nsIURI aURI, in AUTF8String aName)
 Get the names of all annotations for this URI.

 example JS:
   var annotations = annotator.getPageAnnotations(myURI, {});
void getPageAnnotationNames(in nsIURI aURI, out unsigned long count, [array, retval, size_is(count)] out nsIVariant result)
 @see getPageAnnotation
[noscript] AString getPageAnnotationString(in nsIURI aURI, in AUTF8String aName)
 Retrieves the type of an existing annotation
 Use getAnnotationInfo if you need this along with the mime-type etc.

 @param aURI
        the uri on which the annotation is set
 @param aName
        the annotation name
 @return one of the TYPE_* constants above
 @throws if the annotation is not set
PRUint16 getPageAnnotationType(in nsIURI aURI, in AUTF8String aName)
 Test for annotation existance.
boolean pageHasAnnotation(in nsIURI aURI, in AUTF8String aName)
 Removes a specific annotation. Succeeds even if the annotation is
 not found.
void removePageAnnotation(in nsIURI aURI, in AUTF8String aName)
 Removes all annotations for the given page/item.
 We may want some other similar functions to get annotations with given
 flags (once we have flags defined).
void removePageAnnotations(in nsIURI aURI)
 Sets an annotation, overwriting any previous annotation with the same
 URL/name. IT IS YOUR JOB TO NAMESPACE YOUR ANNOTATION NAMES.
 Use the form "namespace/value", so your name would be like
 "bills_extension/page_state" or "history/thumbnail".

 Do not use characters that are not valid in URLs such as spaces, ":",
 commas, or most other symbols. You should stick to ASCII letters and
 numbers plus "_", "-", and "/".

 aExpiration is one of EXPIRE_* above. aFlags should be 0 for now, some
 flags will be defined in the future.

 NOTE: ALL ANNOTATIONS WILL GET DELETED WHEN THE PAGE IS REMOVED FROM HISTORY,
 UNLESS YOU USE THE EXPIRE_NEVER FLAG. This means that if you create an
 annotation on a random unvisited URI, it will get deleted when the
 browser shuts down. Otherwise, things can exist in history as
 annotations but the user has no way of knowing it, potentially violating
 their privacy expectations about actions such as "Clear history." If
 there is an important annotation that the user wants to keep, you should
 make sure that you use EXPIRE_NEVER. This will ensure the item is never
 completely deleted from the Places database.

 The annotation "favicon" is special. Favicons are stored in the favicon
 service, but are special cased in the protocol handler so they look like
 annotations. Do not set favicons using this service, it will not work.

 Binary annotations should be set using
 setItemAnnotationBinary/setPageAnnotationBinary. For other types, only
 C++ consumers may use the type-specific methods.
void setPageAnnotation(in nsIURI aURI, in AUTF8String aName, in nsIVariant aValue, in long aFlags, in unsigned short aExpiration)

          
void setPageAnnotationBinary(in nsIURI aURI, in AUTF8String aName, [const, array, size_is(aDataLen)] in octet aData, in unsigned long aDataLen, in AUTF8String aMimeType, in long aFlags, in unsigned short aExpiration)
 Sets an annotation just like setAnnotationString, but takes a double as
 input.
[noscript] void setPageAnnotationDouble(in nsIURI aURI, in AUTF8String aName, in double aValue, in long aFlags, in unsigned short aExpiration)
 Sets an annotation just like setAnnotationString, but takes an Int32 as
 input.
[noscript] void setPageAnnotationInt32(in nsIURI aURI, in AUTF8String aName, in long aValue, in long aFlags, in unsigned short aExpiration)
 Sets an annotation just like setAnnotationString, but takes an Int64 as
 input.
[noscript] void setPageAnnotationInt64(in nsIURI aURI, in AUTF8String aName, in long long aValue, in long aFlags, in unsigned short aExpiration)

          
[noscript] void setPageAnnotationString(in nsIURI aURI, in AUTF8String aName, in AString aValue, in long aFlags, in unsigned short aExpiration)
 Returns a list of all URIs having a given annotation.
void getPagesWithAnnotation(in AUTF8String name, out unsigned long resultCount, [array, retval, size_is(resultCount)] out nsIURI results)

From nsIAppShellService


          
nsIXULWindow createTopLevelWindow(in nsIXULWindow aParent, in nsIURI aUrl, in PRUint32 aChromeMask, in long aInitialWidth, in long aInitialHeight, in nsIAppShell aAppShell)

From nsIBrowserDOMWindow

 Load a URI

 @param aURI the URI to open. null is allowed.  If null is passed in, no
             load will be done, though the window the load would have
             happened in will be returned.
 @param aWhere see possible values described above.
 @param aOpener window requesting the open (can be null).
 @param aContext the context in which the URI is being opened. This
                 is used only when aWhere == OPEN_DEFAULTWINDOW.
 @return the window into which the URI was opened.
nsIDOMWindow openURI(in nsIURI aURI, in nsIDOMWindow aOpener, in short aWhere, in short aContext)

From nsIBrowserHistory

 addPageWithDetails

 Adds a page to history with specific time stamp information. This is used in
 the History migrator. 
void addPageWithDetails(in nsIURI aURI, in wstring aTitle, in long long aLastVisited)
 hidePage

 Hide the specified URL from being enumerated (and thus
 displayed in the UI)
 If the page hasn't been visited yet, then it will be added
 as if it was visited, and then marked as hidden
void hidePage(in nsIURI aURI)
 markPageAsTyped

 Designate the url as having been explicitly typed in by
 the user, so it's okay to be an autocomplete result.
void markPageAsTyped(in nsIURI aURI)
 removePage

 Remove a page from history
void removePage(in nsIURI aURI)
 removePages

 Remove a bunch of pages from history
 Notice that this does not call observers for performance reasons,
 instead setting aDoBatchNotify true will send Begin/EndUpdateBatch
void removePages([array, size_is(aLength)] in nsIURI aURIs, in unsigned long aLength, in boolean aDoBatchNotify)

From nsICRLManager


          
void importCrl([array, size_is(length)] in octet data, in unsigned long length, in nsIURI uri, in unsigned long type, in boolean doSilentDownload, in wstring crlKey)

From nsIChromeRegistry

 Resolve a chrome URL to an loadable URI using the information in the
 registry. Does not modify aChromeURL.

 Chrome URLs are allowed to be specified in "shorthand", leaving the
 "file" portion off. In that case, the URL is expanded to:

   chrome://package/provider/package.ext

 where "ext" is:

   "xul" for a "content" package,
   "css" for a "skin" package, and
   "dtd" for a "locale" package.

 @param aChromeURL the URL that is to be converted.
nsIURI convertChromeURL(in nsIURI aChromeURL)
 returns whether XPCNativeWrappers are enabled for aURI.
[notxpcom] boolean wrappersEnabled(in nsIURI aURI)

From nsIContentDispatchChooser

 Asks the user what to do with the content.

 @param aHander
        The interface describing the details of how this content should or
        can be handled.
 @param aWindowContext
        The parent window context to show this chooser.  This can be null,
        and some implementations may not care about it.  Generally, you'll
        want to pass an nsIDOMWindow in so the chooser can be properly
        parented when opened.
 @param aURI
        The URI of the resource that we are asking about.
 @param aReason
        The reason why we are asking (see above).
void ask(in nsIHandlerInfo aHandler, in nsIInterfaceRequestor aWindowContext, in nsIURI aURI, in unsigned long aReason)

From nsIContentPolicy

 Should the resource at this location be loaded?
 ShouldLoad will be called before loading the resource at aContentLocation
 to determine whether to start the load at all.

 @param aContentType      the type of content being tested. This will be one
                          one of the TYPE_* constants.

 @param aContentLocation  the location of the content being checked; must
                          not be null

 @param aRequestOrigin    OPTIONAL. the location of the resource that
                          initiated this load request; can be null if
                          inapplicable

 @param aContext          OPTIONAL. the nsIDOMNode or nsIDOMWindow that
                          initiated the request, or something that can QI
                          to one of those; can be null if inapplicable.

 @param aMimeTypeGuess    OPTIONAL. a guess for the requested content's
                          MIME type, based on information available to
                          the request initiator (e.g., an OBJECT's type
                          attribute); does not reliably reflect the
                          actual MIME type of the requested content

 @param aExtra            an OPTIONAL argument, pass-through for non-Gecko
                          callers to pass extra data to callees.

 @return ACCEPT or REJECT_*

 @note shouldLoad can be called while the DOM and layout of the document
 involved is in an inconsistent state.  This means that implementors of
 this method MUST NOT do any of the following:
 1)  Modify the DOM in any way (e.g. setting attributes is a no-no).
 2)  Query any DOM properties that depend on layout (e.g. offset*
     properties).
 3)  Query any DOM properties that depend on style (e.g. computed style).
 4)  Query any DOM properties that depend on the current state of the DOM
     outside the "context" node (e.g. lengths of node lists).
 5)  [JavaScript implementations only] Access properties of any sort on any
     object without using XPCNativeWrapper (either explicitly or
     implicitly).  Due to various DOM0 things, this leads to item 4.
 If you do any of these things in your shouldLoad implementation, expect
 unpredictable behavior, possibly including crashes, content not showing
 up, content showing up doubled, etc.  If you need to do any of the things
 above, do them off timeout or event.
short shouldLoad(in unsigned long aContentType, in nsIURI aContentLocation, in nsIURI aRequestOrigin, in nsISupports aContext, in ACString aMimeTypeGuess, in nsISupports aExtra)
 Should the resource be processed?
 ShouldProcess will be called once all the information passed to it has
 been determined about the resource, typically after part of the resource
 has been loaded.

 @param aContentType      the type of content being tested. This will be one
                          one of the TYPE_* constants.

 @param aContentLocation  OPTIONAL; the location of the resource being
                          requested: MAY be, e.g., a post-redirection URI
                          for the resource.

 @param aRequestOrigin    OPTIONAL. the location of the resource that
                          initiated this load request; can be null if
                          inapplicable

 @param aContext          OPTIONAL. the nsIDOMNode or nsIDOMWindow that
                          initiated the request, or something that can QI
                          to one of those; can be null if inapplicable.

 @param aMimeType         the MIME type of the requested resource (e.g.,
                          image/png), as reported by the networking library,
                          if available (may be empty if inappropriate for
                          the type, e.g., TYPE_REFRESH).

 @param aExtra            an OPTIONAL argument, pass-through for non-Gecko
                          callers to pass extra data to callees.

 @return ACCEPT or REJECT_*

 @note shouldProcess can be called while the DOM and layout of the document
 involved is in an inconsistent state.  See the note on shouldLoad to see
 what this means for implementors of this method.
short shouldProcess(in unsigned long aContentType, in nsIURI aContentLocation, in nsIURI aRequestOrigin, in nsISupports aContext, in ACString aMimeType, in nsISupports aExtra)
 Should the resource at this location be loaded?
 ShouldLoad will be called before loading the resource at aContentLocation
 to determine whether to start the load at all.

 @param aContentType      the type of content being tested. This will be one
                          one of the TYPE_* constants.

 @param aContentLocation  the location of the content being checked; must
                          not be null

 @param aRequestOrigin    OPTIONAL. the location of the resource that
                          initiated this load request; can be null if
                          inapplicable

 @param aContext          OPTIONAL. the nsIDOMNode or nsIDOMWindow that
                          initiated the request, or something that can QI
                          to one of those; can be null if inapplicable.

 @param aMimeTypeGuess    OPTIONAL. a guess for the requested content's
                          MIME type, based on information available to
                          the request initiator (e.g., an OBJECT's type
                          attribute); does not reliably reflect the
                          actual MIME type of the requested content

 @param aExtra            an OPTIONAL argument, pass-through for non-Gecko
                          callers to pass extra data to callees.

 @return ACCEPT or REJECT_*

 @note shouldLoad can be called while the DOM and layout of the document
 involved is in an inconsistent state.  This means that implementors of
 this method MUST NOT do any of the following:
 1)  Modify the DOM in any way (e.g. setting attributes is a no-no).
 2)  Query any DOM properties that depend on layout (e.g. offset*
     properties).
 3)  Query any DOM properties that depend on style (e.g. computed style).
 4)  Query any DOM properties that depend on the current state of the DOM
     outside the "context" node (e.g. lengths of node lists).
 5)  [JavaScript implementations only] Access properties of any sort on any
     object without using XPCNativeWrapper (either explicitly or
     implicitly).  Due to various DOM0 things, this leads to item 4.
 If you do any of these things in your shouldLoad implementation, expect
 unpredictable behavior, possibly including crashes, content not showing
 up, content showing up doubled, etc.  If you need to do any of the things
 above, do them off timeout or event.
short shouldLoad(in unsigned long aContentType, in nsIURI aContentLocation, in nsIURI aRequestOrigin, in nsISupports aContext, in ACString aMimeTypeGuess, in nsISupports aExtra)
 Should the resource be processed?
 ShouldProcess will be called once all the information passed to it has
 been determined about the resource, typically after part of the resource
 has been loaded.

 @param aContentType      the type of content being tested. This will be one
                          one of the TYPE_* constants.

 @param aContentLocation  OPTIONAL; the location of the resource being
                          requested: MAY be, e.g., a post-redirection URI
                          for the resource.

 @param aRequestOrigin    OPTIONAL. the location of the resource that
                          initiated this load request; can be null if
                          inapplicable

 @param aContext          OPTIONAL. the nsIDOMNode or nsIDOMWindow that
                          initiated the request, or something that can QI
                          to one of those; can be null if inapplicable.

 @param aMimeType         the MIME type of the requested resource (e.g.,
                          image/png), as reported by the networking library,
                          if available (may be empty if inappropriate for
                          the type, e.g., TYPE_REFRESH).

 @param aExtra            an OPTIONAL argument, pass-through for non-Gecko
                          callers to pass extra data to callees.

 @return ACCEPT or REJECT_*

 @note shouldProcess can be called while the DOM and layout of the document
 involved is in an inconsistent state.  See the note on shouldLoad to see
 what this means for implementors of this method.
short shouldProcess(in unsigned long aContentType, in nsIURI aContentLocation, in nsIURI aRequestOrigin, in nsISupports aContext, in ACString aMimeType, in nsISupports aExtra)

From nsIContentPrefService

 Get a pref.

 Besides the regular string, integer, boolean, etc. values, this method
 may return null (nsIDataType::VTYPE_EMPTY), which means the pref is set
 to NULL in the database, as well as undefined (nsIDataType::VTYPE_VOID),
 which means there is no record for this pref in the database.

 @param    aURI        the URI for which to get the pref, or null to get
                       the global pref (applies to all URIs)
 @param    aName       the name of the pref to get

 @returns  the value of the pref
nsIVariant getPref(in nsIURI aURI, in AString aName)
 Get the prefs that apply to the given URI.

 @param    aURI        the URI for which to retrieve prefs
 
 @returns  a property bag of prefs
nsIPropertyBag2 getPrefs(in nsIURI aURI)
 Check whether or not a pref exists.

 @param    aURI        the URI for which to check for the pref
 @param    aName       the name of the pref to check for
boolean hasPref(in nsIURI aURI, in AString aName)
 Remove a pref.

 @param    aURI        the URI for which to remove the pref
 @param    aName       the name of the pref to remove
void removePref(in nsIURI aURI, in AString aName)
 Set a pref.

 @param    aURI        the URI for which to set the pref, or null to set
                       the global pref (applies to all URIs)
 @param    aName       the name of the pref to set
 @param    aValue      the new value of the pref
void setPref(in nsIURI aURI, in AString aName, in nsIVariant aValue)

From nsIContentURIGrouper

 Determine the group to which the URI belongs.

 @param    aURI       the URI to group

 @returns  the group to which the URI belongs
AString group(in nsIURI aURI)

From nsICookiePermission

 canAccess

 this method is called to test whether or not the given URI/channel may
 access the cookie database, either to set or get cookies.

 @param aURI
        the URI trying to access cookies
 @param aChannel
        the channel corresponding to aURI

 @return one of the following nsCookieAccess values:
         ACCESS_DEFAULT, ACCESS_ALLOW, or ACCESS_DENY
nsCookieAccess canAccess(in nsIURI aURI, in nsIChannel aChannel)
 canSetCookie

 this method is called to test whether or not the given URI/channel may
 set a specific cookie.  this method is always preceded by a call to
 canAccess. it may modify the isSession and expiry attributes of the
 cookie via the aIsSession and aExpiry parameters, in order to limit
 or extend the lifetime of the cookie. this is useful, for instance, to
 downgrade a cookie to session-only if it fails to meet certain criteria.

 @param aURI
        the URI trying to set the cookie
 @param aChannel
        the channel corresponding to aURI
 @param aCookie
        the cookie being added to the cookie database
 @param aIsSession
        when canSetCookie is invoked, this is the current isSession attribute
        of the cookie. canSetCookie may leave this value unchanged to
        preserve this attribute of the cookie.
 @param aExpiry
        when canSetCookie is invoked, this is the current expiry time of
        the cookie. canSetCookie may leave this value unchanged to
        preserve this attribute of the cookie.

 @return true if the cookie can be set.
boolean canSetCookie(in nsIURI aURI, in nsIChannel aChannel, in nsICookie2 aCookie, inout boolean aIsSession, inout PRInt64 aExpiry)
 setAccess

 this method is called to block cookie access for the given URI.  this
 may result in other URIs being blocked as well (e.g., URIs which share
 the same host name).

 @param aURI
        the URI to block
 @param aAccess
        the new cookie access for the URI.
void setAccess(in nsIURI aURI, in nsCookieAccess aAccess)

From nsICookieService


          
string getCookieStringFromHttp(in nsIURI aURI, in nsIURI aFirstURI, in nsIChannel aChannel)

          
void setCookieStringFromHttp(in nsIURI aURI, in nsIURI aFirstURI, in nsIPrompt aPrompt, in string aCookie, in string aServerTime, in nsIChannel aChannel)

          
string getCookieString(in nsIURI aURI, in nsIChannel aChannel)

          
string getCookieStringFromHttp(in nsIURI aURI, in nsIURI aFirstURI, in nsIChannel aChannel)

          
void setCookieString(in nsIURI aURI, in nsIPrompt aPrompt, in string aCookie, in nsIChannel aChannel)

          
void setCookieStringFromHttp(in nsIURI aURI, in nsIURI aFirstURI, in nsIPrompt aPrompt, in string aCookie, in string aServerTime, in nsIChannel aChannel)

From nsIDOMParser

 Initialize the principal and document and base URIs that the parser should
 use for documents it creates.  If this is not called, then a null
 principal and its URI will be used.  When creating a DOMParser via the JS
 constructor, this will be called automatically.  This method may only be
 called once.  If this method fails, all following parse attempts will
 fail.

 @param principal The principal to use for documents we create.
                  If this is null, a codebase principal will be created
                  based on documentURI; in that case the documentURI must
                  be non-null.
 @param documentURI The documentURI to use for the documents we create.
                    If null, the principal's URI will be used;
                    in that case, the principal must be non-null and its
                    URI must be non-null.
 @param baseURI The baseURI to use for the documents we create.
                If null, the documentURI will be used.
 @param scriptObject The object from which the context for event handling
                     can be got.
[noscript] void init(in nsIPrincipal principal, in nsIURI documentURI, in nsIURI baseURI, in nsIScriptGlobalObject scriptObject)
 Initialize the principal and document and base URIs that the parser should
 use for documents it creates.  If this is not called, then a null
 principal and its URI will be used.  When creating a DOMParser via the JS
 constructor, this will be called automatically.  This method may only be
 called once.  If this method fails, all following parse attempts will
 fail.

 @param principal The principal to use for documents we create.
                  If this is null, a codebase principal will be created
                  based on documentURI; in that case the documentURI must
                  be non-null.
 @param documentURI The documentURI to use for the documents we create.
                    If null, the principal's URI will be used;
                    in that case, the principal must be non-null and its
                    URI must be non-null.
 @param baseURI The baseURI to use for the documents we create.
                If null, the documentURI will be used.
 @param scriptObject The object from which the context for event handling
                     can be got.
[noscript] void init(in nsIPrincipal principal, in nsIURI documentURI, in nsIURI baseURI, in nsIScriptGlobalObject scriptObject)

From nsIDOMParserJS

 Just like nsIDOMParser.init, but callable from JS.
void init(in nsIPrincipal principal, in nsIURI documentURI, in nsIURI baseURI)
 Just like nsIDOMParser.init, but callable from JS.
void init(in nsIPrincipal principal, in nsIURI documentURI, in nsIURI baseURI)

From nsIDOMPopupBlockedEvent


          
void initPopupBlockedEvent(in DOMString typeArg, in boolean canBubbleArg, in boolean cancelableArg, in nsIDOMWindow requestingWindow, in nsIURI popupWindowURI, in DOMString popupWindowName, in DOMString popupWindowFeatures)

From nsIDocShell

 Loads the given URI.  This method is identical to loadURI(...) except
 that its parameter list is broken out instead of being packaged inside
 of an nsIDocShellLoadInfo object...

 @param aURI            - The URI to load.
 @param aReferrer       - Referring URI
 @param aOwner          - Owner (security principal) 
 @param aInheritOwner   - Flag indicating whether the owner of the current
                          document should be inherited if aOwner is null.
 @param aStopActiveDoc  - Flag indicating whether loading the current
                          document should be stopped.
 @param aWindowTarget   - Window target for the load.
 @param aTypeHint       - A hint as to the content-type of the resulting
                          data.  May be null or empty if no hint.
 @param aPostDataStream - Post data stream (if POSTing)
 @param aHeadersStream  - Stream containing "extra" request headers...
 @param aLoadFlags      - Flags to modify load behaviour. Flags are defined
                          in nsIWebNavigation.
 @param aSHEntry        - Active Session History entry (if loading from SH)
[noscript] void internalLoad(in nsIURI aURI, in nsIURI aReferrer, in nsISupports aOwner, in PRUint32 aFlags, in wstring aWindowTarget, in string aTypeHint, in nsIInputStream aPostDataStream, in nsIInputStream aHeadersStream, in unsigned long aLoadFlags, in nsISHEntry aSHEntry, in boolean firstParty, out nsIDocShell aDocShell, out nsIRequest aRequest)
 Loads the given URI.  This method is identical to loadURI(...) except
 that its parameter list is broken out instead of being packaged inside
 of an nsIDocShellLoadInfo object...

 @param aURI            - The URI to load.
 @param aReferrer       - Referring URI
 @param aOwner          - Owner (security principal) 
 @param aInheritOwner   - Flag indicating whether the owner of the current
                          document should be inherited if aOwner is null.
 @param aStopActiveDoc  - Flag indicating whether loading the current
                          document should be stopped.
 @param aWindowTarget   - Window target for the load.
 @param aTypeHint       - A hint as to the content-type of the resulting
                          data.  May be null or empty if no hint.
 @param aPostDataStream - Post data stream (if POSTing)
 @param aHeadersStream  - Stream containing "extra" request headers...
 @param aLoadFlags      - Flags to modify load behaviour. Flags are defined
                          in nsIWebNavigation.
 @param aSHEntry        - Active Session History entry (if loading from SH)
[noscript] void internalLoad(in nsIURI aURI, in nsIURI aReferrer, in nsISupports aOwner, in PRUint32 aFlags, in wstring aWindowTarget, in string aTypeHint, in nsIInputStream aPostDataStream, in nsIInputStream aHeadersStream, in unsigned long aLoadFlags, in nsISHEntry aSHEntry, in boolean firstParty, out nsIDocShell aDocShell, out nsIRequest aRequest)
 Loads a given stream. This will give priority to loading the requested
 stream in the object implementing this interface. If it can't be loaded
 here however, the URL dispatched will go through its normal process of
 content loading.

 @param aStream         - The input stream that provides access to the data
                          to be loaded.  This must be a blocking, threadsafe
                          stream implementation.
 @param aURI            - The URI representing the stream, or null.
 @param aContentType    - The type (MIME) of data being loaded (empty if unknown).
 @param aContentCharset - The charset of the data being loaded (empty if unknown).
 @param aLoadInfo       - This is the extended load info for this load.  This
                          most often will be null, but if you need to do 
                          additional setup for this load you can get a
                          loadInfo object by calling createLoadInfo.  Once
                          you have this object you can set the needed 
                          properties on it and then pass it to loadStream.
[noscript] void loadStream(in nsIInputStream aStream, in nsIURI aURI, in ACString aContentType, in ACString aContentCharset, in nsIDocShellLoadInfo aLoadInfo)
 For editors and suchlike who wish to change the URI associated with the
 document. Note if you want to get the current URI, use the read-only
 property on nsIWebNavigation.
void setCurrentURI(in nsIURI aURI)

          
nsIDOMStorage getSessionStorageForURI(in nsIURI uri)
 Loads a given URI.  This will give priority to loading the requested URI
 in the object implementing	this interface.  If it can't be loaded here
 however, the URL dispatcher will go through its normal process of content
 loading.

 @param uri        - The URI to load.
 @param loadInfo   - This is the extended load info for this load.  This
                     most often will be null, but if you need to do 
                     additional setup for this load you can get a loadInfo
                     object by calling createLoadInfo.  Once you have this
                     object you can set the needed properties on it and
                     then pass it to loadURI.
 @param aLoadFlags - Flags to modify load behaviour. Flags are defined in
                     nsIWebNavigation.  Note that using flags outside
                     LOAD_FLAGS_MASK is only allowed if passing in a
                     non-null loadInfo.  And even some of those might not
                     be allowed.  Use at your own risk.
[noscript] void loadURI(in nsIURI uri, in nsIDocShellLoadInfo loadInfo, in unsigned long aLoadFlags, in boolean firstParty)

From nsIDownloadHistory

 Adds a download to history.  This will also notify observers that the
 URI aSource is visited with the topic NS_LINK_VISITED_EVENT_TOPIC if
 aSource has not yet been visited.

 @param aSource
        The source of the download we are adding to history.  This cannot be
        null.
 @param aReferrer
        [optional] The referrer of source URI.
 @param aStartTime
        [optional] The time the download was started.  If the start time
        is not given, the current time is used.
 @throws NS_ERROR_NOT_AVAILABLE
         In a situation where a history implementation is not available,
         where 'history implementation' refers to something like
         nsIGlobalHistory and friends.
void addDownload(in nsIURI aSource, [optional] in nsIURI aReferrer, [optional] in PRTime aStartTime)
 Adds a download to history.  This will also notify observers that the
 URI aSource is visited with the topic NS_LINK_VISITED_EVENT_TOPIC if
 aSource has not yet been visited.

 @param aSource
        The source of the download we are adding to history.  This cannot be
        null.
 @param aReferrer
        [optional] The referrer of source URI.
 @param aStartTime
        [optional] The time the download was started.  If the start time
        is not given, the current time is used.
 @throws NS_ERROR_NOT_AVAILABLE
         In a situation where a history implementation is not available,
         where 'history implementation' refers to something like
         nsIGlobalHistory and friends.
void addDownload(in nsIURI aSource, [optional] in nsIURI aReferrer, [optional] in PRTime aStartTime)

From nsIDownloadManager

 Creates an nsIDownload and adds it to be managed by the download manager.

 @param aSource The source URI of the transfer. Must not be null.

 @param aTarget The target URI of the transfer. Must not be null.

 @param aDisplayName The user-readable description of the transfer.
                     Can be empty.

 @param aMIMEInfo The MIME info associated with the target,
                  including MIME type and helper app when appropriate.
                  This parameter is optional.

 @param startTime Time when the download started

 @param aTempFile The location of a temporary file; i.e. a file in which
                  the received data will be stored, but which is not
                  equal to the target file. (will be moved to the real
                  target by the caller, when the download is finished)
                  May be null.

 @param aCancelable An object that can be used to abort the download.
                    Must not be null.

 @return The newly created download item with the passed-in properties.

 @note This does not actually start a download.  If you want to add and
       start a download, you need to create an nsIWebBrowserPersist, pass it
       as the aCancelable object, call this method, set the progressListener
       as the returned download object, then call saveURI.
nsIDownload addDownload(in short aDownloadType, in nsIURI aSource, in nsIURI aTarget, in AString aDisplayName, in nsIMIMEInfo aMIMEInfo, in PRTime aStartTime, in nsILocalFile aTempFile, in nsICancelable aCancelable)
 Creates an nsIDownload and adds it to be managed by the download manager.

 @param aSource The source URI of the transfer. Must not be null.

 @param aTarget The target URI of the transfer. Must not be null.

 @param aDisplayName The user-readable description of the transfer.
                     Can be empty.

 @param aMIMEInfo The MIME info associated with the target,
                  including MIME type and helper app when appropriate.
                  This parameter is optional.

 @param startTime Time when the download started

 @param aTempFile The location of a temporary file; i.e. a file in which
                  the received data will be stored, but which is not
                  equal to the target file. (will be moved to the real
                  target by the caller, when the download is finished)
                  May be null.

 @param aCancelable An object that can be used to abort the download.
                    Must not be null.

 @return The newly created download item with the passed-in properties.

 @note This does not actually start a download.  If you want to add and
       start a download, you need to create an nsIWebBrowserPersist, pass it
       as the aCancelable object, call this method, set the progressListener
       as the returned download object, then call saveURI.
nsIDownload addDownload(in short aDownloadType, in nsIURI aSource, in nsIURI aTarget, in AString aDisplayName, in nsIMIMEInfo aMIMEInfo, in PRTime aStartTime, in nsILocalFile aTempFile, in nsICancelable aCancelable)

From nsIEffectiveTLDService

 Returns the base domain of a URI; that is, the public suffix with a given
 number of additional domain name parts. For example, the result of this method
 for "www.bbc.co.uk", depending on the value of aAdditionalParts parameter, will
 be:

    0 (default) -> bbc.co.uk
    1           -> www.bbc.co.uk

 Similarly, the public suffix for "www.developer.mozilla.org" is "org", and the base
 domain will be:

    0 (default) -> mozilla.org
    1           -> developer.mozilla.org
    2           -> www.developer.mozilla.org

 The base domain will be returned encoded in ASCII/ACE and will be normalized
 according to RFC 3454, i.e. the same encoding returned by nsIURI::GetAsciiHost().
 If consumers wish to compare the result of this method against the host from
 another nsIURI, the host should be obtained using nsIURI::GetAsciiHost().
 In the case of nested URIs, the innermost URI will be used.

 @param   aURI               The URI to be analyzed
 @param   aAdditionalParts   Number of domain name parts to be
                             returned in addition to the public suffix

 @returns the base domain (public suffix plus the requested number of additional parts)

 @throws NS_ERROR_UNEXPECTED 
         or other error returned by nsIIDNService::normalize when 
         the hostname contains characters disallowed in URIs
 @throws NS_ERROR_INSUFFICIENT_DOMAIN_LEVELS
         when there are insufficient subdomain levels in the hostname to satisfy the
         requested aAdditionalParts value.
 @throws NS_ERROR_HOST_IS_IP_ADDRESS
         if aHost is a numeric IPv4 or IPv6 address (as determined by
         the success of a call to PR_StringToNetAddr()).

 @see    getPublicSuffix()
ACString getBaseDomain(in nsIURI aURI, [optional] in PRUint32 aAdditionalParts)
 Returns the public suffix of a URI. A public suffix is the highest-level domain
 under which individual domains may be registered; it may therefore contain one
 or more dots. For example, the public suffix for "www.bbc.co.uk" is "co.uk",
 because the .uk TLD does not allow the registration of domains at the
 second level ("bbc.uk" is forbidden).

 The public suffix will be returned encoded in ASCII/ACE and will be normalized
 according to RFC 3454, i.e. the same encoding returned by nsIURI::GetAsciiHost().
 If consumers wish to compare the result of this method against the host from
 another nsIURI, the host should be obtained using nsIURI::GetAsciiHost().
 In the case of nested URIs, the innermost URI will be used.

 @param   aURI   The URI to be analyzed

 @returns the public suffix

 @throws NS_ERROR_UNEXPECTED 
         or other error returned by nsIIDNService::normalize when 
         the hostname contains characters disallowed in URIs
 @throws NS_ERROR_HOST_IS_IP_ADDRESS
         if the host is a numeric IPv4 or IPv6 address (as determined by
         the success of a call to PR_StringToNetAddr()).
ACString getPublicSuffix(in nsIURI aURI)

From nsIExternalProtocolService

 Used to load a URI via an external application. Might prompt the user for
 permission to load the external application.

 @param aURI
        The URI to load

 @param aWindowContext 
        The window to parent the dialog against, and, if a web handler
        is chosen, it is loaded in this window as well.  This parameter
        may be ultimately passed nsIURILoader.openURI in the case of a
        web handler, and aWindowContext is null or not present, web
        handlers will fail.  We need to do better than that; bug 394483
        filed in order to track.
 
 @note  Embedders that do not expose the http protocol should not currently
        use web-based protocol handlers, as handoff won't work correctly
        (bug 394479).  
void loadURI(in nsIURI aURI, [optional] in nsIInterfaceRequestor aWindowContext)
 Used to load a url via an external protocol handler (if one exists)

 @param aURL The url to load
 @deprecated Use LoadURI instead (See Bug 389565 for removal)
void loadUrl(in nsIURI aURL)

From nsIFaviconService

 Adds a given favicon's URI to the failed favicon cache.

 The lifespan of the favicon cache is up to the caching system. This cache
 will also be written to if you use setAndLoadFaviconForPage and it
 encounters an error.

 @see isFailedFavicon
void addFailedFavicon(in nsIURI aFaviconURI)
 Retrieves the given favicon data. Throws if we don't have data.

 If there is no data but we have an entry for this favicon, aDataLen will
 be 0 and aData will be NULL.

 @param aFaviconURI
        URI of the favicon whose data is being read
 @param aData
        Output parameter where the binary favicon data will be placed.
        This will be null if we have this URI but have no data associated
        with it.
 @param aDataLen
        Output parameter where the size of the binary data will be placed.
 @param aMimeType
        Output parameter where the MIME type will be placed.
 @throws NS_ERROR_NOT_AVAILABLE
         Thrown when we have never heard of this favicon URI.
void getFaviconData(in nsIURI aFaviconURI, out AUTF8String aMimeType, out unsigned long aDataLen, [array, retval, size_is(aDataLen)] out octet aData)
 Retrieves the given favicon data as a data URL. Throws if we don't
 have data.

 If there is no data but we have an entry for this favicon, the return
 value will be NULL.
 
 @see getFaviconData

 @param aFaviconURI
        URI of the favicon whose data is being read
 @returns A data URL containing the data of the favicon. This will be
          null if we have this URL but have no data associated with it.
 @throws NS_ERROR_NOT_AVAILABLE
         Thrown when we have never heard of this favicon URL.
AString getFaviconDataAsDataURL(in nsIURI aFaviconURI)
 For a given icon URI, this will return a URI that will result in the image.
 In most cases, this is an annotation URI. For chrome, this will do nothing
 and return the input URI.

 @param aFaviconURI
        The URI of an icon in the favicon service.
 @returns A URI that will load the desired icon. This is NOT the URI of the
          icon as set on the page, but a URI that will give you the data
          out of the favicon service. For a normal page with a favicon
          we've stored, this will be an annotation URI which will then
          cause the corresponding favicon data to be loaded from this
          service. For pages where we don't have a favicon, this will be a
          chrome URI of the default icon for a web page. For chrome, the
          output will be the same as the input.

          No validity checking is done. If you pass an icon URI that we've
          never seen, you'll get back a URI that references an invalid
          icon. The moz-anno protocol handler's special case for "favicon"
          annotations will detect most invalid icons and it will resolve to
          the default icon, although without caching. For invalid chrome
          URIs, you'll get a broken image.
nsIURI getFaviconLinkForIcon(in nsIURI aFaviconURI)
 Checks to see if this favicon is in the failed favicon cache. Returns true
 if the favicon is in the failed cache, meaning you probably shouldn't try
 to load it. A false return value means that it's worth trying to load it.
 This allows you to avoid trying to load "foo.com/favicon.ico" for every
 page on a site that doesn't have a favicon.
boolean isFailedFavicon(in nsIURI aFaviconURI)
 Removes the given favicon from the failed favicon cache. If the icon is
 not in the cache, this function will silently succeed.
void removeFailedFavicon(in nsIURI aFaviconURI)
 Same as SetFaviconUrlForPage except that this also attempts to set the
 data by loading the favicon URI. An async request will be created for
 this URI and if the data is available, it will asynchronously get
 saved in the database without any further work from the caller.

 If the icon data already exists, we won't normally try to re-load the
 icon from the net (or more likely the cache). If the icon is in the
 failed favicon cache we won't do anything. Use forceReload to force
 a reload of the data. This will remove the favicon from the failed
 cache. If it then fails again, it will be re-added to the failed cache.

 SetFaviconUrlForPage and SetFaviconData will take any URI you provide
 and save it. This function is intended for automatic usage, and will
 only save favicons for "good" URIs, as defined by what gets added to
 history. For "bad" URIs, this function will succeed and do nothing.
 This function will also ignore the error page favicon URI
 (chrome://global/skin/icons/warning-16.png). Icons that fail to load
 will automatically be added to the failed favicon cache.

 This function will not save favicons for non-bookmarked URIs when
 history is disabled (expiration time is 0 days). The rest of the functions
 here will always store favicons even when history is disabled.

 @param aPageURI
        URI of the page whose favicon is being set.
 @param aFaviconURI
        URI of the favicon to associate with the page.
 @param aForceReload
        Unset is normal behavior, we will only try to reload the favicon
        if we don't have it or if it has expired from the cache. If set,
        it will always try to reload the favicon.
void setAndLoadFaviconForPage(in nsIURI aPageURI, in nsIURI aFaviconURI, in boolean aForceReload)
 Stores the data of a given favicon. You must specify the MIME type
 unless you're clearing the data.

 You can set the data even if you haven't called SetFaviconUrlForPage
 yet. It will be stored but will not be associated with any page.
 However, any favicons not associated with a visited web page, bookmark,
 or "place:" URI will be expired when history cleanup is done. This might
 be done at any time on a timer, so you should not let the message loop
 run between calls or your icon may get deleted.

 It is best to set the favicon data, and then associate it with a page.
 This will make the notifications more efficient since the icon will
 already have data when the set favicon observer messages goes out.

 The expiration time is stored. This will be used if you call
 SetAndLoadFaviconForPage to see whether the data needs reloading.

 Do not use this function for chrome: icon URIs. You should reference the
 chrome image yourself. The GetFaviconLinkForIcon/Page will ignore any
 associated data if the favicon URI is "chrome:" and just return the same
 chrome URI.

 This function does NOT send out notifications that the data has changed.
 Potentially, many pages could be referencing the favicon and they could
 be visible in a history view or toolbar. But sending out those
 notifications is very intensive. Those pages will keep the old icon
 until they have been refreshed by other means.

 This function tries to optimize the favicon size, if it is bigger
 than defined limit we will try to convert it to a 16x16 png image. If the
 conversion fails and favicon is bigger than our max accepted favicon size
 we will fail and the favicon won't be saved.

 @param aFaviconURI
        URI of the favicon whose data is being set.
 @param aData
        Binary contents of the favicon to save
 @param aDataLength
        Length of binary data
 @param aMimeType
        MIME type of the data to store. This is important so that we know
        what to report when the favicon is used.
 @param aExpiration
        Time in microseconds since the epoch when this favicon expires.
        Until this time, we won't try to load it again.
 @throws NS_ERROR_FAILURE
         Thrown if the favicon is overbloated and won't be saved to the db.
void setFaviconData(in nsIURI aFaviconURI, [const, array, size_is(aDataLen)] in octet aData, in unsigned long aDataLen, in AUTF8String aMimeType, in PRTime aExpiration)
 Stores the data of a given favicon. The data is provided by a string
 containing a data URL.

 This function tries to optimize the favicon size, if it is bigger
 than defined limit we will try to convert it to a 16x16 png image. If the
 conversion fails and favicon is bigger than our max accepted favicon size
 we will fail and the favicon won't be saved.

 @see setFaviconData

 @param aFaviconURI
        URI of the favicon whose data is being set.
 @param aDataURL
        string containing a data URL that represents the contents of
        the favicon to save
 @param aExpiration
        Time in microseconds since the epoch when this favicon expires.
        Until this time, we won't try to load it again.
 @throws NS_ERROR_FAILURE
         Thrown if the favicon is overbloated and won't be saved to the db.
void setFaviconDataFromDataURL(in nsIURI aFaviconURI, in AString aDataURL, in PRTime aExpiration)
 Declares that a given page uses a favicon with the given URI.

 You needn't have specified any data at this point. An entry linking the
 favicon with the page will be create with no data. You can populate it
 later with SetFaviconData.  However, any favicons not associated with a
 visited web page, a bookmark, or a "place:" URI will be expired when
 history cleanup is done * (typically at app shutdown, but also possibly
 if the user clears their * cache or history).

 This will send out history notifications if the new favicon has any data.
 This means that you should try to set data first if you have it, otherwise
 the page might not get a notification sent for it since data setting does
 not send notifications.

 @param aPageURI
        URI of the page whose favicon is being set.
 @param aFaviconURI
        URI of the favicon to associate with the page.
void setFaviconUrlForPage(in nsIURI aPageURI, in nsIURI aFaviconURI)
 Retrieves the URI of the favicon for the given page.

 @param aPageURI
        URI of the page whose favicon is desired
 @returns The URI of the favicon associated with that page. Returning a
          URI here does NOT mean that we have data for this favicon, only
          that we know what the favicon should be.
 @throws NS_ERROR_NOT_AVAILABLE
         When the page is not found or it has no favicon.
nsIURI getFaviconForPage(in nsIURI aPageURI)
 For a given page, this will give you a URI that, when displayed in chrome,
 will result in the given page's favicon. Unlike the other get functions,
 we needn't have heard of the page or its favicon: the default one will
 be returned in this case.

 @see getFaviconLinkForIcon
      This function only adds the extra level of indirection, looking up
      the favicon based on the page URI and using the default if not found.

 @param aPageURI
        URI of the page whose favicon is desired
 @returns A URI that will give you the icon image. This is NOT the URI of
          the icon as set on the page, but a URI that will give you the
          data out of the favicon service.  For a normal page with a
          favicon we've stored, this will be an annotation URI which will
          then cause the corresponding favicon data to be loaded from this
          service. For pages where we don't have a favicon, this will be a
          chrome URI of the default icon for a web page.
nsIURI getFaviconImageForPage(in nsIURI aPageURI)
 Same as SetFaviconUrlForPage except that this also attempts to set the
 data by loading the favicon URI. An async request will be created for
 this URI and if the data is available, it will asynchronously get
 saved in the database without any further work from the caller.

 If the icon data already exists, we won't normally try to re-load the
 icon from the net (or more likely the cache). If the icon is in the
 failed favicon cache we won't do anything. Use forceReload to force
 a reload of the data. This will remove the favicon from the failed
 cache. If it then fails again, it will be re-added to the failed cache.

 SetFaviconUrlForPage and SetFaviconData will take any URI you provide
 and save it. This function is intended for automatic usage, and will
 only save favicons for "good" URIs, as defined by what gets added to
 history. For "bad" URIs, this function will succeed and do nothing.
 This function will also ignore the error page favicon URI
 (chrome://global/skin/icons/warning-16.png). Icons that fail to load
 will automatically be added to the failed favicon cache.

 This function will not save favicons for non-bookmarked URIs when
 history is disabled (expiration time is 0 days). The rest of the functions
 here will always store favicons even when history is disabled.

 @param aPageURI
        URI of the page whose favicon is being set.
 @param aFaviconURI
        URI of the favicon to associate with the page.
 @param aForceReload
        Unset is normal behavior, we will only try to reload the favicon
        if we don't have it or if it has expired from the cache. If set,
        it will always try to reload the favicon.
void setAndLoadFaviconForPage(in nsIURI aPageURI, in nsIURI aFaviconURI, in boolean aForceReload)
 Declares that a given page uses a favicon with the given URI.

 You needn't have specified any data at this point. An entry linking the
 favicon with the page will be create with no data. You can populate it
 later with SetFaviconData.  However, any favicons not associated with a
 visited web page, a bookmark, or a "place:" URI will be expired when
 history cleanup is done * (typically at app shutdown, but also possibly
 if the user clears their * cache or history).

 This will send out history notifications if the new favicon has any data.
 This means that you should try to set data first if you have it, otherwise
 the page might not get a notification sent for it since data setting does
 not send notifications.

 @param aPageURI
        URI of the page whose favicon is being set.
 @param aFaviconURI
        URI of the favicon to associate with the page.
void setFaviconUrlForPage(in nsIURI aPageURI, in nsIURI aFaviconURI)

From nsIFeedProcessor

 Parse a feed asynchronously. The caller must then call the
 nsIFeedProcessor's nsIStreamListener methods to drive the
 parse. Do not call the other parse methods during an asynchronous
 parse.

 @param requestObserver The observer to notify on start/stop. This
                        argument can be null.
 @param uri The base URI.
void parseAsync(in nsIRequestObserver requestObserver, in nsIURI uri)
 Parse a feed from an nsIInputStream.

 @param stream The input stream.
 @param uri The base URI.
void parseFromStream(in nsIInputStream stream, in nsIURI uri)
 Parse a feed from a string.

 @param str The string to parse.
 @param uri The base URI.
void parseFromString(in AString str, in nsIURI uri)

From nsIFeedResultService

 Gets a Feed Handler object registered using addFeedResult.

 @param   uri
          The URI of the feed a handler is being requested for
nsIFeedResult getFeedResult(in nsIURI uri)
 Unregisters a Feed Handler object registered using addFeedResult.
 @param   uri
          The feed URI the handler was registered under. This must be
          the same *instance* the feed was registered under.
void removeFeedResult(in nsIURI uri)

From nsIFormSubmitObserver


          
void notify(in nsIDOMHTMLFormElement formNode, in nsIDOMWindowInternal window, in nsIURI actionURL, out boolean cancelSubmit)

From nsIFrameLoader

 Loads the specified URI in this frame. Behaves identically to loadFrame,
 except that this method allows specifying the URI to load.
void loadURI(in nsIURI aURI)

From nsIGlobalHistory2

 Add a URI to global history

 @param aURI      the URI of the page
 @param aRedirect whether the URI was redirected to another location;
                  this is 'true' for the original URI which is
                  redirected.
 @param aToplevel whether the URI is loaded in a top-level window
 @param aReferrer the URI of the referring page

 @note  Docshell will not filter out URI schemes like chrome: data:
        about: and view-source:.  Embedders should consider filtering out
        these schemes and others, e.g. mailbox: for the main URI and the
        referrer.
void addURI(in nsIURI aURI, in boolean aRedirect, in boolean aToplevel, in nsIURI aReferrer)
 Add a URI to global history

 @param aURI      the URI of the page
 @param aRedirect whether the URI was redirected to another location;
                  this is 'true' for the original URI which is
                  redirected.
 @param aToplevel whether the URI is loaded in a top-level window
 @param aReferrer the URI of the referring page

 @note  Docshell will not filter out URI schemes like chrome: data:
        about: and view-source:.  Embedders should consider filtering out
        these schemes and others, e.g. mailbox: for the main URI and the
        referrer.
void addURI(in nsIURI aURI, in boolean aRedirect, in boolean aToplevel, in nsIURI aReferrer)
 Checks to see whether the given URI is in history.

 @param aURI the uri to the page
 @return true if a URI has been visited
boolean isVisited(in nsIURI aURI)
 Set the page title for the given uri. URIs that are not already in
 global history will not be added.

 @param aURI    the URI for which to set to the title
 @param aTitle  the page title
void setPageTitle(in nsIURI aURI, in AString aTitle)

From nsIGlobalHistory3

 Get the Gecko flags for this URI. These flags are used by Gecko as hints
 to optimize page loading. Not all histories have them; this need not be
 supported (just return NS_ERROR_NOT_IMPLEMENTED. These flags are opaque
 and should not be interpreted by the history engine.
unsigned long getURIGeckoFlags(in nsIURI aURI)
 Set the Gecko flags for this URI. May fail if the history entry
 doesn't have any flags or if there is no entry for the URI.
void setURIGeckoFlags(in nsIURI aURI, in unsigned long aFlags)

From nsIGnomeVFSService

 Misc. methods ***/
void showURI(in nsIURI uri)

From nsIHandlerApp

 Launches the application with the specified URI.

 @param aURI
        The URI to launch this application with

 @param aWindowContext 

        Currently only relevant to web-handler apps.  If given, this
        represents the docshell to load the handler in and is passed
        through to nsIURILoader.openURI.  If this parameter is null or
        not present, the web handler app implementation will attempt to 
        find/create a place to load the handler and do so.  As of this
        writing, it tries to load the web handler in a new window using
        nsIBrowserDOMWindow.openURI.  In the future, it may attempt to 
        have a more comprehensive strategy which could include handing
        off to the system default browser (bug 394479).
void launchWithURI(in nsIURI aURI, [optional] in nsIInterfaceRequestor aWindowContext)

From nsIHandlerInfo

 Launches the application with the specified URI, in a way that
 depends on the value of preferredAction. preferredAction must be
 useHelperApp or useSystemDefault.
  
 @note Only the URI scheme is used to determine how to launch.  This is
 essentially a pass-by-value operation.  This means that in the case of
 a file: URI, the handler that is registered for file: will be launched
 and our code will not make any decision based on the content-type or
 extension, though the invoked file: handler is free to do so. 

 @param aURI
        The URI to launch this application with

 @param aWindowContext 
        The window to parent the dialog against, and, if a web handler
        is chosen, it is loaded in this window as well.  See 
        nsIHandlerApp.launchWithURI for more details.

 @throw NS_ERROR_INVALID_ARG if preferredAction is not valid for this
 call. Other exceptions may be thrown.
void launchWithURI(in nsIURI aURI, [optional] in nsIInterfaceRequestor aWindowContext)

From nsIIOService

 Equivalent to newChannelFromURI(newURI(...))
nsIChannel newChannel(in AUTF8String aSpec, in string aOriginCharset, in nsIURI aBaseURI)
 This method constructs a new URI by determining the scheme of the
 URI spec, and then delegating the construction of the URI to the
 protocol handler for that scheme. QueryInterface can be used on
 the resulting URI object to obtain a more specific type of URI.

 @see nsIProtocolHandler::newURI
nsIURI newURI(in AUTF8String aSpec, in string aOriginCharset, in nsIURI aBaseURI)
 Creates a channel for a given URI.

 @param aURI nsIURI from which to make a channel
 @return reference to the new nsIChannel object
nsIChannel newChannelFromURI(in nsIURI aURI)

From nsIIncrementalDownload

 Initialize the incremental download object.  If the destination file
 already exists, then only the remaining portion of the file will be
 fetched.

 NOTE: The downloader will create the destination file if it does not
 already exist.  It will create the file with the permissions 0600 if
 needed.  To affect the permissions of the file, consumers of this
 interface may create an empty file at the specified destination prior to
 starting the incremental download.

 NOTE: Since this class may create a temporary file at the specified
 destination, it is advisable for the consumer of this interface to specify
 a file name for the destination that would not tempt the user into
 double-clicking it.  For example, it might be wise to append a file
 extension like ".part" to the end of the destination to protect users from
 accidentally running "blah.exe" before it is a complete file.

 @param uri
        The URI to fetch.
 @param destination
        The location where the file is to be stored.
 @param chunkSize
        The size of the chunks to fetch.  A non-positive value results in
        the default chunk size being used.
 @param intervalInSeconds
        The amount of time to wait between fetching chunks.  Pass a
        negative to use the default interval, or 0 to fetch the remaining
        part of the file in one chunk.
void init(in nsIURI uri, in nsIFile destination, in long chunkSize, in long intervalInSeconds)

From nsIInputStreamChannel

 Sets the URI for this channel.  This must be called before the
 channel is opened, and it may only be called once.
void setURI(in nsIURI aURI)

From nsIJARURI

 Create a clone of the JAR URI with a new root URI (the URI for the
 actual JAR file).
nsIJARURI cloneWithJARFile(in nsIURI jarFile)

From nsILivemarkService

 Determines whether the feed URI is a currently registered livemark.

 @param aFeedURI
        Feed URI to look for.

 @returns the found livemark folder id, or -1 if nothing was found.
long long getLivemarkIdForFeedURI(in nsIURI aFeedURI)
 Creates a new livemark
 @param folder      The id of the parent folder
 @param name        The name to show when displaying the livemark
 @param siteURI     The URI of the site the livemark was created from
 @param feedURI     The URI of the actual RSS feed
 @param index       The index to insert at, or -1 to append
 @returns the ID of the folder for the livemark
long long createLivemark(in long long folder, in AString name, in nsIURI siteURI, in nsIURI feedURI, in long index)
 Same as above, use during startup to avoid HTTP traffic
long long createLivemarkFolderOnly(in long long folder, in AString name, in nsIURI siteURI, in nsIURI feedURI, in long index)
 Sets the URI of the feed associated with a livemark container.

 NOTE: The caller is responsible for reloading the livemark after
       changing its feed URI (since the contents are likely to be different
       given a different feed).

 @param container  The folder ID of a livemark container
 @param feedURI    nsIURI object representing the syndication feed URI

 @throws NS_ERROR_INVALID_ARG if the folder ID isn't known or identifies
         a folder that isn't a livemark container; also if the feedURI
         argument isn't a valid nsIURI object
void setFeedURI(in long long container, in nsIURI feedURI)
 Creates a new livemark
 @param folder      The id of the parent folder
 @param name        The name to show when displaying the livemark
 @param siteURI     The URI of the site the livemark was created from
 @param feedURI     The URI of the actual RSS feed
 @param index       The index to insert at, or -1 to append
 @returns the ID of the folder for the livemark
long long createLivemark(in long long folder, in AString name, in nsIURI siteURI, in nsIURI feedURI, in long index)
 Same as above, use during startup to avoid HTTP traffic
long long createLivemarkFolderOnly(in long long folder, in AString name, in nsIURI siteURI, in nsIURI feedURI, in long index)
 Sets the URI of the website associated with a livemark container.

 @param container  The folder ID of a livemark container
 @param siteURI    nsIURI object representing the site URI, or null
                   to clear the site URI for this livemark container

 @throws NS_ERROR_INVALID_ARG if the folder ID isn't known or identifies
         a folder that isn't a livemark container; also if the siteURI
         argument isn't a valid nsIURI object (or null)
void setSiteURI(in long long container, in nsIURI siteURI)

From nsIMIMEService

 Retrieves a ACString representation of the MIME type
 associated with this URI. The association is purely
 file extension to MIME type based. No attempt to determine
 the type via server headers or byte scanning is made.

 @param  The URI the user wants MIME info on.
 @return The MIME type, if any.
ACString getTypeFromURI(in nsIURI aURI)

From nsIMicrosummaryService

 Install the microsummary generator from the resource at the supplied URI.
 Callable by content via the addMicrosummaryGenerator() sidebar method.

 @param   generatorURI
          the URI of the resource providing the generator

void addGenerator(in nsIURI generatorURI)
 Create a microsummary for a given page URI and generator URI.

 @param   pageURI
          the URI of the page to be summarized

 @param   generatorURI
          the URI of the microsummary generator

 @returns an nsIMicrosummary for the given page and generator URIs.

nsIMicrosummary createMicrosummary(in nsIURI pageURI, in nsIURI generatorURI)
 Return a microsummary generator for the given URI.

 @param   generatorURI
          the URI of the generator

 @returns an nsIMicrosummaryGenerator for the given URI.

nsIMicrosummaryGenerator getGenerator(in nsIURI generatorURI)
 Create a microsummary for a given page URI and generator URI.

 @param   pageURI
          the URI of the page to be summarized

 @param   generatorURI
          the URI of the microsummary generator

 @returns an nsIMicrosummary for the given page and generator URIs.

nsIMicrosummary createMicrosummary(in nsIURI pageURI, in nsIURI generatorURI)
 Get the set of microsummaries available for a given page.  The set
 might change after this method returns, since this method will trigger
 an asynchronous load of the page in question (if it isn't already loaded)
 to see if it references any page-specific microsummaries.

 If the caller passes a bookmark ID, and one of the microsummaries
 is the current one for the bookmark, this method will retrieve content
 from the datastore for that microsummary, which is useful when callers
 want to display a list of microsummaries for a page that isn't loaded,
 and they want to display the actual content of the selected microsummary
 immediately (rather than after the content is asynchronously loaded).

 @param   pageURI
          the URI of the page for which to retrieve available microsummaries

 @param   bookmarkID (optional)
          the ID of the bookmark for which this method is being called

 @returns an nsIMicrosummarySet of nsIMicrosummaries for the given page

nsIMicrosummarySet getMicrosummaries(in nsIURI pageURI, in long long bookmarkID)

From nsINavBookmarksService

 Change the bookmarked URI for a bookmark.
 This changes which "place" the bookmark points at,
 which means all annotations, etc are carried along.
void changeBookmarkURI(in long long aItemId, in nsIURI aNewURI)
 Returns the list of bookmark ids that contain the given URI.
void getBookmarkIdsForURI(in nsIURI aURI, out unsigned long count, [array, retval, size_is(count)] out long long bookmarks)
 TArray version of getBookmarksIdForURI for ease of use in C++ code.
 Pass in a reference to a TArray; it will get cleared and filled with
 the resulting list of folder IDs.
[noscript] void getBookmarkIdsForURITArray(in nsIURI aURI, in PRInt64Array aResult)
 Used to see if the given URI is bookmarked, or any page that redirected to
 it is bookmarked. For example, if I bookmark "mozilla.org" by manually
 typing it in, and follow the bookmark, I will get redirected to
 "www.mozilla.org". Logically, this new page is also bookmarked. This
 function, if given "www.mozilla.org", will return the URI of the bookmark,
 in this case "mozilla.org".

 If there is no bookmarked page found, it will return NULL.
nsIURI getBookmarkedURIFor(in nsIURI aURI)
 Retrieves the keyword for the given URI. Will be void string
 (null in JS) if no such keyword is found.
AString getKeywordForURI(in nsIURI aURI)
 Inserts a child bookmark into the given folder.

  @param aParentFolder
         The id of the parent folder
  @param aURI
         The URI to insert
  @param aIndex
         The index to insert at, or DEFAULT_INDEX to append
  @param aTitle
         The title for the new bookmark
  @return The ID of the newly-created bookmark.
long long insertBookmark(in long long aParentFolder, in nsIURI aURI, in long aIndex, in AUTF8String aTitle)
 Returns true if the given URI is in any bookmark folder. If you want the
 results to be redirect-aware, use getBookmarkedURIFor()
boolean isBookmarked(in nsIURI aURI)

From nsINavHistoryObserver

 This page and all of its visits are about to be deleted.  Note: the page
 may not necessarily have actually existed for this function to be called.

 @param aURI
        The URI being deleted.
void onBeforeDeleteURI(in nsIURI aURI)
 This page and all of its visits are being deleted. Note: the page may not
 necessarily have actually existed for this function to be called.

 Delete notifications are only 99.99% accurate. Batch delete operations
 must be done in two steps, so first come notifications, then a bulk
 delete. If there is some error in the middle (for example, out of memory)
 then you'll get a notification and it won't get deleted. There's no easy
 way around this.
void onDeleteURI(in nsIURI aURI)

          
void onPageChanged(in nsIURI aURI, in unsigned long aWhat, in AString aValue)
 Called when a history entry expires. You will receive notifications that
 a specific visit has expired with the time of that visit. When the last
 visit for a history entry expires, the history entry itself is deleted
 and aWholeEntry is set. (If your observer only cares about URLs and not
 specific visits, it needs only to listen for aWholeEntry notifications).

 It is possible for a history entry to be deleted that has no visits if
 something is out of sync or after a bookmark is deleted that has no
 visits (thus freeing the history entry). In these cases, aVisitTime will
 be 0.
void onPageExpired(in nsIURI aURI, in PRTime aVisitTime, in boolean aWholeEntry)
 Called whenever either the "real" title or the custom title of the page
 changed. BOTH TITLES ARE ALWAYS INCLUDED in this notification, even though
 only one will change at a time. Often, consumers will want to display the
 user title if it is available, and fall back to the page title (the one
 specified in the <title> tag of the page).

 Note that there is a difference between an empty title and a NULL title.
 An empty string means that somebody specifically set the title to be
 nothing. NULL means nobody set it. From C++: use IsVoid() and SetIsVoid()
 to see whether an empty string is "null" or not (it will always be an
 empty string in either case).

void onTitleChanged(in nsIURI aURI, in AString aPageTitle)
 Called when a resource is visited. This is called the first time a
 resource (page, image, etc.) is seen as well as every subsequent time.

 Normally, transition types of TRANSITION_EMBED (corresponding to images in
 a page, for example) are not displayed in history results (unless
 includeHidden is set). Many observers can ignore _EMBED notifications
 (which will comprise the majority of visit notifications) to save work.

 @param aVisitID        ID of the visit that was just created.
 @param aTime           Time of the visit
 @param aSessionID      The ID of one connected sequence of visits.
 @param aReferringID    The ID of the visit the user came from. 0 if empty.
 @param aTransitionType One of nsINavHistory.TRANSITION_*
 @param aAdded          Incremented by query nodes when the visited uri
                        belongs to them. If no such query exists, the 
                        history result creates a new query node dynamically.
                        It is used in places views only and can be ignored.
void onVisit(in nsIURI aURI, in long long aVisitID, in PRTime aTime, in long long aSessionID, in long long aReferringID, in unsigned long aTransitionType, out unsigned long aAdded)

From nsINavHistoryService

 Call to manually add a visit for a specific page. This will probably not
 be commonly used other than for backup/restore type operations. If the URI
 does not have an entry in the history database already, one will be created
 with no visits, no title, hidden, not typed.  Adding a visit will
 automatically increment the visit count for the visited page and will unhide
 it and/or mark it typed according to the transition type.

 @param aURI             Visited page
 @param aTime            Time page was visited (microseconds)
 @param aReferringURI    The URI of the visit that generated this one. Use
                         null for no referrer.
 @param aTranstitionType Type of transition: one of TRANSITION_* above
 @param aIsRedirect      True if the given visit redirects to somewhere else.
                         (ie you will create an visit out of here that is a
                         redirect transition). This causes this page to be
                         hidden in normal history views (unless it has been
                         unhidden by visiting it with a non-redirect).
 @param aSessionID       The session ID that this page belongs to. Use 0 for
                         no session.
 @returns The ID of the created visit. This will be 0 if the URI is not
          valid for adding to history (canAddURI = false).
long long addVisit(in nsIURI aURI, in PRTime aTime, in nsIURI aReferringURI, in long aTransitionType, in boolean aIsRedirect, in long long aSessionID)
 Call to manually add a visit for a specific page. This will probably not
 be commonly used other than for backup/restore type operations. If the URI
 does not have an entry in the history database already, one will be created
 with no visits, no title, hidden, not typed.  Adding a visit will
 automatically increment the visit count for the visited page and will unhide
 it and/or mark it typed according to the transition type.

 @param aURI             Visited page
 @param aTime            Time page was visited (microseconds)
 @param aReferringURI    The URI of the visit that generated this one. Use
                         null for no referrer.
 @param aTranstitionType Type of transition: one of TRANSITION_* above
 @param aIsRedirect      True if the given visit redirects to somewhere else.
                         (ie you will create an visit out of here that is a
                         redirect transition). This causes this page to be
                         hidden in normal history views (unless it has been
                         unhidden by visiting it with a non-redirect).
 @param aSessionID       The session ID that this page belongs to. Use 0 for
                         no session.
 @returns The ID of the created visit. This will be 0 if the URI is not
          valid for adding to history (canAddURI = false).
long long addVisit(in nsIURI aURI, in PRTime aTime, in nsIURI aReferringURI, in long aTransitionType, in boolean aIsRedirect, in long long aSessionID)
 Returns true if this URI would be added to the history. You don't have to
 worry about calling this, addPageToSession/addURI will always check before
 actually adding the page. This function is public because some components
 may want to check if this page would go in the history (i.e. for
 annotations).
boolean canAddURI(in nsIURI aURI)
 Gets the stored character-set for an URI.

 @param aURI
        URI to retrieve character-set for
 @returns character-set, empty string if not found
AString getCharsetForURI(in nsIURI aURI)
 Gets the original title of the page.
AString getPageTitle(in nsIURI aURI)
 This is just like markPageAsTyped (in nsIBrowserHistory, also implemented
 by the history service), but for bookmarks. It declares that the given URI
 is being opened as a result of following a bookmark. If this URI is loaded
 soon after this message has been received, that transition will be marked
 as following a bookmark.
void markPageAsFollowedBookmark(in nsIURI aURI)
 Sets the character-set for an URI.

 @param aURI
        URI to set the character-set for
 @param aCharset
        character-set to be set
void setCharsetForURI(in nsIURI aURI, in AString aCharset)

From nsINetUtil

 Test whether the protocol handler for this URI or that for any of
 its inner URIs has the given protocol flags.  This will QI aURI to
 nsINestedURI and walk the nested URI chain.

 @param aURI the URI in question
 @param aFlags the flags we're testing for.

 @return whether any of the protocol handlers involved have all the flags
         in aFlags.
boolean URIChainHasFlags(in nsIURI aURI, in unsigned long aFlags)
 Test whether the given URI's handler has the given protocol flags.

 @param aURI the URI in question
 @param aFlags the flags we're testing for.

 @return whether the protocol handler for aURI has all the flags
         in aFlags.
boolean protocolHasFlags(in nsIURI aURI, in unsigned long aFlag)
 Take aURI and produce an immutable version of it for the caller.  If aURI
 is immutable this will be aURI itself; otherwise this will be a clone,
 marked immutable if possible.  Passing null to this method is allowed; in
 that case it will return null.
nsIURI toImmutableURI(in nsIURI aURI)

From nsIOfflineCacheUpdate

 Initialize the update.

 @param aManifestURI
        The manifest URI to be checked.
 @param aDocumentURI
        The page that is requesting the update.
void init(in nsIURI aManifestURI, in nsIURI aDocumentURI)
 Initialize the update for partial processing. 

 @param aManifestURI
        The manifest URI of the related cache.
 @param aClientID
        Client  ID of the cache to store resource to. This ClientID
        must be ID of cache in the cache group identified by
        the manifest URI passed in the first parameter.
 @param aDocumentURI
        The page that is requesting the update. May be null 
        when this information is unknown.
void initPartial(in nsIURI aManifestURI, in ACString aClientID, in nsIURI aDocumentURI)
 Initialize the update.

 @param aManifestURI
        The manifest URI to be checked.
 @param aDocumentURI
        The page that is requesting the update.
void init(in nsIURI aManifestURI, in nsIURI aDocumentURI)
 Initialize the update for partial processing. 

 @param aManifestURI
        The manifest URI of the related cache.
 @param aClientID
        Client  ID of the cache to store resource to. This ClientID
        must be ID of cache in the cache group identified by
        the manifest URI passed in the first parameter.
 @param aDocumentURI
        The page that is requesting the update. May be null 
        when this information is unknown.
void initPartial(in nsIURI aManifestURI, in ACString aClientID, in nsIURI aDocumentURI)
 Add a dynamic URI to the offline cache as part of the update.

 @param aURI
        The URI to add.
void addDynamicURI(in nsIURI aURI)

From nsIOfflineCacheUpdateService

 Schedule a cache update for a manifest when the document finishes
 loading.
void scheduleOnDocumentStop(in nsIURI aManifestURI, in nsIURI aDocumentURI, in nsIDOMDocument aDocument)
 Schedule a cache update for a given offline manifest.  If an
 existing update is scheduled or running, that update will be returned.
 Otherwise a new update will be scheduled.
nsIOfflineCacheUpdate scheduleUpdate(in nsIURI aManifestURI, in nsIURI aDocumentURI)
 Schedule a cache update for a manifest when the document finishes
 loading.
void scheduleOnDocumentStop(in nsIURI aManifestURI, in nsIURI aDocumentURI, in nsIDOMDocument aDocument)
 Schedule a cache update for a given offline manifest.  If an
 existing update is scheduled or running, that update will be returned.
 Otherwise a new update will be scheduled.
nsIOfflineCacheUpdate scheduleUpdate(in nsIURI aManifestURI, in nsIURI aDocumentURI)
 Checks whether a document at the given URI should have access
 to the offline cache.
 @param aURI
        The URI to check
 @param aPrefBranch
        The pref branch to use to check the
        offline-apps.allow_by_default pref.  If not specified,
        the pref service will be used.
boolean offlineAppAllowedForURI(in nsIURI aURI, in nsIPrefBranch aPrefBranch)

From nsIParentalControlsService

 Log an application specific parental controls
 event.

 @param aEntryType       Constant defining the type of event.
 @param aFlag            A flag indicating if the subject content
                         was blocked.
 @param aSource          The URI source of the subject content.
 @param aTarget          The location the content was saved to if
                         no blocking occured.
void log(in short aEntryType, in boolean aFlag, in nsIURI aSource, [optional] in nsIFile aTarget)
 Request that blocked URI(s) be allowed through parental
 control filters. Returns true if the URI was successfully
 overriden. Note, may block while native UI is shown.

 @param aTarget(s)          URI to be overridden. In the case of
                            multiple URI, the first URI in the array
                            should be the root URI of the site.
 @param window              Window that generates the event.
boolean requestURIOverride(in nsIURI aTarget, [optional] in nsIInterfaceRequestor aWindowContext)

From nsIPermissionManager

 Add permission information for a given URI and permission type. This
 operation will cause the type string to be registered if it does not
 currently exist. If a permission already exists for a given type, it
 will be modified.

 @param uri         the uri to add the permission for
 @param type        a case-sensitive ASCII string, identifying the consumer.
                    Consumers should choose this string to be unique, with
                    respect to other consumers.
 @param permission  an integer representing the desired action (e.g. allow
                    or deny). The interpretation of this number is up to the
                    consumer, and may represent different actions for different
                    types. Consumers may use one of the enumerated permission
                    actions defined above, for convenience.
                    NOTE: UNKNOWN_ACTION (0) is reserved to represent the
                    default permission when no entry is found for a host, and
                    should not be used by consumers to indicate otherwise.
void add(in nsIURI uri, in string type, in PRUint32 permission)
 Test whether a website has permission to perform the given action.
 This requires an exact hostname match, subdomains are not a match.
 @param uri     the uri to be tested
 @param type    a case-sensitive ASCII string, identifying the consumer
 @param return  see add(), param permission. returns UNKNOWN_ACTION when
                there is no stored permission for this uri and / or type.
PRUint32 testExactPermission(in nsIURI uri, in string type)
 Test whether a website has permission to perform the given action.
 @param uri     the uri to be tested
 @param type    a case-sensitive ASCII string, identifying the consumer
 @param return  see add(), param permission. returns UNKNOWN_ACTION when
                there is no stored permission for this uri and / or type.
PRUint32 testPermission(in nsIURI uri, in string type)

From nsIPlacesTransactionsService

 Transaction for creating a new live-bookmark item.

 @see nsILivemarksService::createLivemark for documentation regarding the
 first three arguments.

 @param aContainerId
        the identifier of the folder in which the live-bookmark should be
        added.
 @param [optional]  aIndex
        the index of the item in aContainer, pass -1 or nothing to create
        the item at the end of aContainer.
 @param [optional] aAnnotations
        the annotations to set for the new live-bookmark.
 @returns nsITransaction object
nsITransaction createLivemark(in nsIURI aFeedURI, in nsIURI aSiteURI, in AString aName, in long long aContainerId, [optional] in long long aIndex, [optional] in nsIVariant aAnnotations)
 Transaction for editing a bookmark's uri.

 @param aBookmarkId
        id of the bookmark to edit
 @param aNewURI
        new uri for the bookmark
 @returns nsITransaction object
nsITransaction editBookmarkURI(in long long aBookmarkId, in nsIURI aNewURI)
 Transaction for creating a new live-bookmark item.

 @see nsILivemarksService::createLivemark for documentation regarding the
 first three arguments.

 @param aContainerId
        the identifier of the folder in which the live-bookmark should be
        added.
 @param [optional]  aIndex
        the index of the item in aContainer, pass -1 or nothing to create
        the item at the end of aContainer.
 @param [optional] aAnnotations
        the annotations to set for the new live-bookmark.
 @returns nsITransaction object
nsITransaction createLivemark(in nsIURI aFeedURI, in nsIURI aSiteURI, in AString aName, in long long aContainerId, [optional] in long long aIndex, [optional] in nsIVariant aAnnotations)
 Transaction for creating a new bookmark item

 @param aURI
        the uri of the new bookmark (nsIURI)
 @param aContainerId
        the identifier of the folder in which the bookmark should be added.
 @param [optional] aIndex
        the index of the item in aContainer, pass -1 or nothing to create
        the item at the end of aContainer.
 @param [optional] aTitle
        the title of the new bookmark.
 @param [optional] aKeyword
        the keyword of the new bookmark.
 @param [optional] aAnnotations
        the annotations to set for the new bookmark.
 @param [optional] aChildTransactions
        child transactions to commit after creating the bookmark. Prefer
        using any of the arguments above if possible. In general, a child
        transations should be used only if the change it does has to be
        reverted manually when removing the bookmark item.
        a child transaction must support setting its bookmark-item
        identifier via an "id" js setter.
 @returns nsITransaction object
nsITransaction createItem(in nsIURI aURI, in long long aContainerId, [optional] in long long aIndex, [optional] in AString aTitle, [optional] in AString aKeyword, [optional] in nsIVariant aAnnotations, [optional] in nsIVariant aChildTransactions)
 Transaction for editting a live bookmark's feed URI.

 @param aLivemarkId
        id of the livemark
 @param aURI
        new feed uri
 @returns nsITransaction object
nsITransaction editLivemarkFeedURI(in long long aLivemarkId, in nsIURI aURI)
 Transaction for editing a live bookmark's site URI.

 @param aLivemarkId
        id of the livemark
 @param aURI
        new site uri
 @returns nsITransaction object
nsITransaction editLivemarkSiteURI(in long long aLivemarkId, in nsIURI aURI)
 Transaction for setting/unsetting a page annotation

 @param aURI
        URI of the page where to set annotation
 @param aAnnotationObject
        Object representing an annotation, containing the following
        properties: name, flags, expires, type, mimeType (only used for
        binary annotations), value.
        If value is null the annotation will be removed
 @returns nsITransaction object
nsITransaction setPageAnnotation(in nsIURI aURI, in nsIVariant aAnnotationObject)
 Transaction for tagging a URL with the given set of tags. Current tags set
 for the URL persist. It's the caller's job to check whether or not aURI
 was already tagged by any of the tags in aTags, undoing this tags
 transaction removes them all from aURL!

 @param aURI
        the URL to tag.
 @param aTags
        Array of tags to set for the given URL.
nsITransaction tagURI(in nsIURI aURI, in nsIVariant aTags)
 Transaction for removing tags from a URL. It's the caller's job to check
 whether or not aURI isn't tagged by any of the tags in aTags, undoing this
 tags transaction adds them all to aURL!

 @param aURI
        the URL to un-tag.
 @param aTags
        Array of tags to unset. pass null to remove all tags from the given
        url.
nsITransaction untagURI(in nsIURI aURI, in nsIVariant aTags)

From nsIPluginHost


          
[noscript] void instantiateFullPagePlugin(in string aMimeType, in nsIURI aURI, in nsIStreamListenerRef aStreamListener, in nsIPluginInstanceOwner aOwner)

          
[noscript] void instantiateEmbeddedPlugin(in string aMimeType, in nsIURI aURL, in nsIPluginInstanceOwner aOwner)

          
[noscript] void setUpPluginInstance(in string aMimeType, in nsIURI aURL, in nsIPluginInstanceOwner aOwner)

From nsIPopupWindowManager

 Test whether a website has permission to show a popup window.
 @param   uri is the URI to be tested
 @return  one of the enumerated permission actions defined above
PRUint32 testPermission(in nsIURI uri)

From nsIPrefetchService

 Enqueue a request to prefetch the specified URI.

 @param aURI the URI of the document to prefetch
 @param aReferrerURI the URI of the referring page
 @param aSource the DOM node (such as a <link> tag) that requested this
        fetch, or null if the prefetch was not requested by a DOM node.
 @param aExplicit the link element has an explicit prefetch link type
void prefetchURI(in nsIURI aURI, in nsIURI aReferrerURI, in nsIDOMNode aSource, in boolean aExplicit)
 @status DEPRECATED This method is no longer used, and will throw
 NS_ERROR_NOT_IMPLEMENTED.
void prefetchURIForOfflineUse(in nsIURI aURI, in nsIURI aReferrerURI, in nsIDOMNode aSource, in boolean aExplicit)
 Enqueue a request to prefetch the specified URI.

 @param aURI the URI of the document to prefetch
 @param aReferrerURI the URI of the referring page
 @param aSource the DOM node (such as a <link> tag) that requested this
        fetch, or null if the prefetch was not requested by a DOM node.
 @param aExplicit the link element has an explicit prefetch link type
void prefetchURI(in nsIURI aURI, in nsIURI aReferrerURI, in nsIDOMNode aSource, in boolean aExplicit)
 @status DEPRECATED This method is no longer used, and will throw
 NS_ERROR_NOT_IMPLEMENTED.
void prefetchURIForOfflineUse(in nsIURI aURI, in nsIURI aReferrerURI, in nsIDOMNode aSource, in boolean aExplicit)

From nsIPrincipal

 Checks whether this principal is allowed to load the network resource
 located at the given URI under the same-origin policy. This means that
 codebase principals are only allowed to load resources from the same
 domain, the system principal is allowed to load anything, and null
 principals are not allowed to load anything.

 If the load is allowed this function does nothing. If the load is not
 allowed the function throws NS_ERROR_DOM_BAD_URI.

 NOTE: Other policies might override this, such as the Access-Control
       specification.
 NOTE: The 'domain' attribute has no effect on the behaviour of this
       function.


 @param uri    The URI about to be loaded.
 @param report If true, will report a warning to the console service
               if the load is not allowed.
 @throws NS_ERROR_DOM_BAD_URI if the load is not allowed.
[noscript] void checkMayLoad(in nsIURI uri, in boolean report)

From nsIProtocolHandler

 Makes a URI object that is suitable for loading by this protocol,
 where the URI string is given as an UTF-8 string.  The caller may
 provide the charset from which the URI string originated, so that
 the URI string can be translated back to that charset (if necessary)
 before communicating with, for example, the origin server of the URI
 string.  (Many servers do not support UTF-8 IRIs at the present time,
 so we must be careful about tracking the native charset of the origin
 server.)

 @param aSpec          - the URI string in UTF-8 encoding. depending
                         on the protocol implementation, unicode character
                         sequences may or may not be %xx escaped.
 @param aOriginCharset - the charset of the document from which this URI
                         string originated.  this corresponds to the
                         charset that should be used when communicating
                         this URI to an origin server, for example.  if
                         null, then UTF-8 encoding is assumed (i.e.,
                         no charset transformation from aSpec).
 @param aBaseURI       - if null, aSpec must specify an absolute URI.
                         otherwise, aSpec may be resolved relative
                         to aBaseURI, depending on the protocol. 
                         If the protocol has no concept of relative 
                         URI aBaseURI will simply be ignored.
nsIURI newURI(in AUTF8String aSpec, in string aOriginCharset, in nsIURI aBaseURI)
 Constructs a new channel from the given URI for this protocol handler. 
nsIChannel newChannel(in nsIURI aURI)

From nsIProtocolProxyCallback

 This method is called when proxy info is available or when an error
 in the proxy resolution occurs.

 @param aRequest
        The value returned from asyncResolve.
 @param aURI
        The URI passed to asyncResolve.
 @param aProxyInfo
        The resulting proxy info or null if there is no associated proxy
        info for aURI.  As with the result of nsIProtocolProxyService's
        resolve method, a null result implies that a direct connection
        should be used.
 @param aStatus
        The status of the callback.  This is a failure code if the request
        could not be satisfied, in which case the value of aStatus
        indicates the reason for the failure and aProxyInfo will be null.
void onProxyAvailable(in nsICancelable aRequest, in nsIURI aURI, in nsIProxyInfo aProxyInfo, in nsresult aStatus)

From nsIProtocolProxyFilter

 This method is called to apply proxy filter rules for the given URI
 and proxy object (or list of proxy objects).

 @param aProxyService
        A reference to the Protocol Proxy Service.  This is passed so that
        implementations may easily access methods such as newProxyInfo.
 @param aURI
        The URI for which these proxy settings apply.
 @param aProxy
        The proxy (or list of proxies) that would be used by default for
        the given URI.  This may be null.

 @return The proxy (or list of proxies) that should be used in place of
         aProxy.  This can be just be aProxy if the filter chooses not to
         modify the proxy.  It can also be null to indicate that a direct
         connection should be used.  Use aProxyService.newProxyInfo to
         construct nsIProxyInfo objects.
nsIProxyInfo applyFilter(in nsIProtocolProxyService aProxyService, in nsIURI aURI, in nsIProxyInfo aProxy)

From nsIProtocolProxyService

 This method is an asychronous version of the resolve method.  Unlike
 resolve, this method is guaranteed not to block the calling thread
 waiting for DNS queries to complete.  This method is intended as a
 substitute for resolve when the result is not needed immediately.

 @param aURI
        The URI to test.
 @param aFlags
        A bit-wise combination of the RESOLVE_ flags defined above.  Pass
        0 to specify the default behavior.  Any additional bits that do
        not correspond to a RESOLVE_ flag are reserved for future use.
 @param aCallback
        The object to be notified when the result is available.

 @return An object that can be used to cancel the asychronous operation.
         If canceled, the cancelation status (aReason) will be forwarded
         to the callback's onProxyAvailable method via the aStatus param.
nsICancelable asyncResolve(in nsIURI aURI, in unsigned long aFlags, in nsIProtocolProxyCallback aCallback)
 If the proxy identified by aProxyInfo is unavailable for some reason,
 this method may be called to access an alternate proxy that may be used
 instead.  As a side-effect, this method may affect future result values
 from resolve/asyncResolve as well as from getFailoverForProxy.

 @param aProxyInfo
        The proxy that was unavailable.
 @param aURI
        The URI that was originally passed to resolve/asyncResolve.
 @param aReason
        The error code corresponding to the proxy failure.  This value
        may be used to tune the delay before this proxy is used again.

 @throw NS_ERROR_NOT_AVAILABLE if there is no alternate proxy available.
nsIProxyInfo getFailoverForProxy(in nsIProxyInfo aProxyInfo, in nsIURI aURI, in nsresult aReason)
 This method returns a nsIProxyInfo instance that identifies a proxy to
 be used for loading the given URI.  Otherwise, this method returns null
 indicating that a direct connection should be used.

 @param aURI
        The URI to test.
 @param aFlags
        A bit-wise combination of the RESOLVE_ flags defined above.  Pass
        0 to specify the default behavior.  Any additional bits that do
        not correspond to a RESOLVE_ flag are reserved for future use.

 NOTE: If this proxy is unavailable, getFailoverForProxy may be called
 to determine the correct secondary proxy to be used.

 NOTE: If the protocol handler for the given URI supports
 nsIProxiedProtocolHandler, then the nsIProxyInfo instance returned from
 resolve may be passed to the newProxiedChannel method to create a
 nsIChannel to the given URI that uses the specified proxy.

 NOTE: However, if the nsIProxyInfo type is "http", then it means that
 the given URI should be loaded using the HTTP protocol handler, which
 also supports nsIProxiedProtocolHandler.

 NOTE: If PAC is configured, and the PAC file has not yet been loaded,
 then this method will return a nsIProxyInfo instance with a type of
 "unknown" to indicate to the consumer that asyncResolve should be used
 to wait for the PAC file to finish loading.  Otherwise, the consumer
 may choose to treat the result as type "direct" if desired.

 @see nsIProxiedProtocolHandler::newProxiedChannel 
nsIProxyInfo resolve(in nsIURI aURI, in unsigned long aFlags)

From nsIProxiedProtocolHandler

 Create a new channel with the given proxyInfo

nsIChannel newProxiedChannel(in nsIURI uri, in nsIProxyInfo proxyInfo)

From nsIRDFXMLParser

 Create a stream listener that can be used to asynchronously
 parse RDF/XML.
 @param aSink the RDF datasource the will receive the data
 @param aBaseURI the base URI used to resolve relative
   references in the RDF/XML
 @return an nsIStreamListener object to handle the data
nsIStreamListener parseAsync(in nsIRDFDataSource aSink, in nsIURI aBaseURI)
 Parse a string of RDF/XML
 @param aSink the RDF datasource that will receive the data
 @param aBaseURI the base URI used to resolve relative
   references in the RDF/XML
 @param aSource a UTF8 string containing RDF/XML data.
void parseString(in nsIRDFDataSource aSink, in nsIURI aBaseURI, in AUTF8String aSource)

From nsIRefreshURI

 Parses the passed in header string and sets up a refreshURI if
 a "refresh" header is found. If docshell is busy loading a page 
 currently, the request will be queued and executed when 
 the current page finishes loading. 

 @param aBaseURI base URI to resolve refresh uri with.
 @param aHeader  The meta refresh header string.
void setupRefreshURIFromHeader(in nsIURI aBaseURI, in ACString aHeader)
 Loads a URI immediately as if it were a refresh.

 @param aURI The URI to refresh.
 @param aMillis The number of milliseconds by which this refresh would
                be delayed if it were not being forced.
 @param aMetaRefresh Flag to indicate if this is a meta refresh.
void forceRefreshURI(in nsIURI aURI, in long aMillis, in boolean aMetaRefresh)
 Load a uri after waiting for aMillis milliseconds. If the docshell
 is busy loading a page currently, the refresh request will be
 queued and executed when the current load finishes. 

 @param aUri The uri to refresh.
 @param aMillis The number of milliseconds to wait.
 @param aRepeat Flag to indicate if the uri is to be 
                repeatedly refreshed every aMillis milliseconds.
 @param aMetaRefresh Flag to indicate if this is a Meta refresh.
void refreshURI(in nsIURI aURI, in long aMillis, in boolean aRepeat, in boolean aMetaRefresh)

From nsIResProtocolHandler

 Sets the substitution for the root key:
   resource://root/path ==> baseURI.resolve(path)

 A null baseURI removes the specified substitution.

 A root key should always be lowercase; however, this may not be
 enforced.
void setSubstitution(in ACString root, in nsIURI baseURI)
 Utility function to resolve a resource URI.  A resolved URI is not 
 guaranteed to reference a resource that exists (ie. opening a channel to
 the resolved URI may fail).

 @throws NS_ERROR_NOT_AVAILABLE if resURI.host() is an unknown root key.
AUTF8String resolveURI(in nsIURI resURI)

From nsISHEntry

 Additional ways to create an entry */
[noscript] void create(in nsIURI URI, in AString title, in nsIInputStream inputStream, in nsILayoutHistoryState layoutHistoryState, in nsISupports cacheKey, in ACString contentType, in nsISupports owner)
 URI for the document */
void setURI(in nsIURI aURI)

From nsISHistoryListener

 Called when navigating to a previous session history entry, for example
 due to a nsIWebNavigation::goBack() call.

 @param aBackURI    The URI of the session history entry being navigated to.
 @return            Whether the operation can proceed.
boolean OnHistoryGoBack(in nsIURI aBackURI)
 Called when navigating to a next session history entry, for example
 due to a nsIWebNavigation::goForward() call.

 @param aForwardURI   The URI of the session history entry being navigated to.
 @return              Whether the operation can proceed.
boolean OnHistoryGoForward(in nsIURI aForwardURI)
 Called when navigating to a session history entry by index, for example,
 when nsIWebNavigation::gotoIndex() is called.

 @param aIndex        The index in session history of the entry to be loaded.
 @param aGotoURI      The URI of the session history entry to be loaded.
 @return              Whether the operation can proceed.
boolean OnHistoryGotoIndex(in long aIndex, in nsIURI aGotoURI)
 Called when a new document is added to session history. New documents are
 added to session history by docshell when new pages are loaded in a frame
 or content area, for example via nsIWebNavigation::loadURI()

 @param aNewURI     The URI of the document to be added to session history.
void OnHistoryNewEntry(in nsIURI aNewURI)
 
 Called when the current document is reloaded, for example due to a
 nsIWebNavigation::reload() call.

 @param aReloadURI    The URI of the document to be reloaded.
 @param aReloadFlags  Flags that indicate how the document is to be 
                      refreshed. See constants on the nsIWebNavigation
                      interface.
 @return              Whether the operation can proceed.

 @see  nsIWebNavigation
boolean OnHistoryReload(in nsIURI aReloadURI, in unsigned long aReloadFlags)

From nsIScriptLoaderObserver

 The script is available for evaluation. For inline scripts, this
 method will be called synchronously. For externally loaded scripts,
 this method will be called when the load completes.

 @param aResult A result code representing the result of loading
        a script. If this is a failure code, script evaluation
        will not occur.
 @param aElement The element being processed.
 @param aIsInline Is this an inline script or externally loaded?
 @param aURI What is the URI of the script (the document URI if
        it is inline).
 @param aLineNo At what line does the script appear (generally 1
        if it is a loaded script).
void scriptAvailable(in nsresult aResult, in nsIScriptElement aElement, in boolean aIsInline, in nsIURI aURI, in PRInt32 aLineNo)

From nsIScriptSecurityManager

 Returns OK if aSourceURI and target have the same "origin"
 (scheme, host, and port).
 ReportError flag suppresses error reports for functions that
 don't need reporting.
void checkSameOriginURI(in nsIURI aSourceURI, in nsIURI aTargetURI, in boolean reportError)
 Checks whether the running script is allowed to connect to aTargetURI
[noscript] void checkConnect(in JSContextPtr aJSContext, in nsIURI aTargetURI, in string aClassName, in string aProperty)
 Returns OK if aJSContext and target have the same "origin"
 (scheme, host, and port).
[noscript] void checkSameOrigin(in JSContextPtr aJSContext, in nsIURI aTargetURI)
 Returns OK if aSourceURI and target have the same "origin"
 (scheme, host, and port).
 ReportError flag suppresses error reports for functions that
 don't need reporting.
void checkSameOriginURI(in nsIURI aSourceURI, in nsIURI aTargetURI, in boolean reportError)
 Return a principal with the specified certificate fingerprint, subject
 name (the full name or concatenated set of names of the entity
 represented by the certificate), pretty name, certificate, and
 codebase URI.  The certificate fingerprint and subject name MUST be
 nonempty; otherwise an error will be thrown.  Similarly, aCert must
 not be null.
[noscript] nsIPrincipal getCertificatePrincipal(in AUTF8String aCertFingerprint, in AUTF8String aSubjectName, in AUTF8String aPrettyName, in nsISupports aCert, in nsIURI aURI)
 Return a principal that has the same origin as aURI.
nsIPrincipal getCodebasePrincipal(in nsIURI aURI)
 Check that content from "from" can load "uri".

 Will return error code NS_ERROR_DOM_BAD_URI if the load request 
 should be denied.

 @param from the URI causing the load
 @param uri the URI that is being loaded
 @param flags the permission set, see above

 @deprecated Use checkLoadURIWithPrincipal instead of this function.
void checkLoadURI(in nsIURI from, in nsIURI uri, in unsigned long flags)
 Check that content from "from" can load "uri".

 Will return error code NS_ERROR_DOM_BAD_URI if the load request 
 should be denied.

 @param from the URI causing the load
 @param uri the URI that is being loaded
 @param flags the permission set, see above

 @deprecated Use checkLoadURIWithPrincipal instead of this function.
void checkLoadURI(in nsIURI from, in nsIURI uri, in unsigned long flags)
 Check that the script currently running in context "cx" can load "uri".

 Will return error code NS_ERROR_DOM_BAD_URI if the load request 
 should be denied.

 @param cx the JSContext of the script causing the load
 @param uri the URI that is being loaded
[noscript] void checkLoadURIFromScript(in JSContextPtr cx, in nsIURI uri)
 Check that content with principal aPrincipal can load "uri".

 Will return error code NS_ERROR_DOM_BAD_URI if the load request 
 should be denied.

 @param aPrincipal the principal identifying the actor causing the load
 @param uri the URI that is being loaded
 @param flags the permission set, see above
void checkLoadURIWithPrincipal(in nsIPrincipal aPrincipal, in nsIURI uri, in unsigned long flags)

From nsIScriptableUnescapeHTML

 Appends the text to the element.
nsIDOMDocumentFragment parseFragment(in AString fragment, in PRBool isXML, in nsIURI baseURI, in nsIDOMElement element)

From nsIStandardURL

 Initialize a standard URL.

 @param aUrlType       - one of the URLTYPE_ flags listed above.
 @param aDefaultPort   - if the port parsed from the URL string matches
                         this port, then the port will be removed from the
                         canonical form of the URL.
 @param aSpec          - URL string.
 @param aOriginCharset - the charset from which this URI string
                         originated.  this corresponds to the charset
                         that should be used when communicating this
                         URI to an origin server, for example.  if
                         null, then provide aBaseURI implements this
                         interface, the origin charset of aBaseURI will
                         be assumed, otherwise defaulting to UTF-8 (i.e.,
                         no charset transformation from aSpec).
 @param aBaseURI       - if null, aSpec must specify an absolute URI.
                         otherwise, aSpec will be resolved relative
                         to aBaseURI.
void init(in unsigned long aUrlType, in long aDefaultPort, in AUTF8String aSpec, in string aOriginCharset, in nsIURI aBaseURI)

From nsIStyleSheetService

 Synchronously loads a style sheet from |sheetURI| and adds it to the list
 of user or agent style sheets.

 A user sheet loaded via this API will come before userContent.css and
 userChrome.css in the cascade (so the rules in it will have lower
 precedence than rules in those sheets).

 An agent sheet loaded via this API will come after ua.css in the cascade
 (so the rules in it will have higher precedence than rules in ua.css).

 The relative ordering of two user or two agent sheets loaded via
 this API is undefined.

 Sheets added via this API take effect on all documents, including
 already-loaded ones, immediately.
void loadAndRegisterSheet(in nsIURI sheetURI, in unsigned long type)
 Returns true if a style sheet at |sheetURI| has previously been
 added to the list of style sheets specified by |type|.
boolean sheetRegistered(in nsIURI sheetURI, in unsigned long type)
 Remove the style sheet at |sheetURI| from the list of style sheets
 specified by |type|.  The removal takes effect immediately, even for
 already-loaded documents.
void unregisterSheet(in nsIURI sheetURI, in unsigned long type)

From nsISystemProxySettings

 See nsIProxyAutoConfig::getProxyForURI; this function behaves exactly
 the same way.
AUTF8String getProxyForURI(in nsIURI aURI)

From nsITaggingService

 Retrieves all tags set for the given URL.

 @param aURI
        a URL.
 @returns array of tags (sorted by name).
void getTagsForURI(in nsIURI aURI, out unsigned long length, [array, retval, size_is(length)] out wstring aTags)
 Tags a URL with the given set of tags. Current tags set for the URL
 persist. Tags in aTags which are already set for the given URL are
 ignored.

 @param aURI
        the URL to tag.
 @param aTags
        Array of tags to set for the given URL. Each element within the
        array can be either a tag name or a concrete itemId of a tag
        container.
void tagURI(in nsIURI aURI, in nsIVariant aTags)
 Removes tags from a URL. Tags from aTags which are not set for the
 given URL are ignored.

 @param aURI
        the URL to un-tag.
 @param aTags
        Array of tags to unset. pass null to remove all tags from the given
        url. Each element within the array can be either a tag name or a
        concrete itemId of a tag container.
void untagURI(in nsIURI aURI, in nsIVariant aTags)

From nsITransfer

 Initializes the transfer with certain properties.  This function must
 be called prior to accessing any properties on this interface.

 @param aSource The source URI of the transfer. Must not be null.

 @param aTarget The target URI of the transfer. Must not be null.

 @param aDisplayName The user-readable description of the transfer.
                     Can be empty.

 @param aMIMEInfo The MIME info associated with the target,
                  including MIME type and helper app when appropriate.
                  This parameter is optional.

 @param startTime Time when the download started (ie, when the first
                  response from the server was received)
                  XXX presumably wbp and exthandler do this differently

 @param aTempFile The location of a temporary file; i.e. a file in which
                  the received data will be stored, but which is not
                  equal to the target file. (will be moved to the real
                  target by the caller, when the download is finished)
                  May be null.

 @param aCancelable An object that can be used to abort the download.
                    Must not be null.
                    Implementations are expected to hold a strong
                    reference to this object until the download is
                    finished, at which point they should release the
                    reference.
void init(in nsIURI aSource, in nsIURI aTarget, in AString aDisplayName, in nsIMIMEInfo aMIMEInfo, in PRTime startTime, in nsILocalFile aTempFile, in nsICancelable aCancelable)
 Initializes the transfer with certain properties.  This function must
 be called prior to accessing any properties on this interface.

 @param aSource The source URI of the transfer. Must not be null.

 @param aTarget The target URI of the transfer. Must not be null.

 @param aDisplayName The user-readable description of the transfer.
                     Can be empty.

 @param aMIMEInfo The MIME info associated with the target,
                  including MIME type and helper app when appropriate.
                  This parameter is optional.

 @param startTime Time when the download started (ie, when the first
                  response from the server was received)
                  XXX presumably wbp and exthandler do this differently

 @param aTempFile The location of a temporary file; i.e. a file in which
                  the received data will be stored, but which is not
                  equal to the target file. (will be moved to the real
                  target by the caller, when the download is finished)
                  May be null.

 @param aCancelable An object that can be used to abort the download.
                    Must not be null.
                    Implementations are expected to hold a strong
                    reference to this object until the download is
                    finished, at which point they should release the
                    reference.
void init(in nsIURI aSource, in nsIURI aTarget, in AString aDisplayName, in nsIMIMEInfo aMIMEInfo, in PRTime startTime, in nsILocalFile aTempFile, in nsICancelable aCancelable)

From nsIURI

 An URI supports the following methods:


 URI equivalence test (not a strict string comparison).

 eg. http://foo.com:80/ == http://foo.com/
boolean equals(in nsIURI other)

From nsIURIChecker

 Initializes the URI checker.  After this method is called, it is valid
 to further configure the URI checker by calling its nsIRequest methods.
 This method creates the channel that will be used to verify the URI.
 In the case of the HTTP protocol, only a HEAD request will be issued.

 @param aURI
        The URI to be checked.
void init(in nsIURI aURI)

From nsIURIClassifier

 Classify a URI.

 @param aURI
        The URI that should be checked by the URI classifier.
 @param aCallback
        The URI classifier will call this callback when the URI has been
        classified.

 @return <code>false</code> if classification is not necessary.  The
         callback will not be called.
         <code>true</code> if classification will be performed.  The
         callback will be called.
boolean classify(in nsIURI aURI, in nsIURIClassifierCallback aCallback)

From nsIURIContentListener

 Gives the original content listener first crack at stopping a load before
 it happens.

 @param aURI   URI that is being opened.

 @return       <code>false</code> if the load can continue;
               <code>true</code> if the open should be aborted.
boolean onStartURIOpen(in nsIURI aURI)

From nsIURIFixup

 Converts an internal URI (e.g. a wyciwyg URI) into one which we can
 expose to the user, for example on the URL bar.

 @param  aURI       The URI to be converted
 @return nsIURI     The converted, exposable URI
 @throws NS_ERROR_MALFORMED_URI when the exposable portion of aURI is malformed
 @throws NS_ERROR_UNKNOWN_PROTOCOL when we can't get a protocol handler service
         for the URI scheme.
nsIURI createExposableURI(in nsIURI aURI)

From nsIURL

 This method takes a uri and compares the two.  The common uri portion
 is returned as a string.  The minimum common uri portion is the 
 protocol, and any of these if present:  login, password, host and port
 If no commonality is found, "" is returned.  If they are identical, the
 whole path with file/ref/etc. is returned.  For file uris, it is
 expected that the common spec would be at least "file:///" since '/' is
 a shared common root.

 Examples:
    this.spec               aURIToCompare.spec        result
 1) http://mozilla.org/     http://www.mozilla.org/   ""
 2) http://foo.com/bar/     ftp://foo.com/bar/        ""
 3) http://foo.com:8080/    http://foo.com/bar/       ""
 4) ftp://user@foo.com/     ftp://user:pw@foo.com/    ""
 5) ftp://foo.com/bar/      ftp://foo.com/bar         ftp://foo.com/
 6) ftp://foo.com/bar/      ftp://foo.com/bar/b.html  ftp://foo.com/bar/
 7) http://foo.com/a.htm#i  http://foo.com/b.htm      http://foo.com/
 8) ftp://foo.com/c.htm#i   ftp://foo.com/c.htm       ftp://foo.com/c.htm
 9) file:///a/b/c.html      file:///d/e/c.html        file:///
AUTF8String getCommonBaseSpec(in nsIURI aURIToCompare)
 This method takes a uri and returns a substring of this if it can be
 made relative to the uri passed in.  If no commonality is found, the
 entire uri spec is returned.  If they are identical, "" is returned.
 Filename, query, etc are always returned except when uris are identical.
AUTF8String getRelativeSpec(in nsIURI aURIToCompare)

From nsIUrlClassifierUtils

 Get the lookup string for a given URI.  This normalizes the hostname,
 url-decodes the string, and strips off the protocol.

 @param uri URI to get the lookup key for.

 @returns String containing the canonicalized URI.
ACString getKeyForURI(in nsIURI uri)

From nsIWebBrowserPersist

 Save the specified URI to file.

 @param aURI       URI to save to file. Some implementations of this interface
                   may also support <CODE>nsnull</CODE> to imply the currently
                   loaded URI.
 @param aCacheKey  An object representing the URI in the cache or
                   <CODE>nsnull</CODE>.  This can be a necko cache key,
                   an nsIWebPageDescriptor, or the currentDescriptor of an
                   nsIWebPageDescriptor.
 @param aReferrer  The referrer URI to pass with an HTTP request or
                   <CODE>nsnull</CODE>.
 @param aPostData  Post data to pass with an HTTP request or
                   <CODE>nsnull</CODE>.
 @param aExtraHeaders Additional headers to supply with an HTTP request
                   or <CODE>nsnull</CODE>.
 @param aFile      Target file. This may be a nsILocalFile object or an
                   nsIURI object with a file scheme or a scheme that
                   supports uploading (e.g. ftp).

 @see nsILocalFile
 @see nsIURI
 @see nsIInputStream

 @return NS_OK Operation has been started.
 @return NS_ERROR_INVALID_ARG One or more arguments was invalid.
void saveURI(in nsIURI aURI, in nsISupports aCacheKey, in nsIURI aReferrer, in nsIInputStream aPostData, in string aExtraHeaders, in nsISupports aFile)
 Save the specified URI to file.

 @param aURI       URI to save to file. Some implementations of this interface
                   may also support <CODE>nsnull</CODE> to imply the currently
                   loaded URI.
 @param aCacheKey  An object representing the URI in the cache or
                   <CODE>nsnull</CODE>.  This can be a necko cache key,
                   an nsIWebPageDescriptor, or the currentDescriptor of an
                   nsIWebPageDescriptor.
 @param aReferrer  The referrer URI to pass with an HTTP request or
                   <CODE>nsnull</CODE>.
 @param aPostData  Post data to pass with an HTTP request or
                   <CODE>nsnull</CODE>.
 @param aExtraHeaders Additional headers to supply with an HTTP request
                   or <CODE>nsnull</CODE>.
 @param aFile      Target file. This may be a nsILocalFile object or an
                   nsIURI object with a file scheme or a scheme that
                   supports uploading (e.g. ftp).

 @see nsILocalFile
 @see nsIURI
 @see nsIInputStream

 @return NS_OK Operation has been started.
 @return NS_ERROR_INVALID_ARG One or more arguments was invalid.
void saveURI(in nsIURI aURI, in nsISupports aCacheKey, in nsIURI aReferrer, in nsIInputStream aPostData, in string aExtraHeaders, in nsISupports aFile)

From nsIWebBrowserStream

 Prepare to load a stream of data. When this function returns successfully,
 it must be paired by a call to closeStream.

 @param aBaseURI
        The base URI of the data. Must not be null. Relative
        URIs will be resolved relative to this URI.
 @param aContentType
        ASCII string giving the content type of the data. If rendering
        content of this type is not supported, this method fails.
        This string may include a charset declaration, for example:
        text/html;charset=ISO-8859-1

 @throw NS_ERROR_NOT_AVAILABLE
        The requested content type is not supported.
 @throw NS_ERROR_IN_PROGRESS
        openStream was called twice without an intermediate closeStream.
void openStream(in nsIURI aBaseURI, in ACString aContentType)

From nsIWebNavigation

 Loads a given URI.  This will give priority to loading the requested URI
 in the object implementing	this interface.  If it can't be loaded here
 however, the URI dispatcher will go through its normal process of content
 loading.

 @param aURI
        The URI string to load.  For HTTP and FTP URLs and possibly others,
        characters above U+007F will be converted to UTF-8 and then URL-
        escaped per the rules of RFC 2396.
 @param aLoadFlags
        Flags modifying load behaviour.  This parameter is a bitwise
        combination of the load flags defined above.  (Undefined bits are
        reserved for future use.)  Generally you will pass LOAD_FLAGS_NONE
        for this parameter.
 @param aReferrer
        The referring URI.  If this argument is null, then the referring
        URI will be inferred internally.
 @param aPostData
        If the URI corresponds to a HTTP request, then this stream is
        appended directly to the HTTP request headers.  It may be prefixed
        with additional HTTP headers.  This stream must contain a "\r\n"
        sequence separating any HTTP headers from the HTTP request body.
        This parameter is optional and may be null.
 @param aHeaders
        If the URI corresponds to a HTTP request, then any HTTP headers
        contained in this stream are set on the HTTP request.  The HTTP
        header stream is formatted as:
            ( HEADER "\r\n" )*
        This parameter is optional and may be null.
void loadURI(in wstring aURI, in unsigned long aLoadFlags, in nsIURI aReferrer, in nsIInputStream aPostData, in nsIInputStream aHeaders)

From nsIWebProgressListener

 Called when the location of the window being watched changes.  This is not
 when a load is requested, but rather once it is verified that the load is
 going to occur in the given window.  For instance, a load that starts in a
 window might send progress and status messages for the new site, but it
 will not send the onLocationChange until we are sure that we are loading
 this new page here.

 @param aWebProgress
        The nsIWebProgress instance that fired the notification.
 @param aRequest
        The associated nsIRequest.  This may be null in some cases.
 @param aLocation
        The URI of the location that is being loaded.
void onLocationChange(in nsIWebProgress aWebProgress, in nsIRequest aRequest, in nsIURI aLocation)

From nsIWebProgressListener2

 Notification that a refresh or redirect has been requested in aWebProgress
 For example, via a <meta http-equiv="refresh"> or an HTTP Refresh: header

 @param aWebProgress
        The nsIWebProgress instance that fired the notification.
 @param aRefreshURI
        The new URI that aWebProgress has requested redirecting to.
 @param aMillis
        The delay (in milliseconds) before refresh.
 @param aSameURI
        True if aWebProgress is requesting a refresh of the
        current URI.
        False if aWebProgress is requesting a redirection to
        a different URI.

 @return True if the refresh may proceed.
         False if the refresh should be aborted.
boolean onRefreshAttempted(in nsIWebProgress aWebProgress, in nsIURI aRefreshURI, in long aMillis, in boolean aSameURI)

From nsIWindowCreator2

 Create a new window. Gecko will/may call this method, if made
      available to it, to create new windows.
      @param parent Parent window, if any. Null if not. The newly created
                    window should be made a child/dependent window of
                    the parent, if any (and if the concept applies
                    to the underlying OS).
      @param chromeFlags Chrome features from nsIWebBrowserChrome
      @param contextFlags Flags about the context of the window being created.
      @param uri The URL for which this window is intended. It can be null
                 or zero-length. The implementation of this interface
                 may use the URL to help determine what sort of window
                 to open or whether to cancel window creation. It will not
                 load the URL.
      @param cancel Return |true| to reject window creation. If true the
                    implementation has determined the window should not
                    be created at all. The caller should not default
                    to any possible backup scheme for creating the window.
      @return the new window. Will be null if canceled or an error occurred.
nsIWebBrowserChrome createChromeWindow2(in nsIWebBrowserChrome parent, in PRUint32 chromeFlags, in PRUint32 contextFlags, in nsIURI uri, out boolean cancel)

From nsIWindowProvider

 A method to request that this provider provide a window.  The window
 returned need not to have the right name or parent set on it; setting
 those is the caller's responsibility.  The provider can always return null
 to have the caller create a brand-new window.

 @param aParent Must not be null.  This is the window that the caller wants
                to use as the parent for the new window.  Generally,
                nsIWindowProvider implementors can expect to be somehow
                related to aParent; the relationship may depend on the
                nsIWindowProvider implementation.
 @param aChromeFlags The chrome flags the caller will use to create a new
                      window if this provider returns null.  See
                      nsIWebBrowserChrome for the possible values of this
                      field.
 @param aPositionSpecified Whether the attempt to create a window is trying
                           to specify a position for the new window.
 @param aSizeSpecified Whether the attempt to create a window is trying to
                       specify a size for the new window.
 @param aURI The URI to be loaded in the new window.  The nsIWindowProvider
             implementation MUST NOT load this URI in the window it
             returns.  This URI is provided solely to help the
             nsIWindowProvider implenentation make decisions; the caller
             will handle loading the URI in the window returned if
             provideWindow returns a window.  Note that the URI may be null
             if the load cannot be represented by a single URI (e.g. if
             the load has extra load flags, POST data, etc).
 @param aName The name of the window being opened.  Setting the name on the
              return value of provideWindow will be handled by the caller;
              aName is provided solely to help the nsIWindowProvider
              implementation make decisions.
 @param aFeatures The feature string for the window being opened.  This may
                  be empty.  The nsIWindowProvider implementation is
                  allowed to apply the feature string to the window it
                  returns in any way it sees fit.  See the nsIWindowWatcher
                  interface for details on feature strings.
 @param aWindowIsNew [out] Whether the window being returned was just
                           created by the window provider implementation.
                           This can be used by callers to keep track of which
                           windows were opened by the user as opposed to
                           being opened programmatically.  This should be set
                           to false if the window being returned existed
                           before the provideWindow() call.  The value of this
                           out parameter is meaningless if provideWindow()
                           returns null.
 @return A window the caller should use or null if the caller should just
         create a new window.  The returned window may be newly opened by
         the nsIWindowProvider implementation or may be a window that
         already existed.

 @see nsIWindowWatcher for more information on aFeatures.
 @see nsIWebBrowserChrome for more information on aChromeFlags.
nsIDOMWindow provideWindow(in nsIDOMWindow aParent, in unsigned long aChromeFlags, in boolean aPositionSpecified, in boolean aSizeSpecified, in nsIURI aURI, in AString aName, in AUTF8String aFeatures, out boolean aWindowIsNew)

From nsIXMLHttpRequest

 Initialize the object for use from C++ code with the principal, script
 context, and owner window that should be used.

 @param principal The principal to use for the request. This must not be
                  null.
 @param scriptContext The script context to use for the request. May be
                      null.
 @param ownerWindow The associated window for the request. May be null.
 @param baseURI The base URI to use when resolving relative URIs. May be
                null.
[noscript] void init(in nsIPrincipal principal, in nsIScriptContext scriptContext, in nsPIDOMWindow ownerWindow, in nsIURI baseURI)

From nsIXULChromeRegistry

 Content should only be allowed to load chrome JS from certain packages.
 This method reflects the contentaccessible flag on packages.
 Do not pass non-chrome URIs to this method.
boolean allowContentToAccess(in nsIURI url)
 Installable skin XBL is not always granted the same privileges as other
 chrome. This asks the chrome registry whether scripts are allowed to be
 run for a particular chrome URI. Do not pass non-chrome URIs to this
 method.
boolean allowScriptsForPackage(in nsIURI url)

From nsIXULOverlayProvider

 Get the style overlays for a particular chrome URI.

 @param aURI  The URI being loaded
 @return      An enumerator of nsIURI for the overlays of this URI 
nsISimpleEnumerator getStyleOverlays(in nsIURI aURI)
 Get the XUL overlays for a particular chrome URI.

 @param aURI  The URI being loaded
 @return      An enumerator of nsIURI for the overlays of this URI 
nsISimpleEnumerator getXULOverlays(in nsIURI aURI)

From nsPICertNotification


          
void onCertAvailable(in nsIURI aURI, in nsISupports aContext, in PRUint32 aStatus, in nsIPrincipal aPrincipal)

From nsPIPlacesHistoryListenersNotifier

 Calls onPageExpired on registered listeners with the history service.

 @param aURI
        The nsIURI object representing the URI of the page being expired.
 @param aVisitTime
        The time, in microseconds, that the page being expired was visited.
 @param aWholeEntry
        Indicates if this is the last visit for this URI.
void notifyOnPageExpired(in nsIURI aURI, in PRTime aVisitTime, in boolean aWholeEntry)