tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

nsTextToSubURI.h (1222B)


      1 // -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
      2 // vim: set ts=2 et sw=2 tw=80:
      3 // This Source Code is subject to the terms of the Mozilla Public License
      4 // version 2.0 (the "License"). You can obtain a copy of the License at
      5 // http://mozilla.org/MPL/2.0/.
      6 #ifndef nsTextToSubURI_h__
      7 #define nsTextToSubURI_h__
      8 
      9 #include "nsITextToSubURI.h"
     10 #include "nsString.h"
     11 #include "nsTArray.h"
     12 #include "mozilla/net/IDNBlocklistUtils.h"
     13 
     14 class nsTextToSubURI : public nsITextToSubURI {
     15  NS_DECL_ISUPPORTS
     16  NS_DECL_NSITEXTTOSUBURI
     17 
     18  // Thread-safe function for C++ callers
     19  static nsresult UnEscapeNonAsciiURI(const nsACString& aCharset,
     20                                      const nsACString& aURIFragment,
     21                                      nsAString& _retval);
     22 
     23 private:
     24  virtual ~nsTextToSubURI();
     25 
     26  // We assume that the URI is encoded as UTF-8.
     27  static nsresult convertURItoUnicode(const nsCString& aCharset,
     28                                      const nsCString& aURI,
     29                                      nsAString& _retval);
     30 
     31  // Characters defined in netwerk/dns/IDNCharacterBlocklist.inc
     32  nsTArray<mozilla::net::BlocklistRange> mIDNBlocklist;
     33 };
     34 
     35 #endif  // nsTextToSubURI_h__