910e62b5创建于 1月15日历史提交
// Copyright 2021 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_PROXY_RESOLUTION_WIN_WINHTTP_STATUS_H_
#define NET_PROXY_RESOLUTION_WIN_WINHTTP_STATUS_H_

namespace net {

// This describes the full set of failure points that could occur when calling
// into the proxy_resolver_win service. Further detail is additionally provided
// by the Windows error code, which will be supplied alongside this enum.
//
// Keep in sync with proxy_resolver.mojom.WinHttpStatus.

// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
// LINT.IfChange(WinHttpStatus)
enum class WinHttpStatus {
  // No Error.
  kOk = 0,

  // Aborted by caller.
  kAborted = 1,

  // WinHttpOpen() API failed.
  kWinHttpOpenFailed = 2,

  // WinHttpSetTimeouts() API failed.
  kWinHttpSetTimeoutsFailed = 3,

  // WinHttpSetStatusCallback() API failed.
  kWinHttpSetStatusCallbackFailed = 4,

  // WinHttpGetIEProxyConfigForCurrentUser() API failed.
  kWinHttpGetIEProxyConfigForCurrentUserFailed = 5,

  // WinHttpCreateProxyResolver() API failed.
  kWinHttpCreateProxyResolverFailed = 6,

  // WinHttpGetProxyForURLEx() API failed.
  kWinHttpGetProxyForURLExFailed = 7,

  // Proxy resolution callback returned an error.
  kStatusCallbackFailed = 8,

  // WinHttpGetProxyResult() API failed.
  kWinHttpGetProxyResultFailed = 9,

  // WinHttpGetProxyResult() API unexpectedly returned an empty list.
  kEmptyProxyList = 10,

  kMaxValue = kEmptyProxyList,
};
// LINT.ThenChange(//tools/metrics/histograms/metadata/net/enums.xml:WinHttpStatus)

}  // namespace net

#endif  // NET_PROXY_RESOLUTION_WIN_WINHTTP_STATUS_H_