Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1308)

Side by Side Diff: components/crash/core/browser/crashes_ui_util.cc

Issue 2070993002: List all crashes in chrome://crashes, including those not uploaded (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: unittest Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698