Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / android_webview / browser / aw_request_interceptor.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_AW_REQUEST_INTERCEPTOR_H_
6 #define ANDROID_WEBVIEW_BROWSER_AW_REQUEST_INTERCEPTOR_H_
7
8 #include "base/memory/scoped_ptr.h"
9 #include "net/url_request/url_request_interceptor.h"
10
11 class GURL;
12
13 namespace net {
14 class URLRequest;
15 class URLRequestContextGetter;
16 class URLRequestJob;
17 class NetworkDelegate;
18 }
19
20 namespace android_webview {
21
22 class AwWebResourceResponse;
23
24 // This class allows the Java-side embedder to substitute the default
25 // URLRequest of a given request for an alternative job that will read data
26 // from a Java stream.
27 class AwRequestInterceptor : public net::URLRequestInterceptor {
28  public:
29   AwRequestInterceptor();
30   virtual ~AwRequestInterceptor();
31
32   // net::URLRequestInterceptor override --------------------------------------
33   virtual net::URLRequestJob* MaybeInterceptRequest(
34       net::URLRequest* request,
35       net::NetworkDelegate* network_delegate) const override;
36
37  private:
38   scoped_ptr<AwWebResourceResponse> QueryForAwWebResourceResponse(
39       const GURL& location,
40       net::URLRequest* request) const;
41
42   DISALLOW_COPY_AND_ASSIGN(AwRequestInterceptor);
43 };
44
45 } // namespace android_webview
46
47 #endif  // ANDROID_WEBVIEW_BROWSER_AW_REQUEST_INTERCEPTOR_H_