quic_http_utils.cc 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // Copyright 2013 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. #include "net/quic/quic_http_utils.h"
  5. #include <utility>
  6. #include "base/metrics/histogram_macros.h"
  7. #include "net/spdy/spdy_log_util.h"
  8. namespace net {
  9. spdy::SpdyPriority ConvertRequestPriorityToQuicPriority(
  10. const RequestPriority priority) {
  11. DCHECK_GE(priority, MINIMUM_PRIORITY);
  12. DCHECK_LE(priority, MAXIMUM_PRIORITY);
  13. return static_cast<spdy::SpdyPriority>(HIGHEST - priority);
  14. }
  15. RequestPriority ConvertQuicPriorityToRequestPriority(
  16. spdy::SpdyPriority priority) {
  17. // Handle invalid values gracefully.
  18. return (priority >= 5) ? IDLE
  19. : static_cast<RequestPriority>(HIGHEST - priority);
  20. }
  21. base::Value QuicRequestNetLogParams(quic::QuicStreamId stream_id,
  22. const spdy::Http2HeaderBlock* headers,
  23. spdy::SpdyPriority priority,
  24. NetLogCaptureMode capture_mode) {
  25. base::Value dict = Http2HeaderBlockNetLogParams(headers, capture_mode);
  26. DCHECK(dict.is_dict());
  27. dict.GetDict().Set("quic_priority", static_cast<int>(priority));
  28. dict.GetDict().Set("quic_stream_id", static_cast<int>(stream_id));
  29. return dict;
  30. }
  31. base::Value QuicResponseNetLogParams(quic::QuicStreamId stream_id,
  32. bool fin_received,
  33. const spdy::Http2HeaderBlock* headers,
  34. NetLogCaptureMode capture_mode) {
  35. base::Value dict = Http2HeaderBlockNetLogParams(headers, capture_mode);
  36. dict.GetDict().Set("quic_stream_id", static_cast<int>(stream_id));
  37. dict.GetDict().Set("fin", fin_received);
  38. return dict;
  39. }
  40. } // namespace net