Chromium Code Reviews| 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/core/browser/crashes_ui_util.h" | 5 #include "components/crash/core/browser/crashes_ui_util.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <utility> | 8 #include <utility> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 #include "base/i18n/time_formatting.h" | 11 #include "base/i18n/time_formatting.h" |
| 12 #include "base/macros.h" | 12 #include "base/macros.h" |
| 13 #include "base/values.h" | 13 #include "base/values.h" |
| 14 #include "components/upload_list/upload_list.h" | 14 #include "components/upload_list/upload_list.h" |
| 15 #include "grit/components_chromium_strings.h" | 15 #include "grit/components_chromium_strings.h" |
| 16 #include "grit/components_google_chrome_strings.h" | 16 #include "grit/components_google_chrome_strings.h" |
| 17 #include "grit/components_strings.h" | 17 #include "grit/components_strings.h" |
| 18 | 18 |
| 19 namespace crash { | 19 namespace crash { |
| 20 | 20 |
| 21 const CrashesUILocalizedString kCrashesUILocalizedStrings[] = { | 21 const CrashesUILocalizedString kCrashesUILocalizedStrings[] = { |
| 22 {"bugLinkText", IDS_CRASH_BUG_LINK_LABEL}, | 22 {"bugLinkText", IDS_CRASH_BUG_LINK_LABEL}, |
| 23 {"crashCountFormat", IDS_CRASH_CRASH_COUNT_BANNER_FORMAT}, | 23 {"crashCountFormat", IDS_CRASH_CRASH_COUNT_BANNER_FORMAT}, |
| 24 {"crashHeaderFormat", IDS_CRASH_CRASH_HEADER_FORMAT}, | 24 {"crashHeaderFormat", IDS_CRASH_CRASH_HEADER_FORMAT}, |
| 25 {"crashTimeFormat", IDS_CRASH_CRASH_TIME_FORMAT}, | 25 {"crashTimeFormat", IDS_CRASH_CRASH_TIME_FORMAT}, |
| 26 {"crashNotUploaded", IDS_CRASH_CRASH_NOT_UPLOADED}, | |
| 27 {"crashPendingUpload", IDS_CRASH_CRASH_PENDING_UPLOAD}, | |
| 26 {"crashesTitle", IDS_CRASH_TITLE}, | 28 {"crashesTitle", IDS_CRASH_TITLE}, |
| 27 {"disabledHeader", IDS_CRASH_DISABLED_HEADER}, | 29 {"disabledHeader", IDS_CRASH_DISABLED_HEADER}, |
| 28 {"disabledMessage", IDS_CRASH_DISABLED_MESSAGE}, | 30 {"disabledMessage", IDS_CRASH_DISABLED_MESSAGE}, |
| 29 {"noCrashesMessage", IDS_CRASH_NO_CRASHES_MESSAGE}, | 31 {"noCrashesMessage", IDS_CRASH_NO_CRASHES_MESSAGE}, |
| 30 {"uploadCrashesLinkText", IDS_CRASH_UPLOAD_MESSAGE}, | 32 {"uploadCrashesLinkText", IDS_CRASH_UPLOAD_MESSAGE}, |
| 31 }; | 33 }; |
| 32 | 34 |
| 33 const size_t kCrashesUILocalizedStringsCount = | 35 const size_t kCrashesUILocalizedStringsCount = |
| 34 arraysize(kCrashesUILocalizedStrings); | 36 arraysize(kCrashesUILocalizedStrings); |
| 35 | 37 |
| 36 const char kCrashesUICrashesJS[] = "crashes.js"; | 38 const char kCrashesUICrashesJS[] = "crashes.js"; |
| 37 const char kCrashesUIRequestCrashList[] = "requestCrashList"; | 39 const char kCrashesUIRequestCrashList[] = "requestCrashList"; |
| 38 const char kCrashesUIRequestCrashUpload[] = "requestCrashUpload"; | 40 const char kCrashesUIRequestCrashUpload[] = "requestCrashUpload"; |
| 39 const char kCrashesUIShortProductName[] = "shortProductName"; | 41 const char kCrashesUIShortProductName[] = "shortProductName"; |
| 40 const char kCrashesUIUpdateCrashList[] = "updateCrashList"; | 42 const char kCrashesUIUpdateCrashList[] = "updateCrashList"; |
| 41 | 43 |
| 44 std::string UploadInfoStateAsString(UploadList::UploadInfo::State state) { | |
| 45 switch (state) { | |
| 46 case UploadList::UploadInfo::State::NotUploaded: | |
| 47 return "not_uploaded"; | |
| 48 case UploadList::UploadInfo::State::Pending: | |
| 49 return "pending"; | |
| 50 default: // Fall through. | |
|
Mark Mentovai
2016/06/20 17:55:21
I think we don’t want this “default” either.
scottmg
2016/06/20 21:08:55
Done (same).
| |
| 51 case UploadList::UploadInfo::State::Uploaded: | |
| 52 return "uploaded"; | |
| 53 } | |
| 54 } | |
| 55 | |
| 42 void UploadListToValue(UploadList* upload_list, base::ListValue* out_value) { | 56 void UploadListToValue(UploadList* upload_list, base::ListValue* out_value) { |
| 43 std::vector<UploadList::UploadInfo> crashes; | 57 std::vector<UploadList::UploadInfo> crashes; |
| 44 upload_list->GetUploads(50, &crashes); | 58 upload_list->GetUploads(50, &crashes); |
| 45 | 59 |
| 46 for (const auto& info : crashes) { | 60 for (const auto& info : crashes) { |
| 47 std::unique_ptr<base::DictionaryValue> crash(new base::DictionaryValue()); | 61 std::unique_ptr<base::DictionaryValue> crash(new base::DictionaryValue()); |
| 48 crash->SetString("id", info.upload_id); | 62 crash->SetString("id", info.upload_id); |
| 49 crash->SetString("time", | 63 crash->SetString("time", |
| 50 base::TimeFormatFriendlyDateAndTime(info.upload_time)); | 64 base::TimeFormatFriendlyDateAndTime(info.upload_time)); |
| 51 crash->SetString("local_id", info.local_id); | 65 crash->SetString("local_id", info.local_id); |
| 66 crash->SetString("state", UploadInfoStateAsString(info.state)); | |
| 52 out_value->Append(std::move(crash)); | 67 out_value->Append(std::move(crash)); |
| 53 } | 68 } |
| 54 } | 69 } |
| 55 | 70 |
| 56 } // namespace crash | 71 } // namespace crash |
| OLD | NEW |