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

Unified Diff: components/feedback/feedback_common.h

Issue 2217163003: Clean up and modernize the feedback code (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Actual Fix Created 4 years, 4 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: components/feedback/feedback_common.h
diff --git a/components/feedback/feedback_common.h b/components/feedback/feedback_common.h
index 7c6d56da19e5063843cf083f32fc029443c1a1bb..2f4016e956852b020f4843deb8319c1c69a717b0 100644
--- a/components/feedback/feedback_common.h
+++ b/components/feedback/feedback_common.h
@@ -12,27 +12,21 @@
#include <memory>
#include <string>
#include <utility>
+#include <vector>
#include "base/files/file_util.h"
#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_vector.h"
#include "base/synchronization/lock.h"
namespace userfeedback {
class ExtensionSubmit;
}
-namespace feedback_util {
-bool ZipString(const base::FilePath& filename,
- const std::string& data,
- std::string* compressed_data);
-}
-
// This is the base class for FeedbackData. It primarily knows about
// data common to all feedback reports and how to zip things.
class FeedbackCommon : public base::RefCountedThreadSafe<FeedbackCommon> {
public:
- typedef std::map<std::string, std::string> SystemLogsMap;
+ using SystemLogsMap = std::map<std::string, std::string>;
struct AttachedFile {
explicit AttachedFile(const std::string& filename,
@@ -43,23 +37,12 @@ class FeedbackCommon : public base::RefCountedThreadSafe<FeedbackCommon> {
std::unique_ptr<std::string> data;
};
- // Determine if the given feedback value is small enough to not need to
- // be compressed.
- static bool BelowCompressionThreshold(const std::string& content);
afakhry 2016/08/05 22:50:52 Moved to anonymous namespace.
-
FeedbackCommon();
- void CompressFile(const base::FilePath& filename,
afakhry 2016/08/05 22:50:53 Moved to protected.
- const std::string& zipname,
- std::unique_ptr<std::string> data);
void AddFile(const std::string& filename, std::unique_ptr<std::string> data);
void AddLog(const std::string& name, const std::string& value);
void AddLogs(std::unique_ptr<SystemLogsMap> logs);
- void CompressLogs();
afakhry 2016/08/05 22:50:52 Moved to protected.
-
- void AddFilesAndLogsToReport(
- userfeedback::ExtensionSubmit* feedback_data) const;
afakhry 2016/08/05 22:50:52 Moved to private.
// Fill in |feedback_data| with all the data that we have collected.
// CompressLogs() must have already been called.
@@ -76,7 +59,9 @@ class FeedbackCommon : public base::RefCountedThreadSafe<FeedbackCommon> {
std::string user_agent() const { return user_agent_; }
std::string locale() const { return locale_; }
- const AttachedFile* attachment(size_t i) const { return attachments_[i]; }
+ const AttachedFile* attachment(size_t i) const {
+ return attachments_[i].get();
+ }
size_t attachments() const { return attachments_.size(); }
// Setters
@@ -102,10 +87,22 @@ class FeedbackCommon : public base::RefCountedThreadSafe<FeedbackCommon> {
protected:
virtual ~FeedbackCommon();
+ // Compresses the |data_to_be_compressed| to an attachment file to this
+ // feedback data with name |zipname|. If |zipname| is empty, the |filename|
+ // will be used and appended a ".zip" extension.
+ void CompressFile(const base::FilePath& filename,
+ const std::string& zipname,
+ std::unique_ptr<std::string> data_to_be_compressed);
+
+ void CompressLogs();
+
private:
friend class base::RefCountedThreadSafe<FeedbackCommon>;
friend class FeedbackCommonTest;
+ void AddFilesAndLogsToReport(
+ userfeedback::ExtensionSubmit* feedback_data) const;
+
// Returns true if a product ID was set in the feedback report.
bool HasProductId() const { return product_id_ != -1; }
@@ -122,7 +119,7 @@ class FeedbackCommon : public base::RefCountedThreadSafe<FeedbackCommon> {
// It is possible that multiple attachment add calls are running in
// parallel, so synchronize access.
base::Lock attachments_lock_;
- ScopedVector<AttachedFile> attachments_;
+ std::vector<std::unique_ptr<AttachedFile>> attachments_;
std::unique_ptr<SystemLogsMap> logs_;
};

Powered by Google App Engine
This is Rietveld 408576698