Linux Mac OSX Windows

Implemented by

 nsINetUtil provides various network-related utility methods.
[scriptable, uuid(57322c6f-f4ec-4e46-8253-b74be220de16)]
interface nsINetUtil : nsISupports

Constants

 Escape every character with its %XX-escaped equivalent */
const unsigned long ESCAPE_ALL = 0
 Leave alphanumeric characters intact and %XX-escape all others */
const unsigned long ESCAPE_XALPHAS = 1
 Leave alphanumeric characters intact, convert spaces to '+',
      %XX-escape all others */
const unsigned long ESCAPE_XPALPHAS = 2
 Leave alphanumeric characters and forward slashes intact,
      %XX-escape all others */
const unsigned long ESCAPE_URL_PATH = 4
 %XX-escape URL scheme */
const unsigned long ESCAPE_URL_SCHEME = 1
 %XX-escape username in the URL */
const unsigned long ESCAPE_URL_USERNAME = 2
 %XX-escape password in the URL */
const unsigned long ESCAPE_URL_PASSWORD = 4
 %XX-escape URL host */
const unsigned long ESCAPE_URL_HOST = 8
 %XX-escape URL directory */
const unsigned long ESCAPE_URL_DIRECTORY = 16
 %XX-escape file basename in the URL */
const unsigned long ESCAPE_URL_FILE_BASENAME = 32
 %XX-escape file extension in the URL */
const unsigned long ESCAPE_URL_FILE_EXTENSION = 64
 %XX-escape URL parameters */
const unsigned long ESCAPE_URL_PARAM = 128
 %XX-escape URL query */
const unsigned long ESCAPE_URL_QUERY = 256
 %XX-escape URL ref */
const unsigned long ESCAPE_URL_REF = 512
 %XX-escape URL path - same as escaping directory, basename and extension */
const unsigned long ESCAPE_URL_FILEPATH = 112
 %XX-escape scheme, username, password, host, path, params, query and ref */
const unsigned long ESCAPE_URL_MINIMAL = 1023
 Force %XX-escaping of already escaped sequences */
const unsigned long ESCAPE_URL_FORCED = 1024
 Skip non-ascii octets, %XX-escape all others */
const unsigned long ESCAPE_URL_ONLY_ASCII = 2048
 
 Skip graphic octets (0x20-0x7E) when escaping
 Skips all ASCII octets (0x00-0x7F) when unescaping 
const unsigned long ESCAPE_URL_ONLY_NONASCII = 4096
 Force %XX-escape of colon */
const unsigned long ESCAPE_URL_COLON = 16384
 Skip C0 and DEL from unescaping */
const unsigned long ESCAPE_URL_SKIP_CONTROL = 32768

Methods

 escape a string with %00-style escaping
ACString escapeString(in ACString aString, in unsigned long aEscapeType)
 %XX-Escape invalid chars in a URL segment. 

 @param aStr the URL to be escaped
 @param aFlags the URL segment type flags

 @return the escaped string (the string itself if escaping did not happen)

ACString escapeURL(in ACString aStr, in unsigned long aFlags)
 Extract the charset parameter location and value from a content-type
 header.

 @param aTypeHeader the header string to parse
 @param [out] aCharset the charset parameter specified in the
              header, if any.
 @param [out] aCharsetStart index of the start of the charset parameter
              (the ';' separating it from what came before) in aTypeHeader.
              If this function returns false, this argument will still be
              set, to the index of the location where a new charset should
              be inserted.
 @param [out] aCharsetEnd index of the end of the charset parameter (the
              ';' separating it from what comes after, or the end
              of the string) in aTypeHeader.  If this function returns
              false, this argument will still be set, to the index of the
              location where a new charset should be inserted.

 @return whether a charset parameter was found.  This can be false even in
 cases when parseContentType would claim to have a charset, if the type
 that won out does not have a charset parameter specified.
boolean extractCharsetFromContentType(in AUTF8String aTypeHeader, out AUTF8String aCharset, out long aCharsetStart, out long aCharsetEnd)
 Parse a content-type header and return the content type and
 charset (if any).

 @param aTypeHeader the header string to parse
 @param [out] aCharset the charset parameter specified in the
              header, if any.
 @param [out] aHadCharset whether a charset was explicitly specified.
 @return the MIME type specified in the header, in lower-case.
AUTF8String parseContentType(in AUTF8String aTypeHeader, out AUTF8String aCharset, out boolean aHadCharset)
 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)
 Expands URL escape sequences

 @param aStr the URL to be unescaped
 @param aFlags only ESCAPE_URL_ONLY_NONASCII and ESCAPE_URL_SKIP_CONTROL
               are recognized.  If |aFlags| is 0 all escape sequences are 
               unescaped
 @return unescaped string
ACString unescapeString(in ACString aStr, in unsigned long aFlags)
 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)