Home | History | Annotate | Download | only in net
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef ANDROID_WEBVIEW_BROWSER_NET_AW_NETWORK_DELEGATE_H_
      6 #define ANDROID_WEBVIEW_BROWSER_NET_AW_NETWORK_DELEGATE_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "net/base/network_delegate.h"
     10 
     11 namespace data_reduction_proxy {
     12 class DataReductionProxyAuthRequestHandler;
     13 class DataReductionProxyParams;
     14 }
     15 
     16 namespace net {
     17 class ProxyInfo;
     18 class URLRequest;
     19 }
     20 
     21 namespace android_webview {
     22 
     23 // WebView's implementation of the NetworkDelegate.
     24 class AwNetworkDelegate : public net::NetworkDelegate {
     25  public:
     26   AwNetworkDelegate();
     27   virtual ~AwNetworkDelegate();
     28 
     29   // Sets the |DataReductionProxySettings| object to use. If not set, the
     30   // NetworkDelegate will not perform any operations related to the data
     31   // reduction proxy.
     32   void set_data_reduction_proxy_params(
     33       data_reduction_proxy::DataReductionProxyParams* params) {
     34     data_reduction_proxy_params_ = params;
     35   }
     36 
     37   void set_data_reduction_proxy_auth_request_handler(
     38       data_reduction_proxy::DataReductionProxyAuthRequestHandler* handler) {
     39     data_reduction_proxy_auth_request_handler_ = handler;
     40   }
     41 
     42  private:
     43   // NetworkDelegate implementation.
     44   virtual int OnBeforeURLRequest(net::URLRequest* request,
     45                                  const net::CompletionCallback& callback,
     46                                  GURL* new_url) OVERRIDE;
     47   virtual int OnBeforeSendHeaders(net::URLRequest* request,
     48                                   const net::CompletionCallback& callback,
     49                                   net::HttpRequestHeaders* headers) OVERRIDE;
     50   virtual void OnBeforeSendProxyHeaders(
     51       net::URLRequest* request,
     52       const net::ProxyInfo& proxy_info,
     53       net::HttpRequestHeaders* headers) OVERRIDE;
     54   virtual void OnSendHeaders(net::URLRequest* request,
     55                              const net::HttpRequestHeaders& headers) OVERRIDE;
     56   virtual int OnHeadersReceived(
     57       net::URLRequest* request,
     58       const net::CompletionCallback& callback,
     59       const net::HttpResponseHeaders* original_response_headers,
     60       scoped_refptr<net::HttpResponseHeaders>* override_response_headers,
     61       GURL* allowed_unsafe_redirect_url) OVERRIDE;
     62   virtual void OnBeforeRedirect(net::URLRequest* request,
     63                                 const GURL& new_location) OVERRIDE;
     64   virtual void OnResponseStarted(net::URLRequest* request) OVERRIDE;
     65   virtual void OnRawBytesRead(const net::URLRequest& request,
     66                               int bytes_read) OVERRIDE;
     67   virtual void OnCompleted(net::URLRequest* request, bool started) OVERRIDE;
     68   virtual void OnURLRequestDestroyed(net::URLRequest* request) OVERRIDE;
     69   virtual void OnPACScriptError(int line_number,
     70                                 const base::string16& error) OVERRIDE;
     71   virtual net::NetworkDelegate::AuthRequiredResponse OnAuthRequired(
     72       net::URLRequest* request,
     73       const net::AuthChallengeInfo& auth_info,
     74       const AuthCallback& callback,
     75       net::AuthCredentials* credentials) OVERRIDE;
     76   virtual bool OnCanGetCookies(const net::URLRequest& request,
     77                                const net::CookieList& cookie_list) OVERRIDE;
     78   virtual bool OnCanSetCookie(const net::URLRequest& request,
     79                               const std::string& cookie_line,
     80                               net::CookieOptions* options) OVERRIDE;
     81   virtual bool OnCanAccessFile(const net::URLRequest& request,
     82                                const base::FilePath& path) const OVERRIDE;
     83   virtual bool OnCanThrottleRequest(
     84       const net::URLRequest& request) const OVERRIDE;
     85   virtual int OnBeforeSocketStreamConnect(
     86       net::SocketStream* stream,
     87       const net::CompletionCallback& callback) OVERRIDE;
     88 
     89   // Data reduction proxy parameters object. Must outlive this.
     90   data_reduction_proxy::DataReductionProxyParams* data_reduction_proxy_params_;
     91   data_reduction_proxy::DataReductionProxyAuthRequestHandler*
     92   data_reduction_proxy_auth_request_handler_;
     93 
     94   DISALLOW_COPY_AND_ASSIGN(AwNetworkDelegate);
     95 };
     96 
     97 }  // namespace android_webview
     98 
     99 #endif  // ANDROID_WEBVIEW_BROWSER_NET_AW_NETWORK_DELEGATE_H_
    100