Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / android_webview / browser / net / aw_network_delegate.h
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_