• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 package org.chromium.url;
6 
7 import org.chromium.base.annotations.CalledByNative;
8 import org.chromium.base.annotations.JNINamespace;
9 
10 import java.net.IDN;
11 
12 /**
13  * This class is used to convert unicode IDN domain names to ASCII, when not
14  * building with ICU.
15  */
16 @JNINamespace("url::android")
17 public class IDNStringUtil {
18     /**
19      * Attempts to convert a Unicode string to an ASCII string using IDN rules.
20      * As of May 2014, the underlying Java function IDNA2003.
21      * @param src String to convert.
22      * @return: String containing only ASCII characters on success, null on
23      *                 failure.
24      */
25     @CalledByNative
idnToASCII(String src)26     private static String idnToASCII(String src) {
27         try {
28             return IDN.toASCII(src, IDN.USE_STD3_ASCII_RULES);
29         } catch (Exception e) {
30             return null;
31         }
32     }
33 }