1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5package org.chromium.chrome.browser.identity;
6
7import javax.annotation.Nullable;
8
9/**
10 * Interface used for uniquely identifying an installation of Chrome. To get an instance you should
11 * use {@link UniqueIdentificationGeneratorFactory}.
12 */
13public interface UniqueIdentificationGenerator {
14    /**
15     * Creates a string that uniquely identifies this installation.
16     * <p/>
17     * If there is an error in generating the string, an empty string must be returned, not null.
18     *
19     * @param salt the salt to use for the unique ID.
20     * @return a unique ID. On failure to generate, it must return the empty string.
21     */
22    String getUniqueId(@Nullable String salt);
23}
24