1eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
2eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// found in the LICENSE file.
4eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
5eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "net/http/proxy_connect_redirect_http_stream.h"
6eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
7eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include <cstddef>
8eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
9eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/logging.h"
10eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "net/base/net_errors.h"
11eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
12eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochnamespace net {
13eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
14eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochProxyConnectRedirectHttpStream::ProxyConnectRedirectHttpStream(
15eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    LoadTimingInfo* load_timing_info)
16eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    : has_load_timing_info_(load_timing_info != NULL) {
17eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  if (has_load_timing_info_)
18eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    load_timing_info_ = *load_timing_info;
19eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
20eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
21eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochProxyConnectRedirectHttpStream::~ProxyConnectRedirectHttpStream() {}
22eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
23eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochint ProxyConnectRedirectHttpStream::InitializeStream(
24eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    const HttpRequestInfo* request_info,
25eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    RequestPriority priority,
26eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    const BoundNetLog& net_log,
27eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    const CompletionCallback& callback) {
28eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  NOTREACHED();
29eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  return OK;
30eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
31eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
32eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochint ProxyConnectRedirectHttpStream::SendRequest(
33eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    const HttpRequestHeaders& request_headers,
34eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    HttpResponseInfo* response,
35eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    const CompletionCallback& callback) {
36eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  NOTREACHED();
37eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  return OK;
38eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
39eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
40eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochint ProxyConnectRedirectHttpStream::ReadResponseHeaders(
41eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    const CompletionCallback& callback) {
42eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  NOTREACHED();
43eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  return OK;
44eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
45eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
46eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochint ProxyConnectRedirectHttpStream::ReadResponseBody(
47eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    IOBuffer* buf,
48eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    int buf_len,
49eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    const CompletionCallback& callback) {
50eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  NOTREACHED();
51eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  return OK;
52eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
53eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
54eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid ProxyConnectRedirectHttpStream::Close(bool not_reusable) {}
55eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
56eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochbool ProxyConnectRedirectHttpStream::IsResponseBodyComplete() const {
57eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  NOTREACHED();
58eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  return true;
59eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
60eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
61eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochbool ProxyConnectRedirectHttpStream::CanFindEndOfResponse() const {
62eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  return true;
63eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
64eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
65eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochbool ProxyConnectRedirectHttpStream::IsConnectionReused() const {
66eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  NOTREACHED();
67eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  return false;
68eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
69eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
70eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid ProxyConnectRedirectHttpStream::SetConnectionReused() {
71eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  NOTREACHED();
72eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
73eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
74eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochbool ProxyConnectRedirectHttpStream::IsConnectionReusable() const {
75eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  NOTREACHED();
76eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  return false;
77eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
78eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)int64 ProxyConnectRedirectHttpStream::GetTotalReceivedBytes() const {
805d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  return 0;
815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
83eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochbool ProxyConnectRedirectHttpStream::GetLoadTimingInfo(
84eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    LoadTimingInfo* load_timing_info) const {
85eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  if (!has_load_timing_info_)
86eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    return false;
87eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
88eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  *load_timing_info = load_timing_info_;
89eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  return true;
90eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
91eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
92eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid ProxyConnectRedirectHttpStream::GetSSLInfo(SSLInfo* ssl_info) {
93eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  NOTREACHED();
94eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
95eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
96eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid ProxyConnectRedirectHttpStream::GetSSLCertRequestInfo(
97eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    SSLCertRequestInfo* cert_request_info) {
98eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  NOTREACHED();
99eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
100eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
101eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochbool ProxyConnectRedirectHttpStream::IsSpdyHttpStream() const {
102eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  NOTREACHED();
103eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  return false;
104eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
105eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
106eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochvoid ProxyConnectRedirectHttpStream::Drain(HttpNetworkSession* session) {
107eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  NOTREACHED();
108eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
109eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
1103551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)void ProxyConnectRedirectHttpStream::SetPriority(RequestPriority priority) {
1113551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  // Nothing to do.
1123551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)}
1133551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
114eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochUploadProgress ProxyConnectRedirectHttpStream::GetUploadProgress() const {
115eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  return UploadProgress();
116eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
117eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
118eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen MurdochHttpStream* ProxyConnectRedirectHttpStream::RenewStreamForAuth() {
119eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  NOTREACHED();
120eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  return NULL;
121eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}
122eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
123eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}  // namespace
124