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)
Compare to: