Enables compositing support for webview.
[chromium-blink-merge.git] / net / url_request / protocol_intercept_job_factory.cc
blob1a1a95ff9867ac4e777fbf84adef82d6b7389441
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"
12 class GURL;
14 namespace net {
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,
41 URLRequest* request,
42 NetworkDelegate* network_delegate) const {
43 DCHECK(CalledOnValidThread());
44 URLRequestJob* job = protocol_handler_->MaybeCreateJob(request,
45 network_delegate);
46 if (job)
47 return job;
48 return job_factory_->MaybeCreateJobWithProtocolHandler(
49 scheme, request, network_delegate);
52 URLRequestJob* ProtocolInterceptJobFactory::MaybeInterceptRedirect(
53 const GURL& location,
54 URLRequest* request,
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);
74 } // namespace net