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

Unified Diff: chrome/install_static/install_details.h

Issue 2867063002: Stability instrumentation Crashpad integration (Closed)
Patch Set: clang compile Created 3 years, 7 months 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/install_details.h
diff --git a/chrome/install_static/install_details.h b/chrome/install_static/install_details.h
index 9a9360d55129587977ac856eaa1f3eb382ac0b77..6fb09d9efc2f58951986804c46cc31efce87964a 100644
--- a/chrome/install_static/install_details.h
+++ b/chrome/install_static/install_details.h
@@ -5,18 +5,21 @@
#ifndef CHROME_INSTALL_STATIC_INSTALL_DETAILS_H_
#define CHROME_INSTALL_STATIC_INSTALL_DETAILS_H_
+#include <assert.h>
+
#include <memory>
#include <string>
#include "chrome/install_static/install_constants.h"
#include "chrome/install_static/install_modes.h"
+#include "chrome/install_static/install_util.h"
namespace install_static {
class PrimaryInstallDetails;
class ScopedInstallDetails;
-// Details relating to how Chrome is installed. This class and
+// Details relating to how Chrome is installed or being run. This class and
// PrimaryInstallDetails (below) are used in tandem so that one instance of the
// latter may be initialized early during process startup and then shared with
// other modules in the process. For example, chrome_elf creates the instance
@@ -59,6 +62,14 @@ class InstallDetails {
// True if installed in C:\Program Files{, {x86)}; otherwise, false.
bool system_level;
+
+ // The user data directory. An empty value is interpreted as a failure to
+ // determine the user data directory.
+ const wchar_t* user_data_dir;
+
+ // An invalid user data directory that was provided by the user, or the
+ // empty string.
+ const wchar_t* invalid_user_data_dir;
};
InstallDetails(const InstallDetails&) = delete;
@@ -152,6 +163,19 @@ class InstallDetails {
bool system_level() const { return payload_->system_level; }
+ std::wstring user_data_dir() const {
+ assert(CurrentProcessNeedsProfileDir());
+ return payload_->user_data_dir ? std::wstring(payload_->user_data_dir)
+ : std::wstring();
+ }
+
+ std::wstring invalid_user_data_dir() const {
+ assert(CurrentProcessNeedsProfileDir());
+ return payload_->invalid_user_data_dir
+ ? std::wstring(payload_->invalid_user_data_dir)
+ : std::wstring();
+ }
+
// Returns the path to the installation's ClientState registry key. This
// registry key is used to hold various installation-related values, including
// an indication of consent for usage stats.
@@ -206,6 +230,7 @@ class PrimaryInstallDetails : public InstallDetails {
PrimaryInstallDetails(const PrimaryInstallDetails&) = delete;
PrimaryInstallDetails(PrimaryInstallDetails&&) = delete;
PrimaryInstallDetails& operator=(const PrimaryInstallDetails&) = delete;
+ ~PrimaryInstallDetails() override;
void set_mode(const InstallConstants* mode) { payload_.mode = mode; }
void set_channel(const std::wstring& channel) {
@@ -224,11 +249,21 @@ class PrimaryInstallDetails : public InstallDetails {
void set_system_level(bool system_level) {
payload_.system_level = system_level;
}
+ void set_user_data_dir(const std::wstring& user_data_dir) {
+ user_data_dir_ = user_data_dir;
+ payload_.user_data_dir = user_data_dir_.c_str();
+ }
+ void set_invalid_user_data_dir(const std::wstring& invalid_user_data_dir) {
+ invalid_user_data_dir_ = invalid_user_data_dir;
+ payload_.invalid_user_data_dir = invalid_user_data_dir_.c_str();
+ }
private:
std::wstring channel_;
std::wstring update_ap_;
std::wstring update_cohort_name_;
+ std::wstring user_data_dir_;
+ std::wstring invalid_user_data_dir_;
Payload payload_ = Payload();
};

Powered by Google App Engine
This is Rietveld 408576698