| OLD | NEW |
| 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 "components/crash/content/app/crashpad.h" | 5 #include "components/crash/content/app/crashpad.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <string.h> | 8 #include <string.h> |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 271 } | 271 } |
| 272 reports->push_back(report); | 272 reports->push_back(report); |
| 273 } | 273 } |
| 274 | 274 |
| 275 for (const crashpad::CrashReportDatabase::Report& pending_report : | 275 for (const crashpad::CrashReportDatabase::Report& pending_report : |
| 276 pending_reports) { | 276 pending_reports) { |
| 277 Report report; | 277 Report report; |
| 278 report.local_id = pending_report.uuid.ToString(); | 278 report.local_id = pending_report.uuid.ToString(); |
| 279 report.capture_time = pending_report.creation_time; | 279 report.capture_time = pending_report.creation_time; |
| 280 report.upload_time = 0; | 280 report.upload_time = 0; |
| 281 report.state = ReportUploadState::Pending; | 281 report.state = pending_report.upload_explicitly_requested |
| 282 ? ReportUploadState::Pending_UserRequested |
| 283 : report.state = ReportUploadState::Pending; |
| 282 reports->push_back(report); | 284 reports->push_back(report); |
| 283 } | 285 } |
| 284 | 286 |
| 285 std::sort(reports->begin(), reports->end(), | 287 std::sort(reports->begin(), reports->end(), |
| 286 [](const Report& a, const Report& b) { | 288 [](const Report& a, const Report& b) { |
| 287 return a.capture_time > b.capture_time; | 289 return a.capture_time > b.capture_time; |
| 288 }); | 290 }); |
| 289 } | 291 } |
| 290 | 292 |
| 293 void RequestSingleCrashUpload(const std::string& local_id) { |
| 294 if (!g_database) |
| 295 return; |
| 296 crashpad::UUID uuid; |
| 297 uuid.InitializeFromString(local_id); |
| 298 g_database->RequestUpload(uuid); |
| 299 } |
| 300 |
| 291 } // namespace crash_reporter | 301 } // namespace crash_reporter |
| 292 | 302 |
| 293 #if defined(OS_WIN) | 303 #if defined(OS_WIN) |
| 294 | 304 |
| 295 extern "C" { | 305 extern "C" { |
| 296 | 306 |
| 297 // This function is used in chrome_metrics_services_manager_client.cc to trigger | 307 // This function is used in chrome_metrics_services_manager_client.cc to trigger |
| 298 // changes to the upload-enabled state. This is done when the metrics services | 308 // changes to the upload-enabled state. This is done when the metrics services |
| 299 // are initialized, and when the user changes their consent for uploads. See | 309 // are initialized, and when the user changes their consent for uploads. See |
| 300 // crash_reporter::SetUploadConsent for effects. | 310 // crash_reporter::SetUploadConsent for effects. |
| (...skipping 10 matching lines...) Expand all Loading... |
| 311 void __declspec(dllexport) __cdecl SetCrashKeyValueImpl(const wchar_t* key, | 321 void __declspec(dllexport) __cdecl SetCrashKeyValueImpl(const wchar_t* key, |
| 312 const wchar_t* value) { | 322 const wchar_t* value) { |
| 313 crash_reporter::SetCrashKeyValue(base::UTF16ToUTF8(key), | 323 crash_reporter::SetCrashKeyValue(base::UTF16ToUTF8(key), |
| 314 base::UTF16ToUTF8(value)); | 324 base::UTF16ToUTF8(value)); |
| 315 } | 325 } |
| 316 | 326 |
| 317 void __declspec(dllexport) __cdecl ClearCrashKeyValueImpl(const wchar_t* key) { | 327 void __declspec(dllexport) __cdecl ClearCrashKeyValueImpl(const wchar_t* key) { |
| 318 crash_reporter::ClearCrashKey(base::UTF16ToUTF8(key)); | 328 crash_reporter::ClearCrashKey(base::UTF16ToUTF8(key)); |
| 319 } | 329 } |
| 320 | 330 |
| 331 // This helper is invoked by code in chrome.dll to request a single crash report |
| 332 // upload. See CrashUploadListCrashpad. |
| 333 void __declspec(dllexport) RequestSingleCrashUploadImpl( |
| 334 const std::string& local_id) { |
| 335 crash_reporter::RequestSingleCrashUpload(local_id); |
| 336 } |
| 321 } // extern "C" | 337 } // extern "C" |
| 322 | 338 |
| 323 #endif // OS_WIN | 339 #endif // OS_WIN |
| OLD | NEW |