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