| 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);
|
| -
|
| FeedbackCommon();
|
|
|
| - void CompressFile(const base::FilePath& filename,
|
| - 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();
|
| -
|
| - void AddFilesAndLogsToReport(
|
| - userfeedback::ExtensionSubmit* feedback_data) const;
|
|
|
| // 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_;
|
| };
|
|
|