// Copyright 2014 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 EXTENSIONS_BROWSER_PATH_UTIL_H_
#define EXTENSIONS_BROWSER_PATH_UTIL_H_

#include "base/files/file_path.h"

namespace extensions {
namespace path_util {

// Prettifies |source_path|, by replacing the user's home directory with "~"
// (if applicable).
// For OS X, prettifies |source_path| by localizing every component of the
// path. Additionally, if the path is inside the user's home directory, then
// replace the home directory component with "~".
base::FilePath PrettifyPath(const base::FilePath& source_path);

// Calculates the size of the directory containing an extension, and formats it
// to a localized string that can be placed directly in the UI. |message_id| is
// the ID of the string to use when the size is less than 1 MB, basically
// IDS_APPLICATION_INFO_SIZE_SMALL_LABEL.
void CalculateAndFormatExtensionDirectorySize(
    const base::FilePath& extension_path,
    int message_id,
    base::OnceCallback<void(const base::string16&)> callback);

// Returns a new FilePath with the '~' resolved to the home directory, if
// appropriate. Otherwise, returns the original path.
base::FilePath ResolveHomeDirectory(const base::FilePath& path);

}  // namespace path_util
}  // namespace extensions

#endif  // EXTENSIONS_BROWSER_PATH_UTIL_H_
