Index: chrome/browser/feedback/feedback_data.cc |
diff --git a/chrome/browser/feedback/feedback_data.cc b/chrome/browser/feedback/feedback_data.cc |
index cdc2889a9c4835a3207e0a1e87a90822ff482dd5..cd79f0dad905d343057e19499ee138955d6f409e 100644 |
--- a/chrome/browser/feedback/feedback_data.cc |
+++ b/chrome/browser/feedback/feedback_data.cc |
@@ -79,57 +79,49 @@ FeedbackData::FeedbackData() : profile_(NULL), |
FeedbackData::~FeedbackData() { |
} |
-bool FeedbackData::IsDataComplete() { |
- return (syslogs_compression_complete_ || !sys_info_.get()) && |
- feedback_page_data_complete_; |
-} |
-void FeedbackData::SendReport() { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- if (IsDataComplete() && !report_sent_) { |
- report_sent_ = true; |
- feedback_util::SendReport(this); |
- } |
-} |
- |
void FeedbackData::OnFeedbackPageDataComplete() { |
feedback_page_data_complete_ = true; |
SendReport(); |
} |
-void FeedbackData::set_sys_info( |
- scoped_ptr<FeedbackData::SystemLogsMap> sys_info) { |
- if (sys_info.get()) |
- CompressSyslogs(sys_info.Pass()); |
-} |
- |
-void FeedbackData::CompressSyslogs( |
+void FeedbackData::SetAndCompressSystemInfo( |
scoped_ptr<FeedbackData::SystemLogsMap> sys_info) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- // We get the pointer first since base::Passed will nullify the scoper, hence |
- // it's not safe to use <scoper>.get() as a parameter to PostTaskAndReply. |
- FeedbackData::SystemLogsMap* sys_info_ptr = sys_info.get(); |
- std::string* compressed_logs_ptr = new std::string; |
- scoped_ptr<std::string> compressed_logs(compressed_logs_ptr); |
- BrowserThread::PostBlockingPoolTaskAndReply( |
- FROM_HERE, |
- base::Bind(&ZipLogs, |
- sys_info_ptr, |
- compressed_logs_ptr), |
- base::Bind(&FeedbackData::OnCompressLogsComplete, |
- this, |
- base::Passed(&sys_info), |
- base::Passed(&compressed_logs))); |
+ sys_info_ = sys_info.Pass(); |
+ if (sys_info_.get()) { |
+ std::string* compressed_logs_ptr = new std::string; |
+ scoped_ptr<std::string> compressed_logs(compressed_logs_ptr); |
+ BrowserThread::PostBlockingPoolTaskAndReply( |
+ FROM_HERE, |
+ base::Bind(&ZipLogs, |
+ sys_info_.get(), |
+ compressed_logs_ptr), |
+ base::Bind(&FeedbackData::OnCompressLogsComplete, |
+ this, |
+ base::Passed(&compressed_logs))); |
+ } |
} |
void FeedbackData::OnCompressLogsComplete( |
- scoped_ptr<FeedbackData::SystemLogsMap> sys_info, |
scoped_ptr<std::string> compressed_logs) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- sys_info_ = sys_info.Pass(); |
compressed_logs_ = compressed_logs.Pass(); |
syslogs_compression_complete_ = true; |
SendReport(); |
} |
+ |
+bool FeedbackData::IsDataComplete() { |
+ return (syslogs_compression_complete_ || !sys_info_.get()) && |
+ feedback_page_data_complete_; |
+} |
+ |
+void FeedbackData::SendReport() { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ if (IsDataComplete() && !report_sent_) { |
+ report_sent_ = true; |
+ feedback_util::SendReport(this); |
+ } |
+} |