Commit 9e2c51a1 authored by Ramin Halavati's avatar Ramin Halavati Committed by Commit Bot

Pass annotation in HttpBasicStream::SendRequest().

Network traffic annotation that is received in HttpRequestInfo in
HttpBasicStream::InitializeStream is stored and passed in
HttpBasicStream::SendRequest.

Bug: 656607
Change-Id: I376032e31f6a4b22a45f099944990f15fcbb53c9
Reviewed-on: https://chromium-review.googlesource.com/911668
Commit-Queue: Ramin Halavati <rhalavati@chromium.org>
Reviewed-by: default avatarRyan Hamilton <rch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#536672}
parent 52f11054
......@@ -38,6 +38,7 @@ void HttpBasicState::Initialize(const HttpRequestInfo* request_info,
const NetLogWithSource& net_log) {
DCHECK(!parser_.get());
url_ = request_info->url;
traffic_annotation_ = request_info->traffic_annotation;
request_method_ = request_info->method;
parser_.reset(new HttpStreamParser(
connection_.get(), request_info, read_buf_.get(), net_log));
......
......@@ -15,6 +15,7 @@
#include "base/memory/ref_counted.h"
#include "net/base/net_export.h"
#include "net/base/request_priority.h"
#include "net/traffic_annotation/network_traffic_annotation.h"
#include "url/gurl.h"
namespace net {
......@@ -60,6 +61,10 @@ class NET_EXPORT_PRIVATE HttpBasicState {
// values of request_info_ and using_proxy_.
std::string GenerateRequestLine() const;
MutableNetworkTrafficAnnotationTag traffic_annotation() {
return traffic_annotation_;
}
private:
scoped_refptr<GrowableIOBuffer> read_buf_;
......@@ -76,6 +81,8 @@ class NET_EXPORT_PRIVATE HttpBasicState {
GURL url_;
std::string request_method_;
MutableNetworkTrafficAnnotationTag traffic_annotation_;
DISALLOW_COPY_AND_ASSIGN(HttpBasicState);
};
......
......@@ -9,6 +9,7 @@
#include "net/http/http_request_info.h"
#include "net/log/net_log_with_source.h"
#include "net/socket/client_socket_handle.h"
#include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace net {
......@@ -49,6 +50,16 @@ TEST(HttpBasicStateTest, InitializeWorks) {
EXPECT_TRUE(state.parser());
}
TEST(HttpBasicStateTest, TrafficAnnotationStored) {
HttpBasicState state(std::make_unique<ClientSocketHandle>(), false, false);
HttpRequestInfo request_info;
request_info.traffic_annotation =
MutableNetworkTrafficAnnotationTag(TRAFFIC_ANNOTATION_FOR_TESTS);
state.Initialize(&request_info, false, LOW, NetLogWithSource());
EXPECT_EQ(TRAFFIC_ANNOTATION_FOR_TESTS,
NetworkTrafficAnnotationTag(state.traffic_annotation()));
}
TEST(HttpBasicStateTest, DeleteParser) {
HttpBasicState state(std::make_unique<ClientSocketHandle>(), false, false);
const HttpRequestInfo request_info;
......
......@@ -11,7 +11,6 @@
#include "net/http/http_response_body_drainer.h"
#include "net/http/http_stream_parser.h"
#include "net/socket/client_socket_handle.h"
#include "net/traffic_annotation/network_traffic_annotation.h"
namespace net {
......@@ -29,6 +28,7 @@ int HttpBasicStream::InitializeStream(const HttpRequestInfo* request_info,
RequestPriority priority,
const NetLogWithSource& net_log,
CompletionOnceCallback callback) {
DCHECK(request_info->traffic_annotation.is_valid());
state_.Initialize(request_info, can_send_early, priority, net_log);
return OK;
}
......@@ -44,10 +44,10 @@ int HttpBasicStream::SendRequest(const HttpRequestHeaders& headers,
raw_headers.Add(it.name(), it.value());
request_headers_callback_.Run(std::move(raw_headers));
}
// TODO(crbug.com/656607): Add propoer annotation.
return parser()->SendRequest(state_.GenerateRequestLine(), headers,
NO_TRAFFIC_ANNOTATION_BUG_656607, response,
std::move(callback));
return parser()->SendRequest(
state_.GenerateRequestLine(), headers,
NetworkTrafficAnnotationTag(state_.traffic_annotation()), response,
std::move(callback));
}
int HttpBasicStream::ReadResponseHeaders(CompletionOnceCallback callback) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment