blob: 7164cdfcf029130f11c601c9ef3066273dd21aaa [file] [log] [blame]
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "stream_socket_handle.h"
#include <memory>
#include "net/base/load_timing_info.h"
#include "net/log/net_log_with_source.h"
#include "net/socket/stream_socket.h"
namespace net {
StreamSocketHandle::StreamSocketHandle() = default;
StreamSocketHandle::~StreamSocketHandle() = default;
void StreamSocketHandle::SetSocket(std::unique_ptr<StreamSocket> socket) {
socket_ = std::move(socket);
}
std::unique_ptr<StreamSocket> StreamSocketHandle::PassSocket() {
return std::move(socket_);
}
bool StreamSocketHandle::GetLoadTimingInfo(
bool is_reused,
LoadTimingInfo* load_timing_info) const {
if (socket_) {
load_timing_info->socket_log_id = socket_->NetLog().source().id;
} else {
// Only return load timing information when there's a socket.
return false;
}
load_timing_info->socket_reused = is_reused;
// No times if the socket is reused.
if (is_reused) {
return true;
}
load_timing_info->connect_timing = connect_timing_;
return true;
}
void StreamSocketHandle::AddHigherLayeredPool(HigherLayeredPool* pool) {}
void StreamSocketHandle::RemoveHigherLayeredPool(HigherLayeredPool* pool) {}
} // namespace net