Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(287)

Unified Diff: net/url_request/url_request_filter.cc

Issue 300693005: Make URLRequestFilter use URLRequestInterceptors. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix merge Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/url_request/url_request_filter.h ('k') | net/url_request/url_request_filter_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
index 19a8747ea9bbdd92a9cc2b703b87197c97e780ab..8f3b1aa3811cd049ba8e88f904f0e937b2ea4af9 100644
--- a/net/url_request/url_request_filter.cc
+++ b/net/url_request/url_request_filter.cc
@@ -8,20 +8,20 @@
#include "base/logging.h"
#include "base/stl_util.h"
+#include "net/url_request/url_request_interceptor.h"
namespace net {
namespace {
-class URLRequestFilterProtocolHandler
- : public URLRequestJobFactory::ProtocolHandler {
+class URLRequestFilterInterceptor : public URLRequestInterceptor {
public:
- explicit URLRequestFilterProtocolHandler(URLRequest::ProtocolFactory* factory)
+ explicit URLRequestFilterInterceptor(URLRequest::ProtocolFactory* factory)
: factory_(factory) {}
- virtual ~URLRequestFilterProtocolHandler() {}
+ virtual ~URLRequestFilterInterceptor() {}
- // URLRequestJobFactory::ProtocolHandler implementation
- virtual URLRequestJob* MaybeCreateJob(
+ // URLRequestInterceptor implementation.
+ virtual URLRequestJob* MaybeInterceptRequest(
URLRequest* request, NetworkDelegate* network_delegate) const OVERRIDE {
return factory_(request, network_delegate, request->url().scheme());
}
@@ -29,7 +29,7 @@ class URLRequestFilterProtocolHandler
private:
URLRequest::ProtocolFactory* factory_;
- DISALLOW_COPY_AND_ASSIGN(URLRequestFilterProtocolHandler);
+ DISALLOW_COPY_AND_ASSIGN(URLRequestFilterInterceptor);
};
} // namespace
@@ -43,7 +43,8 @@ URLRequestJob* URLRequestFilter::Factory(URLRequest* request,
NetworkDelegate* network_delegate,
const std::string& scheme) {
// Returning null here just means that the built-in handler will be used.
- return GetInstance()->FindRequestHandler(request, network_delegate, scheme);
+ return GetInstance()->MaybeInterceptRequest(request, network_delegate,
+ scheme);
}
// static
@@ -55,32 +56,32 @@ URLRequestFilter* URLRequestFilter::GetInstance() {
void URLRequestFilter::AddHostnameHandler(const std::string& scheme,
const std::string& hostname, URLRequest::ProtocolFactory* factory) {
- AddHostnameProtocolHandler(
+ AddHostnameInterceptor(
scheme, hostname,
- scoped_ptr<URLRequestJobFactory::ProtocolHandler>(
- new URLRequestFilterProtocolHandler(factory)));
+ scoped_ptr<URLRequestInterceptor>(
+ new URLRequestFilterInterceptor(factory)));
}
-void URLRequestFilter::AddHostnameProtocolHandler(
+void URLRequestFilter::AddHostnameInterceptor(
const std::string& scheme,
const std::string& hostname,
- scoped_ptr<URLRequestJobFactory::ProtocolHandler> protocol_handler) {
- DCHECK_EQ(0u, hostname_handler_map_.count(make_pair(scheme, hostname)));
- hostname_handler_map_[make_pair(scheme, hostname)] =
- protocol_handler.release();
+ scoped_ptr<URLRequestInterceptor> interceptor) {
+ DCHECK_EQ(0u, hostname_interceptor_map_.count(make_pair(scheme, hostname)));
+ hostname_interceptor_map_[make_pair(scheme, hostname)] =
+ interceptor.release();
// Register with the ProtocolFactory.
URLRequest::Deprecated::RegisterProtocolFactory(
scheme, &URLRequestFilter::Factory);
#ifndef NDEBUG
- // Check to see if we're masking URLs in the url_handler_map_.
- for (UrlHandlerMap::const_iterator i = url_handler_map_.begin();
- i != url_handler_map_.end(); ++i) {
- const GURL& url = GURL(i->first);
- HostnameHandlerMap::iterator host_it =
- hostname_handler_map_.find(make_pair(url.scheme(), url.host()));
- if (host_it != hostname_handler_map_.end())
+ // 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
@@ -88,12 +89,12 @@ void URLRequestFilter::AddHostnameProtocolHandler(
void URLRequestFilter::RemoveHostnameHandler(const std::string& scheme,
const std::string& hostname) {
- HostnameHandlerMap::iterator iter =
- hostname_handler_map_.find(make_pair(scheme, hostname));
- DCHECK(iter != hostname_handler_map_.end());
+ HostnameInterceptorMap::iterator it =
+ hostname_interceptor_map_.find(make_pair(scheme, hostname));
+ DCHECK(it != hostname_interceptor_map_.end());
- delete iter->second;
- hostname_handler_map_.erase(iter);
+ 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.
@@ -102,37 +103,36 @@ void URLRequestFilter::RemoveHostnameHandler(const std::string& scheme,
bool URLRequestFilter::AddUrlHandler(
const GURL& url,
URLRequest::ProtocolFactory* factory) {
- return AddUrlProtocolHandler(
+ return AddUrlInterceptor(
url,
- scoped_ptr<URLRequestJobFactory::ProtocolHandler>(
- new URLRequestFilterProtocolHandler(factory)));
+ scoped_ptr<URLRequestInterceptor>(
+ new URLRequestFilterInterceptor(factory)));
}
-
-bool URLRequestFilter::AddUrlProtocolHandler(
+bool URLRequestFilter::AddUrlInterceptor(
const GURL& url,
- scoped_ptr<URLRequestJobFactory::ProtocolHandler> protocol_handler) {
+ scoped_ptr<URLRequestInterceptor> interceptor) {
if (!url.is_valid())
return false;
- DCHECK_EQ(0u, url_handler_map_.count(url.spec()));
- url_handler_map_[url.spec()] = protocol_handler.release();
+ DCHECK_EQ(0u, url_interceptor_map_.count(url.spec()));
+ url_interceptor_map_[url.spec()] = interceptor.release();
// Register with the ProtocolFactory.
URLRequest::Deprecated::RegisterProtocolFactory(url.scheme(),
&URLRequestFilter::Factory);
// Check to see if this URL is masked by a hostname handler.
- DCHECK_EQ(0u, hostname_handler_map_.count(make_pair(url.scheme(),
- url.host())));
+ DCHECK_EQ(0u, hostname_interceptor_map_.count(make_pair(url.scheme(),
+ url.host())));
return true;
}
void URLRequestFilter::RemoveUrlHandler(const GURL& url) {
- UrlHandlerMap::iterator iter = url_handler_map_.find(url.spec());
- DCHECK(iter != url_handler_map_.end());
+ URLInterceptorMap::iterator it = url_interceptor_map_.find(url.spec());
+ DCHECK(it != url_interceptor_map_.end());
- delete iter->second;
- url_handler_map_.erase(iter);
+ 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.
@@ -141,27 +141,28 @@ void URLRequestFilter::RemoveUrlHandler(const GURL& url) {
void URLRequestFilter::ClearHandlers() {
// Unregister with the ProtocolFactory.
std::set<std::string> schemes;
- for (UrlHandlerMap::const_iterator i = url_handler_map_.begin();
- i != url_handler_map_.end(); ++i) {
- schemes.insert(GURL(i->first).scheme());
+ for (URLInterceptorMap::const_iterator it= url_interceptor_map_.begin();
+ it != url_interceptor_map_.end(); ++it) {
+ schemes.insert(GURL(it->first).scheme());
}
- for (HostnameHandlerMap::const_iterator i = hostname_handler_map_.begin();
- i != hostname_handler_map_.end(); ++i) {
- schemes.insert(i->first.first);
+ for (HostnameInterceptorMap::const_iterator it =
+ hostname_interceptor_map_.begin();
+ it != hostname_interceptor_map_.end(); ++it) {
+ schemes.insert(it->first.first);
}
for (std::set<std::string>::const_iterator scheme = schemes.begin();
scheme != schemes.end(); ++scheme) {
URLRequest::Deprecated::RegisterProtocolFactory(*scheme, NULL);
}
- STLDeleteValues(&url_handler_map_);
- STLDeleteValues(&hostname_handler_map_);
+ STLDeleteValues(&url_interceptor_map_);
+ STLDeleteValues(&hostname_interceptor_map_);
hit_count_ = 0;
}
URLRequestFilter::URLRequestFilter() : hit_count_(0) { }
-URLRequestJob* URLRequestFilter::FindRequestHandler(
+URLRequestJob* URLRequestFilter::MaybeInterceptRequest(
URLRequest* request,
NetworkDelegate* network_delegate,
const std::string& scheme) {
@@ -170,17 +171,17 @@ URLRequestJob* URLRequestFilter::FindRequestHandler(
// Check the hostname map first.
const std::string& hostname = request->url().host();
- HostnameHandlerMap::iterator i =
- hostname_handler_map_.find(make_pair(scheme, hostname));
- if (i != hostname_handler_map_.end())
- job = i->second->MaybeCreateJob(request, network_delegate);
+ HostnameInterceptorMap::iterator i =
+ hostname_interceptor_map_.find(make_pair(scheme, hostname));
+ if (i != hostname_interceptor_map_.end())
+ job = i->second->MaybeInterceptRequest(request, network_delegate);
if (!job) {
// Not in the hostname map, check the url map.
const std::string& url = request->url().spec();
- UrlHandlerMap::iterator i = url_handler_map_.find(url);
- if (i != url_handler_map_.end())
- job = i->second->MaybeCreateJob(request, network_delegate);
+ URLInterceptorMap::iterator i = url_interceptor_map_.find(url);
+ if (i != url_interceptor_map_.end())
+ job = i->second->MaybeInterceptRequest(request, network_delegate);
}
}
if (job) {
« no previous file with comments | « net/url_request/url_request_filter.h ('k') | net/url_request/url_request_filter_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698