// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package org.chromium.url;

import org.jni_zero.CalledByNative;
import org.jni_zero.JNINamespace;

import java.net.IDN;

/**
 * This class is used to convert unicode IDN domain names to ASCII, when not
 * building with ICU.
 */
@JNINamespace("url::android")
public class IDNStringUtil {
    /**
     * Attempts to convert a Unicode string to an ASCII string using IDN rules.
     * As of May 2014, the underlying Java function IDNA2003.
     * @param src String to convert.
     * @return: String containing only ASCII characters on success, null on
     *                 failure.
     */
    @CalledByNative
    private static String idnToASCII(String src) {
        try {
            return IDN.toASCII(src, IDN.USE_STD3_ASCII_RULES);
        } catch (Exception e) {
            return null;
        }
    }
}
