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