/* This Source Code Form is subject to the terms of the Mozilla Public
* License , v . 2 . 0 . If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsISupports.idl"
interface nsIURI;
[scriptable, rust_sync, builtinclass, uuid(
68067 eb5-ad8d-
43 cb-a043-
1 cc85ebe06e7)]
interface nsIEffectiveTLDService : nsISupports
{
/**
* 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);
/**
* Similar to getPublicSuffix , but the suffix is validated against
* the Public Suffix List . If the suffix is unknown this will return
* an empty string .
*
* If you only need to know if the host ends in a valid suffix , and not the
* actual public suffix , consider the more performant hasKnownPublicSuffix ( )
* instead .
*
* @ param aURI The URI to be analyzed
* @ returns the public suffix if known , an empty string otherwise
* @ see getPublicSuffixFromHost ( )
*/
ACString getKnownPublicSuffix(in nsIURI aURI);
/**
* 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 uint32_t aAdditionalParts);
/**
* Get the Site without the scheme for the origin of aURI ; e . g . for
* " https : //www.bbc.co.uk/index.html", this would be "bbc.co.uk".
* This uses getBaseDomain ( ) internally . This is appropriately permissive ,
* and will return a schemeless site for aliased hostnames and IP addresses
* and will therefore not throw NS_ERROR_INSUFFICIENT_DOMAIN_LEVELS or
* NS_ERROR_HOST_IS_IP_ADDRESS , e . g . " http : //localhost/index.html" will
* return " localhost " successfully , rather than throwing an error .
*
* @ param aHostURI
* The URI to analyze .
*
* @ return the Site .
*
* @ throws NS_ERROR_UNEXPECTED
* or other error returned by nsIIDNService : : normalize when
* the hostname contains characters disallowed in URIs
*
* @ see getBaseDomain ( )
* @ see getSite ( )
*
* @ warning This function should not be used without good reason . Please
* use getSite ( ) or the Origin if you are not absolutely certain .
*/
ACString getSchemelessSite(in nsIURI aURI);
/**
* Same as getSchemelessSite but takes a host string . Prefer the URI variant
* if possible .
*
* @ param aHost
* The host to analyze .
*
* @ return the Site .
*
* @ throws NS_ERROR_UNEXPECTED
* or other error returned by nsIIDNService : : normalize when
* the hostname contains characters disallowed in URIs
*
* @ see getSchemelessSite ( )
* @ see getBaseDomain ( )
* @ see getSite ( )
*
* @ warning This function should not be used without good reason . Please
* use getSite ( ) or the Origin if you are not absolutely certain .
*/
ACString getSchemelessSiteFromHost(in AUTF8String aHost);
/**
* Get the Site for the origin of aURI ; e . g . for
* " https : //www.bbc.co.uk/index.html", this would be "https://bbc.co.uk ".
* This uses getBaseDomain ( ) internally . This is appropriately permissive ,
* and will return a scheme for alaised hostnames and IP addresses and will
* therefore not throw NS_ERROR_INSUFFICIENT_DOMAIN_LEVELS or
* NS_ERROR_HOST_IS_IP_ADDRESS , e . g . " http : //localhost/index.html" will
* return " http : //localhost" successfully, rather than throwing an error.
*
* @ param aHostURI
* The URI to analyze .
*
* @ return the Site .
*
* @ throws NS_ERROR_UNEXPECTED
* or other error returned by nsIIDNService : : normalize when
* the hostname contains characters disallowed in URIs
*
* @ see getBaseDomain ( )
*/
ACString getSite(in nsIURI aURI);
/**
* NOTE : It is strongly recommended to use getPublicSuffix ( ) above if a suitable
* nsIURI is available . Only use this method if this is not the case .
*
* Returns the public suffix of a host string . Otherwise identical to getPublicSuffix ( ) .
*
* @ param aHost The host to be analyzed . Any additional parts ( e . g . scheme ,
* port , or path ) will cause this method to throw . ASCII / ACE and
* UTF8 encodings are acceptable as input ; normalization will
* be performed as specified in getBaseDomain ( ) .
*
* @ see getPublicSuffix ( )
*/
ACString getPublicSuffixFromHost(in AUTF8String aHost);
/**
* Similar to getPublicSuffixFromHost , but the suffix is validated against
* the Public Suffix List . If the suffix is unknown this will return
* an empty string .
*
* @ param aHost The host to be analyzed .
* @ returns the public suffix if known , an empty string otherwise
* @ see getPublicSuffixFromHost ( )
*/
ACString getKnownPublicSuffixFromHost(in AUTF8String aHost);
/**
* NOTE : It is strongly recommended to use getBaseDomain ( ) above if a suitable
* nsIURI is available . Only use this method if this is not the case .
*
* Returns the base domain of a host string . Otherwise identical to getBaseDomain ( ) .
*
* @ param aHost The host to be analyzed . Any additional parts ( e . g . scheme ,
* port , or path ) will cause this method to throw . ASCII / ACE and
* UTF8 encodings are acceptable as input ; normalization will
* be performed as specified in getBaseDomain ( ) .
*
* @ see getBaseDomain ( )
*/
ACString getBaseDomainFromHost(in AUTF8String aHost, [optional] in uint32_t aAdditional
Parts);
/**
* Returns the parent sub - domain of a host string . If the host is a base
* domain , it will throw NS_ERROR_INSUFFICIENT_DOMAIN_LEVELS .
*
* For example : " player . bbc . co . uk " would return " bbc . co . uk " and
* " bbc . co . uk " would throw NS_ERROR_INSUFFICIENT_DOMAIN_LEVELS .
*
* @ param aHost The host to be analyzed . Any additional parts ( e . g . scheme ,
* port , or path ) will cause this method to throw . ASCII / ACE and
* UTF8 encodings are acceptable as input ; normalization will
* be performed as specified in getBaseDomain ( ) .
*/
ACString getNextSubDomain(in AUTF8String aHost);
/**
* Returns true if the | aInput | in is part of the root domain of | aHost | .
* For example , if | aInput | is " www . mozilla . org " , and we pass in
* " mozilla . org " as | aHost | , this will return true . It would return false
* the other way around .
*
* @ param aInput The host to be analyzed .
* @ param aHost The host to compare to .
*/
boolean hasRootDomain(in AUTF8String aInput, in AUTF8String aHost);
/**
* Returns true if the host of | aURI | ends with , or is , a suffix that is on
* the public suffix list .
*
* @ param aURI The URI to be checked
*/
boolean hasKnownPublicSuffix(in nsIURI aURI);
/**
* Returns true if | aHost | ends with , or is , a suffix that is on the public
* suffix list .
*
* @ param aHost The hostname to be checked
* @ see hasKnownPublicSuffix ( )
*/
boolean hasKnownPublicSuffixFromHost(in AUTF8String aHost);
};
Messung V0.5 in Prozent C=97 H=75 G=86
¤ Dauer der Verarbeitung: 0.13 Sekunden
¤
*© Formatika GbR, Deutschland