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

#ifndef CHROME_INSTALL_STATIC_USER_DATA_DIR_H_
#define CHROME_INSTALL_STATIC_USER_DATA_DIR_H_

#include <string>

namespace install_static {

struct InstallConstants;

// Populates |result| with the user data dir, respecting various overrides in
// the manner of chrome_main_delegate.cc InitializeUserDataDir(). This includes
// overrides on the command line, overrides by registry policy, and fallback to
// the default User Data dir if the directory is invalid or unspecified.
//
// If a directory was given by the user (either on the command line, or by
// registry policy), but it was invalid or unusable, then
// |invalid_supplied_directory| will be filled with the value that was unusable
// for reporting an error to the user.
//
// Other than in test situations, it is generally only appropriate to call this
// function once on startup and use the result for subsequent callers, otherwise
// there's a race with registry modification (which could cause a different
// derivation) so different subsystems would see different values). In normal
// usage, it should be called only once and cached. GetUserDataDirectory() does
// this, and should be preferred.
bool GetUserDataDirectoryImpl(
    const std::wstring& user_data_dir_from_command_line,
    const InstallConstants& mode,
    std::wstring* result,
    std::wstring* invalid_supplied_directory);

// Retrieves the user data directory, and any invalid directory specified on the
// command line, for reporting an error to the user. These values are cached on
// the first call. |invalid_user_data_directory| may be null if not required.
bool GetUserDataDirectory(std::wstring* user_data_directory,
                          std::wstring* invalid_user_data_directory);

}  // namespace install_static

#endif  // CHROME_INSTALL_STATIC_USER_DATA_DIR_H_
