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