Plumb SocketTag from URLRequest to HttpRequestInfo
Bug: 520198
Change-Id: I4313f295c704d852c98feadc009e5720c0aea5a9
Reviewed-on: https://chromium-review.googlesource.com/893804
Commit-Queue: Paul Jensen <[email protected]>
Reviewed-by: Matt Menke <[email protected]>
Cr-Commit-Position: refs/heads/master@{#537660}
diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc
index cb486985..37f14a97 100644
--- a/net/url_request/url_request_unittest.cc
+++ b/net/url_request/url_request_unittest.cc
@@ -12213,4 +12213,42 @@
EXPECT_FALSE(r->is_pending());
}
+// Test that URLRequests get properly tagged.
+#if defined(OS_ANDROID)
+TEST_F(URLRequestTestHTTP, TestTagging) {
+ ASSERT_TRUE(http_test_server()->Start());
+
+ // The tag under which the system reports untagged traffic.
+ static const int32_t UNTAGGED_TAG = 0;
+
+ uint64_t old_traffic = GetTaggedBytes(UNTAGGED_TAG);
+
+ // Untagged traffic should be tagged with tag UNTAGGED_TAG.
+ TestDelegate delegate;
+ std::unique_ptr<URLRequest> req(default_context_.CreateRequest(
+ http_test_server()->GetURL("/"), DEFAULT_PRIORITY, &delegate,
+ TRAFFIC_ANNOTATION_FOR_TESTS));
+ EXPECT_EQ(SocketTag(), req->socket_tag());
+ req->Start();
+ base::RunLoop().Run();
+
+ EXPECT_GT(GetTaggedBytes(UNTAGGED_TAG), old_traffic);
+
+ int32_t tag_val1 = 0x12345678;
+ SocketTag tag1(SocketTag::UNSET_UID, tag_val1);
+ old_traffic = GetTaggedBytes(tag_val1);
+
+ // Test specific tag value.
+ req = default_context_.CreateRequest(http_test_server()->GetURL("/"),
+ DEFAULT_PRIORITY, &delegate,
+ TRAFFIC_ANNOTATION_FOR_TESTS);
+ req->set_socket_tag(tag1);
+ EXPECT_EQ(tag1, req->socket_tag());
+ req->Start();
+ base::RunLoop().Run();
+
+ EXPECT_GT(GetTaggedBytes(tag_val1), old_traffic);
+}
+#endif
+
} // namespace net