Index: net/url_request/url_request_filter.cc |
diff --git a/net/url_request/url_request_filter.cc b/net/url_request/url_request_filter.cc |
deleted file mode 100644 |
index eaa3325fba38b1a13af28db2340b0902f99f1546..0000000000000000000000000000000000000000 |
--- a/net/url_request/url_request_filter.cc |
+++ /dev/null |
@@ -1,168 +0,0 @@ |
-// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "net/url_request/url_request_filter.h" |
- |
-#include <set> |
- |
-#include "base/logging.h" |
-#include "base/stl_util.h" |
-#include "net/url_request/url_request_job_factory_impl.h" |
- |
-namespace net { |
- |
-namespace { |
- |
-class URLRequestFilterInterceptor : public URLRequestInterceptor { |
- public: |
- explicit URLRequestFilterInterceptor(URLRequest::ProtocolFactory* factory) |
- : factory_(factory) {} |
- ~URLRequestFilterInterceptor() override {} |
- |
- // URLRequestInterceptor implementation. |
- URLRequestJob* MaybeInterceptRequest( |
- URLRequest* request, |
- NetworkDelegate* network_delegate) const override { |
- return factory_(request, network_delegate, request->url().scheme()); |
- } |
- |
- private: |
- URLRequest::ProtocolFactory* factory_; |
- |
- DISALLOW_COPY_AND_ASSIGN(URLRequestFilterInterceptor); |
-}; |
- |
-} // namespace |
- |
-URLRequestFilter* URLRequestFilter::shared_instance_ = NULL; |
- |
-// static |
-URLRequestFilter* URLRequestFilter::GetInstance() { |
- if (!shared_instance_) |
- shared_instance_ = new URLRequestFilter; |
- return shared_instance_; |
-} |
- |
-void URLRequestFilter::AddHostnameHandler(const std::string& scheme, |
- const std::string& hostname, URLRequest::ProtocolFactory* factory) { |
- AddHostnameInterceptor( |
- scheme, hostname, |
- scoped_ptr<URLRequestInterceptor>( |
- new URLRequestFilterInterceptor(factory))); |
-} |
- |
-void URLRequestFilter::AddHostnameInterceptor( |
- const std::string& scheme, |
- const std::string& hostname, |
- scoped_ptr<URLRequestInterceptor> interceptor) { |
- DCHECK_EQ(0u, hostname_interceptor_map_.count(make_pair(scheme, hostname))); |
- hostname_interceptor_map_[make_pair(scheme, hostname)] = |
- interceptor.release(); |
- |
-#ifndef NDEBUG |
- // Check to see if we're masking URLs in the url_interceptor_map_. |
- for (URLInterceptorMap::const_iterator it = url_interceptor_map_.begin(); |
- it != url_interceptor_map_.end(); ++it) { |
- const GURL& url = GURL(it->first); |
- HostnameInterceptorMap::const_iterator host_it = |
- hostname_interceptor_map_.find(make_pair(url.scheme(), url.host())); |
- if (host_it != hostname_interceptor_map_.end()) |
- NOTREACHED(); |
- } |
-#endif // !NDEBUG |
-} |
- |
-void URLRequestFilter::RemoveHostnameHandler(const std::string& scheme, |
- const std::string& hostname) { |
- HostnameInterceptorMap::iterator it = |
- hostname_interceptor_map_.find(make_pair(scheme, hostname)); |
- DCHECK(it != hostname_interceptor_map_.end()); |
- |
- delete it->second; |
- hostname_interceptor_map_.erase(it); |
- // Note that we don't unregister from the URLRequest ProtocolFactory as |
- // this would leave no protocol factory for the remaining hostname and URL |
- // handlers. |
-} |
- |
-bool URLRequestFilter::AddUrlHandler( |
- const GURL& url, |
- URLRequest::ProtocolFactory* factory) { |
- return AddUrlInterceptor( |
- url, |
- scoped_ptr<URLRequestInterceptor>( |
- new URLRequestFilterInterceptor(factory))); |
-} |
- |
-bool URLRequestFilter::AddUrlInterceptor( |
- const GURL& url, |
- scoped_ptr<URLRequestInterceptor> interceptor) { |
- if (!url.is_valid()) |
- return false; |
- DCHECK_EQ(0u, url_interceptor_map_.count(url.spec())); |
- url_interceptor_map_[url.spec()] = interceptor.release(); |
- |
- // Check to see if this URL is masked by a hostname handler. |
- DCHECK_EQ(0u, hostname_interceptor_map_.count(make_pair(url.scheme(), |
- url.host()))); |
- |
- return true; |
-} |
- |
-void URLRequestFilter::RemoveUrlHandler(const GURL& url) { |
- URLInterceptorMap::iterator it = url_interceptor_map_.find(url.spec()); |
- DCHECK(it != url_interceptor_map_.end()); |
- |
- delete it->second; |
- url_interceptor_map_.erase(it); |
- // Note that we don't unregister from the URLRequest ProtocolFactory as |
- // this would leave no protocol factory for the remaining hostname and URL |
- // handlers. |
-} |
- |
-void URLRequestFilter::ClearHandlers() { |
- STLDeleteValues(&url_interceptor_map_); |
- STLDeleteValues(&hostname_interceptor_map_); |
- hit_count_ = 0; |
-} |
- |
-URLRequestJob* URLRequestFilter::MaybeInterceptRequest( |
- URLRequest* request, |
- NetworkDelegate* network_delegate) const { |
- URLRequestJob* job = NULL; |
- if (!request->url().is_valid()) |
- return NULL; |
- |
- // Check the hostname map first. |
- const std::string hostname = request->url().host(); |
- const std::string scheme = request->url().scheme(); |
- |
- HostnameInterceptorMap::const_iterator it = |
- hostname_interceptor_map_.find(make_pair(scheme, hostname)); |
- if (it != hostname_interceptor_map_.end()) |
- job = it->second->MaybeInterceptRequest(request, network_delegate); |
- |
- if (!job) { |
- // Not in the hostname map, check the url map. |
- const std::string& url = request->url().spec(); |
- URLInterceptorMap::const_iterator it = url_interceptor_map_.find(url); |
- if (it != url_interceptor_map_.end()) |
- job = it->second->MaybeInterceptRequest(request, network_delegate); |
- } |
- if (job) { |
- DVLOG(1) << "URLRequestFilter hit for " << request->url().spec(); |
- hit_count_++; |
- } |
- return job; |
-} |
- |
-URLRequestFilter::URLRequestFilter() : hit_count_(0) { |
- URLRequestJobFactoryImpl::SetInterceptorForTesting(this); |
-} |
- |
-URLRequestFilter::~URLRequestFilter() { |
- URLRequestJobFactoryImpl::SetInterceptorForTesting(NULL); |
-} |
- |
-} // namespace net |