diff options
author | jar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-23 01:22:43 +0000 |
---|---|---|
committer | jar@chromium.org <jar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-23 01:22:43 +0000 |
commit | c5629c3842ca9fab0a6bb71a478df3fc528b8837 (patch) | |
tree | 8141f7d0b43e0cba093f049b688a336693abab1b /chrome/browser/net/connect_interceptor.h | |
parent | 3f9345838d9af871413f7350ca587b0152299e02 (diff) | |
download | chromium_src-c5629c3842ca9fab0a6bb71a478df3fc528b8837.zip chromium_src-c5629c3842ca9fab0a6bb71a478df3fc528b8837.tar.gz chromium_src-c5629c3842ca9fab0a6bb71a478df3fc528b8837.tar.bz2 |
Do speculative preconnection based on network traffic (not just DNS)
This rev also handles the triple of scheme/host/port for recording
both referrers and speculative connections, so that we
can soon support SSL warming as well as "mere" TCP/IP
preconnection.
r=mbelshe
Review URL: http://codereview.chromium.org/2563004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50563 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/net/connect_interceptor.h')
-rw-r--r-- | chrome/browser/net/connect_interceptor.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/chrome/browser/net/connect_interceptor.h b/chrome/browser/net/connect_interceptor.h new file mode 100644 index 0000000..21a6b00 --- /dev/null +++ b/chrome/browser/net/connect_interceptor.h @@ -0,0 +1,40 @@ +// Copyright (c) 2010 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. + +#ifndef CHROME_BROWSER_NET_CONNECT_INTERCEPTOR_H_ +#define CHROME_BROWSER_NET_CONNECT_INTERCEPTOR_H_ + +#include "net/url_request/url_request.h" + +namespace chrome_browser_net { + +//------------------------------------------------------------------------------ +// An interceptor to monitor URLRequests so that we can do speculative DNS +// resolution and/or speculative TCP preconnections. +class ConnectInterceptor : public URLRequest::Interceptor { + public: + // Construction includes registration as an URL. + ConnectInterceptor(); + // Destruction includes unregistering. + virtual ~ConnectInterceptor(); + + protected: + // URLRequest::Interceptor overrides + // Learn about referrers, and optionally preconnect based on history. + virtual URLRequestJob* MaybeIntercept(URLRequest* request); + virtual URLRequestJob* MaybeInterceptResponse(URLRequest* request) { + return NULL; + } + virtual URLRequestJob* MaybeInterceptRedirect(URLRequest* request, + const GURL& location) { + return NULL; + } + + private: + DISALLOW_COPY_AND_ASSIGN(ConnectInterceptor); +}; + +} // namespace chrome_browser_net + +#endif // CHROME_BROWSER_NET_CONNECT_INTERCEPTOR_H_ |