| Index: ios/net/clients/crn_forwarding_network_client.mm
|
| diff --git a/ios/net/clients/crn_forwarding_network_client.mm b/ios/net/clients/crn_forwarding_network_client.mm
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..8d8f114114b14bed6cba19912462c03af27ec07f
|
| --- /dev/null
|
| +++ b/ios/net/clients/crn_forwarding_network_client.mm
|
| @@ -0,0 +1,87 @@
|
| +// Copyright 2013 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#import "ios/net/clients/crn_forwarding_network_client.h"
|
| +
|
| +#include "base/logging.h"
|
| +#include "base/mac/scoped_nsobject.h"
|
| +#include "base/threading/thread_checker.h"
|
| +
|
| +@implementation CRNForwardingNetworkClient {
|
| + // Next client in the client chain.
|
| + base::scoped_nsprotocol<id<CRNNetworkClientProtocol>> _underlyingClient;
|
| + base::ThreadChecker _threadChecker;
|
| +}
|
| +
|
| +#pragma mark CRNNetworkClientProtocol methods
|
| +
|
| +- (void)didFailWithNSErrorCode:(NSInteger)nsErrorCode
|
| + netErrorCode:(int)netErrorCode {
|
| + DCHECK(_threadChecker.CalledOnValidThread());
|
| + DCHECK(_underlyingClient);
|
| + [_underlyingClient didFailWithNSErrorCode:nsErrorCode
|
| + netErrorCode:netErrorCode];
|
| +}
|
| +
|
| +- (void)didLoadData:(NSData*)data {
|
| + DCHECK(_threadChecker.CalledOnValidThread());
|
| + DCHECK(_underlyingClient);
|
| + [_underlyingClient didLoadData:data];
|
| +}
|
| +
|
| +- (void)didReceiveResponse:(NSURLResponse*)response {
|
| + DCHECK(_threadChecker.CalledOnValidThread());
|
| + DCHECK(_underlyingClient);
|
| + [_underlyingClient didReceiveResponse:response];
|
| +}
|
| +
|
| +- (void)wasRedirectedToRequest:(NSURLRequest*)request
|
| + nativeRequest:(net::URLRequest*)nativeRequest
|
| + redirectResponse:(NSURLResponse*)response {
|
| + DCHECK(_threadChecker.CalledOnValidThread());
|
| + DCHECK(_underlyingClient);
|
| + [_underlyingClient wasRedirectedToRequest:request
|
| + nativeRequest:nativeRequest
|
| + redirectResponse:response];
|
| +}
|
| +
|
| +- (void)didFinishLoading {
|
| + DCHECK(_threadChecker.CalledOnValidThread());
|
| + DCHECK(_underlyingClient);
|
| + [_underlyingClient didFinishLoading];
|
| +}
|
| +
|
| +- (void)didCreateNativeRequest:(net::URLRequest*)nativeRequest {
|
| + DCHECK(_threadChecker.CalledOnValidThread());
|
| + DCHECK(_underlyingClient);
|
| + [_underlyingClient didCreateNativeRequest:nativeRequest];
|
| +}
|
| +
|
| +- (void)didRecieveAuthChallenge:(net::AuthChallengeInfo*)authInfo
|
| + nativeRequest:(const net::URLRequest&)nativeRequest
|
| + callback:(const network_client::AuthCallback&)callback {
|
| + DCHECK(_threadChecker.CalledOnValidThread());
|
| + DCHECK(_underlyingClient);
|
| + [_underlyingClient didRecieveAuthChallenge:authInfo
|
| + nativeRequest:nativeRequest
|
| + callback:callback];
|
| +}
|
| +
|
| +- (void)cancelAuthRequest {
|
| + DCHECK(_threadChecker.CalledOnValidThread());
|
| + DCHECK(_underlyingClient);
|
| + [_underlyingClient cancelAuthRequest];
|
| +}
|
| +
|
| +- (id<CRNNetworkClientProtocol>)underlyingClient {
|
| + return _underlyingClient;
|
| +}
|
| +
|
| +- (void)setUnderlyingClient:(id<CRNNetworkClientProtocol>)underlyingClient {
|
| + DCHECK(_threadChecker.CalledOnValidThread());
|
| + DCHECK(underlyingClient);
|
| + _underlyingClient.reset([underlyingClient retain]);
|
| +}
|
| +
|
| +@end
|
|
|