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

Unified Diff: win8/delegate_execute/crash_server_init.cc

Issue 11421031: Add basic crash reporting to delegate_execute.exe. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 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: win8/delegate_execute/crash_server_init.cc
diff --git a/chrome_frame/crash_server_init.cc b/win8/delegate_execute/crash_server_init.cc
similarity index 68%
copy from chrome_frame/crash_server_init.cc
copy to win8/delegate_execute/crash_server_init.cc
index 44b404989cf475d8618e65ab776543749616a274..68e787f8678456d77311847e33112ba8a20d6b07 100644
--- a/chrome_frame/crash_server_init.cc
+++ b/win8/delegate_execute/crash_server_init.cc
@@ -2,12 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome_frame/crash_server_init.h"
+#include "win8/delegate_execute/crash_server_init.h"
#include <sddl.h>
-#include <Shlobj.h>
+#include <shlobj.h>
#include <stdlib.h>
-#include "version.h" // NOLINT
+
+#include "base/file_version_info.h"
+#include "base/scoped_ptr.h"
+#include "base/win/win_util.h"
grt (UTC plus 2) 2012/11/21 19:27:50 #include "client/windows/handler/exception_handler
robertshield 2012/11/21 21:09:15 Done.
const wchar_t kChromePipeName[] = L"\\\\.\\pipe\\ChromeCrashServices";
const wchar_t kGoogleUpdatePipeName[] = L"\\\\.\\pipe\\GoogleCrashServices\\";
@@ -20,36 +23,7 @@ const MINIDUMP_TYPE kLargerDumpType = static_cast<MINIDUMP_TYPE>(
extern "C" IMAGE_DOS_HEADER __ImageBase;
-// Builds a string representation of the user's SID and places it in user_sid.
-bool GetUserSidString(std::wstring* user_sid) {
- bool success = false;
- if (user_sid) {
- struct {
- TOKEN_USER token_user;
- BYTE buffer[SECURITY_MAX_SID_SIZE];
- } token_info_buffer;
-
- HANDLE token = NULL;
- if (OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &token)) {
- DWORD out_size;
- if (GetTokenInformation(token, TokenUser, &token_info_buffer.token_user,
- sizeof(token_info_buffer), &out_size)) {
- wchar_t* user_sid_value = NULL;
- if (token_info_buffer.token_user.User.Sid &&
- ConvertSidToStringSid(token_info_buffer.token_user.User.Sid,
- &user_sid_value)) {
- *user_sid = user_sid_value;
- LocalFree(user_sid_value);
- user_sid_value = NULL;
- success = true;
- }
- }
- CloseHandle(token);
- }
- }
-
- return success;
-}
+namespace {
bool IsRunningSystemInstall() {
wchar_t exe_path[MAX_PATH * 2] = {0};
@@ -70,12 +44,18 @@ bool IsRunningSystemInstall() {
return is_system;
}
+} // namespace
+
google_breakpad::CustomClientInfo* GetCustomInfo() {
grt (UTC plus 2) 2012/11/21 19:27:50 move this into the unnamed namespace
robertshield 2012/11/21 21:09:15 Done.
+ scoped_ptr<FileVersionInfo> version_info(
+ FileVersionInfo::CreateFileVersionInfoForCurrentModule());
+
static google_breakpad::CustomInfoEntry ver_entry(
- L"ver", TEXT(CHROME_VERSION_STRING));
- static google_breakpad::CustomInfoEntry prod_entry(L"prod", L"ChromeFrame");
+ L"ver", version_info.file_version().c_str());
+ static google_breakpad::CustomInfoEntry prod_entry(L"prod", L"Chrome");
static google_breakpad::CustomInfoEntry plat_entry(L"plat", L"Win32");
- static google_breakpad::CustomInfoEntry type_entry(L"ptype", L"chrome_frame");
+ static google_breakpad::CustomInfoEntry type_entry(L"ptype",
+ L"delegate_execute");
static google_breakpad::CustomInfoEntry entries[] = {
ver_entry, prod_entry, plat_entry, type_entry };
static google_breakpad::CustomClientInfo custom_info = {
@@ -88,7 +68,7 @@ google_breakpad::ExceptionHandler* InitializeCrashReporting(
wchar_t temp_path[MAX_PATH + 1] = {0};
DWORD path_len = ::GetTempPath(MAX_PATH, temp_path);
- std::wstring pipe_name;
+ string16 pipe_name;
if (mode == HEADLESS) {
// This flag is used for testing, connect to the test crash service.
pipe_name = kChromePipeName;
@@ -99,8 +79,8 @@ google_breakpad::ExceptionHandler* InitializeCrashReporting(
if (IsRunningSystemInstall()) {
pipe_name += kSystemPrincipalSid;
} else {
- std::wstring user_sid;
- if (GetUserSidString(&user_sid)) {
+ string16 user_sid;
+ if (base::win::GetUserSidString(&user_sid)) {
pipe_name += user_sid;
} else {
// We don't think we're a system install, but we couldn't get the

Powered by Google App Engine
This is Rietveld 408576698