#include "net/reporting/reporting_uploader.h"
#include <string>
#include <utility>
#include <vector>
#include "base/functional/callback_helpers.h"
#include "base/memory/raw_ptr.h"
#include "base/not_fatal_until.h"
#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "net/base/elements_upload_data_stream.h"
#include "net/base/isolation_info.h"
#include "net/base/load_flags.h"
#include "net/base/network_anonymization_key.h"
#include "net/base/upload_bytes_element_reader.h"
#include "net/http/http_response_headers.h"
#include "net/traffic_annotation/network_traffic_annotation.h"
#include "net/url_request/redirect_info.h"
#include "net/url_request/url_request_context.h"
#include "url/gurl.h"
#include "url/origin.h"
namespace net {
namespace {
constexpr char kUploadContentType[] = …;
constexpr net::NetworkTrafficAnnotationTag kReportUploadTrafficAnnotation = …;
bool HasHeaderValues(URLRequest* request,
const std::string& header,
const std::set<std::string>& allowed_values) { … }
ReportingUploader::Outcome ResponseCodeToOutcome(int response_code) { … }
struct PendingUpload { … };
class ReportingUploaderImpl : public ReportingUploader, URLRequest::Delegate { … };
}
ReportingUploader::~ReportingUploader() = default;
std::unique_ptr<ReportingUploader> ReportingUploader::Create(
const URLRequestContext* context) { … }
}