| 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 {"crashHeaderFormatLocalOnly", IDS_CRASH_CRASH_HEADER_FORMAT_LOCAL_ONLY}, |
| 25 {"crashTimeFormat", IDS_CRASH_CRASH_TIME_FORMAT}, | 26 {"crashTimeFormat", IDS_CRASH_CRASH_TIME_FORMAT}, |
| 27 {"crashNotUploaded", IDS_CRASH_CRASH_NOT_UPLOADED}, |
| 28 {"crashPending", IDS_CRASH_CRASH_PENDING}, |
| 26 {"crashesTitle", IDS_CRASH_TITLE}, | 29 {"crashesTitle", IDS_CRASH_TITLE}, |
| 27 {"disabledHeader", IDS_CRASH_DISABLED_HEADER}, | 30 {"disabledHeader", IDS_CRASH_DISABLED_HEADER}, |
| 28 {"disabledMessage", IDS_CRASH_DISABLED_MESSAGE}, | 31 {"disabledMessage", IDS_CRASH_DISABLED_MESSAGE}, |
| 29 {"noCrashesMessage", IDS_CRASH_NO_CRASHES_MESSAGE}, | 32 {"noCrashesMessage", IDS_CRASH_NO_CRASHES_MESSAGE}, |
| 30 {"uploadCrashesLinkText", IDS_CRASH_UPLOAD_MESSAGE}, | 33 {"uploadCrashesLinkText", IDS_CRASH_UPLOAD_MESSAGE}, |
| 31 }; | 34 }; |
| 32 | 35 |
| 33 const size_t kCrashesUILocalizedStringsCount = | 36 const size_t kCrashesUILocalizedStringsCount = |
| 34 arraysize(kCrashesUILocalizedStrings); | 37 arraysize(kCrashesUILocalizedStrings); |
| 35 | 38 |
| 36 const char kCrashesUICrashesJS[] = "crashes.js"; | 39 const char kCrashesUICrashesJS[] = "crashes.js"; |
| 37 const char kCrashesUIRequestCrashList[] = "requestCrashList"; | 40 const char kCrashesUIRequestCrashList[] = "requestCrashList"; |
| 38 const char kCrashesUIRequestCrashUpload[] = "requestCrashUpload"; | 41 const char kCrashesUIRequestCrashUpload[] = "requestCrashUpload"; |
| 39 const char kCrashesUIShortProductName[] = "shortProductName"; | 42 const char kCrashesUIShortProductName[] = "shortProductName"; |
| 40 const char kCrashesUIUpdateCrashList[] = "updateCrashList"; | 43 const char kCrashesUIUpdateCrashList[] = "updateCrashList"; |
| 41 | 44 |
| 45 std::string UploadInfoStateAsString(UploadList::UploadInfo::State state) { |
| 46 switch (state) { |
| 47 case UploadList::UploadInfo::State::NotUploaded: |
| 48 return "not_uploaded"; |
| 49 case UploadList::UploadInfo::State::Pending: |
| 50 return "pending"; |
| 51 case UploadList::UploadInfo::State::Uploaded: |
| 52 return "uploaded"; |
| 53 } |
| 54 |
| 55 NOTREACHED(); |
| 56 return ""; |
| 57 } |
| 58 |
| 42 void UploadListToValue(UploadList* upload_list, base::ListValue* out_value) { | 59 void UploadListToValue(UploadList* upload_list, base::ListValue* out_value) { |
| 43 std::vector<UploadList::UploadInfo> crashes; | 60 std::vector<UploadList::UploadInfo> crashes; |
| 44 upload_list->GetUploads(50, &crashes); | 61 upload_list->GetUploads(50, &crashes); |
| 45 | 62 |
| 46 for (const auto& info : crashes) { | 63 for (const auto& info : crashes) { |
| 47 std::unique_ptr<base::DictionaryValue> crash(new base::DictionaryValue()); | 64 std::unique_ptr<base::DictionaryValue> crash(new base::DictionaryValue()); |
| 48 crash->SetString("id", info.upload_id); | 65 crash->SetString("id", info.upload_id); |
| 49 crash->SetString("time", | 66 if (info.state == UploadList::UploadInfo::State::Uploaded) { |
| 50 base::TimeFormatFriendlyDateAndTime(info.upload_time)); | 67 crash->SetString("time", |
| 68 base::TimeFormatFriendlyDateAndTime(info.upload_time)); |
| 69 } else { |
| 70 crash->SetString("time", |
| 71 base::TimeFormatFriendlyDateAndTime(info.capture_time)); |
| 72 } |
| 51 crash->SetString("local_id", info.local_id); | 73 crash->SetString("local_id", info.local_id); |
| 74 crash->SetString("state", UploadInfoStateAsString(info.state)); |
| 52 out_value->Append(std::move(crash)); | 75 out_value->Append(std::move(crash)); |
| 53 } | 76 } |
| 54 } | 77 } |
| 55 | 78 |
| 56 } // namespace crash | 79 } // namespace crash |
| OLD | NEW |