blob: adbb18b4f2c0c0784ce1655e1bc5d14e93d7fc9f [file] [log] [blame]
[email protected]5b15e132012-10-16 16:28:511// 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"
[email protected]3b90aab2014-05-30 17:56:159#include "net/url_request/url_request_interceptor.h"
[email protected]5b15e132012-10-16 16:28:5110
11class GURL;
12
13namespace net {
14class URLRequest;
15class URLRequestContextGetter;
16class URLRequestJob;
17class NetworkDelegate;
18}
19
20namespace android_webview {
21
[email protected]e41d59c2014-06-20 19:59:5522class AwWebResourceResponse;
[email protected]5b15e132012-10-16 16:28:5123
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.
[email protected]3b90aab2014-05-30 17:56:1527class AwRequestInterceptor : public net::URLRequestInterceptor {
[email protected]5b15e132012-10-16 16:28:5128 public:
29 AwRequestInterceptor();
dcheng996c125c2015-02-04 02:25:4930 ~AwRequestInterceptor() override;
[email protected]5b15e132012-10-16 16:28:5131
[email protected]3b90aab2014-05-30 17:56:1532 // net::URLRequestInterceptor override --------------------------------------
dcheng996c125c2015-02-04 02:25:4933 net::URLRequestJob* MaybeInterceptRequest(
[email protected]5b15e132012-10-16 16:28:5134 net::URLRequest* request,
mostynbd731a4912014-10-07 13:36:1135 net::NetworkDelegate* network_delegate) const override;
[email protected]5b15e132012-10-16 16:28:5136
37 private:
[email protected]e41d59c2014-06-20 19:59:5538 scoped_ptr<AwWebResourceResponse> QueryForAwWebResourceResponse(
[email protected]5b15e132012-10-16 16:28:5139 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_