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.
5 #ifndef ANDROID_WEBVIEW_BROWSER_AW_REQUEST_INTERCEPTOR_H_
6 #define ANDROID_WEBVIEW_BROWSER_AW_REQUEST_INTERCEPTOR_H_
8 #include "base/memory/scoped_ptr.h"
9 #include "net/url_request/url_request_interceptor.h"
15 class URLRequestContextGetter;
17 class NetworkDelegate;
20 namespace android_webview {
22 class AwWebResourceResponse;
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 {
29 AwRequestInterceptor();
30 virtual ~AwRequestInterceptor();
32 // net::URLRequestInterceptor override --------------------------------------
33 virtual net::URLRequestJob* MaybeInterceptRequest(
34 net::URLRequest* request,
35 net::NetworkDelegate* network_delegate) const override;
38 scoped_ptr<AwWebResourceResponse> QueryForAwWebResourceResponse(
40 net::URLRequest* request) const;
42 DISALLOW_COPY_AND_ASSIGN(AwRequestInterceptor);
45 } // namespace android_webview
47 #endif // ANDROID_WEBVIEW_BROWSER_AW_REQUEST_INTERCEPTOR_H_