mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2025-02-17 15:33:18 +03:00
83 lines
2.7 KiB
C++
83 lines
2.7 KiB
C++
// Copyright 2015 The Chromium Authors
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#ifndef NET_LOG_NET_LOG_CAPTURE_MODE_H_
|
|
#define NET_LOG_NET_LOG_CAPTURE_MODE_H_
|
|
|
|
#include <stdint.h>
|
|
|
|
#include "net/base/net_export.h"
|
|
|
|
namespace net {
|
|
|
|
// NetLogCaptureMode specifies the logging level.
|
|
//
|
|
// It is used to control which events are emitted to the log, and what level of
|
|
// detail is included in their parameters.
|
|
//
|
|
// The capture mode is expressed as a number, where higher values imply more
|
|
// information.
|
|
//
|
|
// Note the numeric values are used in a bitfield (NetLogCaptureModeSet) so must
|
|
// be sequential starting from 0, and not exceed 31.
|
|
enum class NetLogCaptureMode : uint32_t {
|
|
// Default logging level, which is expected to be light-weight and
|
|
// does best-effort stripping of privacy/security sensitive data.
|
|
//
|
|
// * Includes most HTTP request/response headers, but strips cookies and
|
|
// auth.
|
|
// * Does not include the full bytes read/written to sockets.
|
|
kDefault = 0,
|
|
|
|
// Logging level that includes everything from kDefault, plus sensitive data
|
|
// that it may have strippped.
|
|
//
|
|
// * Includes cookies and authentication headers.
|
|
// * Does not include the full bytes read/written to sockets.
|
|
kIncludeSensitive,
|
|
|
|
// Logging level that includes everything that is possible to be logged.
|
|
//
|
|
// * Includes the actual bytes read/written to sockets
|
|
// * Will result in large log files.
|
|
kEverything,
|
|
|
|
kLast = kEverything,
|
|
};
|
|
|
|
// Bitfield of NetLogCaptureMode, that should be initialized to zero for empty
|
|
// set. Bit "i" being set means that the set contains NetLogCaptureMode with
|
|
// value "i".
|
|
//
|
|
// Use the NetLogCaptureModeSet*() functions to operate on it.
|
|
using NetLogCaptureModeSet = uint32_t;
|
|
|
|
inline NetLogCaptureModeSet NetLogCaptureModeToBit(
|
|
NetLogCaptureMode capture_mode) {
|
|
return 1 << static_cast<uint32_t>(capture_mode);
|
|
}
|
|
|
|
inline bool NetLogCaptureModeSetContains(NetLogCaptureMode capture_mode,
|
|
NetLogCaptureModeSet set) {
|
|
return (set & NetLogCaptureModeToBit(capture_mode)) != 0;
|
|
}
|
|
|
|
inline bool NetLogCaptureModeSetAdd(NetLogCaptureMode value,
|
|
NetLogCaptureModeSet* set) {
|
|
return *set |= NetLogCaptureModeToBit(value);
|
|
}
|
|
|
|
// Returns true if |capture_mode| permits logging sensitive values such as
|
|
// cookies and credentials.
|
|
NET_EXPORT bool NetLogCaptureIncludesSensitive(NetLogCaptureMode capture_mode);
|
|
|
|
// Returns true if |capture_mode| permits logging the full request/response
|
|
// bytes from sockets.
|
|
NET_EXPORT bool NetLogCaptureIncludesSocketBytes(
|
|
NetLogCaptureMode capture_mode);
|
|
|
|
} // namespace net
|
|
|
|
#endif // NET_LOG_NET_LOG_CAPTURE_MODE_H_
|