blob: 94a29beee7c8e924fbf2d68e4dc6b5102fd207e8 [file] [log] [blame]
juliatuttle1690bc62017-03-29 17:16:021// Copyright 2017 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef NET_REPORTING_REPORTING_HEADER_PARSER_H_
6#define NET_REPORTING_REPORTING_HEADER_PARSER_H_
7
Julia Tuttleec467a5f2018-02-22 20:22:458#include <memory>
juliatuttle1690bc62017-03-29 17:16:029
10#include "base/macros.h"
juliatuttle1690bc62017-03-29 17:16:0211#include "net/base/net_export.h"
12
13class GURL;
14
Julia Tuttleec467a5f2018-02-22 20:22:4515namespace base {
16class Value;
17} // namespace base
18
juliatuttle1690bc62017-03-29 17:16:0219namespace net {
20
juliatuttleee4b55e2017-04-07 17:09:4521class ReportingContext;
juliatuttle1690bc62017-03-29 17:16:0222
juliatuttle1690bc62017-03-29 17:16:0223class NET_EXPORT ReportingHeaderParser {
24 public:
juliatuttle667c0bb2017-07-06 15:17:1325 static void RecordHeaderDiscardedForNoReportingService();
26 static void RecordHeaderDiscardedForInvalidSSLInfo();
27 static void RecordHeaderDiscardedForCertStatusError();
Julia Tuttleec467a5f2018-02-22 20:22:4528 static void RecordHeaderDiscardedForInvalidJson();
juliatuttle667c0bb2017-07-06 15:17:1329
juliatuttleee4b55e2017-04-07 17:09:4530 static void ParseHeader(ReportingContext* context,
juliatuttle1690bc62017-03-29 17:16:0231 const GURL& url,
Julia Tuttleec467a5f2018-02-22 20:22:4532 std::unique_ptr<base::Value> value);
juliatuttle1690bc62017-03-29 17:16:0233
34 private:
juliatuttle1690bc62017-03-29 17:16:0235 DISALLOW_IMPLICIT_CONSTRUCTORS(ReportingHeaderParser);
36};
37
38} // namespace net
39
40#endif // NET_REPORTING_REPORTING_HEADER_PARSER_H_