- add sources.
[platform/framework/web/crosswalk.git] / src / net / url_request / protocol_intercept_job_factory.cc
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