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

Side by Side Diff: chrome/installer/setup/installer_crash_reporting.cc

Issue 2589753002: Remove multi-install from chrome/installer/setup. (Closed)
Patch Set: gab and robertshield comments Created 3 years, 11 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/installer/setup/installer_crash_reporting.h" 5 #include "chrome/installer/setup/installer_crash_reporting.h"
6 6
7 #include <iterator> 7 #include <iterator>
8 #include <memory>
8 #include <vector> 9 #include <vector>
9 10
10 #include "base/command_line.h" 11 #include "base/command_line.h"
11 #include "base/debug/crash_logging.h" 12 #include "base/debug/crash_logging.h"
12 #include "base/debug/leak_annotations.h" 13 #include "base/debug/leak_annotations.h"
13 #include "base/logging.h" 14 #include "base/logging.h"
14 #include "base/path_service.h" 15 #include "base/path_service.h"
15 #include "base/strings/string16.h" 16 #include "base/strings/string16.h"
16 #include "base/strings/utf_string_conversions.h" 17 #include "base/strings/utf_string_conversions.h"
17 #include "base/version.h" 18 #include "base/version.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 break; 51 break;
51 } 52 }
52 NOTREACHED(); 53 NOTREACHED();
53 return ""; 54 return "";
54 } 55 }
55 56
56 const char *OperationToString(InstallerState::Operation operation) { 57 const char *OperationToString(InstallerState::Operation operation) {
57 switch (operation) { 58 switch (operation) {
58 case InstallerState::SINGLE_INSTALL_OR_UPDATE: 59 case InstallerState::SINGLE_INSTALL_OR_UPDATE:
59 return "single-install-or-update"; 60 return "single-install-or-update";
60 case InstallerState::MULTI_INSTALL:
61 return "multi-install";
62 case InstallerState::MULTI_UPDATE:
63 return "multi-update";
64 case InstallerState::UNINSTALL: 61 case InstallerState::UNINSTALL:
65 return "uninstall"; 62 return "uninstall";
66 case InstallerState::UNINITIALIZED: 63 case InstallerState::UNINITIALIZED:
67 // Fall out of switch. 64 // Fall out of switch.
68 break; 65 break;
69 } 66 }
70 NOTREACHED(); 67 NOTREACHED();
71 return ""; 68 return "";
72 } 69 }
73 70
(...skipping 13 matching lines...) Expand all
87 84
88 } // namespace 85 } // namespace
89 86
90 void ConfigureCrashReporting(const InstallerState& installer_state) { 87 void ConfigureCrashReporting(const InstallerState& installer_state) {
91 // This is inspired by work done in various parts of Chrome startup to connect 88 // This is inspired by work done in various parts of Chrome startup to connect
92 // to the crash service. Since the installer does not split its work between 89 // to the crash service. Since the installer does not split its work between
93 // a stub .exe and a main .dll, crash reporting can be configured in one place 90 // a stub .exe and a main .dll, crash reporting can be configured in one place
94 // right here. 91 // right here.
95 92
96 // Create the crash client and install it (a la MainDllLoader::Launch). 93 // Create the crash client and install it (a la MainDllLoader::Launch).
97 InstallerCrashReporterClient *crash_client = 94 InstallerCrashReporterClient* crash_client =
98 new InstallerCrashReporterClient(!installer_state.system_install()); 95 new InstallerCrashReporterClient(!installer_state.system_install());
99 ANNOTATE_LEAKING_OBJECT_PTR(crash_client); 96 ANNOTATE_LEAKING_OBJECT_PTR(crash_client);
100 crash_reporter::SetCrashReporterClient(crash_client); 97 crash_reporter::SetCrashReporterClient(crash_client);
101 98
102 if (installer_state.system_install()) { 99 if (installer_state.system_install()) {
103 base::FilePath temp_dir; 100 base::FilePath temp_dir;
104 if (GetSystemTemp(&temp_dir)) { 101 if (GetSystemTemp(&temp_dir)) {
105 base::FilePath crash_dir = temp_dir.Append(FILE_PATH_LITERAL("Crashpad")); 102 base::FilePath crash_dir = temp_dir.Append(FILE_PATH_LITERAL("Crashpad"));
106 PathService::OverrideAndCreateIfNeeded(chrome::DIR_CRASH_DUMPS, crash_dir, 103 PathService::OverrideAndCreateIfNeeded(chrome::DIR_CRASH_DUMPS, crash_dir,
107 true, true); 104 true, true);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 return base::debug::InitCrashKeys(keys.data(), keys.size(), 139 return base::debug::InitCrashKeys(keys.data(), keys.size(),
143 crash_keys::kChunkMaxLength); 140 crash_keys::kChunkMaxLength);
144 } 141 }
145 142
146 void SetInitialCrashKeys(const InstallerState& state) { 143 void SetInitialCrashKeys(const InstallerState& state) {
147 using base::debug::SetCrashKeyValue; 144 using base::debug::SetCrashKeyValue;
148 145
149 SetCrashKeyValue(kDistributionType, 146 SetCrashKeyValue(kDistributionType,
150 DistributionTypeToString(state.state_type())); 147 DistributionTypeToString(state.state_type()));
151 SetCrashKeyValue(kOperation, OperationToString(state.operation())); 148 SetCrashKeyValue(kOperation, OperationToString(state.operation()));
152 SetCrashKeyValue(kIsMultiInstall, 149 SetCrashKeyValue(kIsMultiInstall, "false");
153 state.is_multi_install() ? "true" : "false");
154 SetCrashKeyValue(kIsSystemLevel, state.system_install() ? "true" : "false"); 150 SetCrashKeyValue(kIsSystemLevel, state.system_install() ? "true" : "false");
155 151
156 const base::string16 state_key = state.state_key(); 152 const base::string16 state_key = state.state_key();
157 if (!state_key.empty()) 153 if (!state_key.empty())
158 SetCrashKeyValue(kStateKey, base::UTF16ToUTF8(state_key)); 154 SetCrashKeyValue(kStateKey, base::UTF16ToUTF8(state_key));
159 } 155 }
160 156
161 void SetCrashKeysFromCommandLine(const base::CommandLine& command_line) { 157 void SetCrashKeysFromCommandLine(const base::CommandLine& command_line) {
162 crash_keys::SetSwitchesFromCommandLine(command_line, nullptr); 158 crash_keys::SetSwitchesFromCommandLine(command_line, nullptr);
163 } 159 }
164 160
165 void SetCurrentVersionCrashKey(const base::Version* current_version) { 161 void SetCurrentVersionCrashKey(const base::Version* current_version) {
166 if (current_version) { 162 if (current_version) {
167 base::debug::SetCrashKeyValue(kCurrentVersion, 163 base::debug::SetCrashKeyValue(kCurrentVersion,
168 current_version->GetString()); 164 current_version->GetString());
169 } else { 165 } else {
170 base::debug::ClearCrashKey(kCurrentVersion); 166 base::debug::ClearCrashKey(kCurrentVersion);
171 } 167 }
172 } 168 }
173 169
174 } // namespace installer 170 } // namespace installer
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698