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.
5 #include "net/url_request/protocol_intercept_job_factory.h"
7 #include "base/stl_util.h"
8 #include "googleurl/src/gurl.h"
9 #include "net/base/load_flags.h"
10 #include "net/url_request/url_request_job_manager.h"
16 ProtocolInterceptJobFactory::ProtocolInterceptJobFactory(
17 scoped_ptr
<URLRequestJobFactory
> job_factory
,
18 scoped_ptr
<ProtocolHandler
> protocol_handler
)
19 : job_factory_(job_factory
.Pass()),
20 protocol_handler_(protocol_handler
.Pass()) {
23 ProtocolInterceptJobFactory::~ProtocolInterceptJobFactory() {}
25 bool ProtocolInterceptJobFactory::SetProtocolHandler(
26 const std::string
& scheme
, ProtocolHandler
* protocol_handler
) {
27 return job_factory_
->SetProtocolHandler(scheme
, protocol_handler
);
30 void ProtocolInterceptJobFactory::AddInterceptor(Interceptor
* interceptor
) {
31 return job_factory_
->AddInterceptor(interceptor
);
34 URLRequestJob
* ProtocolInterceptJobFactory::MaybeCreateJobWithInterceptor(
35 URLRequest
* request
, NetworkDelegate
* network_delegate
) const {
36 return job_factory_
->MaybeCreateJobWithInterceptor(request
, network_delegate
);
39 URLRequestJob
* ProtocolInterceptJobFactory::MaybeCreateJobWithProtocolHandler(
40 const std::string
& scheme
,
42 NetworkDelegate
* network_delegate
) const {
43 DCHECK(CalledOnValidThread());
44 URLRequestJob
* job
= protocol_handler_
->MaybeCreateJob(request
,
48 return job_factory_
->MaybeCreateJobWithProtocolHandler(
49 scheme
, request
, network_delegate
);
52 URLRequestJob
* ProtocolInterceptJobFactory::MaybeInterceptRedirect(
55 NetworkDelegate
* network_delegate
) const {
56 return job_factory_
->MaybeInterceptRedirect(
57 location
, request
, network_delegate
);
60 URLRequestJob
* ProtocolInterceptJobFactory::MaybeInterceptResponse(
61 URLRequest
* request
, NetworkDelegate
* network_delegate
) const {
62 return job_factory_
->MaybeInterceptResponse(request
, network_delegate
);
65 bool ProtocolInterceptJobFactory::IsHandledProtocol(
66 const std::string
& scheme
) const {
67 return job_factory_
->IsHandledProtocol(scheme
);
70 bool ProtocolInterceptJobFactory::IsHandledURL(const GURL
& url
) const {
71 return job_factory_
->IsHandledURL(url
);