blob: bfffdd15cf9338317aa5852481df0ceaf3778fd7 [file] [log] [blame]
// Copyright 2020 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.
#include "chrome/common/chrome_paths.h"
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/system/sys_info.h"
#include "chromeos/crosapi/cpp/crosapi_constants.h"
namespace chrome {
bool GetDefaultUserDataDirectory(base::FilePath* result) {
if (base::SysInfo::IsRunningOnChromeOS()) {
*result = base::FilePath(crosapi::kLacrosUserDataPath);
} else {
// For developers on Linux desktop, just pick a reasonable default. Most
// developers will pass --user-data-dir and override this value anyway.
*result = base::GetHomeDir().Append(".config").Append("lacros");
}
return true;
}
void GetUserCacheDirectory(const base::FilePath& profile_dir,
base::FilePath* result) {
// Chrome OS doesn't allow special cache overrides like desktop Linux.
*result = profile_dir;
}
bool GetUserDocumentsDirectory(base::FilePath* result) {
if (base::SysInfo::IsRunningOnChromeOS()) {
*result = base::FilePath(crosapi::kMyFilesPath);
} else {
// For developers on Linux desktop, just pick a reasonable default.
*result = base::GetHomeDir().Append("Documents");
}
return true;
}
bool GetUserDownloadsDirectorySafe(base::FilePath* result) {
if (base::SysInfo::IsRunningOnChromeOS()) {
*result = base::FilePath(crosapi::kDefaultDownloadsPath);
} else {
// For developers on Linux desktop, just pick a reasonable default.
*result = base::GetHomeDir().Append("Downloads");
}
return true;
}
bool GetUserDownloadsDirectory(base::FilePath* result) {
return GetUserDownloadsDirectorySafe(result);
}
bool GetUserMusicDirectory(base::FilePath* result) {
// Chrome OS does not support custom media directories.
return false;
}
bool GetUserPicturesDirectory(base::FilePath* result) {
// Chrome OS does not support custom media directories.
return false;
}
bool GetUserVideosDirectory(base::FilePath* result) {
// Chrome OS does not support custom media directories.
return false;
}
bool ProcessNeedsProfileDir(const std::string& process_type) {
// We have no reason to forbid this on Chrome OS as we don't have roaming
// profile troubles there.
return true;
}
} // namespace chrome