Index: trunk/src/chrome/common/child_process_logging_win.cc |
=================================================================== |
--- trunk/src/chrome/common/child_process_logging_win.cc (revision 223612) |
+++ trunk/src/chrome/common/child_process_logging_win.cc (working copy) |
@@ -23,6 +23,10 @@ |
typedef void (__cdecl *MainSetClientId)(const wchar_t*); |
// exported in breakpad_win.cc: |
+// void __declspec(dllexport) __cdecl SetPrinterInfo. |
+typedef void (__cdecl *MainSetPrinterInfo)(const wchar_t*); |
+ |
+// exported in breakpad_win.cc: |
// void __declspec(dllexport) __cdecl SetCommandLine2 |
typedef void (__cdecl *MainSetCommandLine)(const wchar_t**, size_t); |
@@ -86,6 +90,21 @@ |
return std::string(); |
} |
+void SetPrinterInfo(const char* printer_info) { |
+ static MainSetPrinterInfo set_printer_info = NULL; |
+ // note: benign race condition on set_printer_info. |
+ if (!set_printer_info) { |
+ HMODULE exe_module = GetModuleHandle(chrome::kBrowserProcessExecutableName); |
+ if (!exe_module) |
+ return; |
+ set_printer_info = reinterpret_cast<MainSetPrinterInfo>( |
+ GetProcAddress(exe_module, "SetPrinterInfo")); |
+ if (!set_printer_info) |
+ return; |
+ } |
+ (set_printer_info)(UTF8ToWide(printer_info).c_str()); |
+} |
+ |
void SetCommandLine(const CommandLine* command_line) { |
static MainSetCommandLine set_command_line = NULL; |
// note: benign race condition on set_command_line. |