blob: 52cef80f4cb182b8935fd4bd180ed9bf4731906f [file] [log] [blame]
// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_FEEDBACK_FEEDBACK_UTIL_H_
#define COMPONENTS_FEEDBACK_FEEDBACK_UTIL_H_
#include <optional>
#include <string>
#include <string_view>
#include "base/files/file_path.h"
#include "build/build_config.h"
#include "components/feedback/feedback_common.h"
namespace feedback_util {
// Creates a ZIP file that contains a single file within. That file is named
// `filename` and its contents is `data`. Returns the compressed archive, or
// nullopt on failure.
std::optional<std::string> ZipString(const base::FilePath& filename,
std::string_view data);
// Converts the entries in `sys_info` into a single string. Primarily used for
// creating a system_logs.txt file attached to feedback reports.
std::string LogsToString(const FeedbackCommon::SystemLogsMap& sys_info);
// Removes URL fields from the autofill logs.
void RemoveUrlsFromAutofillData(std::string& autofill_metadata);
#if !BUILDFLAG(IS_WIN)
// Reads the data from the latter part of the file specified by `path`.
// If the file size is greater than `max_size` in bytes, the data will be
// truncated to `max_size`. Returns the file contents, or nullopt on failure.
std::optional<std::string> ReadEndOfFile(const base::FilePath& path,
size_t max_size);
#endif
} // namespace feedback_util
#endif // COMPONENTS_FEEDBACK_FEEDBACK_UTIL_H_