Home | History | Annotate | Download | only in browser
      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_
     48