blob: 75bc1e7b8e455e858d5cd7d32933397b7e7c5060 [file] [log] [blame]
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SERVICES_NETWORK_PUBLIC_CPP_PARSED_HEADERS_H_
#define SERVICES_NETWORK_PUBLIC_CPP_PARSED_HEADERS_H_
#include "base/component_export.h"
#include "base/memory/scoped_refptr.h"
#include "services/network/public/mojom/parsed_headers.mojom.h"
class GURL;
namespace net {
class HttpResponseHeaders;
}
namespace network {
// This function must remain:
// - As 'pure' as possible. See [pure-function].
// - Callable from any processes.
// For security reasons, highly proviledged processes must never call it
// directly against untrustworthy inputs. See [rule-of-2]. In this case, you
// can call it indirectly via NetworkContext.ParseHeaders().
//
// [rule-of-2]: //docs/security/rule-of-2.md
// [pure-function]: https://en.wikipedia.org/wiki/Pure_function
COMPONENT_EXPORT(NETWORK_CPP)
mojom::ParsedHeadersPtr PopulateParsedHeaders(
const net::HttpResponseHeaders* headers,
const GURL& url);
} // namespace network
#endif // SERVICES_NETWORK_PUBLIC_CPP_PARSED_HEADERS_H_