Home | History | Annotate | Download | only in url_request
      1 // Copyright 2014 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 #include "net/url_request/url_request_intercepting_job_factory.h"
      6 
      7 #include "base/logging.h"
      8 #include "net/url_request/url_request_interceptor.h"
      9 
     10 namespace net {
     11 
     12 URLRequestInterceptingJobFactory::URLRequestInterceptingJobFactory(
     13     scoped_ptr<URLRequestJobFactory> job_factory,
     14     scoped_ptr<URLRequestInterceptor> interceptor)
     15     : job_factory_(job_factory.Pass()),
     16       interceptor_(interceptor.Pass()) {
     17 }
     18 
     19 URLRequestInterceptingJobFactory::~URLRequestInterceptingJobFactory() {}
     20 
     21 URLRequestJob* URLRequestInterceptingJobFactory::
     22 MaybeCreateJobWithProtocolHandler(
     23     const std::string& scheme,
     24     URLRequest* request,
     25     NetworkDelegate* network_delegate) const {
     26   DCHECK(CalledOnValidThread());
     27   URLRequestJob* job = interceptor_->MaybeInterceptRequest(request,
     28                                                            network_delegate);
     29   if (job)
     30     return job;
     31   return job_factory_->MaybeCreateJobWithProtocolHandler(
     32       scheme, request, network_delegate);
     33 }
     34 
     35 bool URLRequestInterceptingJobFactory::IsHandledProtocol(
     36     const std::string& scheme) const {
     37   return job_factory_->IsHandledProtocol(scheme);
     38 }
     39 
     40 bool URLRequestInterceptingJobFactory::IsHandledURL(const GURL& url) const {
     41   return job_factory_->IsHandledURL(url);
     42 }
     43 
     44 bool URLRequestInterceptingJobFactory::IsSafeRedirectTarget(
     45     const GURL& location) const {
     46   return job_factory_->IsSafeRedirectTarget(location);
     47 }
     48 
     49 }  // namespace net
     50