mozilla
Your Search Results

    nsIEffectiveTLDService

    This is an interface that examines a hostname and determines the longest portion that should be treated as though it were a top-level domain (TLD). It can also determine the base domain of a URI.
    1.0
    38.0.5
    Introduced
    Gecko 1.9
    Inherits from: nsISupports Last changed in Gecko 1.9 (Firefox 3)

    Implemented by: @mozilla.org/network/effective-tld-service;1. To use this service, use:

    var eTLDService = Components.classes["@mozilla.org/network/effective-tld-service;1"]
                      .getService(Components.interfaces.nsIEffectiveTLDService);
    

    The name "Effective TLD Service" is a historical one; today, the items this interface manipulates are called Public Suffixes, and the list of them is the Public Suffix List, or PSL. See publicsuffix.org for more information.

    The methods below implement the Public Suffix algorithm in full, including the implicit "*" rule. Therefore, if you call getPublicSuffix("a.b.c.nonexistent"), you will get back "nonexistent" - this "TLD" is not in the public suffix list, but the implicit "*" rule means that it is returned. This is the right answer for e.g. cookie setting and domain highlighting, but you should check whether it's the right answer for your application.

    It is not recommended to use this interface for determining whether a given string "is a domain name". That question is unanswerable with 100% accuracy using the PSL, because what is a domain name is a property of the DNS, which is different for different people. Is "mail.intranet" actually a domain name? Depends who you ask - for some people it is, others not. Is "pretty.flowers" a domain name, according to getPublicSuffix()? Depends on the age of the copy of the PSL you are working with. The TLD space is currently expanding at a fairly great rate, and the copy of the PSL Firefox has may not be totally up to date (because it's not dynamically updated data).

    Method overview

    ACString getBaseDomain(in nsIURI aURI, [optional] in PRUint32 aAdditionalParts);
    ACString getBaseDomainFromHost(in AUTF8String aHost, [optional] in PRUint32 aAdditionalParts);
    ACString getPublicSuffix(in nsIURI aURI);
    ACString getPublicSuffixFromHost(in AUTF8String aHost);

    Methods

    getBaseDomain()

    Returns the base domain of a URI; that is, the public suffix with a given number of additional domain name parts.

    ACString getBaseDomain(
      in nsIURI aURI,
      [optional] in PRUint32 aAdditionalParts
    );
    
    Parameters
    aURI
    The URI to be analyzed.
    aAdditionalParts
    The number of domain name parts to be returned in addition to the public suffix.
    Return value

    An ACString containing the base domain (public suffix plus the requested number of additional parts).

    Exceptions thrown
    NS_ERROR_INVALID_ARG
    This exception is thrown if the hostname in aURI is empty.
    NS_ERROR_INSUFFICIENT_DOMAIN_LEVELS
    This exception is thrown if there were insufficient subdomain levels in the hostname to satisfy the requested aAdditionalParts value.
    NS_ERROR_HOST_IS_IP_ADDRESS
    This exception is thrown if aURI is a numeric IPv4 or IPv6 address.
    NS_ERROR_UNEXPECTED
    Or other error returned by nsIIDNService.normalize() when the hostname contains characters disallowed in URIs.

    getBaseDomainFromHost()

    Returns the base domain of a host string. Otherwise identical to getBaseDomain().

    Note: It is strongly recommended that you use getBaseDomain() if a suitable nsIURI is available. Only use this method if this is not the case.

    ACString getBaseDomainFromHost(
      in AUTF8String aHost,
      in PRUint32 aAdditionalParts Optional
    );
    
    Parameters
    aHost
    The host string to be analyzed.
    aAdditionalParts Optional
    The number of domain name parts to be returned in addition to the public suffix.
    Return value

    An ACString containing the base domain (public suffix plus the requested number of additional parts).

    Exceptions thrown
    NS_ERROR_INVALID_ARG
    This exception is thrown if aHost is empty.
    NS_ERROR_UNEXPECTED
    This exception originates in the Normalize() method in nsIIDNService and is thrown when aHost contains characters disallowed in URIs.
    NS_ERROR_INSUFFICIENT_DOMAIN_LEVELS
    This exception is thrown if there were insufficient subdomain levels in the hostname to satisfy the requested aAdditionalParts value.
    NS_ERROR_HOST_IS_IP_ADDRESS
    This exception is thrown if aHost is a numeric IPv4 or IPv6 address.
    Remarks

    Note: Prior to Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1), this method worked if you passed host strings starting with a period ("."). That is no longer the case, since these are not valid host names. You should strip leading periods off host names before passing them to this method.

    getPublicSuffix()

    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. Likewise, the public suffix for developer.mozilla.org is org.

    ACString getPublicSuffix(
      in nsIURI aURI
    );
    
    Parameters
    aURI
    The URI to be analyzed.
    Return value

    An ACString containing the public suffix.

    Exceptions thrown
    NS_ERROR_INVALID_ARG
    This exception is thrown if the hostname in aURI is empty.
    NS_ERROR_HOST_IS_IP_ADDRESS
    This exception is thrown if aURI is a numeric IPv4 or IPv6 address.
    NS_ERROR_UNEXPECTED
    Or other error returned by nsIIDNService.normalize() when the hostname contains characters disallowed in URIs.

    getPublicSuffixFromHost()

    Returns the public suffix of a host string. Otherwise identical to getPublicSuffix().

    Note: It is strongly recommended to use getBaseDomain() if a suitable nsIURI is available. Only use this method if this is not the case.

    ACString getPublicSuffixFromHost(
      in AUTF8String aHost
    );
    
    Parameters
    aHost
    The host string to be analyzed.
    Return value

    An ACString containing the public suffix.

    Exceptions thrown
    NS_ERROR_INVALID_ARG
    This exception is thrown if aHost is empty.
    NS_ERROR_UNEXPECTED
    This exception originates in the Normalize() method in nsIIDNService and is thrown when aHost contains characters disallowed in URIs.
    NS_ERROR_HOST_IS_IP_ADDRESS
    This exception is thrown if aHost is a numeric IPv4 or IPv6 address.

    Remarks

    All returned strings are encoded in ASCII/ACE and normalized according to RFC 3454.

    Document Tags and Contributors

    Contributors to this page: Gerv, MKaply, Sheppy, kscarfone, darktrojan, Havarhen, trevorh, Callek, Eff2k5
    Last updated by: Gerv,