Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4747)

Unified Diff: chrome/install_static/product_install_details.h

Issue 2487783002: Make Crashpad use the user data dir, rather than always default location (Closed)
Patch Set: . Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/install_static/product_install_details.h
diff --git a/chrome/install_static/product_install_details.h b/chrome/install_static/product_install_details.h
index 54843b6c7c051de4870f41c4897404724c8e3952..ae5ceb572f2fe11ce1b1fe58b90197c861464201 100644
--- a/chrome/install_static/product_install_details.h
+++ b/chrome/install_static/product_install_details.h
@@ -13,6 +13,7 @@
namespace install_static {
struct InstallConstants;
+class InstallDetails;
class PrimaryInstallDetails;
// Creates product details for the current process and sets them as the global
@@ -40,6 +41,35 @@ std::wstring GetInstallSuffix(const std::wstring& exe_path);
// being multi-install.
bool IsMultiInstall(const InstallConstants& mode, bool system_level);
+// Populates |result| with the default User Data directory for the current
+// user. Returns false if all attempts at locating a User Data directory fail.
+// TODO(ananta)
+// http://crbug.com/604923
+// Unify this with the Browser Distribution code.
+bool GetDefaultUserDataDirectory(const InstallDetails& details,
+ std::wstring* result);
+
+// 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, this will be called once at startup and saved into InstallDetails
+// from where it should be retrieved.
+bool GetUserDataDirectory(const std::wstring& user_data_dir_from_command_line,
+ const InstallDetails& details,
+ std::wstring* result,
+ std::wstring* invalid_supplied_directory);
+
// Creates product details for the process at |exe_path|.
std::unique_ptr<PrimaryInstallDetails> MakeProductDetails(
const std::wstring& exe_path);

Powered by Google App Engine
This is Rietveld 408576698