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 10namespace net { 11 12URLRequestInterceptingJobFactory::URLRequestInterceptingJobFactory( 13 scoped_ptr<URLRequestJobFactory> job_factory, 14 scoped_ptr<URLRequestInterceptor> interceptor) 15 : job_factory_(job_factory.Pass()), 16 interceptor_(interceptor.Pass()) { 17} 18 19URLRequestInterceptingJobFactory::~URLRequestInterceptingJobFactory() {} 20 21URLRequestJob* URLRequestInterceptingJobFactory:: 22MaybeCreateJobWithProtocolHandler( 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 35bool URLRequestInterceptingJobFactory::IsHandledProtocol( 36 const std::string& scheme) const { 37 return job_factory_->IsHandledProtocol(scheme); 38} 39 40bool URLRequestInterceptingJobFactory::IsHandledURL(const GURL& url) const { 41 return job_factory_->IsHandledURL(url); 42} 43 44bool URLRequestInterceptingJobFactory::IsSafeRedirectTarget( 45 const GURL& location) const { 46 return job_factory_->IsSafeRedirectTarget(location); 47} 48 49} // namespace net 50