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

Unified Diff: chrome/browser/crash_upload_list.cc

Issue 6771021: Implement CrashUploadListWin to enable chrome://crashes on Windows. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Fix max_count logic. Created 9 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/crash_upload_list.cc
diff --git a/chrome/browser/crash_upload_list.cc b/chrome/browser/crash_upload_list.cc
index d10980f6a94c1f7994398596b1ca47969f6eb843..c1f51cd0367cc3d6ab026167056e4b355e16e80f 100644
--- a/chrome/browser/crash_upload_list.cc
+++ b/chrome/browser/crash_upload_list.cc
@@ -9,6 +9,7 @@
#include "base/file_util.h"
#include "base/string_number_conversions.h"
#include "base/string_split.h"
+#include "chrome/browser/crash_upload_list_win.h"
#include "chrome/common/chrome_paths.h"
#include "content/browser/browser_thread.h"
@@ -17,6 +18,15 @@ CrashUploadList::CrashInfo::CrashInfo(const std::string& c, const base::Time& t)
CrashUploadList::CrashInfo::~CrashInfo() {}
+// static
+CrashUploadList* CrashUploadList::Create(Delegate* delegate) {
+#if defined(OS_WIN)
+ return new CrashUploadListWin(delegate);
+#else
+ return new CrashUploadList(delegate);
+#endif
+}
+
CrashUploadList::CrashUploadList(Delegate* delegate) : delegate_(delegate) {}
CrashUploadList::~CrashUploadList() {}
@@ -40,6 +50,10 @@ void CrashUploadList::LoadUploadLog() {
file_util::ReadFileToString(upload_log_path, &contents);
base::SplitStringAlongWhitespace(contents, &log_entries_);
}
+ InformDelegateOfCompletionAsynchronously();
stuartmorgan 2011/03/29 21:19:57 It would be cleaner for the subclass to make a new
Alexei Svitkine (slow) 2011/03/30 15:36:40 Done.
+}
+
+void CrashUploadList::InformDelegateOfCompletionAsynchronously() {
BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
NewRunnableMethod(this, &CrashUploadList::InformDelegateOfCompletion));
}
@@ -52,8 +66,10 @@ void CrashUploadList::InformDelegateOfCompletion() {
void CrashUploadList::GetUploadedCrashes(unsigned int max_count,
std::vector<CrashInfo>* crashes) {
+ unsigned int count = 0;
std::vector<std::string>::reverse_iterator i;
- for (i = log_entries_.rbegin(); i != log_entries_.rend(); ++i) {
+ for (i = log_entries_.rbegin(); i != log_entries_.rend() &&
+ count != max_count; ++i) {
stuartmorgan 2011/03/29 21:19:57 Whoops :( Good catch.
std::vector<std::string> components;
base::SplitString(*i, ',', &components);
// Skip any blank (or corrupted) lines.
@@ -64,5 +80,10 @@ void CrashUploadList::GetUploadedCrashes(unsigned int max_count,
continue;
CrashInfo info(components[1], base::Time::FromDoubleT(seconds_since_epoch));
crashes->push_back(info);
+ ++count;
}
}
+
+std::vector<std::string>& CrashUploadList::log_entries() {
+ return log_entries_;
+}

Powered by Google App Engine
This is Rietveld 408576698