// Copyright (c) 2012 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.
// A Preconnect instance maintains state while a TCP/IP connection is made, and
// and then released into the pool of available connections for future use.
#ifndef CHROME_BROWSER_NET_PRECONNECT_H_
#define CHROME_BROWSER_NET_PRECONNECT_H_
#include "chrome/browser/net/url_info.h"
class GURL;
namespace net {
class URLRequestContextGetter;
}
namespace chrome_browser_net {
// Try to preconnect. Typically motivated by OMNIBOX to reach search service.
// |count| may be used to request more than one connection be established in
// parallel.
void PreconnectOnUIThread(const GURL& url,
const GURL& first_party_for_cookies,
UrlInfo::ResolutionMotivation motivation,
int count,
net::URLRequestContextGetter* getter);
// Try to preconnect. Typically used by predictor when a subresource probably
// needs a connection. |count| may be used to request more than one connection
// be established in parallel.
void PreconnectOnIOThread(const GURL& url,
const GURL& first_party_for_cookies,
UrlInfo::ResolutionMotivation motivation,
int count,
net::URLRequestContextGetter* getter);
} // namespace chrome_browser_net
#endif // CHROME_BROWSER_NET_PRECONNECT_H_