OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/common/child_process_logging.h" | 5 #include "chrome/common/child_process_logging.h" |
6 | 6 |
7 #include <windows.h> | 7 #include <windows.h> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
(...skipping 19 matching lines...) Expand all Loading... |
30 // exported in breakpad_win.cc: | 30 // exported in breakpad_win.cc: |
31 // void __declspec(dllexport) __cdecl SetExtensionID. | 31 // void __declspec(dllexport) __cdecl SetExtensionID. |
32 typedef void (__cdecl *MainSetExtensionID)(size_t, const wchar_t*); | 32 typedef void (__cdecl *MainSetExtensionID)(size_t, const wchar_t*); |
33 | 33 |
34 // exported in breakpad_win.cc: void __declspec(dllexport) __cdecl SetGpuInfo. | 34 // exported in breakpad_win.cc: void __declspec(dllexport) __cdecl SetGpuInfo. |
35 typedef void (__cdecl *MainSetGpuInfo)(const wchar_t*, const wchar_t*, | 35 typedef void (__cdecl *MainSetGpuInfo)(const wchar_t*, const wchar_t*, |
36 const wchar_t*, const wchar_t*, | 36 const wchar_t*, const wchar_t*, |
37 const wchar_t*); | 37 const wchar_t*); |
38 | 38 |
39 // exported in breakpad_win.cc: | 39 // exported in breakpad_win.cc: |
| 40 // void __declspec(dllexport) __cdecl SetPrinterInfo. |
| 41 typedef void (__cdecl *MainSetPrinterInfo)(const wchar_t*); |
| 42 |
| 43 // exported in breakpad_win.cc: |
40 // void __declspec(dllexport) __cdecl SetNumberOfViews. | 44 // void __declspec(dllexport) __cdecl SetNumberOfViews. |
41 typedef void (__cdecl *MainSetNumberOfViews)(int); | 45 typedef void (__cdecl *MainSetNumberOfViews)(int); |
42 | 46 |
43 // exported in breakpad_win.cc: | 47 // exported in breakpad_win.cc: |
44 // void __declspec(dllexport) __cdecl SetCommandLine | 48 // void __declspec(dllexport) __cdecl SetCommandLine |
45 typedef void (__cdecl *MainSetCommandLine)(const CommandLine*); | 49 typedef void (__cdecl *MainSetCommandLine)(const CommandLine*); |
46 | 50 |
47 void SetActiveURL(const GURL& url) { | 51 void SetActiveURL(const GURL& url) { |
48 static MainSetActiveURL set_active_url = NULL; | 52 static MainSetActiveURL set_active_url = NULL; |
49 // note: benign race condition on set_active_url. | 53 // note: benign race condition on set_active_url. |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
143 return; | 147 return; |
144 } | 148 } |
145 (set_gpu_info)( | 149 (set_gpu_info)( |
146 base::StringPrintf(L"0x%04x", gpu_info.vendor_id).c_str(), | 150 base::StringPrintf(L"0x%04x", gpu_info.vendor_id).c_str(), |
147 base::StringPrintf(L"0x%04x", gpu_info.device_id).c_str(), | 151 base::StringPrintf(L"0x%04x", gpu_info.device_id).c_str(), |
148 UTF8ToUTF16(gpu_info.driver_version).c_str(), | 152 UTF8ToUTF16(gpu_info.driver_version).c_str(), |
149 UTF8ToUTF16(gpu_info.pixel_shader_version).c_str(), | 153 UTF8ToUTF16(gpu_info.pixel_shader_version).c_str(), |
150 UTF8ToUTF16(gpu_info.vertex_shader_version).c_str()); | 154 UTF8ToUTF16(gpu_info.vertex_shader_version).c_str()); |
151 } | 155 } |
152 | 156 |
| 157 void SetPrinterInfo(const char* printer_info) { |
| 158 static MainSetPrinterInfo set_printer_info = NULL; |
| 159 if (!set_printer_info) { |
| 160 HMODULE exe_module = GetModuleHandle(chrome::kBrowserProcessExecutableName); |
| 161 if (!exe_module) |
| 162 return; |
| 163 set_printer_info = reinterpret_cast<MainSetPrinterInfo>( |
| 164 GetProcAddress(exe_module, "SetPrinterInfo")); |
| 165 if (!set_printer_info) |
| 166 return; |
| 167 } |
| 168 (set_printer_info)(UTF8ToWide(printer_info).c_str()); |
| 169 } |
| 170 |
153 void SetCommandLine(const CommandLine* command_line) { | 171 void SetCommandLine(const CommandLine* command_line) { |
154 static MainSetCommandLine set_command_line = NULL; | 172 static MainSetCommandLine set_command_line = NULL; |
155 if (!set_command_line) { | 173 if (!set_command_line) { |
156 HMODULE exe_module = GetModuleHandle(chrome::kBrowserProcessExecutableName); | 174 HMODULE exe_module = GetModuleHandle(chrome::kBrowserProcessExecutableName); |
157 if (!exe_module) | 175 if (!exe_module) |
158 return; | 176 return; |
159 set_command_line = reinterpret_cast<MainSetCommandLine>( | 177 set_command_line = reinterpret_cast<MainSetCommandLine>( |
160 GetProcAddress(exe_module, "SetCommandLine")); | 178 GetProcAddress(exe_module, "SetCommandLine")); |
161 if (!set_command_line) | 179 if (!set_command_line) |
162 return; | 180 return; |
163 } | 181 } |
164 (set_command_line)(command_line); | 182 (set_command_line)(command_line); |
165 } | 183 } |
166 | 184 |
167 void SetNumberOfViews(int number_of_views) { | 185 void SetNumberOfViews(int number_of_views) { |
168 static MainSetNumberOfViews set_number_of_views = NULL; | 186 static MainSetNumberOfViews set_number_of_views = NULL; |
169 if (!set_number_of_views) { | 187 if (!set_number_of_views) { |
170 HMODULE exe_module = GetModuleHandle(chrome::kBrowserProcessExecutableName); | 188 HMODULE exe_module = GetModuleHandle(chrome::kBrowserProcessExecutableName); |
171 if (!exe_module) | 189 if (!exe_module) |
172 return; | 190 return; |
173 set_number_of_views = reinterpret_cast<MainSetNumberOfViews>( | 191 set_number_of_views = reinterpret_cast<MainSetNumberOfViews>( |
174 GetProcAddress(exe_module, "SetNumberOfViews")); | 192 GetProcAddress(exe_module, "SetNumberOfViews")); |
175 if (!set_number_of_views) | 193 if (!set_number_of_views) |
176 return; | 194 return; |
177 } | 195 } |
178 (set_number_of_views)(number_of_views); | 196 (set_number_of_views)(number_of_views); |
179 } | 197 } |
180 | 198 |
181 } // namespace child_process_logging | 199 } // namespace child_process_logging |
OLD | NEW |