| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/feedback/feedback_report.h" | 5 #include "components/feedback/feedback_report.h" |
| 6 | 6 |
| 7 #include "base/files/file.h" | 7 #include "base/files/file.h" |
| 8 #include "base/files/file_enumerator.h" | 8 #include "base/files/file_enumerator.h" |
| 9 #include "base/files/file_util.h" | 9 #include "base/files/file_util.h" |
| 10 #include "base/files/important_file_writer.h" | 10 #include "base/files/important_file_writer.h" |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 47 reports_task_runner_(task_runner) { | 47 reports_task_runner_(task_runner) { |
| 48 if (reports_path_.empty()) | 48 if (reports_path_.empty()) |
| 49 return; | 49 return; |
| 50 file_ = reports_path_.AppendASCII( | 50 file_ = reports_path_.AppendASCII( |
| 51 kFeedbackReportFilenamePrefix + base::GenerateGUID()); | 51 kFeedbackReportFilenamePrefix + base::GenerateGUID()); |
| 52 | 52 |
| 53 reports_task_runner_->PostTask(FROM_HERE, base::Bind( | 53 reports_task_runner_->PostTask(FROM_HERE, base::Bind( |
| 54 &WriteReportOnBlockingPool, reports_path_, file_, data_)); | 54 &WriteReportOnBlockingPool, reports_path_, file_, data_)); |
| 55 } | 55 } |
| 56 | 56 |
| 57 FeedbackReport::~FeedbackReport() {} | 57 // static |
| 58 | 58 const char FeedbackReport::kCrashReportIdsKey[] = "crash_report_ids"; |
| 59 void FeedbackReport::DeleteReportOnDisk() { | |
| 60 reports_task_runner_->PostTask(FROM_HERE, base::Bind( | |
| 61 base::IgnoreResult(&base::DeleteFile), file_, false)); | |
| 62 } | |
| 63 | 59 |
| 64 // static | 60 // static |
| 65 void FeedbackReport::LoadReportsAndQueue( | 61 void FeedbackReport::LoadReportsAndQueue( |
| 66 const base::FilePath& user_dir, QueueCallback callback) { | 62 const base::FilePath& user_dir, QueueCallback callback) { |
| 67 if (user_dir.empty()) | 63 if (user_dir.empty()) |
| 68 return; | 64 return; |
| 69 | 65 |
| 70 base::FileEnumerator enumerator(user_dir, | 66 base::FileEnumerator enumerator(user_dir, |
| 71 false, | 67 false, |
| 72 base::FileEnumerator::FILES, | 68 base::FileEnumerator::FILES, |
| 73 kFeedbackReportFilenameWildcard); | 69 kFeedbackReportFilenameWildcard); |
| 74 for (base::FilePath name = enumerator.Next(); | 70 for (base::FilePath name = enumerator.Next(); |
| 75 !name.empty(); | 71 !name.empty(); |
| 76 name = enumerator.Next()) { | 72 name = enumerator.Next()) { |
| 77 std::string data; | 73 std::string data; |
| 78 if (ReadFileToString(name, &data)) | 74 if (ReadFileToString(name, &data)) |
| 79 callback.Run(data); | 75 callback.Run(data); |
| 80 base::DeleteFile(name, false); | 76 base::DeleteFile(name, false); |
| 81 } | 77 } |
| 82 } | 78 } |
| 83 | 79 |
| 80 void FeedbackReport::DeleteReportOnDisk() { |
| 81 reports_task_runner_->PostTask( |
| 82 FROM_HERE, |
| 83 base::Bind(base::IgnoreResult(&base::DeleteFile), file_, false)); |
| 84 } |
| 85 |
| 86 FeedbackReport::~FeedbackReport() {} |
| 87 |
| 84 } // namespace feedback | 88 } // namespace feedback |
| OLD | NEW |