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

Unified Diff: chrome/browser/io_thread.cc

Issue 10913238: SPDY proxy authentication support. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 3 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
Index: chrome/browser/io_thread.cc
diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc
index 037868a5eb87d97d30aa7bd0fd0c1de5ce05532d..ab0f906cd9154b4532208d77be7047246a7c8272 100644
--- a/chrome/browser/io_thread.cc
+++ b/chrome/browser/io_thread.cc
@@ -32,6 +32,7 @@
#include "chrome/browser/net/proxy_service_factory.h"
#include "chrome/browser/net/sdch_dictionary_fetcher.h"
#include "chrome/browser/prefs/pref_service.h"
+#include "chrome/browser/spdyproxy/http_auth_handler_spdyproxy.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/pref_names.h"
#include "content/public/browser/browser_thread.h"
@@ -354,6 +355,7 @@ IOThread::IOThread(
auth_delegate_whitelist_ = local_state->GetString(
prefs::kAuthNegotiateDelegateWhitelist);
gssapi_library_name_ = local_state->GetString(prefs::kGSSAPILibraryName);
+ spdyproxy_origin_ = local_state->GetString(prefs::kSpdyProxyOrigin);
pref_proxy_config_tracker_.reset(
ProxyServiceFactory::CreatePrefProxyConfigTracker(local_state));
ChromeNetworkDelegate::InitializeReferrersEnabled(&system_enable_referrers_,
@@ -573,13 +575,15 @@ void IOThread::CleanUp() {
// static
void IOThread::RegisterPrefs(PrefService* local_state) {
local_state->RegisterStringPref(prefs::kAuthSchemes,
- "basic,digest,ntlm,negotiate");
+ "basic,digest,ntlm,negotiate,"
+ "spdyproxy");
local_state->RegisterBooleanPref(prefs::kDisableAuthNegotiateCnameLookup,
false);
local_state->RegisterBooleanPref(prefs::kEnableAuthNegotiatePort, false);
local_state->RegisterStringPref(prefs::kAuthServerWhitelist, "");
local_state->RegisterStringPref(prefs::kAuthNegotiateDelegateWhitelist, "");
local_state->RegisterStringPref(prefs::kGSSAPILibraryName, "");
+ local_state->RegisterStringPref(prefs::kSpdyProxyOrigin, "");
local_state->RegisterBooleanPref(prefs::kEnableReferrers, true);
}
@@ -601,13 +605,26 @@ net::HttpAuthHandlerFactory* IOThread::CreateDefaultAuthHandlerFactory(
std::vector<std::string> supported_schemes;
base::SplitString(auth_schemes_, ',', &supported_schemes);
- return net::HttpAuthHandlerRegistryFactory::Create(
- supported_schemes,
- globals_->url_security_manager.get(),
- resolver,
- gssapi_library_name_,
- negotiate_disable_cname_lookup_,
- negotiate_enable_port_);
+ scoped_ptr<net::HttpAuthHandlerRegistryFactory> registry_factory(
+ net::HttpAuthHandlerRegistryFactory::Create(
+ supported_schemes, globals_->url_security_manager.get(),
+ resolver, gssapi_library_name_, negotiate_disable_cname_lookup_,
+ negotiate_enable_port_));
+
+ if (!spdyproxy_origin_.empty()) {
+ GURL origin_url(spdyproxy_origin_);
+ if (origin_url.is_valid()) {
+ registry_factory->RegisterSchemeFactory(
+ "spdyproxy",
+ new spdyproxy::HttpAuthHandlerSpdyProxy::Factory(origin_url));
+ } else {
+ LOG(WARNING) << "Skipping creation of SpdyProxy auth handler since "
+ << "authorized origin is invalid: "
+ << spdyproxy_origin_;
+ }
+ }
+
+ return registry_factory.release();
}
void IOThread::ClearHostCache() {

Powered by Google App Engine
This is Rietveld 408576698