summaryrefslogtreecommitdiffstats
path: root/net/http
diff options
context:
space:
mode:
authorchron@chromium.org <chron@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-06 02:22:10 +0000
committerchron@chromium.org <chron@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-06 02:22:10 +0000
commit659a26023ec2ac7100e5c79c29856ef049af6ca3 (patch)
tree789d0a2e65b3b4a53d191d895e1073d8d65f8855 /net/http
parent1bb5f89e7302cc69f13148651ac6732d89965787 (diff)
downloadchromium_src-659a26023ec2ac7100e5c79c29856ef049af6ca3.zip
chromium_src-659a26023ec2ac7100e5c79c29856ef049af6ca3.tar.gz
chromium_src-659a26023ec2ac7100e5c79c29856ef049af6ca3.tar.bz2
Initial CL for fixing some of the proxy auth issues.
Auth_cache is contained in the http session. We need to share the http session with the parent profile request context in order to retain http authentication. Weirdly enough, Profile::GetDefaultRequestContext() is not the same as profile_->GetRequestContext(), It does NOT yet pop up a dialog if the user hasn't done so already. BUG=19581 TEST=Included. Review URL: http://codereview.chromium.org/241001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28086 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/http')
-rw-r--r--net/http/http_cache.cc6
-rw-r--r--net/http/http_cache.h1
-rw-r--r--net/http/http_network_layer.h3
-rw-r--r--net/http/http_transaction_factory.h5
-rw-r--r--net/http/http_transaction_unittest.h4
5 files changed, 17 insertions, 2 deletions
diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc
index b6a8bc33..ffc941c 100644
--- a/net/http/http_cache.cc
+++ b/net/http/http_cache.cc
@@ -1680,6 +1680,12 @@ HttpCache* HttpCache::GetCache() {
return this;
}
+HttpNetworkSession* HttpCache::GetSession() {
+ net::HttpNetworkLayer* network =
+ static_cast<net::HttpNetworkLayer*>(network_layer_.get());
+ return network->GetSession();
+}
+
void HttpCache::Suspend(bool suspend) {
network_layer_->Suspend(suspend);
}
diff --git a/net/http/http_cache.h b/net/http/http_cache.h
index 15163b07..35d16c6 100644
--- a/net/http/http_cache.h
+++ b/net/http/http_cache.h
@@ -97,6 +97,7 @@ class HttpCache : public HttpTransactionFactory,
// HttpTransactionFactory implementation:
virtual int CreateTransaction(scoped_ptr<HttpTransaction>* trans);
virtual HttpCache* GetCache();
+ virtual HttpNetworkSession* GetSession();
virtual void Suspend(bool suspend);
// Helper function for reading response info from the disk cache. If the
diff --git a/net/http/http_network_layer.h b/net/http/http_network_layer.h
index d73c0cd..7defb4e 100644
--- a/net/http/http_network_layer.h
+++ b/net/http/http_network_layer.h
@@ -47,10 +47,9 @@ class HttpNetworkLayer : public HttpTransactionFactory {
// HttpTransactionFactory methods:
virtual int CreateTransaction(scoped_ptr<HttpTransaction>* trans);
virtual HttpCache* GetCache();
+ virtual HttpNetworkSession* GetSession();
virtual void Suspend(bool suspend);
- HttpNetworkSession* GetSession();
-
private:
// The factory we will use to create network sockets.
ClientSocketFactory* socket_factory_;
diff --git a/net/http/http_transaction_factory.h b/net/http/http_transaction_factory.h
index 90d36e9..3d37ffe 100644
--- a/net/http/http_transaction_factory.h
+++ b/net/http/http_transaction_factory.h
@@ -10,8 +10,10 @@
namespace net {
class HttpCache;
+class HttpNetworkSession;
class HttpTransaction;
+
// An interface to a class that can create HttpTransaction objects.
class HttpTransactionFactory {
public:
@@ -24,6 +26,9 @@ class HttpTransactionFactory {
// Returns the associated cache if any (may be NULL).
virtual HttpCache* GetCache() = 0;
+ // Returns the associated HttpNetworkSession used by new transactions.
+ virtual HttpNetworkSession* GetSession() = 0;
+
// Suspends the creation of new transactions. If |suspend| is false, creation
// of new transactions is resumed.
virtual void Suspend(bool suspend) = 0;
diff --git a/net/http/http_transaction_unittest.h b/net/http/http_transaction_unittest.h
index ab27b27..4de8efd 100644
--- a/net/http/http_transaction_unittest.h
+++ b/net/http/http_transaction_unittest.h
@@ -322,6 +322,10 @@ class MockNetworkLayer : public net::HttpTransactionFactory {
return NULL;
}
+ virtual net::HttpNetworkSession* GetSession() {
+ return NULL;
+ }
+
virtual void Suspend(bool suspend) {}
int transaction_count() const { return transaction_count_; }